2017-07-18 199 views
4

因此,我创建i3.large与NVME磁盘的每个节点上,这里是我的过程:安装在AWS EC2一个NVME盘

  1. lsblk - > nvme0n1(检查是否nvme尚未安装)
  2. 须藤对mkfs.ext4 -E nodiscard的/ dev/nvme0n1
  3. 须藤安装邻丢弃的/ dev/nvme0n1的/ mnt /我的数据
  4. 的/ dev/nvme0n1的/ mnt /我的数据EXT4默认值,nofail,丢弃0 2
  5. sudo mount -a(检查一切是否正常)
  6. sudo reboot

因此,所有这些工作,我可以连接回实例。我有500个Go在我的新分区上。

但是在我停止和重新启动EC2的机器,他们中的一些随机成了人迹罕至(AWS仅警告1/2测试状态检查)

当我看它为什么是它告诉我无法访问日志,它的关于nvme分区(但是我做了sudo mount -a来检查这是否正常,所以我不明白)

我没有准确的AWS日志,但我得到了一些行:

尝试打开时超级块中的坏幻数

那么超级块损坏了,你可以尝试使用备用超级块运行e2fsck的:

的/ dev/FD/9:2号线:普利茅斯:找不到命令

+1

停止并启动一个实例将擦除临时磁盘,将实例移动到新的主机硬件,并为您提供新的空磁盘......所以临时磁盘在停止/启动后将始终为空。当一个实例停止时,它在任何物理主机上都不存在 - 资源被释放。你知道吗? –

+0

不,我不是,所以你暗示我应该把我的EC2实例保持100%?还是有更好的选择? – tricky

+0

'i3'实例类中的NVMe SSD是[实例存储卷](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html)的示例,也称为*短暂* [Disk |卷|驾驶 ]。它们实际上处于实例的内部并且速度非常快,但不是冗余的,不适用于持久数据...因此,“短暂”。持久数据需要位于[Elastic Block Store(EBS)](https://aws.amazon.com/ebs/)卷或[Elastic File System(EFS)](https://aws.amazon.com)上/ efs /),这两者都可以在实例停止/启动,硬件故障和维护中生存。 –

回答

4

停止和启动一个实例擦除临时磁盘,将实例移动到新的主机硬件,并为您提供新的空磁盘......所以临时磁盘在停止/启动后将始终为空。当一个实例停止时,它在任何物理主机上都不存在 - 资源被释放。

因此,如果您要停止并启动实例,最好的方法不是将它们添加到/etc/fstab,而是在第一次启动时对它们进行格式化,然后再安装它们。测试文件系统是否已存在的一种方法是使用file实用程序和grep的输出。如果grep找不到匹配项,则返回false。

i3实例类中的NVMe SSD是Instance Store Volume的示例,也称为临时[Disk |卷|驾驶 ]。它们实际上处于实例的内部,速度非常快,但不是冗余的,不适用于持久性数据...因此,“短暂”。持久性数据需要位于一个Elastic Block Store (EBS)卷或Elastic File System (EFS)上,两者都可以在实例停止/启动,硬件故障和维护期间存活。

目前尚不清楚为什么您的实例无法启动,但nofail可能没有达到您期望的体积时存在但没有文件系统。我的印象是最终它应该成功。

但是,如果运行Ubuntu 16.04,则可能需要apt-get install linux-aws。 Ubuntu 14.04 NVMe支持不是很稳定,并且not recommended

这三种存储解决方案各有其优缺点。

实例存储是本地的,所以速度非常快......但它是短暂的。它可以在硬重启和软重启的情况下存活,但不会停止/启动周期。如果您的实例发生硬件故障或计划退休,最终发生在所有硬件上,您必须停止并启动实例,将其移至新硬件。保留和专用实例不会更改临时磁盘行为。

EBS是永久性的冗余存储,可以从一个实例中分离出来并移动到另一个实例(这种情况会在停止/启动时自动发生)。 EBS支持时间点快照,并且这些快照在块级别上是递增的,所以您不需要支付存储快照间没有变化的数据......但通过一些出色的巫术,您也没有跟踪“完整”和“增量”快照 - 快照只是指向备份数据块的逻辑容器,因此它们本质上都是“完整”快照,但只是按比例计算。删除快照时,只有不再需要的块才能从后端存储系统(实际上透明地使用Amazon S3)中清除该快照和任何其他快照。

EBS卷可作为SSD和旋转磁盘磁盘卷提供,同样需要在成本,性能和适当应用方面进行折衷。见EBS Volume Types。 EBS卷模仿普通硬盘,除了它们的容量可以根据需要手动增加(但不会减少),并且可以在不关闭系统的情况下从一种卷类型转换为另一种卷类型。 EBS可以即时完成所有数据迁移,同时降低性能但不会中断。这是一个相对较新的创新。

EFS使用NFS,因此即使在一个区域内的可用区域内,也可以在任意多个实例上安装EFS文件系统。 EFS中任何一个文件的大小限制都是52 TB,而您的实例将实际报告8 EB可用空间。实际的可用空间对于所有实际用途都是无限的,但EFS也是最昂贵的 - 如果您确实有一个月存储了52个TiB文件,那么这个存储将花费超过15,000美元。我曾经储存的最多的是2个星期大约20个TiB,花费我约5千美元,但如果你需要这个空间,空间就在那里。它每小时收费一次,所以如果您将52 TiB文件存储了几个小时然后将其删除,那么您可能会支付50美元。 EFS中的“弹性”是指产能和价格。您不会预先在EFS上预留空间。您使用您需要的内容并删除您不需要的内容,并且计费大小按小时计算。

没有S3,关于存储的讨论就不完整。它不是一个文件系统,它是一个对象存储。在EFS价格的1/10左右,S3的容量实际上是无限的,最大物件尺寸为5TB。一些应用程序可以使用S3对象而不是文件来更好地设计。

无论是在您的数据中心还是在其他云中,S3也可以被AWS以外的系统轻松使用。其他存储技术旨在EC2内部使用,但有一个undocumented workaround允许EFS在外部或跨区域使用,代理和通道。

0

我刚刚有过类似的经历!我的C5.xlarge实例检测到EBS为nvme1n1。我在fstab中添加了这一行。

/dev/nvme1n1 /data ext4 discard,defaults,nofail 0 2 

经过几次重新启动,它看起来工作。它持续运行数周。但是今天,我刚刚得到警报,表明该实例无法连接。我尝试从AWS控制台重新启动它,没有运气看起来罪魁祸首是fstab。磁盘安装失败。

我提高了AWS支持的票价,还没有反馈。我必须开始一个新实例来恢复我的服务。

在另一个测试实例中,我尝试使用UUID(通过命令blkid获​​取)而不是/ dev/nvme1n1。到目前为止看起来还在工作......会看到它是否会导致任何问题。

如果有任何AWS支持反馈,我会在这里更新。

================编辑与我修复===========

AWS不给我反馈,但我发现了这个问题。实际上,在fstab中,无论你装载/ dev/nvme1n1还是UUID,都没关系。我的问题是,我的ESB在文件系统中有一些错误。我重视它的实例,然后运行

fsck.ext4 /dev/nvme1n1 

后修复了几个文件系统错误,把它放在fstab文件,重新启动,没问题了!

+0

你是否曾经能够制作'/ dev/nvme1n1'的根目录?或者您是否知道如何修改'fstab'文件,以便在从AWS控制台作为/ dev/sda1连接时,以前的'nvme1n1'现在显示为'nvme0n1'(即root)?将该卷作为根卷附加后,我的实例不会启动并在某个登录屏幕上(从实例快照)结束。我也正在使用C5实例.. – Alex