2

我已经配置了一个 OpsWorks 堆栈并设置了我的层,以便将一个 50 GB 的卷附加到我启动的每个实例。

一个新的 EBS 卷被正确地创建、附加并安装到新启动的实例。这是我在第一次启动后立即看到的:

[root@biscotti ec2-user]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.9G  1.9G  5.9G  25% /
tmpfs           298M     0  298M   0% /dev/shm
/dev/xvdi        50G   33M   50G   1% /srv/www          <---------
[root@biscotti ec2-user]# mount
/dev/xvda1 on / type ext4 (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/xvdi on /srv/www type xfs (rw,noatime)             <---------

但是,如果我重新启动实例,则不会自动重新安装卷:

[root@biscotti ec2-user]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.9G  1.9G  5.9G  25% /
tmpfs           298M     0  298M   0% /dev/shm
[root@biscotti ec2-user]# mount
/dev/xvda1 on / type ext4 (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

如果我输入

sudo mount -a

一切都会恢复正常:

[root@biscotti ec2-user]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.9G  1.9G  5.9G  25% /
tmpfs           298M     0  298M   0% /dev/shm
/dev/xvdi        50G   33M   50G   1% /srv/www
[root@biscotti ec2-user]# mount
/dev/xvda1 on / type ext4 (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/xvdi on /srv/www type xfs (rw,noatime)

如何让 OpsWorks 为我自动重新挂载 EBS 卷?

提前致谢。

4

2 回答 2

5

我向 AWS 支持提出了问题,结果证明是 OpsWorks 的问题。要使该错误可重现,一件关键的事情是我通过sudo reboot在命令行上键入来重新启动实例。如果我改为通过 API 或 AWS 控制台停止并重新启动实例,则该卷将正确安装。从字面上引用 AWS 支持:

OpsWorks 是一项非常程序化的服务。如果可能的话,它喜欢在没有人工干预的情况下管理自己的资源。也许手动操作系统重新启动覆盖了 OpsWorks 过程的某些部分。

有人告诉我 OpsWorksdev 团队正在解决这个问题。也可以通过使用自定义 Chef 配方将auto选项添加到文件中的 EBS 设备来解决此问题。/etc/fstab

我希望这会帮助那些遇到同样问题的人。

于 2014-03-11T21:36:31.097 回答
0

我们不得不使用的一种解决方法是自定义 opsworks_initial_setup 说明书 ( original ) 的默认属性。

使用以下custom.rb:

default[:opsworks_initial_setup][:bind_mounts][:mounts] = {}

当然,亚马逊的建议是使用symlink

于 2015-04-22T17:57:24.053 回答