Edited at

VMware ESXi 5.5 LVMのディスク拡張

More than 3 years have passed since last update.


経緯

とある検証で負荷試験を行っていた所、仮想ホストのローカルディスクが

いっぱいになってしまって検証ストップしたった。

LVMのディスク拡張やったことないのでチャレンジしてみようと思った所存でござい。


環境

・VMwareESXi 5.5

・CentOS 6.6 (64bit)


作業の流れ


  1. 現在のディスク状態の確認



    • dfコマンド


    • fdiskコマンド



  2. ESXiでのディスク容量拡張

  3. パーティション作成



    • fdiskコマンド



  4. LVMでディスク拡張


    • pvcreate

    • pvdisplay

    • vgextend

    • lvextend

    • resize2fs




手順


1.現在のディスク状態の確認


・dfコマンド

 /dev/mapper/vg_cmst201-lv_root の現在のサイズは14G

# df -h

Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_cmst201-lv_root
14G 5.5G 7.5G 43% /
tmpfs 939M 0 939M 0% /dev/shm
/dev/sda1 477M 33M 419M 8% /boot


・fdiskコマンド

 現在の/dev/sdaのデバイス上の容量は17.2 GB

# fdisk -l


ディスク /dev/sda: 17.2 GB, 17179869184 バイト
ヘッド 64, セクタ 32, シリンダ 16384
Units = シリンダ数 of 2048 * 512 = 1048576 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00027ff4


2.ESXiでのディスク容量拡張


・プロビジョニング済みサイズを変更

 ※ディスクプロビジョニングをThinProvisionにしています

WS000359.png


・再起動を実施

# reboot


・デバイス実行容量確認

/dev/sda のディスク上のサイズが68.7Gに増えました

# fdisk -l


ディスク /dev/sda: 68.7 GB, 68719476736 バイト
ヘッド 255, セクタ 63, シリンダ 8354
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00027ff4


3.パーティション作成


・fdiskコマンドでパーティションを作成

# fdisk /dev/sda


警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを
強く推奨します。 and change display units to
sectors (command 'u').

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

ディスク /dev/sda: 68.7 GB, 68719476736 バイト
ヘッド 255, セクタ 63, シリンダ 8354
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00027ff4

デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 1 64 512000 83 Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2 64 2089 16264192 8e Linux LVM

コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本パーティション (1-4)
p
パーティション番号 (1-4): 3
最初 シリンダ (2089-8354, 初期値 2089):
初期値 2089 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (2089-8354, 初期値 8354):
初期値 8354 を使います

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

ディスク /dev/sda: 68.7 GB, 68719476736 バイト
ヘッド 255, セクタ 63, シリンダ 8354
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00027ff4

デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 1 64 512000 83 Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2 64 2089 16264192 8e Linux LVM
/dev/sda3 2089 8354 50326289 83 Linux

コマンド (m でヘルプ): t
パーティション番号 (1-4): 3
16進数コード (L コマンドでコードリスト表示): L

0 空 24 NEC DOS 81 Minix / 古い bf Solaris
1 FAT12 39 Plan 9 82 Linux スワッ c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 隠し C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 41 PPC PReP Boot 85 Linux 拡張領 c7 Syrinx
5 拡張領域 42 SFS 86 NTFS ボリュ da 非 FS デー
6 FAT16 4d QNX4.x 87 NTFS ボリュ db CP/M / CTOS / .
7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux プレー de Dell ユーテ
8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt
9 AIX ブート 50 OnTrack DM 93 Amoeba e1 DOS access
a OS/2 ブート 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad eb BeOS fs
e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT
f W95 拡張領 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC
11 隠し FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
12 Compaq 診断 61 SpeedStor a9 NetBSD f4 SpeedStor
14 隠し FAT16 <3 63 GNU HURD また ab Darwin ブー f2 DOS セカン
16 隠し FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS
17 隠し HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 70 DiskSecure Mult b8 BSDI スワッ fd Linux raid 自
1b 隠し W95 FAT3 75 PC/IX bb 隠し Boot Wiz fe LANstep
1c 隠し W95 FAT3 80 古い Minix be Solaris ブー ff BBT
1e 隠し W95 FAT1
16進数コード (L コマンドでコードリスト表示): 8e
領域のシステムタイプを 3 から 8e (Linux LVM) に変更しました

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

ディスク /dev/sda: 68.7 GB, 68719476736 バイト
ヘッド 255, セクタ 63, シリンダ 8354
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00027ff4

デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 1 64 512000 83 Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2 64 2089 16264192 8e Linux LVM
/dev/sda3 2089 8354 50326289 8e Linux LVM

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。

警告: パーティションテーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソースがビジー状態です。
カーネルはまだ古いテーブルを使っています。新しいテーブルは
次回リブート時か、partprobe(8)またはkpartx(8)を実行した後に
使えるようになるでしょう
ディスクを同期しています。


・再起動を実施

# reboot


4.LVMでディスク拡張


・pvcreateコマンドで物理ボリューム作成

# pvcreate /dev/sda3

Physical volume "/dev/sda3" successfully created


・pvdisplayコマンドでボリュームグループ名を確認

# pvdisplay

--- Physical volume ---
PV Name /dev/sda2
VG Name vg_cmst201
PV Size 15.51 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 3970
Free PE 0
Allocated PE 3970
PV UUID uNKI0D-BzQz-cpbn-UZCO-TpbW-vYb3-mnM0XK


・vgextendコマンドでボリュームグループの拡張を実施

# vgextend vg_cmst201 /dev/sda3

Volume group "vg_cmst201" successfully extended


・lvextendコマンドで論理ボリュームの拡張を実施

# lvextend -L +47Gb /dev/vg_cmst201/lv_root

Size of logical volume vg_cmst201/lv_root changed from 13.91 GiB (3561 extents) to 60.91 GiB (15593 extents).
Logical volume lv_root successfully resized


・resize2fsコマンドでファイルシステムの拡張を実施

※CentOS7.xの場合はxfs_growfsコマンドを使う

# resize2fs /dev/vg_cmst201/lv_root

resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_cmst201/lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 4
Performing an on-line resize of /dev/vg_cmst201/lv_root to 15967232 (4k) blocks.
The filesystem on /dev/vg_cmst201/lv_root is now 15967232 blocks long.


・結果確認



# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_cmst201-lv_root
60G 5.5G 52G 10% /
tmpfs 939M 0 939M 0% /dev/shm
/dev/sda1 477M 33M 419M 8% /boot


後記

初めて実施しましたがスムーズに拡張できて良かったです!

こちらのサイトを参考にさせて頂きました!


追記(20160512)

CentOS7でやろうとしたらできなかったのですが、こちらの記事を参照して解決できました!

CentOS 7(XFS)でLVMディスク拡張でハマったこと