EC2のボリューム(EBS)容量拡張方法検証 (AmazonLinux)

  • 0
    Like
  • 0
    Comment

    結論を3行で

    検証

    【遂に来た!】EBS でボリュームサイズを変更できるようになりました(ボリュームタイプ変更も) | Developers.IO を参考に、稼働中のインスタンスにアタッチ済みのボリュームのサイズを増やしてみます。

    今回ボリュームを増やしたいインスタンスはこのような感じです。

    インスタンス的には/dev/xvdaというところに30GBのボリュームがあります。

    ec2-user@ip-172-31-10-224 ~ $  df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/xvda1       30G  3.8G   26G  13% /
    devtmpfs        490M   56K  490M   1% /dev
    tmpfs           499M     0  499M   0% /dev/shm
    
    ec2-user@ip-172-31-10-224 ~ $  lsblk
    NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    xvda    202:0    0  30G  0 disk
    └─xvda1 202:1    0  30G  0 part /
    

    ほとんど元記事のとおりですが以下のような感じです。

    スクリーンショット_2017-05-18_11_30_15.png

    Modify Volumeを押します

    スクリーンショット 2017-05-18 11.30.31.png

    今回は 30GB -> 100GBにします

    スクリーンショット 2017-05-18 11.32.51.png

    パフォーマンスが変更されるまで時間がかかるとのこと。。yesを押す。

    スクリーンショット 2017-05-18 11.33.00.png

    完了。

    スクリーンショット 2017-05-18 11.34.08.png

    ボリュームの状態は optimizing...0% という表示になりますが、もうこの状態で ディスクの拡張は終わっています。

    スクリーンショット 2017-05-18 11.34.46.png

    awscli的には $ aws ec2 describe-volumes-modifications と叩くと進捗が表示されます(引数なしでOK)

    $ aws ec2 describe-volumes-modifications
    {
        "VolumesModifications": [
            {
                "TargetSize": 100,
                "TargetVolumeType": "gp2",
                "ModificationState": "optimizing",
                "VolumeId": "vol-0e92fb2e26dfd9687",
                "TargetIops": 300,
                "StartTime": "2017-05-18T02:34:07.151Z",
                "Progress": 0,
                "OriginalVolumeType": "gp2",
                "OriginalIops": 100,
                "OriginalSize": 30
            }
        ]
    }
    

    "Progress": 0 ですが、lsblk を叩くともう反映されていることがわかります。

    ec2-user@ip-172-31-3-117 ~ $  lsblk
    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    xvda    202:0    0  100G  0 disk             # <- 100になってる
    └─xvda1 202:1    0   30G  0 part /
    

    次に resize2fs すればよいのですが、以下のような感じで怒られます。

    resize2fs 1.42.12 (29-Aug-2014)
    resize2fs: Device or resource busy while trying to open /dev/xvda
    Couldn't find valid filesystem superblock.
    

    今回はパーティションの設定がされているためと思われます。パーティションを利用している場合の設定はこちら。http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/storage_expand_partition.html
    ただルートパーティションの場合は面倒そうなので、起動時に実行されるresize2fsに任せることにしました。

    見たところAmazonLinuxの場合 /etc/cloud/cloud.cfg.d/00_defaults.cfg の中で resize2fs の記述があるので、再起動時に実行されるようです。

    こうして、何も考えずにrebootすることにより、dfの結果が変わりました :tada:

    $ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/xvda1       99G  9.1G   90G  10% /           # <- 99GBに増えてる
    devtmpfs        490M   56K  490M   1% /dev
    tmpfs           499M     0  499M   0% /dev/shm