結論:PV・VG・LV・ファイルシステムを分けて見る
物理ディスク/パーティション
↓
PV(Physical Volume)
↓
VG(Volume Group)
↓
LV(Logical Volume)
↓
ext4・XFSなどのファイルシステム
↓
マウントポイント
dfが示す空き容量は主に最上部のファイルシステムです。VGに空きがあっても、LVとファイルシステムへ割り当てなければdfには現れません。
pvcreate、vgextend、lvextendを実行する前に、現在の出力とバックアップを保存します。デバイス名の取り違えはデータ損失につながります。PV・VG・LVとは
| 層 | 役割 | 確認コマンド |
|---|---|---|
| PV | ディスクやパーティションをLVMで利用可能にした領域 | pvs |
| VG | 複数PVの容量をまとめるストレージプール | vgs |
| LV | VGから切り出し、ファイルシステムなどに使う論理領域 | lvs |
| ファイルシステム | ファイルとディレクトリを保存する形式 | lsblk -f、df -hT |
構成全体を確認する
lsblk -e 7 -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
findmnt --target /
df -hT
lsblkのツリーで、物理ディスクからパーティション、LVM、マウントポイントまでの関係を確認します。暗号化やRAIDが間にある場合は、LVMだけの単純な構成ではありません。
pvsで物理ボリュームを確認する
sudo pvs -o pv_name,vg_name,pv_size,pv_free,pv_uuid
PVがどのVGへ属し、各PVにどれだけ未割り当て領域があるかを確認します。PVに空きがあっても、VG全体の割当方針や構成を確認してから使用します。
vgsでストレージプールの空きを確認する
sudo vgs -o vg_name,pv_count,lv_count,vg_size,vg_free
VG FreeまたはVFreeが、LVへまだ割り当てられていない容量です。ここに十分な空きがあれば、新しいSSDを追加せず既存LVを拡張できる可能性があります。
lvsで論理ボリュームを確認する
sudo lvs -a -o lv_name,vg_name,lv_size,lv_attr,seg_type,data_percent,devices
通常のlinear LVだけでなく、thin pool、snapshot、RAIDなどでは確認項目と拡張手順が変わります。data_percentが表示される構成では、プール自体の使用率にも注意します。
3種類の「空き」を区別する
| 空き | 意味 | 増やす対象 |
|---|---|---|
dfのAvailable | ファイルシステム内でファイルに使える空き | ファイル整理またはファイルシステム拡張 |
vgsのVFree | VG内でLVへ未割り当ての空き | LVへ割り当てる |
| ディスクの未割り当て領域 | パーティションやPVになっていない領域 | パーティション・PV設計を確認 |
既存のVG空きから拡張する考え方
例として、対象が通常のLVで、VGに20GiB以上の空きがあり、ファイルシステムが対応している場合は、次のような操作が候補になります。
# 例示。実際のLVパスとバックアップを確認してから実行
sudo lvextend --resizefs --size +20G /dev/vg_data/lv_data
--resizefs(-r)はfsadmなどを介して対応ファイルシステムも拡張します。ただし、すべての形式と構成を同じ方法で処理できるわけではありません。実行前後に次を確認します。
findmnt --target /data
sudo vgs
sudo lvs
df -hT /data
縮小は拡張より危険で、XFSのように縮小をサポートしないファイルシステムもあります。本記事の手順を逆に実行して縮小してはいけません。
VGにも空きがない場合
不要データを整理してもVGと物理ディスクに空きがなければ、新しいディスクをPVとして追加するか、別ファイルシステムとしてマウントする方法を検討します。
購入前にLinux用SSDの接続方式と容量を確認し、取り付け後はSSDを追加してマウントする手順へ進んでください。