LoginSignup
0
2

More than 3 years have passed since last update.

KVMディスク拡張

Last updated at Posted at 2020-09-06

KVMのディスクイメージを拡張します。今回はLVMを使用したマシンでディスク拡張を行います。10GB に +10GB して 20GB に拡張します。

1. 事前の確認

仮想マシンのディスクはこんな感じ。

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root   8.5G  6.5G  2.1G   76% /
devtmpfs                  485M     0  485M    0% /dev
tmpfs                     496M     0  496M    0% /dev/shm
tmpfs                     496M  7.1M  489M    2% /run
tmpfs                     496M     0  496M    0% /sys/fs/cgroup
/dev/vdb                  2.6T  1.6T 1016G   62% /storage
/dev/vda1                 497M  217M  280M   44% /boot
tmpfs                     100M     0  100M    0% /run/user/1000

2. ディスクイメージの拡張

まずは、仮想ホスト上のディスクイメージファイルを拡張する。
イメージのバックアップを取る。

# cp -a /var/lib/libvirt/images/water1.img{,.bak}

現状イメージの確認

# qemu-img info water01.img
image: water01.img
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 10G

10GBのイメージに10GBを追加

# qemu-img resize water01.img +10G
Image resized.

3. ディスクイメージの拡張

ここでマシンを起動し、以降仮想マシン上で操作する。
fdiskでディスクを編集

# fdisk /dev/vda

コマンド (m でヘルプ): p  #確認(セクタ単位であることも同時に確認)

ディスク /dev/vda: 128.8 GB, 128849018880 バイト
ヘッド 16, セクタ 63, シリンダ 249660, 合計 251658240 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x000d2e86

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/vda1   *        2048     1026047      512000   83  Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/vda2         1026048    62914559    30944256   8e  Linux LVM
パーティション 2 は、シリンダ境界で終わっていません。

コマンド (m でヘルプ): d  #/dev/vda2を一旦削除する
パーティション番号 (1-4): 2

コマンド (m でヘルプ): p  #/dev/vda2が削除されたことを確認 

ディスク /dev/vda: 128.8 GB, 128849018880 バイト
ヘッド 16, セクタ 63, シリンダ 249660, 合計 251658240 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x000d2e86

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/vda1   *        2048     1026047      512000   83  Linux
パーティション 1 は、シリンダ境界で終わっていません。

コマンド (m でヘルプ): n  #拡張されたサイズで再び/dev/vda2を作成していく
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p
パーティション番号 (1-4): 2
最初 セクタ (63-251658239, 初期値 63): 1026048
Last セクタ, +セクタ数 or +size{K,M,G} (1026048-251658239, 初期値 251658239):
初期値 251658239 を使います

コマンド (m でヘルプ): p  #作成されたことを確認

ディスク /dev/vda: 128.8 GB, 128849018880 バイト
ヘッド 16, セクタ 63, シリンダ 249660, 合計 251658240 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x000d2e86

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/vda1   *        2048     1026047      512000   83  Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/vda2         1026048   251658239   125316096   83  Linux

コマンド (m でヘルプ): t  #フォーマットを「Linux LVM」に変更
パーティション番号 (1-4): 2
16進数コード (L コマンドでコードリスト表示): 8e
領域のシステムタイプを 2 から 8e (Linux LVM) に変更しました

コマンド (m でヘルプ): p  #フォーマットが「Linux LVM」になったことを確認。

ディスク /dev/vda: 128.8 GB, 128849018880 バイト
ヘッド 16, セクタ 63, シリンダ 249660, 合計 251658240 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x000d2e86

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/vda1   *        2048     1026047      512000   83  Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/vda2         1026048   251658239   125316096   8e  Linux LVM

コマンド (m でヘルプ): w  #ディスクの変更を保存
パーティションテーブルは変更されました!

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

警告: パーティションテーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソースがビジー状態です。
カーネルはまだ古いテーブルを使っています。新しいテーブルは
次回リブート時か、partprobe(8)またはkpartx(8)を実行した後に
使えるようになるでしょう
ディスクを同期しています。

マシンを再起動し、PVを拡張

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

PVが拡張されたことを確認

# pvscan
  PV /dev/vda2   VG centos          lvm2 [<19.51 GiB / 10.00 GiB free]
  Total: 1 [<19.51 GiB] / in use: 1 [<19.51 GiB] / in no VG: 0 [0   ]

拡張されたPV分、LVを拡張

# lvresize -L +10G /dev/centos/root
  Size of logical volume centos/root changed from <8.51 GiB (2178 extents) to <18.51 GiB (4738 extents).
  Logical volume centos/root successfully resized.

拡張されたLV分、ファイルシステムを拡張

# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=557568 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=2230272, 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 2230272 to 4851712

確認。拡張されたことが確認できる。

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    19G  6.5G   13G   35% /
devtmpfs                  485M     0  485M    0% /dev
tmpfs                     496M     0  496M    0% /dev/shm
tmpfs                     496M  7.1M  489M    2% /run
tmpfs                     496M     0  496M    0% /sys/fs/cgroup
/dev/vdb                  2.6T  1.6T 1016G   62% /storage
/dev/vda1                 497M  217M  280M   44% /boot
tmpfs                     100M     0  100M    0% /run/user/1000
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2