VMware ESXi:ゲストに増設したHDDを元にLVMボリュームを拡張する

VMware ESXi などの仮想環境で、ゲストOS作成時「割り当てHDD容量」の見積りを誤りますと、いわゆる「/」が足りなくなる問題が発生します。その場合の対処として、HDD構成が「LVM(Logical Volume Manager)」であれば後から容量増設が可能です。(2014/09/19作成)

Expansion MichaelGaida / Pixabay

0.本紙の作業概要

VMware ESXi 既存ゲスト環境は、20GのHDDがLVMで設置されています。
上記環境に、HDDを30Gの新規追加、LVMボリューム「+20G」分容量を増やします。
作業時、対象ゲストOSは停止させる必要があります。
作業時、スナップショットがあると仮想ディスクサイズを増やせないです。
本紙でよく出現する「用語」を以下に補足します。

LVMとは…

LVM(Logical Volume Manager)とは、何台かのディスクをひとつのグループにまとめ、そこから論理ボリューム(パーティション)を切り出すことのできるHP-UXの機能です。 LVMでは、システムの運用を継続したまま論理ボリュームのサイズ変更やディスク追加が可能です。(参考文献:日本HP)

FDISKとは…

「 FDISK」とは、ハードディスクドライブに対して、論理的なパーティション(区画)を設定するためのMS-DOSのコマンドのことです。 PC互換機では、FDISKというプログラムを使ってハードディスクドライブに対して論理的なパーティションを設定することになっています。 システムに新しいハードディスクドライブを接続した場合は、まず最初にこのFDISKコマンドでパーティションを設定し、FORMATコマンドでフォーマットを行なうことによって、ユーザーが利用できる状態になります。(参考文献:Lenovo)

1.環境情報

ホストOS: VMware ESXi バージョン 5.1.0
ゲストOS: CentOS release 5.9

2.ゲストOS:新規HDDを追加

VMware ESXi 対象ゲストOSに「新規HDD」を追加します。なお VMware ESXi 上のHDDの追加方法については割愛します。

(HDD増設前)
[crayon]
# fdisk -l
ddisk /ev/hda: 21.4 gb, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/ddev/hda1 * 1 13 104391 83 linux
/dev/hda2 14 2610 20860402+ 8e Linux LVM

# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
19G 16G 1.4G 93% /
/dev/hda1 99M 34M 61M 36% /boot
tmpfs 1006M 0 1006M 0% /dev/shm
[/crayon]

(HDD増設後)
[crayon]
# fdisk -l
Disk /dev/hda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 2610 20860402+ 8e Linux LVM

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

ディスク /dev/sda は正常な領域テーブルを含んでいません
[/crayon]

3.ゲストOS:HDDの初期設定(fdisk)

ゲストOS上で、増設したHDDに「fdisk」コマンドで初期設定を行います。

[crayon]
# fdisk /dev/sda
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更は
メモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。

このディスクのシリンダ数は 3916 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります

コマンド (m でヘルプ): m
コマンドの動作
a ブート可能フラグをつける
b bsd ディスクラベルを編集する
c dos 互換フラグをつける
d 領域を削除する
l 既知の領域タイプをリスト表示する
m このメニューを表示する
n 新たに領域を作成する
o 新たに空の DOS 領域テーブルを作成する
p 領域テーブルを表示する
q 変更を保存せずに終了する
s 空の Sun ディスクラベルを作成する
t 領域のシステム ID を変更する
u 表示/項目ユニットを変更する
v 領域テーブルを照合する
w テーブルをディスクに書き込み、終了する
x 特別な機能 (エキスパート専用)

コマンド (m でヘルプ): p

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System

コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-3916, default 1):
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-3916, default 3916):
Using default value 3916

コマンド (m でヘルプ): p

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/dev/sda1 1 3916 31455238+ 83 Linux

コマンド (m でヘルプ): t
Selected partition 1
16進数コード (L コマンドでコードリスト表示): 8e
領域のシステムタイプを 1 から 8e (Linux LVM) に変更しました

コマンド (m でヘルプ): p

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/dev/sda1 1 3916 31455238+ 8e Linux LVM

コマンド (m でヘルプ): w
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。

# /sbin/shutdown -r now
[/crayon]

4.ゲストOS:LVMによる論理ボリューム拡張

ゲストOS上で、LVMによる論理ボリューム拡張します。

[crayon]
# fdisk -l
Disk /dev/hda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 2610 20860402+ 8e Linux LVM

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/dev/sda1 1 3916 31455238+ 8e Linux LVM

LVM物理ボリュームを作成
# pvcreate /dev/sda1
Writing physical volume data to disk “/dev/sda1”
Physical volume “/dev/sda1” successfully created

物理ボリュームの情報を表示する(ボリュームグループ割り当て前)
# pvdisplay
— Physical volume —
PV Name /dev/hda2
VG Name VolGroup00
PV Size 19.89 GB / not usable 19.49 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 636
Free PE 0
Allocated PE 636
PV UUID BptsvR-MYKn-dfOq-Tjp1-COMu-FwSS-c9grFb

“/dev/sda1” is a new physical volume of “30.00 GB”
— NEW Physical volume —
PV Name /dev/sda1
VG Name
PV Size 30.00 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID QNuZpW-SL3L-yLZj-PG3K-yfHe-XOfL-4R1S3D

ボリュームグループに物理ボリュームを割り当てる
# vgextend VolGroup00 /dev/sda1
Volume group “VolGroup00” successfully extended

物理ボリュームの情報を表示する(ボリュームグループ割り当て後)
# pvdisplay
— Physical volume —
PV Name /dev/hda2
VG Name VolGroup00
PV Size 19.89 GB / not usable 19.49 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 636
Free PE 0
Allocated PE 636
PV UUID BptsvR-MYKn-dfOq-Tjp1-COMu-FwSS-c9grFb

“/dev/sda1” is a new physical volume of “30.00 GB”
— NEW Physical volume —
PV Name /dev/sda1
VG Name
PV Size 30.00 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID QNuZpW-SL3L-yLZj-PG3K-yfHe-XOfL-4R1S3D

論理ボリュームを増加させる
# lvextend -L +20Gb /dev/VolGroup00/LogVol00
Extending logical volume LogVol00 to 38.88 GB
Logical volume LogVol00 successfully resized

ファイルシステムサイズの再認識
# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 10190848 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 10190848 blocks long.

容量の確認
# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
38G 16G 20G 45% /
/dev/hda1 99M 34M 61M 36% /boot
tmpfs 1006M 0 1006M 0% /dev/shm
[/crayon]

以上

About yoshimasa

埼玉県さいたま市在住、2男3女のパパです。Linux系の技術情報を中心にまとめています。1978年2月生まれ。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください