差分

LVMの追加方法

5,259 バイト追加, 2013年8月15日 (木) 11:31
ページの作成:「== LVM 既存のLVを拡張する == ここでは以下の説明をします。 # 既にLinux LVM のIDを持ったパーティションを既存のVGに追加する...」
== LVM 既存のLVを拡張する ==

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

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

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

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


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

既存のVGに新しいPVを加えることでVGのサイズを大きくすることができます。

LVMのパーティション作成でき/dev/sdc1がLinux LVMのIDであるという状態から説明を始めます。

まずVGが次のような状態にあるとします。

<tt>
# 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
</tt>


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


<tt>
# vgextend vg_c0 /dev/sdc1
Volume group "vg_c0" successfully extended
</tt>

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

<tt>
# 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
</tt>


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

追加前:

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

追加後:

<tt>
VG Size 12.00 GiB
Total PE 3072
Free PE / Size 382 / 1.49 GiB
</tt>

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


=== LVの拡張 ===

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

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

<tt>
# 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
</tt>

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

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


=== ファイルシステムの拡張 ===

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

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

<tt>
# 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.
</tt>
匿名利用者