VMware (ESXi) 上の仮想マシン CentOS 6.4 をファイルサーバとして利用していますが、標準のディスク割り当てでインストールしたところ /home 領域が過剰に大きくなってしまいました。再インストールすれば手間はかからなかったのですが、この状態でしばらく運用してしまったのでそれも面倒です。
幸い標準でLVMが採用されているので、ディスクサイズを調整して /mnt 領域の容量を確保することにしました。
現在の状態と目標
CentOS領域は1.2TBです。同一HDD内に600GBの空き容量があったので、これをCentOSに割り当てます。今回はシンプロビジョニングを利用しているのでディスクサイズの拡張としますが、新規ディスクの割り当て(増設)でもほぼ同じ手順と思われます。LVMにて2つの領域を1つであるかのように利用します。
LVM構築の大まかな流れ
- ディスクのパーティショニング
- 物理ボリューム(PV)の作成
- ボリュームグループ(VG)の作成
- 論理ボリューム(LV)の作成
- ファイルシステムの作成
- マウント
ディスクパーティショニング
vSphere clientにて仮想マシンのディスクサイズを拡張した後、拡張ディスク分の新規パーティションを作成します。ディスク拡張前後で fdisk -l を実行してサイズ変更されていることを確認すると良いです。
sudo fdisk /dev/sda
p (テーブル表示で確認)
n (新規)
p (テーブル表示で確認)
領域番号 (1-4): 3 (既に1,2があるので3を作成)
p (テーブル表示で確認)
t (LVMに変更するため)
領域番号 (1-4): 3
L
16進数コード (L コマンドでコードリスト表示): 8e
p (テーブル表示で確認)
コマンド (m でヘルプ): w
領域テーブルは交換されました!
# リブートが必要
shutdown -r now
物理ボリューム(PV)の作成とVGの拡張
パーティションが作成できたら、LVMのディスクを拡張します。
pvcreate /dev/sda3
vgextend vg_cent /dev/sda3
※ vg_cent はインストール時に設定された名前です。仮想マシンのホスト名から自動的に設定されています。
確認:
$ sudo pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name vg_cent
PV Size 1.17 TiB / not usable 3.00 MiB
Allocatable yes (but full)
--- Physical volume ---
PV Name /dev/sda3
VG Name vg_cent
PV Size 700.00 GiB / not usable 2.58 MiB
Allocatable yes
Free PE 179199
論理ボリューム(LV)の作成
/mnt用に新規Logical Volume (lv_mnt) を作成し、ファイルシステムを作成します。
lvcreate -L 600G -n lv_mnt vg_cent
mkfs.ext4 /dev/vg_cent/lv_mnt
確認:
$ sudo lvdisplay -C
LV VG Attr LSize Pool Origin Data%
lv_home vg_cent -wi-ao--- 1.12t
lv_mnt vg_cent -wi-a---- 600.00g
lv_root vg_cent -wi-ao--- 50.00g
lv_swap vg_cent -wi-ao--- 3.88g
マウントの設定
fstabに記載して再起動します。
$ sudo vi /etc/fstab
+ /dev/mapper/vg_cent-lv_mnt /mnt ext4 defaults 1 3
reboot
これで600GBの /mnt 領域が利用可能になりました。パーティションサイズの縮小・拡張(既存LVのリサイズ)については別記事で記載しています。

