LVMの構築方法(論理ボリュームの大きさを拡張する) [Linux(LVM/RAID/Storage)]
すでにあるLVMの論理ボリュームの容量が不足してしまい、いよいよ増設しなければ!というケースでの操作について説明します。
論理ボリュームを拡張しても、それはすぐにファイルシステムの容量が広がる…というものではありません。論理ボリュームの拡張のほかに、ファイルシステムの拡張という手順が必要になりますので注意が必要です。
手順を整理すると…
①とにかくディスクを増設する
↓
②増設したディスクに、物理ボリュームを作成してからボリュームグループへの追加を行う
↓
③論理ボリュームの拡張を行う
↓
④ファイルシステムの拡張を行う
という手順を踏みます。
なお、我が家ではファイルシステムのext3を使用しているので、④の手順がちょっぴり面倒くさくてイカしてないです。
ステップ1:とにかくディスクを増設する
省略
ステップ2:増設したディスクに、物理ボリュームを作成してからボリュームグループへの追加を行う
今回の場合、例によって例のごとく、USBなHDDを増設したので、dmesgをみてデバイス名を確認します。
ということで、新しいディスクはsdcということがわかります。
まあ、必要無いといえば必要無いけど、個人的な宗教上の理由によりfdiskでパーティションを切りまして、pvcreate、vgextendの一連の処理を行います。
ここまででボリュームグループは大きくなりました。確認してみます。
ステップ3:論理ボリュームの拡張を行う
今度は、ボリュームグループ内の空き物理エクステント(Free PE)をすでにある論理ボリュームに追加で割り当てる操作を行います。
物理エクステントの状態といえば…
現時点で59617個の物理エクステントを使っていて、あと24310個を追加できます。要するに全体としては83927個なので、これを全部すでにある論理ボリュームに割り当てたいのです。
使用するコマンドは lvextend コマンドです。「-l」オプションに続けて物理エクステントの個数を指定しますが、2通りの記述方法が使えます。
前者の記述方法は、「拡張後の」物理エクステントの個数を直接指定する方法。後者の記述方法は「増加させる」物理エクステント数を指定する相対的な方法です。どっちでも支障ありません。
ちなみに私は前者の方が好みです。(笑)というわけで、前者の方法でさくっと容量拡張します。
あっという間に終了します。これで論理ボリュームとしては拡張が完了しました。確認してみましょう。
ステップ4:ファイルシステムの拡張を行う
論理ボリュームの拡張をしても、dfコマンドで容量を確認すると…
論理ボリュームとしては2.56TBあることになっていますが、ファイルシステムとしては1.8Tほどしか無いことになっています。これでは都合が悪いので、ファイルシステムを拡張しなければなりません。
ファイルシステムの種類によってこの操作方法は異なりますので、もしもあなたがext3以外のファイルシステムを使用している場合、この手順をそっくりそのまま実行しないでください。
ext3のファイルシステムの拡張方法としては、 以下のような手順を踏みます。
手順1:ファイルシステムをいったんアンマウントします
手順2:アンマウントしたファイルシステムを fsck コマンドでチェックします
手順3:ファイルシステムを resize2fs コマンドで拡張します
手順4:ファイルシステムを再びマウントします
そんな訳で、基本的にはext2/ext3ファイルシステムをオンラインのまま拡張することは残念ながらできません。(できるようにするツールはあるそうですが…)
では、実行します。
ファイルシステムをいったんアンマウントするところは、特に難しいことはありませんので省略。
続いてアンマウントしたファイルシステムをfsckコマンドでチェックします。コマンドとしては、「-f」オプションを使用することになります。チェックに時間がかかるので気長に待ちましょう。
fsckが終わればいよいよファイルシステムの拡張です。
resize2fsコマンドに、ファイルシステムのデバイス名と、拡張(変更後)のファイルシステムの容量を指定しますが、容量については指定を省略すると「最大容量」まで拡張してくれます。
あとはマウントしてみて容量が拡張されたことを確認してみます。
論理ボリュームを拡張しても、それはすぐにファイルシステムの容量が広がる…というものではありません。論理ボリュームの拡張のほかに、ファイルシステムの拡張という手順が必要になりますので注意が必要です。
手順を整理すると…
①とにかくディスクを増設する
↓
②増設したディスクに、物理ボリュームを作成してからボリュームグループへの追加を行う
↓
③論理ボリュームの拡張を行う
↓
④ファイルシステムの拡張を行う
という手順を踏みます。
なお、我が家ではファイルシステムのext3を使用しているので、④の手順がちょっぴり面倒くさくてイカしてないです。
ステップ1:とにかくディスクを増設する
省略
ステップ2:増設したディスクに、物理ボリュームを作成してからボリュームグループへの追加を行う
今回の場合、例によって例のごとく、USBなHDDを増設したので、dmesgをみてデバイス名を確認します。
[root@chihiro ~]# dmesg Linux version 2.6.18-92.1.13.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)) #1 SMP Wed Sep 24 19:32:05 EDT 2008 Command line: ro root=LABEL=/1 (途中省略) usb 1-2: new high speed USB device using ehci_hcd and address 3 usb 1-2: configuration #1 chosen from 1 choice scsi3 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 3 usb-storage: waiting for device to settle before scanning Vendor: I-O DATA Model: HDZ-UE810 Rev: 4B04 Type: Direct-Access ANSI SCSI revision: 00 SCSI device sdc: 1593188352 512-byte hdwr sectors (815712 MB) sdc: test WP failed, assume Write Enabled sdc: assuming drive cache: write through (以下略)
ということで、新しいディスクはsdcということがわかります。
まあ、必要無いといえば必要無いけど、個人的な宗教上の理由によりfdiskでパーティションを切りまして、pvcreate、vgextendの一連の処理を行います。
[root@chihiro ~]# fdisk /dev/sdc このディスクのシリンダ数は 99171 に設定されています。 間違いではないのですが、1024 を超えているため、以下の場合 に問題を生じうる事を確認しましょう: 1) ブート時に実行するソフトウェア (例. バージョンが古い LILO) 2) 別の OS のブートやパーティション作成ソフト (例. DOS FDISK, OS/2 FDISK) コマンド (m でヘルプ): p Disk /dev/sdc: 815.7 GB, 815712436224 bytes 255 heads, 63 sectors/track, 99171 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sdc1 1 99171 796591026 8e Linux LVM コマンド (m でヘルプ): w 領域テーブルは交換されました! [root@chihiro ~]# pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created [root@chihiro ~]# vgextend mystorage /dev/sdc1 Volume group "mystorage" successfully extended
ここまででボリュームグループは大きくなりました。確認してみます。
[root@chihiro ~]# vgdisplay -v Finding all volume groups Finding volume group "mystorage" --- Volume group --- VG Name mystorage 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 2.56 TB PE Size 32.00 MB Total PE 83927 Alloc PE / Size 59617 / 1.82 TB Free PE / Size 24310 / 759.69 GB VG UUID Rh2eH5-oVGz-kw50-MEb7-DnPy-Kj6v-7BMelq --- Logical volume --- LV Name /dev/mystorage/vol00 VG Name mystorage LV UUID CzkjoT-deWp-ashv-n3t2-ESv8-5yx5-Onj1oF LV Write Access read/write LV Status available # open 1 LV Size 1.82 TB Current LE 59617 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 --- Physical volumes --- PV Name /dev/sdb1 PV UUID wf4W3u-M1jZ-WN06-oevF-6G3e-MFCA-PGERP8 PV Status allocatable Total PE / Free PE 59617 / 0 PV Name /dev/sdc1 PV UUID h1RkfJ-9NZX-iL65-iJA6-sBVJ-Aqv4-eMsoaP PV Status allocatable Total PE / Free PE 24310 / 24310
ステップ3:論理ボリュームの拡張を行う
今度は、ボリュームグループ内の空き物理エクステント(Free PE)をすでにある論理ボリュームに追加で割り当てる操作を行います。
物理エクステントの状態といえば…
Total PE 83927 Alloc PE / Size 59617 / 1.82 TB Free PE / Size 24310 / 759.69 GB
現時点で59617個の物理エクステントを使っていて、あと24310個を追加できます。要するに全体としては83927個なので、これを全部すでにある論理ボリュームに割り当てたいのです。
使用するコマンドは lvextend コマンドです。「-l」オプションに続けて物理エクステントの個数を指定しますが、2通りの記述方法が使えます。
# lvextend -l 83927 /dev/mystorage/vol00 #lvextend -l +24310 /dev/mystorage/vol00
前者の記述方法は、「拡張後の」物理エクステントの個数を直接指定する方法。後者の記述方法は「増加させる」物理エクステント数を指定する相対的な方法です。どっちでも支障ありません。
ちなみに私は前者の方が好みです。(笑)というわけで、前者の方法でさくっと容量拡張します。
[root@chihiro ~]# lvextend -l 83927 /dev/mystorage/vol00 Extending logical volume vol00 to 2.56 TB Logical volume vol00 successfully resized
あっという間に終了します。これで論理ボリュームとしては拡張が完了しました。確認してみましょう。
[root@chihiro ~]# vgdisplay -v Finding all volume groups Finding volume group "mystorage" --- Volume group --- VG Name mystorage System ID Format lvm2 Metadata Areas 2 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 2 Act PV 2 VG Size 2.56 TB PE Size 32.00 MB Total PE 83927 Alloc PE / Size 83927 / 2.56 TB Free PE / Size 0 / 0 VG UUID Rh2eH5-oVGz-kw50-MEb7-DnPy-Kj6v-7BMelq --- Logical volume --- LV Name /dev/mystorage/vol00 VG Name mystorage LV UUID CzkjoT-deWp-ashv-n3t2-ESv8-5yx5-Onj1oF LV Write Access read/write LV Status available # open 1 LV Size 2.56 TB Current LE 83927 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 --- Physical volumes --- PV Name /dev/sdb1 PV UUID wf4W3u-M1jZ-WN06-oevF-6G3e-MFCA-PGERP8 PV Status allocatable Total PE / Free PE 59617 / 0 PV Name /dev/sdc1 PV UUID h1RkfJ-9NZX-iL65-iJA6-sBVJ-Aqv4-eMsoaP PV Status allocatable Total PE / Free PE 24310 / 0
ステップ4:ファイルシステムの拡張を行う
論理ボリュームの拡張をしても、dfコマンドで容量を確認すると…
[root@chihiro ~]# df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/sda3 89G 2.2G 82G 3% / /dev/sda1 251M 22M 217M 9% /boot tmpfs 1001M 0 1001M 0% /dev/shm /dev/mapper/mystorage-vol00 1.8T 196M 1.7T 1% /mnt/mystorage
論理ボリュームとしては2.56TBあることになっていますが、ファイルシステムとしては1.8Tほどしか無いことになっています。これでは都合が悪いので、ファイルシステムを拡張しなければなりません。
ファイルシステムの種類によってこの操作方法は異なりますので、もしもあなたがext3以外のファイルシステムを使用している場合、この手順をそっくりそのまま実行しないでください。
ext3のファイルシステムの拡張方法としては、 以下のような手順を踏みます。
手順1:ファイルシステムをいったんアンマウントします
手順2:アンマウントしたファイルシステムを fsck コマンドでチェックします
手順3:ファイルシステムを resize2fs コマンドで拡張します
手順4:ファイルシステムを再びマウントします
そんな訳で、基本的にはext2/ext3ファイルシステムをオンラインのまま拡張することは残念ながらできません。(できるようにするツールはあるそうですが…)
では、実行します。
ファイルシステムをいったんアンマウントするところは、特に難しいことはありませんので省略。
続いてアンマウントしたファイルシステムをfsckコマンドでチェックします。コマンドとしては、「-f」オプションを使用することになります。チェックに時間がかかるので気長に待ちましょう。
[root@chihiro ~]# fsck -f /dev/mystorage/vol00 fsck 1.39 (29-May-2006) e2fsck 1.39 (29-May-2006) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information LABEL=MyStorage: 14/244203520 files (7.1% non-contiguous), 7713456/488382464 blocks
fsckが終わればいよいよファイルシステムの拡張です。
resize2fsコマンドに、ファイルシステムのデバイス名と、拡張(変更後)のファイルシステムの容量を指定しますが、容量については指定を省略すると「最大容量」まで拡張してくれます。
[root@chihiro ~]# resize2fs /dev/mystorage/vol00 resize2fs 1.39 (29-May-2006) Resizing the filesystem on /dev/mystorage/vol00 to 687529984 (4k) blocks. The filesystem on /dev/mystorage/vol00 is now 687529984 blocks long.
あとはマウントしてみて容量が拡張されたことを確認してみます。
[root@chihiro ~]# mount /dev/mystorage/vol00 /mnt/mystorage [root@chihiro ~]# df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/sda3 89G 2.2G 82G 3% / /dev/sda1 251M 22M 217M 9% /boot tmpfs 1001M 0 1001M 0% /dev/shm /dev/mapper/mystorage-vol00 2.6T 203M 2.5T 1% /mnt/mystorage
コメント 0