LVMパーティションの各種操作手順。サイズ指定などは適宜読み替えを行うこと。
パーティションを編集するという大変危険な作業なので、構築の初期に行うかバックアップを取るなど気を付けること。
ディスクサイズの変更
物理ディスクの場合はサイズを変更することはできないので、一旦ディスクイメージを丸ごと取得し、より大きなディスクにイメージを適用する。各種ハイパーバイザーの仮想ディスクの場合は、ハイパーバイザーの機能からディスク拡張を行うとよい。
LVM物理ボリュームのサイズ変更
ディスクサイズを大きくしただけではLVM物理パーティションのサイズが変わっていないため、拡張作業を進めることができない。
最近のCentOSでは単体でLVMリサイズが実行できないため、GParted LiveCDを利用して拡張する。
-
その後の選択肢も全てデフォルトで進め、GPartedのGUIが起動するまで待機する。
-
GUI起動と同時にGPartedも起動するが、その際に以下のようなメッセージが表示される。
これはGPTのパーティションサイズ判定と実際のサイズが異なっているからであり、修復のために"Fix"を選択する。
-
以上が問題なく終われば、GPartedをシャットダウンして完了
LVM論理ボリュームのサイズ変更
LVM物理パーティションが拡張できたら、論理パーティションのサイズを変更できるようになる。
なお、ファイルシステムにXFSを使用している場合は縮小が出来ないので注意。
OSが起動しているとパーティションに変更を加えられないため、OSインストールディスクを起動して操作する。
# vgchange -a y
2 logical volume(s) in volume group {LVM物理ボリューム名} now active
- LVM論理ボリュームのサイズを変更する。
基本的にswapボリュームとrootボリュームを変更すると良いが、他にもボリュームがあれば適宜変更すること。
# lvresize {オプション及びサイズ指定} /dev/{LVM物理ボリューム名}/{LVM論理ボリューム名}
【例:8GBにサイズ変更】
# lvresize -L 8G /dev/vg00/swap
【例:残りすべて指定】
# lvextend -l +100%FREE /dev/vg00/root
論理ボリュームの縮小について
元のサイズから大きくする場合には気にしなくてよいが、小さくする場合には先にパーティションを縮小しなければならない。
## パーティションの縮小(ext4)
# fsck.ext4 -f /dev/vg00/root
# resize2fs /dev/vg00/root 2G
## LVM論理ボリュームの縮小
# lvresize -L 2G /dev/vg00/root
...
Do you really want to reduce vg00/root? [y/n]: y
パーティションのサイズ変更
LVM論理ボリュームのサイズを変更後は、最終処理としてパーティションサイズを変更する必要がある。パーティションの種類やフォーマットによってコマンドが異なるので適切なコマンドを実行すること。
swapパーティションのサイズ変更
メモリを拡張している場合には、Swapサイズ推奨値を元に計算して拡張する。
# mkswap /dev/{LVM物理ボリューム名}/{swapパーティション}
【例】
# mkswap /dev/vg00/swap
rootパーティションのサイズ変更(EXT4の場合)
# fsck.ext4 -f /dev/{LVM物理ボリューム名}/root
# resize2fs /dev/{LVM物理ボリューム名}/root
【例:残りすべて指定】
# fsck.ext4 -f /dev/vg00/root
# resize2fs /dev/vg00/root
rootパーティションのサイズ変更(XFSの場合)
XFSフォーマットの場合はレスキューモードでは完結しない。
レスキューモードを抜けてOSを起動した後、以下のコマンドを実行する必要がある。
# xfs_growfs {オプション} /dev/{LVM物理ボリューム名}/{LVM論理ボリューム名}
【例:残りすべて指定】
# xfs_growfs /dev/vg00/root
番外編:新たにディスクを追加してLVM物理ボリュームを拡張する
LVMは物理的に分かれたディスクであっても、あたかも1つのディスクであるかのように扱うことができる。(故障率は上がるが)
-
レスキューモードで起動する。
LVM論理ボリュームのサイズ変更を参考にしてレスキューモードで起動する。 -
LVM物理ボリュームが見えていないので有効にする。
# vgchange -a y
2 logical volume(s) in volume group "vg00" now active
- 新しいディスクをLVMボリュームグループに参加させる。
# fdisk -l | grep /dev/sd
Disk /dev/sda: 4279MB ...
Disk /dev/sdb: 107.4GB ... ← 追加したディスク
# pvcreate /dev/sdb
# vgextend vg00 /dev/sdb
# vgdisplay
--- Volume group ---
VG Name vg00
Format lvm2
VG Size <103.25 GiB ←元から100GB増えた
PE Size 4.00 MiB
以後の作業はパーティションのサイズ変更と同じ作業を行うと良い。