AWSに仮想マシンアップロード後にEBS拡張に合わせてLVMの論理ボリューム(LV)の拡張をしたので作業メモ。
拡張前の状態
80GBのディスクがあるのに、全てのディスク領域が認識されず、14GBしか認識されていない。
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 80G 0 disk ├─xvda1 202:1 0 500M 0 part /boot └─xvda2 202:2 0 79.5G 0 part ├─centos-root 253:0 0 13.9G 0 lvm / └─centos-swap 253:1 0 1.6G 0 lvm [SWAP] # df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/mapper/centos-root 14G 5.0G 9.0G 36% / devtmpfs 3.6G 0 3.6G 0% /dev tmpfs 3.5G 0 3.5G 0% /dev/shm tmpfs 3.5G 8.3M 3.5G 1% /run tmpfs 3.5G 0 3.5G 0% /sys/fs/cgroup /dev/xvda1 497M 182M 316M 37% /boot tmpfs 707M 0 707M 0% /run/user/0
fdiskでパーティションを確認。一部しか割当たっていない状態。残りはフリー。
# fdisk -l /dev/xvda Disk /dev/xvda: 85.9 GB, 85899345920 bytes, 167772160 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト Disk label type: dos ディスク識別子: 0x0008e7d2 デバイス ブート 始点 終点 ブロック Id システム /dev/xvda1 * 2048 1026047 512000 83 Linux /dev/xvda2 1026048 167772159 83373056 83 Linux
partedでパーティション切り直し
partedでパーティション切り直し。 (追記) 以下の手順ではセクタの単位がバラバラになっているますが、以下のコマンドでByte単位に固定した方が安全です。
(parted) unit B
# parted /dev/xvda GNU Parted 3.1 /dev/xvda を使用 GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。 (parted) p モデル: Xen Virtual Block Device (xvd) ディスク /dev/xvda: 85.9GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 1049kB 525MB 524MB primary xfs boot 2 525MB 85.9GB 85.4GB primary
一旦2のパーティションを削除
(parted) rm 2 エラー: パーティション 2 (/dev/xvda 上) れましたが、カーネルに変更を伝えることができませんでした。おそらく、使用中だったのが原因だと思われます。そのため、古いパーティション情報がそのまま使われます。さらなる変更をする前に再起動してください。 (parted) p モデル: Xen Virtual Block Device (xvd) ディスク /dev/xvda: 85.9GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 1049kB 525MB 524MB primary xfs boot
全容量を使えるようにパーティションを再作成。
(parted) mkpart primary 525M 85.9G (parted) p モデル: Xen Virtual Block Device (xvd) ディスク /dev/xvda: 85.9GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 1049kB 525MB 524MB primary xfs boot 2 525MB 85.9GB 85.4GB primary
作成したパーティションにLVMフラグをセット。
(parted) set 2 lvm on (parted) p モデル: Xen Virtual Block Device (xvd) ディスク /dev/xvda: 85.9GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 1049kB 525MB 524MB primary xfs boot 2 525MB 85.9GB 85.4GB primary lvm
partedを抜ける。
(parted) q 通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
LVM拡張設定
pvresizeを実行。この時点ではリサイズされないがそのままreboot。
# pvresize /dev/xvda2 Physical volume "/dev/xvda2" changed 1 physical volume(s) resized / 0 physical volume(s) not resized # reboot
再起動後PVとVGは自動で拡張されている。もし拡張されていなければ、pvscanとpvresizeコマンドを実行。
# pvs PV VG Fmt Attr PSize PFree /dev/xvda2 centos lvm2 a-- 79.51g 64.04g # vgs VG #PV #LV #SN Attr VSize VFree centos 1 2 0 wz--n- 79.51g 64.04g
この時点でLVはまだ拡張されていない。
# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos -wi-ao---- 13.87g swap centos -wi-ao---- 1.60g
LVを拡張する。
# lvextend -l +100%FREE /dev/centos/root Size of logical volume centos/root changed from 13.87 GiB (3550 extents) to 77.91 GiB (19944 extents). Logical volume root successfully resized. # lvdisplay -C LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos -wi-ao---- 77.91g swap centos -wi-ao---- 1.60g
最後にファイルシステムを拡張。この際にCentOS7から標準ファイルシステムがxfsになってコマンドがresize2fsからxfx_growfsに変わったので注意します。ファイルシステム確認したければ「df -T」コマンドで確認できます。
# xfs_growfs /dev/centos/root meta-data=/dev/mapper/centos-root isize=256 agcount=4, agsize=908800 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 data = bsize=4096 blocks=3635200, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 3635200 to 20422656
ファイルシステムが拡張されたことを確認。
# df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/mapper/centos-root 78G 5.0G 73G 7% / devtmpfs 3.6G 0 3.6G 0% /dev tmpfs 3.5G 0 3.5G 0% /dev/shm tmpfs 3.5G 8.3M 3.5G 1% /run tmpfs 3.5G 0 3.5G 0% /sys/fs/cgroup /dev/xvda1 497M 182M 316M 37% /boot tmpfs 707M 0 707M 0% /run/user/0