24時間365日稼働する本番DBやサービスサーバーのディスク使用率が90%を超えた際、メンテナンス停止を伴わずに **「オンライン状態で安全にディスクを拡張できるか」**は現場エンジニアの必須スキルです。
RHEL/Rocky Linux/CentOS (7 〜 9) や Ubuntu (20.04 〜 24.04 LTS) など、仮想化(VMware、KVM、Nutanix、SimpliVity)やクラウド環境において、サーバーの再起動やアンマウント(umount)を行わず、完全無停止でディスクを拡張する標準手順をまとめました。
1. 全体作業フロー(4ステップ)
flowchart LR
A["1. 仮想ディスク/ストレージ増設"] --> B["2. LinuxカーネルSCSI再スキャン"]
B --> C["3. LVM拡張 (pvresize / lvextend)"]
C --> D["4. ファイルシステム拡張 (xfs_growfs / resize2fs)"]
2. Step 1: SCSIバス再スキャンによる容量認識
ハイパーバイザ側でディスクサイズを拡張後(例: 100GB -> 200GB)、Linuxカーネルに再認識させます:
# 対象ディスクが /dev/sdb の場合
echo 1 > /sys/class/block/sdb/device/rescan
# 認識確認
lsblk /dev/sdb
dmesg | tail -n 15
3. Step 2: パーティションテーブルの拡張(必要な場合)
パーティション(/dev/sdb1)を切っている場合は growpart で拡張します(ディスク直PVの場合は不要):
growpart /dev/sdb 1
4. Step 3: LVM物理ボリューム(PV)および論理ボリューム(LV)の拡張
1) PVのリサイズ
pvresize /dev/sdb
pvs
vgs
2) LVの拡張
# ボリュームグループの空き容量を100%割り当てる場合
lvextend -l +100%FREE /dev/mapper/vg_data-lv_data
5. Step 4: ファイルシステムのオンライン拡張(XFS vs EXT4)
# ファイルシステムの種類を確認
df -Th /data
XFSの場合(RHEL / Rocky Linux標準): マウント先ディレクトリを指定します。
xfs_growfs /data(注意: XFSは拡張のみ可能で、縮小は不可です)
EXT4の場合(Ubuntu標準): LVデバイスパスを指定します。
resize2fs /dev/mapper/vg_data-lv_data
6. 完了確認
df -h /data
サービスI/Oを一切止めることなく、数秒で使用可能容量が増加していることが確認できます。