CentOS で LVM 物理/論理ボリュームサイズを縮小する

提供:maruko2 Note.
移動: 案内, 検索

目次

はじめに

CentOS 5 で、ルートパーティションの使用量が少ないため、ルートパーティションを小さくしようとしたが、ボリュームが LVM で管理されていたため、その時のメモ。 ボリューム名は、インストール時にデフォルトで付けられた名前を使用している。

下記のような構成で、ルート (/) は 5GB ほどしか使用していない状態なので、

/boot  100 MB  /dev/sda1
/       18 GB  /dev/mapper/VolGroup00-LogVol00
swap     2 GB  /dev/mapper/VolGroup00-LogVol01
PV /dev/sda2
VG VolGroup00 20GB

次のようにルート (/) のボリュームサイズと、PV のサイズを小さくする。

/boot  100 MB  /dev/sda1
/        8 GB  /dev/mapper/VolGroup00-LogVol00
swap     2 GB  /dev/mapper/VolGroup00-LogVol01
PV /dev/sda2
VG VolGroup00 10GB

手順としては、次のようになる。

  1. ファイルシステムのサイズを縮小
  2. 論理ボリューム(LV)のサイズを縮小
  3. 物理ボリューム(PV)のサイズを縮小

ファイルシステムのサイズを縮小

マウントした状態ではファイルシステムのサイズを変更することができないため、CentOS の LiveCD で起動する。

LiveCD で起動後、/dev/mapper/VolGroup00-LogVol00 のマウントを解除する。

[root@livecd ~]# umount /dev/mapper/VolGroup00-LogVol00

e2fsck コマンドで、ファイルシステムをチェックする。(このチェックをしないと、次のサイズ変更をすることができない。)

[root@livecd ~]# e2fsck -f /dev/mapper/VolGroup00-LogVol00
e2fsck 2.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/VolGroup00-LogVol00: 92069/4704768 files (1.3% non-contiguous), 1285660/4702208 blocks

resize2fs コマンドで、ファイルシステムのサイズを変更をする。

[root@livecd ~]# resize2fs /dev/mapper/VolGroup00-LogVol00 8G
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/mapper/VolGroup00-LogVol00 to 2097152 (4k) blocks.
The filesystem on /dev/mapper/VolGroup00-LogVol00 is now 2097152 blocks long.

論理ボリュームのサイズを縮小

lvreduce コマンドで論理ボリュームの縮小をする。

[root@livecd ~]# lvreduce -L 8G /dev/mapper/VolGroup00-LogVol00
  WARNING: Reducing active logical volume to 8.00 GB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LogVol00? [y/n]: y
  Reducing logocal volume LogVol00 to 8.00 GB
  Logical volume LogVol00 successfully resized

一応 lvdisplay コマンドで LV Size(論理ボリュームサイズ)の確認。

[root@livecd ~]# lvdisplay /dev/mapper/VolGroup00-LogVol00

物理ボリュームのサイズを縮小

物理ボリュームを縮小するための準備

/dev/mapper/VolGroup00-LogVol00 の論理ボリュームサイズを 18GB から 8GB に縮小できたので、次は、物理ボリュームのサイズを変更する。

現在の論理ボリュームと物理ボリュームのサイズを確認。

[root@livecd ~]# pvscan
  /dev/cdrom: open failed: Read-only file system
  Attempt to close device '/dev/cdrom' which is not open.
  PV /dev/sda22   VG VolGroup00   lvm2 [19.88 GB / 9.94 GB free]
  Total: 1 [19.88 GB] / in use: 1 [19.88 GB] / in no VG: 0 [0   ]
[root@livecd ~]# lvscan
  ACTIVE    '/dev/VolGroup00/LogVol00' [8.00 GB] inherit
  ACTIVE    '/dev/VolGroup00/LogVol01' [1.94 GB] inherit

system-config-lvm コマンドを実行すると、グラフィカルな LVM ツールが起動し論理ボリュームの状態がわかる。

system-config-lvm 1.png

LogVol00 の論理ボリュームサイズを小さくしたので、LogVol00 と LogVol01 の間に Unused Space ができている。

LogVol01 を削除し、再度作成することで次のような状態にする。

system-config-lvm 2.png

lvremove コマンドで LogVol01 を削除しようとしても、削除できない。

[root@livecd ~]# lvremove /dev/mapper/VolGroup00-LogVol01
  Can't remove open logical volume "LogVol01"

LogVol01 は SWAP 領域なので swapoff する。

[root@livecd ~]# swapoff /dev/mapper/VolGroup00-LogVol01

lvremove すると、LogVol01 を削除することができる。

[root@livecd ~]# lvremove /dev/mapper/VolGroup00-LogVol01
Do you really want to remove active logical volume LogVol01? [y/n]:y
  Logical volume "LogVol01" successfully removed

論理ボリューム LogVol01 を作成。

[root@livecd ~]# lvcreate -L 2G -n LogVol01 VolGroup00
  /dev/cdrom: open failed: Read-only file system
  Logical volume "LogVol01" created

mkswap コマンドで SWAP 用にする。

[root@livecd ~]# mkswap /dev/mapper/VolGroup00-LogVol01
Setting up swapspace vrsion 1, size = 2147479 kB

swapon コマンドで SWAP 領域として割り当てる。

[root@livecd ~]# swapon /dev/mapper/VolGroup00-LogVol01

物理ボリュームを縮小

ここまでで、物理ボリューム内の論理ボリュームは次のようになったので、Unused Space を削除する形で物理ボリュームを縮小する。

system-config-lvm 2.png

まずは、物理ボリュームのサイズ確認。

[root@livecd ~]# pvscan
  PV /dev/sda2   VG VolGroup00   lvm2 [19.88GB / 9.88 GB free]
  Total: 1 [19.88 GB] / in use: 1 [19.88 GB] / in on FV: 0 [0   ]

pvresize コマンドで、物理ボリュームをリサイズ。

[root@livecd ~]# pvresize --setphysicalvolumesize 10G /dev/sda2
  /dev/sda2: cannot resize to 319 extents as 320 are allocated.
  0 physical volume(s) resized / 1 physical volumes(s) not resized

小さくしすぎてエラーになったので、MB 指定で少し大きなサイズを指定。

[root@livecd ~]# pvresize --setphysicalvolumesize 10500M /dev/sda2
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized / 0 physical volumes(s) not resized

リサイズできたので、確認。

[root@livecd ~]# pvscan
  PV /dev/sda2   VG VolGroup00   lvm2 [10.25 GB / 256.00 MB free]
  Total: 1 [10.25 GB] / in use: 1 [10.25 GB] / in on FV: 0 [0   ]

まだ 256 MB 空いているようなので、10244 MB で再リサイズ。

[root@livecd ~]# pvresize --setphysicalvolumesize 10244M /dev/sda2
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized / 0 physical volumes(s) not resized

サイズ確認。

[root@chuo221 ~]# pvscan
  PV /dev/sda2   VG VolGroup00   lvm2 [10.00 GB / 0    free]
  Total: 1 [10.00 GB] / in use: 1 [10.00 GB] / in no VG: 0 [0   ]

参考ページ

LINEで送る このエントリーをはてなブックマークに追加
個人用ツール
名前空間
変種
表示
操作
案内
ツールボックス

注目のページ

このサイトのはてなブックマーク数