AWS C5类型Instance的挂载点变更
问题点
一直使用的是Amazon自有的Amazon Linux,中国区的C5出来后,将原有的机器升级到C5的时候,发现额外挂载的磁盘没有挂载成功。
调查了一下,C5系列属于Nitro-based instance, EBS卷默认使用的是NVMe driver,设备名由原来C4的/dev/xvda1和/dev/xvdf变为了/dev/nvme[0-26]n1的格式。官网说明Device Naming on Linux Instances。
以前C4的机器中,/etc/fstab中设定的另外一块EBS的挂载点是/dev/xvdf, 所以导致了换用C5的时候,没能自动挂载。
|
|
解决办法
lsblk
查看EBS的挂载路径,然后修改/etc/fstab。解决了问题。
|
|
AWS推荐的mount方法
关于/etc/fstab的挂载点,AWS官方文档Automatically Mount an Attached Volume After Reboot推荐使用UUID来进行挂载,而不要直接使用像/dev/xvdf之类的设备名。类似
其中的磁盘UUIDaebf131c-6957-451e-8d34-ec978d9581ae
可以通过命令blkid
来查看。此时,无论Instance改为了哪种类型的Instance,启动时都可以正常挂载使用。
使用UUID的挂载方法,也适用于于从Instance制作AMI,再从AMI启动新的Instance的情况,从AMI中启动的Instance的相同分区的EBS的UUID都是相同的,所以能够自动挂载。
相关知识
开启ENA
使用C5类型时,要求Instance或AMI是支持Elastic Network Adapter(ENA)的才行。
将现有的Instance升级为ENA Support的方法参见官网说明Enabling Enhanced Networking with the Elastic Network Adapter (ENA) on Linux Instances
大概步骤:
- 系统中安装ENA支持
- 修改Instance为ena-support :
aws ec2 modify-instance-attribute --instance-id instance_id --ena-support
- 查看Instance是否ena-support:
aws ec2 describe-instances --instance-ids instance_id --query "Reservations[].Instances[].EnaSupport"
- 支持ena的Instance制作的AMI,会继承该Instance的ena属性。
如果没有开启ENA,则无法使用C5类型。
当不支持ENA的Instance被修改为C5时,启动时会报如下的错误:
当从不支持ENA的AMI来launch Instance时,直接就没法选择C5系列的类型。