[LVM] パーティションを追加せずに仮想ディスクを拡張する
1.TL;DR
VMwareやKVMのハイパーバイザー環境にRHEL/CentOSをインストールするとデフォルトではLVM(論理ボリューム管理)となってしまいます。仮想ディスクを増やそうとすると、ハイパーバイザー環境で仮想ディスクをサイズを増やした後に、通常はパーティションを追加する事になります。パーティションは基本パーティションを最大4つまでしか作成できません(拡張パーティションを使えば更に増やせますが、ここでは割愛します)。ディスクサイズを増やすたびに、パーティションを追加するのはイマイチなので、別の方法を試しました。
パーティションのサイズを増やして、最終的にOSが認識する論理ボリュームサイズを増やした。
2.作業の流れ
- 仮想ディスクのサイズ拡張
- パーティションのサイズ拡張
- 物理ボリュームのサイズ拡張
- 論理ボリュームのサイズ拡張
この作業は最悪仮想マシンを壊してしまう可能性がある作業です。自己責任にて行ってください。
前提となる環境
- ハイパーバイザー(物理マシン):CentOS 7.8.2003のKVM
- 仮想マシン:CentOS 7.8.2003
3.変更前の状態
ディスク拡張前の状態を確認しておきます。
最初にハイパーバイザー側から見える情報です。
仮想ディスクのサイズは24GBと認識されています。実際に確保されているサイズは12GBです。
[root@hypervisor images]# qemu-img info vm1.img
image: vm1.img
file format: qcow2
virtual size: 24G (25769803776 bytes)
disk size: 12G
cluster_size: 65536
Format specific information:
compat: 0.10
次に仮想マシン内部から見える情報です。
拡張対象の2つ目のパーティションは24.7GBです。
[root@vm1 ~]# parted /dev/vda print
モデル: Virtio Block Device (virtblk)
ディスク /dev/vda: 25.8GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 25.8GB 24.7GB primary lvm
ファイルシステムを確認します。
ルートのパーティション /dev/mapper/cl_centos7template-root は 22GB です。
[root@vm1 ~]# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
:
/dev/mapper/cl_centos7template-root 22G 7.4G 15G 35% /
/dev/vda1 1014M 245M 770M 25% /boot
:
4.仮想ディスクのサイズ拡張
ハイパーバイザのサーバへrootでログインして行います。
仮想ディスクを増やす前に仮想マシンはシャットダウンしておきましょう。
qemu-img resizeコマンドで10GB 増やします。
[root@hypervisor images]# qemu-img resize vm1.img +10G
Image resized.
仮想ディスクのサイズが24GBから34GBに増えました。
[root@hypervisor images]# qemu-img info vm1.img
image: vm1.img
file format: qcow2
virtual size: 34G (36507222016 bytes)
disk size: 12G
cluster_size: 65536
Format specific information:
compat: 0.10
5.パーティションのサイズ拡張
ここからの作業は仮想マシンにrootでログインして行います。
partedコマンドでパーティションの割り当て状況を確認します。この時点では2番目のパーティションは24.7GBのままで増えていません。
[root@vm1 ~]# parted /dev/vda print
モデル: Virtio Block Device (virtblk)
ディスク /dev/vda: 36.5GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 25.8GB 24.7GB primary lvm
パーティションはpartedコマンドのresizepartサブコマンドで増やします。
ここはインタラクティブな方法で入力します。
最初のオプション 2は2つ目のパーティションを示します。
-1s は最後のセクターまで増やすことを意味します。
resizepartサブコマンド実行後は何もレスポンスはありませんが、心配しないでください。
終了はqサブコマンドです。
[root@vm1 ~]# parted /dev/vda
GNU Parted 3.1
/dev/vda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) resizepart 2 -1s
(parted) q
2番目のパーティションが24.7GBから35.4GBに増えました。
[root@vm1 ~]# parted /dev/vda print
モデル: Virtio Block Device (virtblk)
ディスク /dev/vda: 36.5GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 36.5GB 35.4GB primary lvm
6.物理ボリュームのサイズ拡張
物理ボリュームの細部はまだ増えていません。
[root@vm1 ~]# pvdisplay /dev/vda2
--- Physical volume ---
PV Name /dev/vda2
VG Name cl_centos7template
PV Size <23.00 GiB / not usable 2.00 MiB
:
pvresizeコマンドで物理ボリュームのサイズを増やします。
[root@vm1 ~]# pvresize /dev/vda2
Physical volume "/dev/vda2" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
物理ボリュームのサイズが23GBから33GBに増えました。
[root@vm1 ~]# pvdisplay /dev/vda2
--- Physical volume ---
PV Name /dev/vda2
VG Name cl_centos7template
PV Size <33.00 GiB / not usable 2.00 MiB
:
ボリュームグループのサイズは物理ボリュームの増加といっしょに増えます(33GB)。未割当(FREE)の領域が10GBある事がわかります。
[root@vm1 ~]# vgdisplay cl_centos7template
--- Volume group ---
VG Name cl_centos7template
:
VG Size <33.00 GiB
PE Size 4.00 MiB
Total PE 8447
Alloc PE / Size 5887 / <23.00 GiB
Free PE / Size 2560 / 10.00 GiB
VG UUID XZleoU-FvcU-pNs9-rIc7-4PrH-pZZ6-KfoyZm
7.論理ボリュームのサイズ拡張
最後にlvextendコマンドで論理ボリュームを増やします。
-l +100%FREE は空き領域のすべてを指します。
-r はファイルシステムも合わせてリサイズするオプションです(resize2fsコマンドと同義)。
[root@vm1 ~]# lvextend -l +100%FREE -r /dev/cl_centos7template/root
Size of logical volume cl_centos7template/root changed from <21.50 GiB (5503 extents) to <31.50 GiB (8063 extents).
Logical volume cl_centos7template/root successfully resized.
meta-data=/dev/mapper/cl_centos7template-root isize=512 agcount=7, agsize=818944 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=5635072, 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 5635072 to 8256512
論理ボリュームが31.5GBに増えました。
[root@vm1 ~]# lvdisplay /dev/cl_centos7template/root
--- Logical volume ---
LV Path /dev/cl_centos7template/root
LV Name root
VG Name cl_centos7template
:
LV Status available
# open 1
LV Size <31.50 GiB
:
ファイルシステムも32Gへ増えていることが確認できます。
[root@vm1 ~]# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
: 1000M 0 1000M 0% /sys/fs/cgroup
/dev/mapper/cl_centos7template-root 32G 7.4G 25G 24% /
/dev/vda1 1014M 245M 770M 25% /boot
:
8.最後に
この面倒な手順を紹介しましたが、そもそもKVMやVMwareに作成する仮想マシンはLVMにする必要ないんですね。
物理マシンならLVMにすることで、HDDを追加した時にパーティションを分けずに論理ボリュームを増やすことができます。
あとはLVMスナップショットか。怖くて使ったことないけど。
非LVM(単純なパーティション)ならディスク拡張はもう少し簡単はずです。
Author And Source
この問題について([LVM] パーティションを追加せずに仮想ディスクを拡張する), 我々は、より多くの情報をここで見つけました https://qiita.com/kazukikudo/items/df2e4bb1b91843672735著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .