ディスク拡張をする目的
KubernetesやDockerを構築時、Dockerの実態ファイルは /var/lib/docker/overlay2/配下に作成されます。
Dockerコンテナが増えるにつれて、/varは肥大化するため、/varのパーティションを設けている場合、ディスク拡張が必要になります。
元々、/varを3GB以内で構築する予定でしたが、minukubeを入れたりほかのDockerコンテナを入れるなどし枯渇したため、3GBから13GBまでディスク拡張をします。
今回はVMWarePlayerWorkstationを利用し、ディスク拡張を行います。
VMWareにおけるディスク拡張方法
以下の通りです。(図や細かい手順については後ほど記載いたします。)
仮想ディスク増設
事前作業(念のために実施すること)
ディスク使用率を調査します。
[root@homeserver ~]# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 7.0G 2.5G 4.6G 36% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.8M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 133M 882M 14% /boot
/dev/mapper/centos-opt 3.0G 33M 3.0G 2% /opt
/dev/mapper/centos-home 2.0G 33M 2.0G 2% /home
/dev/mapper/centos-var 3.0G 1.6G 1.5G 51% /var
overlay 3.0G 1.6G 1.5G 51% /var/lib/docker/overlay2/127f56b89fdbb3eff6603ca6c1cba3fc918511b33f2a60d555fd1e37c77dd31d/merged
overlay 3.0G 1.6G 1.5G 51% /var/lib/docker/overlay2/3299384c258001fe7268c873b42272f979d6b3a523811d482a8512b975397953/merged
shm 64M 0 64M 0% /var/lib/docker/containers/e8ea26267f9d406c2b7f5ac2f8f43887013bdb1b73d520936bd2fda5e01817b7/mounts/shm
shm 64M 0 64M 0% /var/lib/docker/containers/cb17ae5ed63e305df49626bd036f39e772783c097e20b94a030b303327d35cd2/mounts/shm
tmpfs 98M 0 98M 0% /run/user/0
dockerが起動していれば停止します。
[root@homeserver ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cb17ae5ed63e redmine "/docker-entrypoint.…" 9 days ago Up About a minute 0.0.0.0:3000->3000/tcp redmine
e8ea26267f9d mariadb "docker-entrypoint.s…" 9 days ago Up About a minute 0.0.0.0:3306->3306/tcp redmine-db
[root@homeserver ~]# ls -ltr
合計 2776
-rw-------. 1 root root 1254 10月 26 2019 anaconda-ks.cfg
drwxr-xr-x. 2 polkitd root 6 3月 3 16:36 mySql
-rw-r--r--. 1 root root 4057 3月 3 17:11 testhoge.txt
drwxr-xr-x. 2 root root 108 3月 3 19:10 dockerfiles_template
drwxr-xr-x. 3 root root 44 3月 3 23:23 docker-redmine
-rw-r--r--. 1 root root 2824458 3月 3 23:56 docker-redmine_1.0.0.tar.gz
-rwxr-xr-x. 1 root root 51 3月 4 00:03 start_redmine.sh
-rwxr-xr-x. 1 root root 50 3月 4 00:04 stop_redmine.sh
[root@homeserver ~]# ./stop_redmine.sh
e8ea26267f9d
cb17ae5ed63e
[root@homeserver ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cb17ae5ed63e redmine "/docker-entrypoint.…" 9 days ago Exited (1) 3 seconds ago redmine
e8ea26267f9d mariadb "docker-entrypoint.s…" 9 days ago Exited (0) 3 seconds ago redmine-db
[root@homeserver ~]#
fdiskの確認
[root@homeserver ~]# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000edcb8
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
Disk /dev/mapper/centos-root: 7511 MB, 7511998464 bytes, 14671872 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk /dev/mapper/centos-swap: 4294 MB, 4294967296 bytes, 8388608 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk /dev/mapper/centos-opt: 3221 MB, 3221225472 bytes, 6291456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk /dev/mapper/centos-var: 3221 MB, 3221225472 bytes, 6291456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk /dev/mapper/centos-home: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
[root@homeserver ~]#
fdisk再設定・パーティション設定変更
設定変更をします。ただし、ボリューム拡張はOS再起動をする必要がありますので、
/dev/sda2のブロックサイズが反映されているかまでを確認します。
[root@homeserver ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
コマンド (m でヘルプ): m
コマンドの動作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
コマンド (m でヘルプ): p
Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000edcb8
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
コマンド (m でヘルプ): d
パーティション番号 (1,2, default 2): 2
Partition 2 is deleted
コマンド (m でヘルプ): p
Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000edcb8
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 2048 2099199 1048576 83 Linux
コマンド (m でヘルプ): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
パーティション番号 (2-4, default 2):
最初 sector (2099200-62914559, 初期値 2099200):
初期値 2099200 を使います
Last sector, +sectors or +size{K,M,G} (2099200-62914559, 初期値 62914559):
初期値 62914559 を使います
Partition 2 of type Linux and of size 29 GiB is set
コマンド (m でヘルプ): p
Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000edcb8
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 62914559 30407680 83 Linux
コマンド (m でヘルプ): w
パーティションテーブルは変更されました!
ioctl() を呼び出してパーティションテーブルを再読込みします。
WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
ディスクを同期しています。
[root@homeserver ~]# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000edcb8
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 62914559 30407680 83 Linux
Disk /dev/mapper/centos-root: 7511 MB, 7511998464 bytes, 14671872 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk /dev/mapper/centos-swap: 4294 MB, 4294967296 bytes, 8388608 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk /dev/mapper/centos-opt: 3221 MB, 3221225472 bytes, 6291456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk /dev/mapper/centos-var: 3221 MB, 3221225472 bytes, 6291456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk /dev/mapper/centos-home: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
[root@homeserver ~]#
OS再起動
[root@homeserver ~]# shutdown -r now
物理ボリュームのリサイズ
sda2をリサイズします。
[root@homeserver ~]# pvresize /dev/sda2
Physical volume "/dev/sda2" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@homeserver ~]# pvdisplay --- Physical volume --- PV Name /dev/sda2
VG Name centos
PV Size <29.00 GiB / not usable 2.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 7423
Free PE 2560
Allocated PE 4863
PV UUID MLSbDZ-yoIj-Q2TK-u67C-DNav-uze1-96ubHI
論理ボリュームのリサイズ
/varを拡張します。
まず、論理ボリュームの現状を確認します。
[root@homeserver ~]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID e6eAUN-vVUg-rT2j-8xJ9-Lyis-MJpc-Ly2OMD
LV Write Access read/write
LV Creation host, time localhost, 2019-10-26 18:05:48 +0900
LV Status available
# open 1
LV Size <7.00 GiB
Current LE 1791
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/centos/opt
LV Name opt
VG Name centos
LV UUID az5Mbs-6pzv-u2gZ-l2uS-GraP-lHan-YH3wd6
LV Write Access read/write
LV Creation host, time localhost, 2019-10-26 18:05:49 +0900
LV Status available
# open 1
LV Size 3.00 GiB
Current LE 768
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
--- Logical volume ---
LV Path /dev/centos/var
LV Name var
VG Name centos
LV UUID uNalEu-11ti-Sfwy-WXNJ-gfP6-s1T3-4JGuhw
LV Write Access read/write
LV Creation host, time localhost, 2019-10-26 18:05:49 +0900
LV Status available
# open 1
LV Size 3.00 GiB
Current LE 768
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
--- Logical volume ---
LV Path /dev/centos/home
LV Name home
VG Name centos
LV UUID Qz23bu-97Hp-URdR-hCgR-iNF0-6RiS-gNDseY
LV Write Access read/write
LV Creation host, time localhost, 2019-10-26 18:05:49 +0900
LV Status available
# open 1
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:4
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID 1w66Oz-Ugnv-uHET-uVBc-lUNH-j1g7-4pZlR9
LV Write Access read/write
LV Creation host, time localhost, 2019-10-26 18:05:50 +0900
LV Status available
# open 2
LV Size 4.00 GiB
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
[root@homeserver ~]#
次に、fstabを確認し、拡張する対象のマッピングを確認します。
(1列目のところです。)
[root@homeserver ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Oct 26 18:05:52 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=e66291ed-c31b-4342-a63e-d87425167639 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-opt /opt xfs defaults 0 0
/dev/mapper/centos-var /var xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
[root@homeserver ~]#
lvextendコマンドより増やしたサイズ分を拡張します。
[root@homeserver ~]# lvextend -L+10G /dev/centos/var
Size of logical volume centos/var changed from 3.00 GiB (768 extents) to 13.00 GiB (3328 extents).
Logical volume centos/var successfully resized.
[root@homeserver ~]#
lvdisplayコマンドより確認しますが、反映はされません。
[root@homeserver ~]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID e6eAUN-vVUg-rT2j-8xJ9-Lyis-MJpc-Ly2OMD
LV Write Access read/write
LV Creation host, time localhost, 2019-10-26 18:05:48 +0900
LV Status available
# open 1
LV Size <7.00 GiB
Current LE 1791
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/centos/opt
LV Name opt
VG Name centos
LV UUID az5Mbs-6pzv-u2gZ-l2uS-GraP-lHan-YH3wd6
LV Write Access read/write
LV Creation host, time localhost, 2019-10-26 18:05:49 +0900
LV Status available
# open 1
LV Size 3.00 GiB
Current LE 768
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
--- Logical volume ---
LV Path /dev/centos/var
LV Name var
VG Name centos
LV UUID uNalEu-11ti-Sfwy-WXNJ-gfP6-s1T3-4JGuhw
LV Write Access read/write
LV Creation host, time localhost, 2019-10-26 18:05:49 +0900
LV Status available
# open 1
LV Size 13.00 GiB
Current LE 3328
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
--- Logical volume ---
LV Path /dev/centos/home
LV Name home
VG Name centos
LV UUID Qz23bu-97Hp-URdR-hCgR-iNF0-6RiS-gNDseY
LV Write Access read/write
LV Creation host, time localhost, 2019-10-26 18:05:49 +0900
LV Status available
# open 1
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:4
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID 1w66Oz-Ugnv-uHET-uVBc-lUNH-j1g7-4pZlR9
LV Write Access read/write
LV Creation host, time localhost, 2019-10-26 18:05:50 +0900
LV Status available
# open 2
LV Size 4.00 GiB
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
[root@homeserver ~]#
[root@homeserver ~]# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 7.0G 2.5G 4.6G 36% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 133M 882M 14% /boot
/dev/mapper/centos-var 3.0G 1.6G 1.5G 51% /var
/dev/mapper/centos-home 2.0G 33M 2.0G 2% /home
/dev/mapper/centos-opt 3.0G 33M 3.0G 2% /opt
tmpfs 98M 0 98M 0% /run/user/0
実際に反映するには、xfs_growfsが必要です。
なので、xfs_growfsを行います。
[root@homeserver ~]# xfs_growfs /dev/mapper/centos-var
meta-data=/dev/mapper/centos-var isize=512 agcount=4, agsize=196608 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=786432, 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 786432 to 3407872
[root@homeserver ~]#
[root@homeserver ~]# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 7.0G 2.5G 4.6G 36% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 133M 882M 14% /boot
/dev/mapper/centos-var 13G 1.6G 12G 12% /var
/dev/mapper/centos-home 2.0G 33M 2.0G 2% /home
/dev/mapper/centos-opt 3.0G 33M 3.0G 2% /opt
tmpfs 98M 0 98M 0% /run/user/0
この設定を行うことで、実体ファイル容量の増加に伴う、/varの逼迫は解消します。
以上です。