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.