なのまるです。
AWSのAmazonLinux使ってて、EBSの拡張した時のメモです。
たぶんほかのLinuxの時も、同じ方法を使うかと思います。
もくじ
前提条件
以下の環境で、行いました。- Red Hat Enterprise Linux Server release 6.7 (Santiago)
- 対象Diskのフォーマットは『xfs』
- EBSを拡張(100GB⇒2TB)
- 新しいEBSをアタッチ済み
- fstabにmount情報を設定済み
手順
- EBSの拡張
- 拡張したEBSのDiskをOSに認識させる
EBSの拡張
EBSの拡張については、こちらのAWSドキュメントにお任せします。とはいえ流れだけ。
- 対象のインスタンスを停止(可能なら)
- 対象のVolumeのSnapshot作成
- Snapshotから、サイズ拡張したVolumeを作成
- 対象のインスタンスを停止(上記でしていない場合)
- Volumeのデアタッチ
- 新ボリュームVolumeを対象のインスタンスに、アタッチする
- インスタンスの起動
拡張したEBSのDiskをOSに認識させる
インスタンスに新しく「/dev/xvdb」として、アタッチ済みを想定しています。2TBで作成しましたが、まだ100GBとして認識している
[ec2-user@localhost data]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 9.8G 4.0G 5.4G 43% / tmpfs 1.9G 0 1.9G 0% /dev/shm /dev/xvdb1 100G 682M 100G 1% /data
Diskとしては、認識している(/dev/xvdb)
[ec2-user@localhost data]$ sudo file -s /dev/xvd* /dev/xvda: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, boot drive 0x80, 1st sector stage2 0x156070, GRUB version 0.94; partition 1: ID=0xee, starthead 0, startsector 1, 20971519 sectors, extended partition table (last)\011, code offset 0x48 /dev/xvda1: Linux rev 1.0 ext4 filesystem data (needs journal recovery) (extents) (large files) (huge files) /dev/xvdb: x86 boot sector; partition 1: ID=0x83, starthead 1, startsector 63, 209712447 sectors, extended partition table (last)\011, code offset 0x0 /dev/xvdb1: SGI XFS filesystem data (blksz 4096, inosz 256, v2 dirs)
Diskスライス状況確認
[ec2-user@localhost ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 10G 0 disk └─xvda1 202:1 0 10G 0 part / xvdb 202:16 0 2T 0 disk └─xvdb1 202:17 0 100G 0 part /data
ext2,ext3,ext4ならこのコマンド・・・あ、xfsだった。。。
[ec2-user@localhost ~]$ sudo resize2fs /dev/xvdb1 resize2fs 1.41.12 (17-May-2010) resize2fs: Bad magic number in super-block while trying to open /dev/xvdb1 Couldn't find valid filesystem superblock.
[ec2-user@localhost ~]$ sudo xfs_growfs -d /data meta-data=/dev/xvdb1 isize=256 agcount=4, agsize=6553514 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 data = bsize=4096 blocks=26214055, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal bsize=4096 blocks=12799, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data size unchanged, skipping
data size unchanged, skippingと出ている。。。
「data size unchanged, skipping」を解消させる
fdiskコマンドで、状況確認[ec2-user@localhost ~]$ sudo fdisk -l WARNING: GPT (GUID Partition Table) detected on '/dev/xvda'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/xvda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/xvda1 1 1306 10485759+ ee GPT Disk /dev/xvdb: 2199.0 GB, 2199023255552 bytes 255 heads, 63 sectors/track, 267349 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x2bf8ce0c Device Boot Start End Blocks Id System /dev/xvdb1 1 13054 104856223+ 83 Linux※ Endのcylinders値がおかしいんでしょうね・・・
255 heads, 63 sectors/track, 267349 cylinders に対して End 13054
パーティション情報変更のため、マウントポイントを一度unmountします。
[ec2-user@localhost ~]$ sudo umount /data
パーティション情報を「fdisk」コマンドで書き換える
[ec2-user@localhost ~]$ sudo fdisk /dev/xvdb WARNING: The size of this disk is 2.2 TB (2199023255552 bytes). DOS partition table format can not be used on drives for volumes larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID partition table format (GPT). WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): p Disk /dev/xvdb: 2199.0 GB, 2199023255552 bytes 255 heads, 63 sectors/track, 267349 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x2bf8ce0c Device Boot Start End Blocks Id System /dev/xvdb1 1 267349 2147479818+ 83 Linux Command (m for help): d Selected partition 1 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-267349, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-267349, default 267349): Using default value 267349 Command (m for help): p Disk /dev/xvdb: 2199.0 GB, 2199023255552 bytes 255 heads, 63 sectors/track, 267349 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x2bf8ce0c Device Boot Start End Blocks Id System /dev/xvdb1 1 267349 2147480811 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
mountし直します!(fstabに書いてある前提)
[ec2-user@localhost ~]$ sudo mount -a
xfsはマウントしていないと拡張できないので、「xfs_growfs」コマンドで拡張します!
[ec2-user@localhost ~]$ sudo xfs_growfs -d /data meta-data=/dev/xvdb1 isize=256 agcount=4, agsize=6553514 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 data = bsize=4096 blocks=26214055, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal bsize=4096 blocks=12799, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 26214055 to 536870202
「2TB」を認識しました!
[ec2-user@localhost ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 9.8G 4.0G 5.4G 43% / tmpfs 1.9G 0 1.9G 0% /dev/shm /dev/xvdb1 2.0T 683M 2.0T 1% /data
まとめ
- xfs拡張するときは、パーティションのサイズに気を付けて!
- 「xfs_growfs」コマンドで、拡張するよ!
- うん。相当面倒だね!(^o^)
参考サイト
画像