LVMの追加方法

提供: UnixClassWiki
2015年7月27日 (月) 17:41時点におけるHironobu (トーク | 投稿記録)による版 (既存のVGに新たにPVを加える)

移動先: 案内検索

LVMを使っていない、あるいはパーティションの作成を知りたい場合は LVMの構築方法


LVM 既存のLVを拡張する

ここでは以下の説明をします。

  1. 既にLinux LVM のIDを持ったパーティションを既存のVGに追加する。
  2. 既存のLVにVGから容量を追加する。
  3. 拡大したLVにファイルシステムを合わせる。

LVMのパーティション作成できて/dev/sdc1という形で用意されていることを前提とします。

現在、多くのディストリビューションではインストール時にLVMをデフォルトで利用しているので、追加的にファイルシステムのサイズを拡張したり、あるいは別途ファイルシステムを作成するなどの場面が多いと思われます。 それらの場合は、こちらの手続きの流れになります。


既存のVGに新たにPVを加える

既存のVGに新しいPVを加えることでVGのサイズを大きくすることができます。 LVMのパーティション作成でき /dev/sdc1 が Linux LVM のIDであるという状態から説明を始めます。 まずVGが次のような状態にあるとします。


 # vgdisplay
  --- Volume group ---
  VG Name               vg_c0
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  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               11.50 GiB
  PE Size               4.00 MiB
  Total PE              2945
  Alloc PE / Size       2690 / 10.51 GiB
  Free  PE / Size       255 / 1020.00 MiB
  VG UUID               4OM01z-LWEi-MKym-efKo-xkmZ-VBhk-UVMg8h


ここにPVとなる /dev/sdc1 を vg_c0 に追加するにはコマンド vgextend を用います。


 # vgextend vg_c0 /dev/sdc1
 Volume group "vg_c0" successfully extended


PV ( /dev/sdc1 ) をVGに加えた結果は次のようになりました。


 # vgdisplay
  --- Volume group ---
  VG Name               vg_c0
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               12.00 GiB
  PE Size               4.00 MiB
  Total PE              3072
  Alloc PE / Size       2690 / 10.51 GiB
  Free  PE / Size       382 / 1.49 GiB
  VG UUID               4OM01z-LWEi-MKym-efKo-xkmZ-VBhk-UVMg8h


追加した前後で vgdisplay を実行し値の確認をしたわけですが、次のパラメータに注目してみましょう。


追加前:

  VG Size               11.50 GiB
  Total PE              2945
  Free  PE / Size       255 / 1020.00 MiB


追加後:

  VG Size               12.00 GiB
  Total PE              3072
  Free  PE / Size       382 / 1.49 GiB


/dev/sdc1 は500MiBの容量をもつブロックデバイスなので、 11.50 GiB のVGサイズが 12.00 GiB になります。 Total PE と Free PE がその分増えます。

LVの拡張

VGからLVへ容量を追加します。

現在のlv_rootをlvdisplayコマンドでチェックしてみます。

# lvdisplay /dev/vg_c0/lv_root
 --- Logical volume ---
 LV Path                /dev/vg_c0/lv_root
 LV Name                lv_root
 VG Name                vg_c0
 LV UUID                bHmGUa-ijIQ-esmq-j5lm-xbCZ-dxPY-dcnhHk
 LV Write Access        read/write
 LV Creation host, time c0.h2np, 2013-06-19 21:17:41 +0900
 LV Status              available
 # open                 1
 LV Size                6.57 GiB
 Current LE             1682
 Segments               2
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           253:0

コマンドlvextendを使いlv_rootに容量を追加します。 ここでは-l オプションで追加する容量(PEの量)を指定します。 現在VGで利用できるPEの量は382なので、そこから300を利用します。

# lvextend -l +300 /dev/vg_c0/lv_root
 Extending logical volume lv_root to 7.74 GiB
 Logical volume lv_root successfully resized

コマンドlvscanを使って確認をします。

 # lvscan
 ACTIVE            '/dev/vg_c0/lv_root' [7.74 GiB] inherit
 ...

ファイルシステムの拡張

lv_rootは6.57 GiBから7.74 GiBまで拡張しましたが、LVに存在しているファイルシステム自体はまだそのままのサイズです。 resize2fsを使って拡大します。

注意
/dev/vg_c0/lv_root のファイルシステムの種類はext4です。そのためファイルシステムがオンラインでも拡大できます。ファイルシステムのサイズを拡大するコマンドは、ファイルシステムの種類によって異なります。

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



目次へ あるいは Linux LVM