0x00 前言
打算把/dev/mapper/VolGroup00-LogVol03邏輯卷的2.5T空間重新分配給/dev/mapper/VolGroup00-LogVol00。
0x01 查看磁盤空間
$ df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00 99G 96G 0 100% /
devtmpfs 63G 0 63G 0% /dev
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 63G 25M 63G 1% /run
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sda1 240M 86M 138M 39% /boot
/dev/mapper/VolGroup00-LogVol01 40G 365M 37G 1% /var
/dev/mapper/VolGroup00-LogVol02 976M 19M 891M 2% /tmp
/dev/mapper/VolGroup00-LogVol03 2.6T 89M 2.5T 1% /da1
tmpfs 13G 0 13G 0% /run/user/448376178
可以看到根目錄已經沒有可用空間了,而/da1這個目錄還有2.5T可用。
0x02 卸載要縮減的目錄/da1
umount /da
如果提示target is busy
. 可以用fuser
命令解除佔用
0x04 調整分區大小
resize2fs -p /dev/mapper/VolGroup00-LogVol03 90M
輸出
resize2fs 1.42.9 (28-Dec-2013)
Please run 'e2fsck -f /dev/mapper/VolGroup00-LogVol03' first.
按照提示運行
e2fsck -f /dev/mapper/VolGroup00-LogVol03
輸出
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
/lost+found not found. Create<y>? yes
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/VolGroup00-LogVol03: ***** FILE SYSTEM WAS MODIFIED *****
/dev/mapper/VolGroup00-LogVol03: 11/173842432 files (0.0% non-contiguous), 10970219/695369728 blocks
再執行一遍分區命令
resize2fs -p /dev/mapper/VolGroup00-LogVol03 90M
輸出
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: New size smaller than minimum (1434844)
0x05 掛載目錄/da1
mount /da1/
查看磁盤大小
df -lh
輸出
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00 99G 96G 0 100% /
devtmpfs 63G 0 63G 0% /dev
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 63G 25M 63G 1% /run
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sda1 240M 86M 138M 39% /boot
/dev/mapper/VolGroup00-LogVol01 40G 365M 37G 1% /var
/dev/mapper/VolGroup00-LogVol02 976M 19M 891M 2% /tmp
tmpfs 13G 0 13G 0% /run/user/448376178
/dev/mapper/VolGroup00-LogVol03 2.6T 89M 2.5T 1% /da1
沒有看到變化
0x06 釋放留出來的空間
lvreduce -L 90M /dev/mapper/VolGroup00-LogVol03
輸出
Rounding size to boundary between physical extents: 96.00 MiB
WARNING: Reducing active and open logical volume to 96.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LogVol03? [y/n]: y
Size of logical volume VolGroup00/LogVol03 changed from 2.59 TiB (84884 extents) to 96.00 MiB (3 extents).
Logical volume LogVol03 successfully resized.
看下邏輯卷信息
vgdisplay
輸出
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 4
Open LV 4
Max PV 0
Cur PV 1
Act PV 1
VG Size 2.73 TiB
PE Size 32.00 MiB
Total PE 89416
Alloc PE / Size 4515 / 141.09 GiB
Free PE / Size 84901 / 2.59 TiB
VG UUID olDTte-CLOQ-leom-Efev-UiGF-PLOI-gdIeSI
free的部分已經變成了2.59T
0x07 擴展新空間
lvextend -L +2.5T /dev/mapper/VolGroup00-LogVol00
輸出
Size of logical volume VolGroup00/LogVol00 changed from 100.00 GiB (3200 extents) to 2.60 TiB (85120 extents).
Logical volume LogVol00 successfully resized.
更新文件系統
resize2fs -p /dev/mapper/VolGroup00-LogVol00
輸出
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/VolGroup00-LogVol00 is mounted on /; on-line resizing required
old_desc_blocks = 13, new_desc_blocks = 333
The filesystem on /dev/mapper/VolGroup00-LogVol00 is now 697303040 blocks long.
0x08 查看磁盤空間
df -lh
輸出
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00 2.6T 96G 2.4T 4% /
devtmpfs 63G 0 63G 0% /dev
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 63G 25M 63G 1% /run
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sda1 240M 86M 138M 39% /boot
/dev/mapper/VolGroup00-LogVol01 40G 365M 37G 1% /var
/dev/mapper/VolGroup00-LogVol02 976M 19M 891M 2% /tmp
tmpfs 13G 0 13G 0% /run/user/448376178
/dev/mapper/VolGroup00-LogVol03 2.6T 89M 2.5T 1% /da1
可以看到/dev/mapper/VolGroup00-LogVol00 已經變成2.4T了。
這裏有個問題,/dev/mapper/VolGroup00-LogVol03居然還是2.5T,磁盤信息沒有更新,實際上只有100M。
0x09 小結
LVM的磁盤靈活性比較高,可以方便的調整分區大小,方便docker使用。
0x10 參考文獻
https://yq.aliyun.com/articles/140963