2017-08-10 98 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 –

相關問題