LVMの基本的な仕組み
LVMは物理ディスクを3つの階層で論理的に管理します。
- PV(物理ボリューム:Physical Volume)で物理パーティションを管理
- VG(ボリュームグループ:Volume Group)でPVを管理
- LV(論理ボリューム:Logical Volume)でVGを管理
LVM によるディスク拡張
LV(論理ボリューム)の拡張はとても簡単に行う事ができます。しかし、PV(物理ボリューム)とVG(ボリューム・グループ)を正しく設定していないと実施することが出来ません。
手順が大事です。順に沿って対応してください。
PV(物理ボリューム)を作成
pvcreateコマンドを利用してPVを作成します。
# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created.
実行結果は色々なコマンドから確認できます。今回はpvdisplayコマンドを利用します。
ついでに既存のVG名を確認してください。
# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name centos ← 既存のVG名を確認 PV Size 29.51 GiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 7554 Free PE 11 Allocated PE 7543 PV UUID VefoGZ-0R9L-eNlh-xbK8-zlNO-Ge4W-WfEm28 "/dev/sdb1" is a new physical volume of "<8.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 ← 新しいPVが作成 VG Name PV Size <8.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID RtIg13-3N0T-R2vP-YVd0-Stba-2ciw-0P9E8f
既存のVG(ボリューム・グループ)に割当て
新しく作成したPVをを既存のVG(centos)に割当てます。vgextendコマンドを利用します。
# vgextend centos /dev/sdb1 Volume group "centos" successfully extended
実行結果は色々なコマンドから確認できます。今回はpvdisplayコマンドを利用します。
# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size 29.51 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 7554
Free PE 11
Allocated PE 7543
PV UUID VefoGZ-0R9L-eNlh-xbK8-zlNO-Ge4W-WfEm28
--- Physical volume ---
PV Name /dev/sdb1
VG Name centos← 既存のVGに追加された
PV Size <8.00 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2047
Free PE 2047
Allocated PE 0
PV UUID RtIg13-3N0T-R2vP-YVd0-Stba-2ciw-0P9E8f
LVへの割当て
ディスク拡張したいLVのパスを確認します。今回はlvdisplayコマンドを利用します。
今回は「/dev/centos/root」を拡張します。
# lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID wWBtao-OAOk-IdMq-ch4b-vcFB-SoeS-EFScBp
LV Write Access read/write
LV Creation host, time hogehoge, 2016-10-11 09:59:25 +0900
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/centos/root ← 拡張したLVのパス
LV Name root
VG Name centos
LV UUID Vd88ms-fbbK-Shcj-mDrD-Iloj-3HDs-RONj3G
LV Write Access read/write
LV Creation host, time hogehoge, 2016-10-11 09:59:26 +0900
LV Status available
# open 1
LV Size 27.46 GiB
Current LE 7031
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
lvextendコマンドを使って、空き領域の全てを割り当てて拡張します。
# lvextend -l +100%FREE /dev/centos/root Size of logical volume centos/root changed from 27.46 GiB (7031 extents) to 35.50 GiB (9089 extents). Logical volume centos/root successfully resized.
これでLVMは28GBから36GBに拡張されました。
まだ、ファイルシステムで拡張していないので領域は増えていません。
# df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/mapper/centos-root 28G 3.1G 25G 11% / ← まだ拡張を認識していない。28GBのまま devtmpfs 485M 0 485M 0% /dev tmpfs 496M 0 496M 0% /dev/shm tmpfs 496M 7.0M 489M 2% /run tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/sda1 497M 255M 243M 52% /boot tmpfs 100M 0 100M 0% /run/user/1000
xfs_growfsコマンドを利用してファイルシステムを拡張します。
# xfs_growfs /dev/centos/root meta-data=/dev/mapper/centos-root isize=256 agcount=4, agsize=1799936 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 spinodes=0 data = bsize=4096 blocks=7199744, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=3515, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 7199744 to 9307136
# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 36G 3.1G 33G 9% / ← 拡張を認識
devtmpfs 485M 0 485M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 7.0M 489M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/sda1 497M 255M 243M 52% /boot
tmpfs 100M 0 100M 0% /run/user/1000