VMware ESXi などの仮想環境で、ゲストOS作成時「割り当てHDD容量」の見積りを誤りますと、いわゆる「/」が足りなくなる問題が発生します。その場合の対処として、HDD構成が「LVM(Logical Volume Manager)」であれば後から容量増設が可能です。(2014/09/19作成)
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増設前)
# 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
(HDD増設後)
# 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 は正常な領域テーブルを含んでいません
3.ゲストOS:HDDの初期設定(fdisk)
ゲストOS上で、増設したHDDに「fdisk」コマンドで初期設定を行います。
# 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
4.ゲストOS:LVMによる論理ボリューム拡張
ゲストOS上で、LVMによる論理ボリューム拡張します。
# 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
以上