EBSボリュームのサイズ変更をやってみる

  • 0
    Like
  • 0
    Comment

    環境

    項目 設定
    OS AmazonLinux (version 2017.03)
    インスタンスタイプ t2.micro
    ボリュームタイプ gp2
    pythonバージョン Python 3.5.3 (pyenv)
    AWS CLIバージョン aws-cli/1.11.82

    その他詳細

    a.拡張対象ディスクの初期状態
    {
        "Volumes": [
            {
                "VolumeType": "gp2",
                "VolumeId": "vol-05c927a2a0afec131",
                "Iops": 100,
                "CreateTime": "2017-05-04T01:17:37.368Z",
                "State": "in-use",
                "Size": 10,
                "Encrypted": false,
                "AvailabilityZone": "ap-northeast-1a",
                "Attachments": [
                    {
                        "VolumeId": "vol-05c927a2a0afec131",
                        "DeleteOnTermination": false,
                        "State": "attached",
                        "AttachTime": "2017-05-04T01:17:37.000Z",
                        "Device": "/dev/sdb",
                        "InstanceId": "i-074b8466302e6dc1a"
                    }
                ],
                "SnapshotId": ""
            }
        ]
    }
    
    b.拡張対象ディスクの変更情報は無し
    [root@ip-172-30-0-5 work]# aws ec2 describe-volumes-modifications --volume-id vol-05c927a2a0afec131 --region ap-northeast-1
    
    An error occurred (InvalidVolumeModification.NotFound) when calling the DescribeVolumesModifications operation: Modification for volume 'vol-05c927a2a0afec131' does not exist.
    
    c.OSから見た初期状態
    [root@ip-172-30-0-5 ~]# lsblk /dev/xvdb
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    xvdb 202:16   0  10G  0 disk /mnt
    [root@ip-172-30-0-5 ~]# df -h /mnt
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/xvdb       9.8G   23M  9.2G   1% /mnt
    

    手順

    1.拡張対象のディスクを10GiB→11GiBに拡張する

    コマンド
    aws ec2 modify-volume --volume-id vol-05c927a2a0afec131 --size 11 --region ap-northeast-1
    
    レスポンス
    {
        "VolumeModification": {
            "TargetVolumeType": "gp2",
            "OriginalSize": 10,
            "StartTime": "2017-05-04T05:32:52.500Z",
            "TargetIops": 100,
            "TargetSize": 11,
            "OriginalVolumeType": "gp2",
            "OriginalIops": 100,
            "VolumeId": "vol-05c927a2a0afec131",
            "ModificationState": "modifying",
            "Progress": 0
        }
    }
    

    2.変更の進行状況をチェック

    コマンド
    aws ec2 describe-volumes-modifications --volume-id vol-05c927a2a0afec131 --region ap-northeast-1
    
    変更リクエスト発行から間髪入れずに発行した時のレスポンス
    {
        "VolumesModifications": [
            {
                "OriginalSize": 10,
                "OriginalVolumeType": "gp2",
                "TargetIops": 100,
                "TargetSize": 11,
                "StartTime": "2017-05-04T05:32:52.500Z",
                "OriginalIops": 100,
                "ModificationState": "modifying",
                "TargetVolumeType": "gp2",
                "Progress": 0,
                "VolumeId": "vol-05c927a2a0afec131"
            }
        ]
    }
    
    変更リクエスト発行からちょっと経ってから発行した時のレスポンス
    {
        "VolumesModifications": [
            {
                "TargetSize": 11,
                "TargetVolumeType": "gp2",
                "Progress": 2,
                "OriginalVolumeType": "gp2",
                "VolumeId": "vol-05c927a2a0afec131",
                "OriginalSize": 10,
                "StartTime": "2017-05-04T05:32:52.500Z",
                "ModificationState": "optimizing",
                "OriginalIops": 100,
                "TargetIops": 100
            }
        ]
    }
    

    状態がoptimizingに進行。{"Progress":"2"} の部分が進捗状況。完了するとこうなる。

    拡張完了後
    {
        "VolumesModifications": [
            {
                "EndTime": "2017-05-04T05:38:04.434Z",
                "TargetSize": 11,
                "TargetIops": 100,
                "ModificationState": "completed",
                "StartTime": "2017-05-04T05:32:52.500Z",
                "TargetVolumeType": "gp2",
                "OriginalVolumeType": "gp2",
                "VolumeId": "vol-05c927a2a0afec131",
                "Progress": 100,
                "OriginalSize": 10,
                "OriginalIops": 100
            }
        ]
    }
    

    1GiB増やすのに05:12って結構かかるのね。
    進捗状況は直前まで2%だったので、相変わらず適当なパーセントな模様。

    3.OSから見た状態をチェック

    コマンド
    lsblk /dev/xvdb
    
    [root@ip-172-30-0-5 work]# lsblk /dev/xvdb
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    xvdb 202:16   0  11G  0 disk /mnt
    

    ちゃんと拡張されました。

    回数制限があった気がするので、何回かやってみようとしたところ…

    [root@ip-172-30-0-5 work]# aws ec2 modify-volume --volume-id vol-05c927a2a0afec131 --size 12 --region ap-northeast-1
    
    An error occurred (VolumeModificationRateExceeded) when calling the ModifyVolume operation: You've reached the maximum modification rate per volume limit. Wait at least 6 hours between modifications per EBS volume.
    

    あ、そういう制限だったのか。ドキュメントにもあった。

    APIReference ModifyVolume

    If you reach the maximum volume modification rate per volume limit, you will need to wait at least six hours before applying further modifications to the affected EBS volume.
    

    今度気が向いたら拡張中の性能を測ってみよう。