ここでは、仮想マシン demo02 に割り当てられている仮想ディスクのサイズを拡張する方法について紹介する。

仮想マシン demo02 を停止する。

# virsh shutdown demo02
ドメイン demo02 はシャットダウン中です

#

現在の仮想マシン demo02 のディスク情報を確認する。

# qemu-img info /var/lib/libvirt/images/demo02.img 
image: /var/lib/libvirt/images/demo02.img
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 1.6G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: true
# 

仮想ディスクのサイズを 20G から 25G へリサイズ(変更)する。

# qemu-img resize /var/lib/libvirt/images/demo02.img 25G
Image resized.
# 

リサイズ後のディスク情報を確認する。virtual size が 25G に変更されていることが確認できる。

# qemu-img info /var/lib/libvirt/images/demo02.img 
image: /var/lib/libvirt/images/demo02.img
file format: qcow2
virtual size: 25G (26843545600 bytes)
disk size: 1.6G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: true
#

仮想マシン demo02 を起動する。

# virsh start demo02
ドメイン demo02 が起動されました

#

仮想マシン demo02  のパーティションを確認する。

# fdisk -l

Disk /dev/vda: 26.8 GB, 26843545600 bytes, 52428800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000f210e

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200    41943039    19921920   8e  Linux LVM

Disk /dev/mapper/centos-root: 19.3 GB, 19318964224 bytes, 37732352 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト


Disk /dev/mapper/centos-swap: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

# 

現在のパーティションを拡張する。パーティションの開始セクタを間違えない限りは作業前後でデータが消えたりはしない。

# fdisk /dev/vda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


コマンド (m でヘルプ): p

Disk /dev/vda: 26.8 GB, 26843545600 bytes, 52428800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000f210e

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200    41943039    19921920   8e  Linux LVM

コマンド (m でヘルプ): d
パーティション番号 (1,2, default 2): 2
Partition 2 is deleted

コマンド (m でヘルプ): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
パーティション番号 (2-4, default 2): 2
最初 sector (2099200-52428799, 初期値 2099200): 2099200
Last sector, +sectors or +size{K,M,G} (2099200-52428799, 初期値 52428799): 52428799
Partition 2 of type Linux and of size 24 GiB is set

コマンド (m でヘルプ): p

Disk /dev/vda: 26.8 GB, 26843545600 bytes, 52428800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000f210e

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200    52428799    25164800   83  Linux

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。

WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です.
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)
ディスクを同期しています。
# 

仮想マシンを再起動する。

# reboot

物理ボリューム(PV)の状態を確認する。

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/vda2
  VG Name               centos
  PV Size               <19.00 GiB / not usable 3.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              4863
  Free PE               1
  Allocated PE          4862
  PV UUID               iUNiKW-IyvW-0jIk-FWZo-FteV-mGcx-1M5Ok4
   
# 

# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/vda2  centos lvm2 a--  <19.00g 4.00m
# 

物理ボリューム(PV)を拡張する。

# pvresize /dev/vda2
  Physical volume "/dev/vda2" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized
#

拡張後の物理ボリューム(PV)の状態を確認する。 PV Size が 20G から 25G に拡張されている。

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/vda2
  VG Name               centos
  PV Size               <24.00 GiB / not usable 2.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              6143
  Free PE               1281
  Allocated PE          4862
  PV UUID               iUNiKW-IyvW-0jIk-FWZo-FteV-mGcx-1M5Ok4
   
#
 
# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/vda2  centos lvm2 a--  <24.00g 5.00g
#

論理ボリューム(LV)の状態を確認する。

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                3B0NrR-T1Mu-h2D4-7Ud0-ppXS-GOeq-y7iECL
  LV Write Access        read/write
  LV Creation host, time localhost, 2018-09-30 02:55:37 +0900
  LV Status              available
  # open                 2
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                3mskjA-ZhBy-Y5c6-V832-UmWC-JjK7-8gN4fM
  LV Write Access        read/write
  LV Creation host, time localhost, 2018-09-30 02:55:38 +0900
  LV Status              available
  # open                 1
  LV Size                17.99 GiB
  Current LE             4606
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
   
#

空いている物理ボリューム(PV)を、論理ボリューム(LV)に全て割り当てる。

# lvextend -l +100%FREE /dev/centos/root
  Size of logical volume centos/root changed from 17.99 GiB (4606 extents) to <23.00 GiB (5887 extents).
  Logical volume centos/root successfully resized.
# 

論理ボリューム(LV)の状態を確認する。割り当て後は、/dev/centos/root のLV Size が 23.00 GiB へ増加されている。

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                3B0NrR-T1Mu-h2D4-7Ud0-ppXS-GOeq-y7iECL
  LV Write Access        read/write
  LV Creation host, time localhost, 2018-09-30 02:55:37 +0900
  LV Status              available
  # open                 2
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                3mskjA-ZhBy-Y5c6-V832-UmWC-JjK7-8gN4fM
  LV Write Access        read/write
  LV Creation host, time localhost, 2018-09-30 02:55:38 +0900
  LV Status              available
  # open                 1
  LV Size                <23.00 GiB
  Current LE             5887
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
   
# 

ファイルシステム(XFS)の使用状況を確認する。

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    18G  1.2G   17G    7% /
devtmpfs                  233M     0  233M    0% /dev
tmpfs                     245M     0  245M    0% /dev/shm
tmpfs                     245M  4.5M  240M    2% /run
tmpfs                     245M     0  245M    0% /sys/fs/cgroup
/dev/vda1                1014M  159M  856M   16% /boot
tmpfs                      49M     0   49M    0% /run/user/0
# 

ファイルシステム(XFS)を拡張する。

# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=1179136 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4716544, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
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 4716544 to 6028288
# 

拡張後のファイルシステム(XFS)の使用状況を確認する。ルートパーティション(/)が拡張されていることがわかる。

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    23G  1.2G   22G    5% /
devtmpfs                  233M     0  233M    0% /dev
tmpfs                     245M     0  245M    0% /dev/shm
tmpfs                     245M  4.5M  240M    2% /run
tmpfs                     245M     0  245M    0% /sys/fs/cgroup
/dev/vda1                1014M  159M  856M   16% /boot
tmpfs                      49M     0   49M    0% /run/user/0
#