如何解决使用PowerShell启动新的EC2实例,并增加卷大小
如何使用New-EC2Instance启动新的EC2实例,但增加卷大小(大于8GB标准)。 我尝试过:
...
$blockDeviceMapping = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$ebsBlockDevice = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice
$blockDeviceMapping.DeviceName = '/dev/sda1'
$ebsBlockDevice.VolumeSize = '50'
$ebsBlockDevice.VolumeType = 'standard'
$blockDeviceMapping.Ebs = $ebsBlockDevice
...
$NewInstanceResponse = New-EC2Instance <...> -BlockDeviceMapping $blockDeviceMapping
但是它将创建一个具有未装入卷的实例。 我正在尝试创建一个具有1个存储卷的实例,大小为50GB。
解决方法
删除单引号50。应为整数,如下所示。
"VolumeSize": 50
,
我以首先创建具有50GB根存储的实例,然后创建该实例的映像的方式来完成此操作,因此我可以将AMI与增加的根存储一起使用。 这可能是一种解决方法,但对我有用。 如果有更清洁的解决方案,我想听听。
,确保卷名与实例类型的根卷名匹配。
在我的情况下是/dev/xvda
。
我有一个来自ASG LaunchTemplateData的示例,但解决方案应该相同:
BlockDeviceMappings:
- DeviceName: /dev/xvda
Ebs:
DeleteOnTermination: true
VolumeSize: 16
VolumeType: "gp2"
如果我没记错的话,当我使用其他名称时,只会创建另一个卷-就像您的情况一样。
然后,当您使用常规的8GB AMI启动实例时,您仍然会看到8GB的文件系统。根据您的文件系统类型,您应该能够在首次启动时就在元数据中进行扩展。我执行以下操作:
BLCKDEVICE=`lsblk -l | egrep 'part /$' | awk '{ print $1}' `
DEVICE=`echo $BLCKDEVICE | cut -dp -f1`
PARTID=`echo $BLCKDEVICE | cut -dp -f2`
growpart /dev/$DEVICE $PARTID
xfs_growfs -d /
确保您的脚本与文件系统类型之类的AMI配置相匹配(在我的情况下为XFS,但ext4应该也可以)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。