SSブログ

LVMの構築方法(論理ボリュームの大きさを拡張する) [Linux(LVM/RAID/Storage)]

 すでにあるLVMの論理ボリュームの容量が不足してしまい、いよいよ増設しなければ!というケースでの操作について説明します。

 論理ボリュームを拡張しても、それはすぐにファイルシステムの容量が広がる…というものではありません。論理ボリュームの拡張のほかに、ファイルシステムの拡張という手順が必要になりますので注意が必要です。

 手順を整理すると…

 ①とにかくディスクを増設する
 ↓
 ②増設したディスクに、物理ボリュームを作成してからボリュームグループへの追加を行う
 ↓
 ③論理ボリュームの拡張を行う
 ↓
 ④ファイルシステムの拡張を行う

 という手順を踏みます。
 なお、我が家ではファイルシステムの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

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0