2017-08-10 97 views
0

AWS支持通过控制台和CLI(docs)修改已安装的EBS卷的类型(磁盘,SSD等)。但Boto3中的volume class似乎不支持AutoEnableIO和DryRun以外的其他操作modifies volume attributes如何使用Boto3更改正在运行的实例上的EBS卷类型?

有没有方法可以用Boto3改变EBS卷的类型,我没有看到或者从文档拼凑在一起?

+0

我怀疑你是否可以修改正在运行的实例的卷属性。 – helloV

+2

@helloV哦,是的。这是一件新事物。 https://aws.amazon.com/blogs/aws/amazon-ebs-update-new-elastic-volumes-change-everything/ –

回答

2

使用modify_volume()方法:

import boto3 

client = boto3.client('ec2') 
response = client.modify_volume(VolumeId='vol-xxxxxxxx',VolumeType='io1',Iops=100) 

做工精细,甚至在运行的启动卷。

+0

完美!也为我工作。谢谢! –

-1

为您解决这将是最好的选择:

  1. 使用快照
  2. 在创建新卷更改所需的类型把你卷的快照
  3. 创建新卷
  4. 分离原来的驱动器,然后附加新创建的驱动器

但缺点是你必须恢复如果你的虚拟机,你无法执行整个过程,而无需重新启动虚拟机。

new_volume_id=$(aws ec2 create-volume \ 
    --region "$region" \ 
    --availability-zone "$zone" \ 
    --size "$size" \ 
    --snapshot "$snapshot_id" \ 
    --output text \ 
    --volume-type <value> 
    --query 'VolumeId') 

创建新卷后,您可以附加新卷。但在此之前,你必须停止你的实例:

aws ec2 attach-volume \ 
    --region "$region" \ 
    --instance "$instance_id" \ 
    --device "$root_device" \ 
    --volume-id "$new_volume_id" 

我不确定这个答案是否会在这种情况下帮助你。

希望它在一定程度上有所帮助!

+1

这些都不是必要的,大多数情况下都是如此。 2017年,EBS开始支持现场热点的热点修改。您可以更改卷大小(仅增加)以及存储类型,EBS可以透明地实时处理迁移。内核会注意到卷容量的变化,您可以调整卷的文件系统的大小。如果实例较旧,则可能不支持它,在这种情况下,您必须停止该实例并分离该卷,但可以修改该卷并重新附加该卷。 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html –

相关问题