如何在Amazon EC2中使用“实例存储卷”存储?

根据AWS,我使用中型EC2服务器获得了850 GB的存储空间。 但是,当我创build一个亚马逊Linux AMI,我无法使用提供的850 GB。

在创build它时,在Instance Store Volumes中的存储设备configuration中会显示其设备将位于/ dev / sdb,但是当启动虚拟机时,我只find/ dev / sda1。

你能帮我安装这个存储吗? 谢谢

而且,当亚马逊宣称实例存储对于长期使用并不安全,并且应该更喜欢使用EBS时,那么这850GB有什么意义呢?

谢谢

当实例停止时,使用实例本地存储是非常简单的:对于瞬态事物来说,这是非常大的一块空间。 它们是挂载到/tmp的完美目标,如果你的服务器暂时处理非常大的文件,它是非常有用的。

例如,如果您正在构build一组实例以对上传的video文件进行语音到文本的翻译,那么实例本地存储就是您想要放置进程内文件的事情。 在处理文件的时候可能会有几个小时,但一旦完成,可以删除另一个文件。 你不需要EBS,而且用实例本地而不是EBS运行这种存储便宜很多

实例本地存储意味着用作运行处理的临时空间,而不是长期存储。 如果你的工作量没有使用任何东西的空间,或者它所需要的东西太小而不重要,那么它就不适合你。

如果它还没有安装在eg / mnt下,并且没有已经创build的文件系统,那么执行:

  1. 检查设备名称

    sudo fdisk -l

  2. 使目录到您想要安装卷的位置

    sudo mkdir / mnt

  3. 在卷上创build文件系统(确保select正确的卷,因为这会在卷上创build一个新的文件系统)

    sudo mkfs.ext4 / dev / xvdj

  4. 挂载音量

    sudo mount -t ext4 / dev / xvdj / mnt

  5. 如果要在重启之后保留挂载,请打开/ etc / fstab并将挂载添加到挂载

    echo“/ dev / xvdj / mnt auto noatime 0 0”| sudo tee -a / etc / fstab

  6. 确保没有任何错误,通过安装所有fstab

    mount -a

我为Ubuntu创build了一个脚本,可以在启动和停止周期之后运行,因为在AWS的世界里,这两者是完全不同的东西。 当你重新启动时,你仍然有相同的临时磁盘,所有你需要做的是挂载(/ etc / fstab应该自动处理这个),但是当一个实例停止,然后重新启动,你会得到一个新的未格式化的临时磁盘,需要更多的爱准备好使用。 只要你有正确的/ etc / fstab条目,你可以随时运行它,它会根据需要挂载/格式化设备。 它将取得一个挂载点的参数,但是如果没有提供的话它将会假设/ mnt你可以调用脚本mount_ephemeral.sh并以启动服务的根目录运行。

 #!/bin/sh mountPoint=${1:-'/mnt'} rawDevice=$(grep " $mountPoint " /etc/fstab |cut -f1) #echo checking $mountPoint on $rawDevice [ "$rawDevice" = "" ] && { echo -e "$mountPoint not in /etc/fstab"; exit 1; } mountpoint -q $mountPoint [ "$?" = "0" ] && { echo -e "$mountPoint mounted"; exit; } hasFS=$(blkid |grep $rawDevice) [ ! "$hasFS" = "" ] && { echo -e "$mountPoint has FS:$hasFS"; mount $mountPoint; exit; } echo initializing $mountPoint on $rawDevice mkdir -p $mountPoint mkfs.ext4 $rawDevice mount $mountPoint chmod 777 $mountPoint exit 0 

实例存储挂载也取决于映像:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/add-instance-store-volumes.html

启动实例时,默认块设备映射由指定的AMI提供。 如果您需要额外的实例存储卷,则必须在启动时将其添加到实例中。 请注意,您也可以省略在AMI块设备映射中指定的设备。

一些图像将使用所有可用的资源。