今回の方法は、新たなディスクを追加し、そのディスクをLVMに組み込むことで、ゲストOSのディスクサイズを増やす方法だ。
前回の『VMwareのゲストOS(CentOS6.4)のディスク容量を増やす方法』では、既存のディスクの割り当て容量をVMwareのディスク設定で増やし、パーティションを作成するため、Linuxのパーティション数制限(4パーティション)に引っかかってしまうというデメリットがあったが、今回の方法であれば、そのデメリットも解消される。
今回、CentOS6.4でディスクサイズを20GBから40GBまで増やした。
概要
手順は以下の通り。
1.VMwareの仮想ディスクを追加
2.ゲストOSのパーティションの作成
3.LVMで使用するためにパーティションを初期化
4.LVMのボリュームグループにパーティションを追加
5.LVMのサイズを拡張
6.ファイルシステムのリサイズ
ディスクを追加して、ディスクをまたいで最後に中身を拡げるイメージだ。
現状の確認
現在のパーティションを確認する。
# fdisk -l ディスク /dev/sda: 21.5 GB, 21474836480 バイト ヘッド 64, セクタ 32, シリンダ 20480 Units = シリンダ数 of 2048 * 512 = 1048576 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x00068a85 デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 2 501 512000 83 Linux パーティション 1 は、シリンダ境界で終わっていません。 /dev/sda2 502 20480 20458496 8e Linux LVM パーティション 2 は、シリンダ境界で終わっていません。 ディスク /dev/mapper/VolGroup-lv_root: 16.7 GB, 16718495744 バイト ヘッド 255, セクタ 63, シリンダ 2032 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x00000000 ディスク /dev/mapper/VolGroup-lv_swap: 4227 MB, 4227858432 バイト ヘッド 255, セクタ 63, シリンダ 514 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x00000000 |
/dev/sdaを使っていて、/dev/sda2まで使用していることがわかる。
VMwareの仮想ディスクを追加する
vSphere Clientからディスクを拡張したいサーバを選択し、『サマリ』タブを開く。
『設定の編集』(①)をクリック。
『仮想マシンのプロパティ』ウィンドウが開くので、『追加』ボタン(②)をクリック。
『ハードウェアの追加』ウィンドウが開くので、
『追加したいハードウェア』として『ハードディスク』(③)を選択し、『次へ』ボタン(④)をクリック。
『新規仮想ディスクを作成』(⑤)を選択し、『次へ』ボタン(⑥)をクリック。
・容量で『ディスクサイズ』(⑦)を設定(図では、20GB)。
・ディスクプロビジョニングで『領域をオンデマンドで割り当ておよびコミット(シンプロビジョニング)』(⑧)を選択。
・場所で『データストアの指定』(⑨)を選択し、『参照』ボタン(⑩)をクリックし、データストアを選択。
・『次へ』ボタン(⑪)をクリック。
特に何もせず、『次へ』ボタン(⑫)をクリック。
オプションで設定内容を確認し、『終了』ボタン(⑬)をクリック。
ハードディスクが追加されたこと(⑭)を確認し、『OK』ボタン(⑮)をクリックする。
追加処理が終了すれば、ハードディスク2(⑯)が追加されていることがわかる。
ゲストOSのパーティションの作成
ディスク追加後のパーティションを確認する。
# fdisk -l ディスク /dev/sda: 21.5 GB, 21474836480 バイト ヘッド 64, セクタ 32, シリンダ 20480 Units = シリンダ数 of 2048 * 512 = 1048576 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x00068a85 デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 2 501 512000 83 Linux パーティション 1 は、シリンダ境界で終わっていません。 /dev/sda2 502 20480 20458496 8e Linux LVM パーティション 2 は、シリンダ境界で終わっていません。 ディスク /dev/mapper/VolGroup-lv_root: 16.7 GB, 16718495744 バイト ヘッド 255, セクタ 63, シリンダ 2032 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x00000000 ディスク /dev/mapper/VolGroup-lv_swap: 4227 MB, 4227858432 バイト ヘッド 255, セクタ 63, シリンダ 514 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x00000000 ディスク /dev/sdb: 21.5 GB, 21474836480 バイト ヘッド 64, セクタ 32, シリンダ 20480 Units = シリンダ数 of 2048 * 512 = 1048576 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x00000000 |
新たに/dev/sdbが追加されていることがわかる。
この/dev/sdbに/dev/sdb1を作成する。
ポイントは、セクタ数 の表示をユニットに変更し、最初のセクタを 2048に設定することだ。
# fdisk /dev/sdb
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルをディスク識別子 0xa9edf73d で作成します。
あなたが書き込みを決定するまで、変更はメモリ内だけに残します。
その後はもちろん以前の内容は修復不可能になります。
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります
警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを
強く推奨します。 and change display units to
sectors (command 'u').
コマンド (m でヘルプ): u
セクタ数 の表示/項目ユニットを変更します
コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本パーティション (1-4)
p
パーティション番号 (1-4): 1
最初 セクタ (32-41943039, 初期値 32): 2048
Last セクタ, +セクタ数 or +size{K,M,G} (2048-41943039, 初期値 41943039):Enterを入力
初期値 41943039 を使います
コマンド (m でヘルプ): t
選択した領域 1
16進数コード (L コマンドでコードリスト表示): 8e
領域のシステムタイプを 1 から 8e (Linux LVM) に変更しました
コマンド (m でヘルプ): p
ディスク /dev/sdb: 21.5 GB, 21474836480 バイト
ヘッド 64, セクタ 32, シリンダ 20480, 合計 41943040 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0xa9edf73d
デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 2048 41943039 20970496 8e Linux LVM
コマンド (m でヘルプ): w
パーティションテーブルは変更されました!
ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
|
LVMで使用するためにパーティションを初期化
# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created |
LVMのボリュームグループにパーティションを追加
LVMのボリュームグループ(VG Name)を確認する。
# vgdisplay --- Volume group --- VG Name VolGroup System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 19.51 GiB PE Size 4.00 MiB Total PE 4994 Alloc PE / Size 4994 / 19.51 GiB Free PE / Size 0 / 0 VG UUID VBvIMW-wvWR-sBdz-siOm-YEZJ-Lwjj-kxqv7x |
上記の例では、LVMのボリュームグループ(VG Name)はVolGroupなので、VolGroupにさっき作成した/dev/sdb1を追加する。
# vgextend VolGroup /dev/sdb1 Volume group "VolGroup" successfully extended |
LVMのサイズを拡張
パーティション追加後のLVMのボリュームグループの状態を確認する。
# vgdisplay --- Volume group --- VG Name VolGroup System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 39.50 GiB PE Size 4.00 MiB Total PE 10113 Alloc PE / Size 4994 / 19.51 GiB Free PE / Size 5119 / 20.00 GiB VG UUID VBvIMW-wvWR-sBdz-siOm-YEZJ-Lwjj-kxqv7x |
Free PE の値が追加可能なサイズとなる。
今回は上記のボリュームをrootパーティションに全て追加する。
# df -h Filesystem Size Used Avail Use% マウント位置 /dev/mapper/VolGroup-lv_root ←rootパーティションのデバイスを確認 16G 754M 14G 6% / tmpfs 939M 0 939M 0% /dev/shm /dev/sda1 485M 32M 428M 7% /boot # lvextend -l +5119 /dev/mapper/VolGroup-lv_root ←rootパーティションを拡張 Extending logical volume lv_root to 35.57 GiB Logical volume lv_root successfully resized |
ファイルシステムのリサイズ
最後にファイルシステムの拡張を行う。
# resize2fs /dev/mapper/VolGroup-lv_root resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required old desc_blocks = 1, new_desc_blocks = 3 Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 9323520 (4k) blocks. The filesystem on /dev/mapper/VolGroup-lv_root is now 9323520 blocks long. # df -h Filesystem Size Used Avail Use% マウント位置 /dev/mapper/VolGroup-lv_root 36G 762M 33G 3% / tmpfs 939M 0 939M 0% /dev/shm /dev/sda1 485M 32M 428M 7% /boot |