LoginSignup
4
10

More than 5 years have passed since last update.

CentOSのLVMパーティションを拡張する方法

Last updated at Posted at 2018-04-26

LVMパーティションの各種操作手順。サイズ指定などは適宜読み替えを行うこと。
パーティションを編集するという大変危険な作業なので、構築の初期に行うかバックアップを取るなど気を付けること。

ディスクサイズの変更

物理ディスクの場合はサイズを変更することはできないので、一旦ディスクイメージを丸ごと取得し、より大きなディスクにイメージを適用する。各種ハイパーバイザーの仮想ディスクの場合は、ハイパーバイザーの機能からディスク拡張を行うとよい。

LVM物理ボリュームのサイズ変更

ディスクサイズを大きくしただけではLVM物理パーティションのサイズが変わっていないため、拡張作業を進めることができない。
最近のCentOSでは単体でLVMリサイズが実行できないため、GParted LiveCDを利用して拡張する。

  1. GPartedディスクから起動し、"GParted Live (Default settings)"を選択する。
    choose_mode.jpg

  2. キーマップはそのまま(Don't touch keymap)にして次に進む。
    select_keymap.jpg

  3. その後の選択肢も全てデフォルトで進め、GPartedのGUIが起動するまで待機する。

  4. select_options.jpg

  5. GUI起動と同時にGPartedも起動するが、その際に以下のようなメッセージが表示される。
    これはGPTのパーティションサイズ判定と実際のサイズが異なっているからであり、修復のために"Fix"を選択する。
    fix_gpt.jpg

  6. 拡張対象のLVMを選択し、サイズを最大まで拡張して適用する。
    extend_lvm1.jpg

    extend_lvm2.jpg

  7. 以上が問題なく終われば、GPartedをシャットダウンして完了

LVM論理ボリュームのサイズ変更

LVM物理パーティションが拡張できたら、論理パーティションのサイズを変更できるようになる。
なお、ファイルシステムにXFSを使用している場合は縮小が出来ないので注意。

OSが起動しているとパーティションに変更を加えられないため、OSインストールディスクを起動して操作する。

  1. CentOS7系インストールメディアをセットして起動し、メディア起動直後に"Troubleshooting"を選択する。
    choose_troubleshoot.jpg

  2. "Rescue a CentOS system"を選択する。
    select_rescue.jpg

  3. "3) Skip to shell"を選択し、コンソールに入る。
    in_shell.jpg

  4. LVM物理ボリュームを可視化する。

# vgchange -a y
    2 logical volume(s) in volume group {LVM物理ボリューム名} now active
  1. 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つのディスクであるかのように扱うことができる。(故障率は上がるが)

  1. レスキューモードで起動する。

    LVM論理ボリュームのサイズ変更を参考にしてレスキューモードで起動する。

  2. LVM物理ボリュームが見えていないので有効にする。

# vgchange -a y
    2 logical volume(s) in volume group "vg00" now active
  1. 新しいディスクを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

以後の作業はパーティションのサイズ変更と同じ作業を行うと良い。

4
10
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
4
10