當你在 LVM 中的磁盤空間耗盡時,你可以通過縮小現有的沒有使用全部空間的 LVM,而不是增加一個新的物理磁盤,在卷組上騰出一些空閑空間。 |
減少/縮小邏輯卷是數據損壞的最高風險。所以,如果可能的話,盡量避免這種情況,但如果沒有其他選擇的話,那就繼續。
縮減 LVM 之前,建議先做一個備份。當你在 LVM 中的磁盤空間耗盡時,你可以通過縮小現有的沒有使用全部空間的 LVM,而不是增加一個新的物理磁盤,在卷組上騰出一些空閑空間。需要注意的是: 在 GFS2 或者 XFS 文件系統上不支持縮小。
如果你是邏輯卷管理 (LVM) 的新手,我建議你從我們之前的文章開始學習。
-
第一部分:如何在
-
中創建/配置 LVM(邏輯卷管理)
-
第二部分:如何在 Linux 中擴展/增加 LVM(邏輯卷調整)
減少邏輯卷涉及以下步驟:
-
卸載文件系統
-
檢查文件系統是否有任何錯誤
-
縮小文件系統的大小
-
縮小邏輯卷的大小
-
重新檢查文件系統是否存在錯誤(可選)
-
掛載文件系統
-
檢查減少后的文件系統大小
比如: 你有一個 100GB 的沒有使用全部空間的 LVM,你想把它減少到 80GB,這樣 20GB 可以用於其他用途。
# df -h /testlvm1 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lv002 100G 15G 85G 12% /testlvm1
卸載文件系統
使用 umount 命令卸載文件系統:
# umount /testlvm1
檢查文件系統是否有任何錯誤
使用 e2fsck 命令檢查文件系統是否有錯誤:
# e2fsck -f /dev/mapper/vg01-lv002 e2fsck 1.42.9 (28-Dec-2013) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/mapper/vg01-lv002: 13/6553600 files (0.0% non-contiguous), 12231854/26212352 blocks
縮小文件系統
下面的命令將把 testlvm1 文件系統從 100GB 縮小到 80GB。
文件系統大小調整的常用語法(resize2fs):
resize2fs [現有邏輯卷名] [新的文件系統大小]
實際命令如下:
# resize2fs /dev/mapper/vg01-lv002 80G resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/mapper/vg01-lv002 to 28321400 (4k) blocks. The filesystem on /dev/mapper/vg01-lv002 is now 28321400 blocks long.
減少邏輯卷 (LVM) 容量
現在使用 lvreduce 命令縮小邏輯卷(LVM) 的大小。通過下面的命令, /dev/mapper/vg01-lv002 將把邏輯卷 (LVM) 從 100GB 縮小到 80GB。
LVM 縮減 (lvreduce) 的常用語法:
lvreduce [新的 LVM 大小] [現有邏輯卷名稱]
實際命令如下:
# lvreduce -L 80G /dev/mapper/vg01-lv002 WARNING: Reducing active logical volume to 80.00 GiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce lv002? [y/n]: y Reducing logical volume lv002 to 80.00 GiB Logical volume lv002 successfully resized
可選:檢查文件系統是否有錯誤
縮減 LVM 后再次檢查文件系統是否有錯誤:
# e2fsck -f /dev/mapper/vg01-lv002 e2fsck 1.42.9 (28-Dec-2013) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/mapper/vg01-lv002: 13/4853600 files (0.0% non-contiguous), 1023185/2021235 blocks
掛載文件系統並檢查縮小后的大小
最后掛載文件系統,並檢查縮小后的文件系統大小。
使用 mount 命令掛載邏輯卷:
# mount /testlvm1
使用 df 命令檢查掛載的卷。
# df -h /testlvm1 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lv002 80G 15G 65G 18% /testlvm1