partedコマンドを利用してディスクパーティションを拡張します。
環境
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
vmware ESXi イメージ プロファイル
ESXi-8.0U1a-21813344-standard (VMware, Inc.)
流れ
事前確認
物理ディスク拡張
ディスクアンマウント
パーティション拡張
ディスクマウント
ファイルシステム拡張
0.事前確認
ディスク拡張前の事前確認を行います。
lsblk -ia
物理ディスク情報確認
df -h
ファイルシステム情報確認
parted -l
パーティション情報確認
# lsblk -ia
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 16G 0 disk
|-sda1 8:1 0 1G 0 part /boot
`-sda2 8:2 0 15G 0 part /
sdb 8:16 0 5G 0 disk
|-sdb1 8:17 0 2G 0 part [SWAP]
|-sdb2 8:18 0 1G 0 part /home
`-sdb3 8:19 0 2G 0 part /data
sr0 11:0 1 1024M 0 rom
# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 909M 0 909M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.9M 911M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda2 15G 1.7G 14G 12% /
/dev/sdb2 1014M 33M 982M 4% /home
/dev/sdb3 2.0G 33M 2.0G 2% /data
/dev/sda1 1014M 137M 878M 14% /boot
tmpfs 184M 0 184M 0% /run/user/0
# parted -l
モデル: VMware Virtual disk (scsi)
ディスク /dev/sda: 17.2GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 17.2GB 16.1GB primary xfs
モデル: VMware Virtual disk (scsi)
ディスク /dev/sdb: 5369MB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 2150MB 2149MB primary linux-swap(v1)
2 2150MB 3223MB 1074MB primary xfs
3 3223MB 5369MB 2145MB primary xfs
当該領域にデータ保持確認用のファイル等も保存しておきます。
# ll /data
合計 0
drwxr-xr-x 2 root root 45 12月 7 21:16 test1
drwxr-xr-x 2 root root 6 12月 7 21:16 test2
drwxr-xr-x 2 root root 6 12月 7 21:16 test3
# ll -h /data/test1
合計 41M
-rw-r--r-- 1 root root 297 12月 7 21:16 file1
-rw-r--r-- 1 root root 38K 12月 7 21:16 file2
-rw-r--r-- 1 root root 41M 12月 7 21:16 file3
1.物理ディスク拡張
OSを停止し、物理ディスクの拡張を行います。
本環境ではvmware ESXiからディスク拡張を行います。
ディスク拡張後にOSを起動し、lsblk
コマンドにて物理ディスク容量が増えていることを確認します。
本環境ではsdb
が5G
から10G
に拡張されました。
# lsblk -ia
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 16G 0 disk
|-sda1 8:1 0 1G 0 part /boot
`-sda2 8:2 0 15G 0 part /
sdb 8:16 0 10G 0 disk
|-sdb1 8:17 0 2G 0 part [SWAP]
|-sdb2 8:18 0 1G 0 part /home
`-sdb3 8:19 0 2G 0 part /data
sr0 11:0 1 1024M 0 rom
2.ディスクアンマウント
拡張対象ディスクのアンマウントを行います。
# mount | grep /dev/sdb3
/dev/sdb3 on /data type xfs (rw,relatime,attr2,inode64,noquota)
# umount /dev/sdb3
# mount | grep /dev/sdb3
3.パーティション拡張
parted
コマンドによるパーティション拡張を行います。
# parted /dev/sdb
GNU Parted 3.1
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted)
拡張対象パーティションの番号を確認します。
(parted) print
モデル: VMware Virtual disk (scsi)
ディスク /dev/sdb: 10.7GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 2150MB 2149MB primary linux-swap(v1)
2 2150MB 3223MB 1074MB primary xfs
3 3223MB 5369MB 2145MB primary xfs
パーティションの拡張を行います。
resizepart
コマンドにて、パーティション番号と拡張容量を指定します。100%
で空き容量全体を割り当てます。
(parted) resizepart 3 100%
(parted)
ディスクのアンマウントを行っていない場合、以下にて処理が失敗します。
(parted) resizepart 3 100%
エラー: パーティション /dev/sdb3 は使用中です。Parted で操作する前に unmount してください。
容量が拡張されたことを確認します。
終了が5369MB
から10.7GB
へ、サイズが2145MB
から7514MB
へ拡張されました。
(parted) print
モデル: VMware Virtual disk (scsi)
ディスク /dev/sdb: 10.7GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 2150MB 2149MB primary linux-swap(v1)
2 2150MB 3223MB 1074MB primary xfs
3 3223MB 10.7GB 7514MB primary xfs
quit
でGNU Partedを終了します。
(parted) quit
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
#
4.ディスクマウント
自動マウントを利用してディスクを再マウントします。
# mount -a
# mount | grep /dev/sdb3
/dev/sdb3 on /data type xfs (rw,relatime,attr2,inode64,noquota)
5.ファイルシステム拡張
ディスクおよびパーティションに次いで、ファイルシステムも拡張します。
事前にファイルシステムサイズを確認します。
# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 909M 0 909M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.9M 911M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda2 15G 1.7G 14G 12% /
/dev/sdb2 1014M 33M 982M 4% /home
/dev/sda1 1014M 137M 878M 14% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/sdb3 2.0G 33M 2.0G 2% /data
xfs_growfs
コマンドを利用してファイルシステムを拡張します。
# xfs_growfs /dev/sdb3
meta-data=/dev/sdb3 isize=512 agcount=4, agsize=130944 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=523776, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 523776 to 1834496
ディスクのマウントを行っていない場合、以下にて処理が失敗します。
# xfs_growfs /dev/sdb3
xfs_growfs: /dev/sdb3 is not a mounted XFS filesystem
df
コマンドにてファイルシステム容量を確認します。
2.0G
から7.0G
に拡張されました。
# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 909M 0 909M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.9M 911M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda2 15G 1.7G 14G 12% /
/dev/sdb2 1014M 33M 982M 4% /home
/dev/sda1 1014M 137M 878M 14% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/sdb3 7.0G 33M 7.0G 1% /data
拡張後にファイル等が残存していることも確認できました。
# ll /data
合計 0
drwxr-xr-x 2 root root 45 12月 7 21:16 test1
drwxr-xr-x 2 root root 6 12月 7 21:16 test2
drwxr-xr-x 2 root root 6 12月 7 21:16 test3
# ll -h /data/test1
合計 41M
-rw-r--r-- 1 root root 297 12月 7 21:16 file1
-rw-r--r-- 1 root root 38K 12月 7 21:16 file2
-rw-r--r-- 1 root root 41M 12月 7 21:16 file3
参考