はじめに
KVM上で動かしている仮想マシン(Webサーバ)のrootパーティションの残り容量が少なくなったので拡張してみました。VMWAREの場合は仮想マシン全体の拡張をVMWare独自のものに変えるだけで他の操作は同じ。
環境
- ホスト
- CentOS7
- 仮想マシン
- CentOS6
やること
- 仮想マシン全体の拡張
- 仮想マシンの新規パーティション(/dev/vda3)作成
- LVM拡張
- 物理ボリューム(pv)登録
- ボリュームグループ(vg)の拡張
- 論理ボリューム(lv)の拡張
- ファイルシステムの拡張
対象
仮想マシンのrootパーティション
root@webserver:~
# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_nagios-lv_root
ext4 18G 12G 4.3G 74% /
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/vda1 ext4 477M 111M 341M 25% /boot
root@webserver:~
# ll /dev/vd*
brw-rw----. 1 root disk 252, 0 Nov 9 14:31 /dev/vda
brw-rw----. 1 root disk 252, 1 Nov 9 14:31 /dev/vda1
brw-rw----. 1 root disk 252, 2 Nov 9 14:31 /dev/vda2
補足
サイズを拡大および縮小できるのは raw 形式のイメージのみになります。
qcow2 バージョン 2 または qcow2 バージョン 3 イメージは拡張することはできますが、
縮小することはできません。
fdiskについて
表示
uはセクタ方式で数える。旧来のCHS方式ではないのでパーティションを表示する前にuを指定します。
root@webserver:~
# fdisk /dev/vda
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): u
Changing display/entry units to sectors
Command (m for help): p
Disk /dev/vda: 21.5 GB, 21474836480 bytes
16 heads, 63 sectors/track, 41610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000723f9
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 1026047 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/vda2 1026048 41943039 20458496 8e Linux LVM
Partition 2 does not end on cylinder boundary.
仮想マシンのrootパーティションのディスク拡張をやってみた
仮想マシン全体を拡張
対象の仮想マシンを止めてから、拡大
[root@host3 ~]# qemu-img resize /var/lib/libvirt/images/web.qcow2 +50G
Image resized.
[root@host3 ~]# virsh start web
ドメイン web が起動されました
fdiskで+50GBの拡大確認!!
# fdisk /dev/vda
・
・
Command (m for help): u
Changing display/entry units to sectors
Command (m for help): p
Disk /dev/vda: 75.2 GB, 75161927680 bytes
新規パーティション(/dev/vda3)作成
全体を拡張したので、拡張した箇所をパーティションとして新規に作成する
startはvda2のend+1
endは最後まで
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First sector (63-146800639, default 63): 41943040
Last sector, +sectors or +size{K,M,G} (41943040-146800639, default 146800639):
Using default value 146800639
Command (m for help): p
Disk /dev/vda: 75.2 GB, 75161927680 bytes
16 heads, 63 sectors/track, 145635 cylinders, total 146800640 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000723f9
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 1026047 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/vda2 1026048 41943039 20458496 8e Linux LVM
Partition 2 does not end on cylinder boundary.
/dev/vda3 41943040 146800639 52428800 83 Linux
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/vda: 75.2 GB, 75161927680 bytes
16 heads, 63 sectors/track, 145635 cylinders, total 146800640 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000723f9
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 1026047 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/vda2 1026048 41943039 20458496 8e Linux LVM
Partition 2 does not end on cylinder boundary.
/dev/vda3 41943040 146800639 52428800 8e Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
OS再起動後、/dev/vda3認識される
root@webserver:~
# ll /dev/vd*
brw-rw----. 1 root disk 252, 0 Nov 9 15:34 /dev/vda
brw-rw----. 1 root disk 252, 1 Nov 9 15:34 /dev/vda1
brw-rw----. 1 root disk 252, 2 Nov 9 15:34 /dev/vda2
brw-rw----. 1 root disk 252, 3 Nov 9 15:34 /dev/vda3
LVM拡張
物理ボリューム(pv)登録
作成した/dev/vda3をpvとして登録
root@webserver:~
# pvcreate /dev/vda3
Physical volume "/dev/vda3" successfully created
root@webserver:~
# pvdisplay
--- Physical volume ---
PV Name /dev/vda2
VG Name vg_nagios
PV Size 19.51 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 4994
Free PE 0
Allocated PE 4994
PV UUID mZC6NW-EAUH-geeH-NwJm-uMMY-tGAS-m5leuE
"/dev/vda3" is a new physical volume of "50.00 GiB"
--- NEW Physical volume ---
PV Name /dev/vda3
VG Name
PV Size 50.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID T8UCNS-3yJI-ADDt-FQn2-7mLU-sw3M-gDEt1f
ボリュームグループ(vg)の拡張
ボリュームグループ(vg)はpvをvgに追加することで拡張できる
root@webserver:~
# vgdisplay
--- Volume group ---
VG Name vg_nagios
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 19.51 GiB
PE Size 4.00 MiB
Total PE 4994
Alloc PE / Size 4994 / 19.51 GiB
Free PE / Size 0 / 0
VG UUID 4Az4wf-fVlM-50Ik-5uT0-iqFp-h2GP-e3Mo5S
root@webserver:~
# vgex vg_nagios
vgexport vgextend
root@webserver:~
# vgextend vg_nagios /dev/vda3
Volume group "vg_nagios" successfully extended
Free PE / Size 12799 / 50.00 GiB
拡張OK
root@webserver:~
# vgdisplay
--- Volume group ---
VG Name vg_nagios
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 69.50 GiB
PE Size 4.00 MiB
Total PE 17793
Alloc PE / Size 4994 / 19.51 GiB
Free PE / Size 12799 / 50.00 GiB
VG UUID 4Az4wf-fVlM-50Ik-5uT0-iqFp-h2GP-e3Mo5S
論理ボリューム(lv)の拡張
論理ボリューム(lv)のサイズをボリュームグループ(vg)の最大サイズまで拡張する
root@webserver:~
# lvextend -l +100%FREE /dev/vg_nagios/lv_root
Size of logical volume vg_nagios/lv_root changed from 17.51 GiB (4482 extents) to 67.50 GiB (17281 extents).
Logical volume lv_root successfully resized.
ファイルシステムの拡張
lvmを拡張した箇所はまだファイルシステムとして認識されていないので、ファイルシステムを拡張して使えるようにする
root@webserver:~
# resize2fs /dev/vg_nagios/lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_nagios/lv_root is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 5
Performing an on-line resize of /dev/vg_nagios/lv_root to 17695744 (4k) blocks.
The filesystem on /dev/vg_nagios/lv_root is now 17695744 blocks long.
root@webserver:~
# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_nagios-lv_root
ext4 67G 12G 51G 20% /
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/vda1 ext4 477M 111M 341M 25% /boot
/dev/mapper/vg_nagios-lv_root ext4 18G 12G 4.3G 74% /
おわり
拡張完了!!LVMって便利ですね😃!!