RHEL6で論理ボリューム拡張
前提条件、環境
OS:RHEL6.7
物理サーバの空きスロットに900GBのディスクを3本増設し、RAID5を構築(ハードウェアRAID)
拡張するLV(Logical Volume、論理ボリューム)は「VolGroup00-LogVol00」
# df -m Filesystem 1M-ブロック 使用 使用可 使用% マウント位置 /dev/mapper/VolGroup-LogVol00 492150 153556 313594 33% / tmpfs 5950 1 5950 1% /dev/shm /dev/mapper/VolGroup00-LogVol00 297651 167939 114597 60% /backup /dev/sda1 243 60 171 26% /boot /var/opt/aipsnap/aiptmpfile.img 20353 130 19189 1% /var/opt/aipsnap/tmp
パーティションテーブルの確認
# fdisk /dev/sdb デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも 含んでいません 新たに DOS ディスクラベルをディスク識別子 0xd322afdb で作成します。 あなたが書き込みを決定するまで、変更はメモリ内だけに残します。 その後はもちろん以前の内容は修復不可能になります。 警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって 正常になります 警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを 強く推奨します。 and change display units to sectors (command 'u'). コマンド (m でヘルプ): p ディスク /dev/sdb: 1799.3 GB, 1799255752704 バイト ヘッド 255, セクタ 63, シリンダ 218747 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0xd322afdb デバイス ブート 始点 終点 ブロック Id システム コマンド (m でヘルプ):q
今回追加したディスクが/dev/sdbとして認識されています。
拡張パーティションの作成
# fdisk /dev/sdb デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも 含んでいません 新たに DOS ディスクラベルをディスク識別子 0x63fff6ee で作成します。 あなたが書き込みを決定するまで、変更はメモリ内だけに残します。 その後はもちろん以前の内容は修復不可能になります。 警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって 正常になります 警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを 強く推奨します。 and change display units to sectors (command 'u'). コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本パーティション (1-4) e パーティション番号 (1-4): 1 最初 シリンダ (1-218747, 初期値 1):(何も入力せずにenter) 初期値 1 を使います Last シリンダ, +シリンダ数 or +size{K,M,G} (1-218747, 初期値 218747): +900G コマンド (m でヘルプ): p ディスク /dev/sdb: 1799.3 GB, 1799255752704 バイト ヘッド 255, セクタ 63, シリンダ 218747 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x63fff6ee デバイス ブート 始点 終点 ブロック Id システム /dev/sdb1 1 117489 943730361 5 拡張領域
上記の通り拡張パーティション/dev/sdb1が作成されています。
後々いろいろ調べていたのですが、Lastシリンダの選択に関してはディスク全てを拡張パーティションにする場合はデフォルト値(何も入力せずにenter)のほうがいいみたいです。
論理パーティションの作成
コマンド (m でヘルプ): n コマンドアクション l 論理 (5 以上) p 基本パーティション (1-4) l 最初 シリンダ (1-117489, 初期値 1):(何も入力せずにenter) 初期値 1 を使います Last シリンダ, +シリンダ数 or +size{K,M,G} (1-117489, 初期値 117489): +900G コマンド (m でヘルプ): p ディスク /dev/sdb: 1799.3 GB, 1799255752704 バイト ヘッド 255, セクタ 63, シリンダ 218747 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x63fff6ee デバイス ブート 始点 終点 ブロック Id システム /dev/sdb1 1 117489 943730361 5 拡張領域 /dev/sdb5 1 117489 943730329+ 83 Linux コマンド (m でヘルプ):
論理パーティションsdb5が作成されています。
論理パーティションのファイルシステム(システムID)変更
コマンド (m でヘルプ): t パーティション番号 (1-5): 5 16進数コード (L コマンドでコードリスト表示): 8e 領域のシステムタイプを 5 から 8e (Linux LVM) に変更しました コマンド (m でヘルプ): p ディスク /dev/sdb: 1799.3 GB, 1799255752704 バイト ヘッド 255, セクタ 63, シリンダ 218747 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x63fff6ee デバイス ブート 始点 終点 ブロック Id システム /dev/sdb1 1 117489 943730361 5 拡張領域 /dev/sdb5 1 117489 943730329+ 8e Linux LVM コマンド (m でヘルプ):
ファイルシステムが「Linux LVM」に変更されています。
変更の保存
コマンド (m でヘルプ): wq パーティションテーブルは変更されました! ioctl() を呼び出してパーティションテーブルを再読込みします。 ディスクを同期しています。 #
新しいパーティションをシステムに認識させる
# partprobe Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (デバイスもしくはリソースがビジー状態です). As a result, it may not reflect all of your changes until after reboot.
サーバ再起動
# shutdown -r now
念のため変更が反映されているか確認
# fdisk /dev/sdb 警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを 強く推奨します。 and change display units to sectors (command 'u'). コマンド (m でヘルプ): p ディスク /dev/sdb: 1799.3 GB, 1799255752704 バイト ヘッド 255, セクタ 63, シリンダ 218747 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x63fff6ee デバイス ブート 始点 終点 ブロック Id システム /dev/sdb1 1 117489 943730361 5 拡張領域 /dev/sdb5 1 117489 943730329+ 8e Linux LVM コマンド (m でヘルプ): q
変更が反映されています。
物理ボリューム作成
# pvcreate /dev/sdb5 Physical volume "/dev/sdb5" successfully created # pvdisplay ・ ・ "/dev/sdb5" is a new physical volume of "900.01 GiB" --- NEW Physical volume --- PV Name /dev/sdb5 VG Name PV Size 900.01 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID k7nprd-HXRc-MmRQ-dfEP-JerS-vtqn-ybm0CK
物理ボリューム「/dev/sdb5」が作成されています。
現在のVG(VolumeGroup)の確認
# vgdisplay --- Volume group --- VG Name VolGroup00 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 295.31 GiB PE Size 4.00 MiB Total PE 75599 Alloc PE / Size 75599 / 295.31 GiB Free PE / Size 0 / 0 VG UUID HstdF7-UfHF-h2vK-mHpB-iURB-YO4a-ZIeTSs --- Volume group --- VG Name VolGroup System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size 488.28 GiB PE Size 4.00 MiB Total PE 124999 Alloc PE / Size 124999 / 488.28 GiB Free PE / Size 0 / 0 VG UUID 5o8RVG-g0kR-ncUN-K44V-xcVw-esne-HQKHrR
2つのVGがありますが、今回は「VolGroup00」を拡張します。
VG(VolumeGroup)拡張
# vgextend VolGroup00 /dev/sdb5 Volume group "VolGroup00" successfully extended # pvdisplay -v /dev/sdb5 Using physical volume(s) on command line --- Physical volume --- PV Name /dev/sdb5 VG Name VolGroup00 PV Size 900.01 GiB / not usable 3.65 MiB Allocatable yes PE Size 4.00 MiB Total PE 230402 Free PE 230402 Allocated PE 0 PV UUID k7nprd-HXRc-MmRQ-dfEP-JerS-vtqn-ybm0CK # vgdisplay --- Volume group --- VG Name VolGroup00 System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 3 Act PV 3 VG Size 1.17 TiB PE Size 4.00 MiB Total PE 306001 Alloc PE / Size 75599 / 295.31 GiB Free PE / Size 230402 / 900.01 GiB VG UUID HstdF7-UfHF-h2vK-mHpB-iURB-YO4a-ZIeTSs
物理ボリュームがVG「VolGroup00」に所属しており、かつVG「VolGroup00」の容量が拡張されています。
LV(Logical Volume)の確認
# lvdisplay --- Logical volume --- LV Path /dev/VolGroup00/LogVol00 LV Name LogVol00 VG Name VolGroup00 LV UUID Gu5YIo-HjiV-OcdP-xzeX-g9xn-oyr6-tbqDvU LV Write Access read/write LV Creation host, time localhost.localdomain, 2013-08-13 22:51:36 +0900 LV Status available # open 1 LV Size 295.31 GiB Current LE 75599 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1 --- Logical volume --- LV Path /dev/VolGroup/LogVol00 LV Name LogVol00 VG Name VolGroup LV UUID WAReRP-SClk-MpsC-oITR-Fpfb-QCbr-8IdWPY LV Write Access read/write LV Creation host, time localhost.localdomain, 2013-08-13 22:50:31 +0900 LV Status available # open 1 LV Size 488.28 GiB Current LE 124999 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
LV拡張用のパラメータ取得
# pvdisplay --- Physical volume --- PV Name /dev/sda3 VG Name VolGroup00 PV Size 195.31 GiB / not usable 4.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 49999 Free PE 0 Allocated PE 49999 PV UUID Y8cRJ0-DARD-YFA2-3Ncq-OHOo-JUk5-fheULi --- Physical volume --- PV Name /dev/sda6 VG Name VolGroup00 PV Size 100.00 GiB / not usable 1.65 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 25600 Free PE 0 Allocated PE 25600 PV UUID K9z05R-knpR-2dFz-zN17-yDec-9tS7-P0441N --- Physical volume --- PV Name /dev/sdb5 VG Name VolGroup00 PV Size 900.01 GiB / not usable 3.65 MiB Allocatable yes PE Size 4.00 MiB Total PE 230402 Free PE 230402 Allocated PE 0 PV UUID k7nprd-HXRc-MmRQ-dfEP-JerS-vtqn-ybm0CK --- Physical volume --- PV Name /dev/sda2 VG Name VolGroup PV Size 488.28 GiB / not usable 4.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 124999 Free PE 0 Allocated PE 124999 PV UUID bZ3rT7-eX3B-Z93t-TrJl-5vPc-m1X1-grykyP
物理ボリューム「/dev/sdb5」の物理エクステントのサイズ(PE Size)と物理エクステントの総数(Total PE)を取得します。 PE(物理エクステント)はLVMが扱う記憶領域の最小単位となり、4MiBがデフォルトのようです。ちなみにPE Sizeに出ている「MiB」ですが、メビバイトと言ってコンピューター上での「MB」ということです。詳しくはこちらを。
拡張できるサイズの計算
拡張できるサイズに関しては「PE Size×Total PE」で求められるので、拡張できるサイズは4×230402=921608MBになります。
LV(Logical Volume)拡張
# lvextend -L +921608M /dev/VolGroup00/LogVol00
Extending logical volume LogVol00 to 1.17 TiB
Logical volume LogVol00 successfully resized
LV拡張確認
# lvdisplay /dev/VolGroup00/LogVol00 --- Logical volume --- LV Path /dev/VolGroup00/LogVol00 LV Name LogVol00 VG Name VolGroup00 LV UUID Gu5YIo-HjiV-OcdP-xzeX-g9xn-oyr6-tbqDvU LV Write Access read/write LV Creation host, time localhost.localdomain, 2013-08-13 22:51:36 +0900 LV Status available # open 1 LV Size 1.17 TiB Current LE 306001 Segments 3 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1
LVのサイズが拡張されています。
ファイルシステムの拡大
# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /backup; on-line resizing required
old desc_blocks = 19, new_desc_blocks = 75
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 313345024 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 313345024 blocks long.
ディスク容量確認
# df -h Filesystem Size Used Avail Use% マウント位置 /dev/mapper/VolGroup-LogVol00 481G 150G 307G 33% / tmpfs 5.9G 72K 5.9G 1% /dev/shm /dev/mapper/VolGroup00-LogVol00 1.2T 168G 950G 15% /backup /dev/sda1 243M 60M 171M 26% /boot /var/opt/aipsnap/aiptmpfile.img 20G 130M 19G 1% /var/opt/aipsnap/tmp
ディスク容量が拡張されています。