LVMでボリューム操作の手順書を殴り書きします。
なお、今回の手順では新規追加HDDのパーティションをいじっておりません(/dev/sdb → /dev/sdb1,/dev/sdb2等)。
1つのHDD領域を全てLVMで操作するとしても、気になる方はパーティション操作した方が良いかもしれません。

論理ボリュームの構成図
上記画像の元となった
Visioファイル
========用語========
LVM・・・logical volume manager
PV・・・Physical Volume(物理ボリューム)
VG・・・Volume Group(ボリュームグループ)
LV・・・Logical Volume(論理ボリューム)
====================
========概略========
1.新規追加したHDDの確認
2.現在の状態確認
・ディスクの使用状況
・物理ボリューム
・ボリュームグループ
・論理ボリューム
3.領域への追加と拡張
・物理ボリュームへの追加
・ボリュームグループへの追加
・論理ボリュームの拡張
4.ファイルシステムのサイズを変更
====================
1.新規追加したHDDの確認
・dmesgコマンドで、新規追加したHDDのデバイスファイル名を確認します。
新規追加なのでパーティションテーブルが構成されていないHDDが
/dev/sdbにあることを確認できます。
# dmesg |grep unknown
sdb: unknown partition table |
・念のため、パーティション構成でも確認します。
新規追加した8GB(8388608KB)のHDDが
/dev/sdbにあることが確認できます。
# cat /proc/partitions
major minor #blocks name
8 0 20971520 sda
8 1 102400 sda1
8 2 20868096 sda2
8 16 8388608 sdb
253 0 2097152 dm-0
253 1 18767872 dm-1 |
2.現在の状態確認
・ディスクの使用状況を確認します。
“/dev/mapper/vg_hoge-LogVol00″が”/”に、
“/dev/sda1(LVMではない)”が”/boot”に
それぞれがマウントされていることがわかります。
# df -m
Filesystem 1M-ブロック 使用 使用可 使用% マウント位置
/dev/mapper/vg_hoge-LogVol00
18040 1480 15644 9% /
tmpfs 1004 0 1004 0% /dev/shm
/dev/sda1 97 57 36 62% /boot |
・物理ボリュームの状態確認をします。”/dev/sda1″はLVMではないので表示されません。
物理ボリューム”/dev/sda2″が”vg_hoge”に属していることがわかります。
# pvdisplay -C
PV VG Fmt Attr PSize PFree
/dev/sda2 vg_hoge lvm2 a- 19.90g 0
# pvdisplay /dev/sda2
— Physical volume —
PV Name /dev/sda2
VG Name vg_hoge
PV Size 19.90 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 5094
Free PE 0
Allocated PE 5094
PV UUID YyC72t-RbiZ-j1bu-DPOO-u0A0-V2Tj-8Zh40L |
・ボリュームグループの状態を確認します。
vg_hogeグループには”/dev/sda2″のみ属しているのでPVは
1、論理ボリュームは”LogVol00 = /”と”LogVol01 = swap”に
それぞれが使用されているのでLVは
2になります。
# vgdisplay -C
VG #PV #LV #SN Attr VSize VFree
vg_hoge 1 2 0 wz–n- 19.90g 0
# vgdisplay
— Volume group —
VG Name vg_hoge
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 19.90 GiB
PE Size 4.00 MiB
Total PE 5094
Alloc PE / Size 5094 / 19.90 GiB
Free PE / Size 0 / 0
VG UUID IYjRRc-0ecT-Jhnu-SDnx-Iqk6-INWZ-75xVUm |
・論理ボリュームの状態を確認します。
LogVol00と
LogVol01の2グループあるのがわかります。
# lvdisplay -C
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
LogVol00 vg_hoge -wi-ao 17.90g
LogVol01 vg_hoge -wi-ao 2.00g
# lvdisplay
— Logical volume —
LV Name /dev/vg_hoge/LogVol01
VG Name vg_hoge
LV UUID Bu8RfR-LfAm-riOh-GV6S-9DSp-vlCc-oG2DMG
LV Write Access read/write
LV Status available
# open 1
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
— Logical volume —
LV Name /dev/vg_hoge/LogVol00
VG Name vg_hoge
LV UUID fc0fD0-6m2f-etmN-JqGb-95Ax-L3DK-OttDS8
LV Write Access read/write
LV Status available
# open 1
LV Size 17.90 GiB
Current LE 4582
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1 |
3.領域への追加と拡張
・物理ボリュームに”/dev/sdb”を追加し、その後の状態を確認します。
# pvcreate /dev/sdb
Physical volume “/dev/sdb” successfully created
# pvdisplay -C
PV VG Fmt Attr PSize PFree
/dev/sda2 vg_hoge lvm2 a- 19.90g 0
/dev/sdb lvm2 a- 8.00g 8.00g |
・ボリュームグループの拡張を行います。
”vg_hoge”ボリュームグループへ”/dev/sdb”デバイスを追加します。
その後、追加した分だけサイズが大きくなっていることを確認します。例では19.90GBから27:89GBに増え、空きサイズが8.00GB増えてます。
# vgextend vg_hoge /dev/sdb
Volume group “vg_hoge” successfully extended
# vgdisplay -C
VG #PV #LV #SN Attr VSize VFree
vg_hoge 2 2 0 wz–n- 27.89g 0 |
・論理ボリュームを拡張します。
今回は”/”を拡張しますので”/dev/vg_hoge/LogVol00″を指定します。
下記コマンドだと空き領域を100%割り当てる場合ですので、オプションは
“-l(小文字のエル)”になります。
# lvextend -l +100%FREE /dev/vg_hoge/LogVol00
Extending logical volume LogVol00 to 25.89 GiB
Logical volume LogVol00 successfully resized |
サイズ指定だと”-L(大文字のエル)”になりますが、加減が難しくて空き容量以上に割り当てようとして
下記のようなエラーが出る場合があります。今回の場合だと8GB指定ではなく7.99GB指定で成功しました。
#失敗例
# lvextend -L +8GB /dev/vg_hoge/LogVol00
Extending logical volume LogVol00 to 25.90 GiB
Insufficient free space: 2048 extents needed, but only 2047 available
# lvextend -L +8.00GB /dev/vg_hoge/LogVol00
New size given (2048 extents) not larger than existing size (4582 extents)
Run `lvextend –help’ for more information.
#成功例
# lvextend -L +7.99GB /dev/vg_hoge/LogVol00
Rounding up size to full physical extent 8.00 GiB
Extending logical volume LogVol00 to 25.89 GiB
Logical volume LogVol00 successfully resized |
4.ファイルシステムのサイズを変更
・ファイルシステムのサイズを変更して実際に使用できるようにします。
# resize2fs /dev/mapper/vg_hoge-LogVol00
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/vg_hoge-LogVol00 is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 2
Performing an on-line resize of /dev/mapper/vg_hoge-LogVol00 to 6788096 (4k) blocks.
The filesystem on /dev/mapper/vg_hoge-LogVol00 is now 6788096 blocks long. |
なお、論理ボリュームの拡張に失敗していた場合、以下のように
“ファイルシステムのリサイズは必要ない”エラーが出ます。
# resize2fs /dev/mapper/vg_hoge-LogVol00
resize2fs 1.41.12 (17-May-2010)
The filesystem is already 4691968 blocks long. Nothing to do! |
・最後に、ディスクの使用状況を確認します。
”/”の総容量と空き容量が拡張した分だけ増えていることを確認します。
# df -m
Filesystem 1M-ブロック 使用 使用可 使用% マウント位置
/dev/mapper/vg_hoge-LogVol00
26100 1482 23298 6% /
tmpfs 1004 0 1004 0% /dev/shm
/dev/sda1 97 57 36 62% /boot |
===========================================================================================================
いうまでもありませんが、ボリュームグループを構成しているHDDのどれかが死んだ場合、そのHDDを利用しているボリュームグループに
アクセスできなくなります。
なお、ボリュームグループにアクセスできなくなってもデータが生きたまま復旧すればアクセス出来るようになります。

ボリュームグループの構成が壊れた時
環境
OS・・・・・・・・・・・・・CentOS 6.0(64bit)
ファイルシステム・・ext4
LVM・・・・・・・・・・・・lvm2-2.02.72-8.el6_0.4.x86_64
pvdisplay 物理ボリュームの情報を表示
pvcreate 物理ボリュームの作成
pvscan 物理ボリュームを検出
pvchange 物理ボリュームの属性を変更
pvremove 物理ボリュームを削除
vgdisplay ボリュームグループの情報を表示
vgcreate ボリュームグループの作成
vgscan ボリュームグループの情報を検出
vgchange ボリュームグループの属性を変更
vgextend ボリュームグループに物理ボリュームを追加
vgmerge 複数のボリュームグループを 1 つに結合
vgsplit ボリュームグループを分割
vgremove ボリュームグループから物理ボリュームを削除
lvdisplay 論理ボリュームの情報を表示
lvcreate ボリュームグループに論理ボリュームを作成
lvscan 論理ボリュームを検出
lvchange 論理ボリュームの属性を変更
lvextend 論理ボリュームのサイズを拡大
lvreduce 論理ボリュームのサイズを縮小
lvremove 論理ボリュームをボリュームグループから削除
・スラッシュルートディレクトリをオンライン拡張出来るのに、Oracleとかならいざ知らずヘッポコアプリの停止なんざ必要あるわけない。
・別RAIDボリューム同士では拡張できない・・・だと?LVMで2TB以上のボリュームは作成できない・・・だと?ハハハ
自分のことなら気の毒になるくらい逃げ腰なのに、他人がするなら未確認で客に「出来ます」と断言する上長がいる昨今
いかがお過ごしでしょうか。
いくら雑用係とはいっても五分の魂がございますので、いつかぶん殴るなり陥れるなりしようと思います。