背景
システムの運用において、データ量の増加に伴いルートパーティションの空き容量が不足することがあります。この問題を解決するために、ルートパーティションの拡張が必要となります。
制約条件
- ルートパーティションは論理ボリューム(LVM)で構成されている必要があります
拡張方法
方法1:空きディスクからの拡張
以下の手順で、未使用のディスクをルートパーティションに追加します。
# 新しいディスクのパーティション作成
[root@server ~]# fdisk /dev/sdc
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x12345678.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-4194303, default 2048):
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303):
Created a new partition 1 of type 'Linux' and of size 2 GiB.
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
# 物理ボリュームの作成
[root@server ~]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created.
# ボリュームグループへの拡張
[root@server ~]# vgextend systemvg /dev/sdc1
# 論理ボリュームの拡張
[root@server ~]# lvextend -l +100%FREE /dev/mapper/systemvg-root
# ファイルシステムの拡張
[root@server ~]# xfs_growfs /
方法2:空きパーティションからの拡張
システム内の未使用パーティションを利用してルートパーティションを拡張します。
# 現在のディスク使用状況の確認
[root@server ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/systemvg-root 18G 7.5G 10.5G 42% /
/dev/sda1 497M 172M 326M 35% /boot
# ディスクパーティションの確認
[root@server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 19.5G 0 part
├─systemvg-root 253:0 0 17.5G 0 lvm /
└─systemvg-swap 253:1 0 2G 0 lvm [SWAP]
# 新しいパーティションの作成
[root@server ~]# fdisk /dev/sda
Command (m for help): n
# プライマリパーティションとして作成
# デフォルト値で進める
# パーティションタイプを8e(LVM)に変更
# 変更を保存
# パーティション情報の更新
[root@server ~]# partprobe
# 物理ボリュームの作成
[root@server ~]# pvcreate /dev/sda3
# ボリュームグループへの追加
[root@server ~]# vgextend systemvg /dev/sda3
# 論理ボリュームの拡張
[root@server ~]# lvextend -l +100%FREE /dev/mapper/systemvg-root
# ファイルシステムの拡張
[root@server ~]# xfs_growfs /
# 拡張結果の確認
[root@server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 19.5G 0 part
│ ├─systemvg-swap 253:1 0 2G 0 lvm
│ └─systemvg-root 253:0 0 197.5G 0 lvm /
└─sda3 8:3 0 180.5G 0 part
└─systemvg-root 253:0 0 197.5G 0 lvm /
方法3:ボリュームグループ内の空き領域の利用
既存のボリュームグループ内の未使用領域を直接利用してルートパーティションを拡張します。
# ボリュームグループ情報の確認
[root@server ~]# vgdisplay
--- Volume group ---
VG Name systemvg
...
VG Size 713.13 GiB
PE Size 4.00 MiB
Total PE 259362
Alloc PE / Size 189440 / 440.00 GiB
Free PE / Size 69922 / 273.13 GiB
# ボリュームグループ内の空き領域を利用して拡張
[root@server ~]# lvresize -L +200G /dev/mapper/systemvg-root
# ファイルシステムの拡張
[root@server ~]# xfs_growfs /
# 拡張後の確認
[root@server ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/systemvg-root 218G 7.5G 210G 4% /