LVM

前提 †

LVMは下記のようなシステムになっています。
asterisk Fedora - Fedora5/論理ボリューム
物理ボリューム PhysicalVolume(PV) 物理的なディスク領域で、/dev/hda2など
ボリュームグループ VolumeGroup(VG) PVをグループにした(ハードディスク的な)領域
論理ボリューム LogicalVolume(LV) VGから作成した論理的なパーティション領域
そして、LV上にファイルシステムが作られています。
以下の作業はすべてオンラインで(サービスを稼働しながら)行うことができます。
サーバ停止が必要なのは物理的にHDDを増設するときだけです。
以下のコマンドはFedora 17で確認。
現在の状態を見る †

# pvdisplay
# vgdisplay
# lvdisplay
# df -h
HDDを増設したらやること †

取り付け時にモデル名とシリアル番号をメモっておく
ディスクIDの確認。モデル名とシリアル番号が一致するものを探す
$ ls -l /dev/disk/by-id/
不良セクタのチェック
時間かかるので退社前とかに仕掛ける
# badblocks -wvs /dev/disk/by-id/(ディスクID)
PVの作成
# pvcreate /dev/disk/by-id/(ディスクID)
VGに組み込む
# vgextend (VGのID) /dev/disk/by-id/(ディスクID)
パーティションサイズを拡張する †

例: /homeを500GB拡張する
# lvextend -L +500G /dev/mapper/(LVのID)
# resize2fs /dev/mapper/(LVのID)
例: 最大サイズまで拡張する
# lvresize /dev/ubuntu-vg/root -l+100%FREE
VirtualBoxでの拡張例

ホストOSで仮想ディスクを拡大。なぜかGUIではできない
$ VBoxManage modifyhd hoge.vdi --resize 15360 # in MB
ゲストOSでパーティション・LVM・ファイルシステムを拡大
partedはマウント中でも問題なかったけど、レスキューモードでやるべきなのかな
# parted
(parted) unit s
(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 31457280s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 2048s 499711s 497664s primary ext2 boot
2 501758s 20969471s 20467714s extended
5 501760s 20969471s 20467712s logical lvm
(parted) resizepart 2 31457279s
(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 31457280s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 2048s 499711s 497664s primary ext2 boot
2 501758s 31457279s 30955522s extended
5 501760s 20969471s 20467712s logical lvm
(parted) resizepart 5 31457279s
(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 31457280s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 2048s 499711s 497664s primary ext2 boot
2 501758s 31457279s 30955522s extended
5 501760s 31457279s 30955520s logical lvm
(parted) exit
# pvresize /dev/sda5
# lvresize /dev/ubuntu-vg/root -l+100%FREE
# resize2fs /dev/mapper/ubuntu--vg-root
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/mapper/ubuntu--vg-root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mapper/ubuntu--vg-root is now 3344384 blocks long.