我使用下面的内容将音量附加到ec2使用boto。我使用的是ubuntu 12.04。
region_id=boto.ec2.get_region(region,aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
conn = ec2.connection.EC2Connection(region=region_id,aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
vol = conn.create_volume(gigs,placement)
vol.attach(intsance_id, '/dev/sdh')
我不是驱动器方面的专家。我想用它来做mongo。我假设我必须登录实例并准备EBS。我的问题是怎么样?我尝试了下面的内容。
grep -q xfs /proc/filesystems || sudo modprobe xfs
sudo mkfs.xfs /dev/sdh
sudo mkfs.xfs /dev/sdh
/dev/sdh: No such file or directory
答案 0 :(得分:1)
在最近的Ubuntu计算机上,设备被映射到/dev/xvdX
。在您的情况下,这应该是/dev/xvdh
。尝试使用此设备ID创建文件系统,然后安装它。
答案 1 :(得分:0)
它可能没有附加为/ dev / sdh /。尝试做:
$ sudo fdisk -l
找到正确的设备名称。
答案 2 :(得分:0)
首先,您添加广告的方式和额外不必要的步骤。所以请将其作为/ dev / sdh1添加,以下内容将起作用。否则,您还需要使用fdisk在磁盘上创建分区。
实例启动后,您需要在设备上创建文件系统,然后安装它。
看起来像这样
创建xfs文件系统
mkfs.xfs -f /dev/xvdh1
挂载(将新文件系统附加到目录):
mkdir /mnt/more_storage
mount -t xfs /dev/xvdh1 /mnt/more_storage
最后,如果你想在下次重启时看到这个,你需要在/ etc / fstab中添加如下内容
/dev/xvdh1 /mnt/more_storage xfs defaults,noatime 0 0
此示例使用xfs,您可以选择ext3 / ext4或您选择的任何一个。
目录/ mnt / more_storage实际上可以是系统上的任何空目录。在运行mount命令之前,该目录必须存在且必须为空。它可以很容易地是/ var / mongo / data。
虽然,正如你所说的那是mongo,但我还是会提出进一步的建议。将您需要的空间除以至少5,但可能是8或10.因此,如果您需要100GB,则创建5个EBS卷,每个20GB或10个10GB。然后按原样附加它们,而不是指定分区号或/ dev / sdh。因此,例如,我将坚持使用5来保存打字,但有些约8可以为您提供最佳的吞吐量。所以现在你已经附加了/ dev / sdh,/ dev / sdi,/ dev / sdj,/ dev / sdk和/ dev / sdl。
现在,你需要从上面做一个额外的步骤,在这些EBS卷上创建条纹raid
mdadm --create --verbose /dev/md0 --level=0 --raid-device=5 /dev/xvdh /dev/xvdi /dev/xvdj /dev/xvdk /dev/xvdl
这将创建一个位于/ dev / md0的新设备。现在用上面示例中的/ dev / md0替换/ dev / xvdh1并创建文件系统并挂载它。
mount -t xfs /dev/md0 /mnt/more_storage
/dev/md0 /mnt/more_storage xfs defaults,noatime 0 0
您还希望在重新启动后使用此功能,因此您需要以下命令:
echo "DEVICE /dev/xvdh /dev/xvdi /dev/xvdj /dev/xvdk /dev/xvdl" >> /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf
echo "/dev/md0 /mnt/more_storage xfs defaults,noatime 0 0" >> /etc/fstab