ext4和xfs文件系統的擴容和收縮
1. LVM邏輯卷管理
2. ext4文件系統
2.1 擴容CentOS6的根文件系統(ext4)
根文件系統在 /dev/VolGroup/lv_root 邏輯卷上,文件系統類型為ext4,大小為10G,現在要將其擴容成20G。
1)調整分區類型為8e
# 調整分區類型為LVM,也就是8e類型 fdisk /dev/sdb # 選定分區後使用 t 選項,然後選擇8e類型 # 通知內核重讀分區表 partx -a /dev/sdb # 查看 cat /proc/partitions lsblk
2)進行擴容
# 1. 創建pv pvcreate /dev/sdb7 # 2. 對根 / 所在的vg進行擴容,將/dev/sdb7這個pv添加到VolGroup這個vg中去 vgextend VolGroup /dev/sdb7 # 3. 對根 / 所在的lv進行擴容 # 先通過vgdisplay命令查看對應vg中空閑的pe數量,然後再將這些空閑的pe添加到lv中去 lvextend -l +2194 /dev/VolGroup/lv_root # 4. 擴容文件系統 resize2fs /dev/VolGroup/lv_root # 自動擴容,將可分配的空間全部分配完 # 或者擴容成指定的大小 resize2fs /dev/VolGroup/lv_root 15G # 5. 查看是否擴容成功 df -hT
- 注意:LV擴容前最好先卸載掛載的設備,然後再使用 lvextend 進行擴容,這裡因為是對根文件系統進行擴容,故而沒有卸載
2.2 收縮ext4文件系統
/dev/sdb6 和 /dev/sdb4 一共分區大小為5G,分區類型為8e,它們被添加到了卷組VolGroup中,並做成 lv_mnt 邏輯卷掛載在了 /mnt 目錄。
現在要將 lv_mnt 縮小成3G,並且不能損壞其數據
# 1. 卸載設備 umount /mnt # 2. 進行磁碟檢查 e2fsck -f /dev/VolGroup/lv_mnt # 3. 收縮文件系統 resize2fs /dev/VolGroup/lv_mnt 3G # 4. 收縮LV lvreduce -L -2G /dev/VolGroup/lv_mnt # 5. 將PE移動到空閑的地方 ### 查看哪些PV上有空閑的PE pvdisplay | grep 'PV Name\| Free' ### 將PE移動到有空閑PE的PV上 pvmove /dev/sdb6:0-99 /dev/sdb4 # 6. 從VG中移除PV vgreduce VolGroup /dev/sdb6 # 7. 移除該PV pvremove /dev/sdb6
3. xfs文件系統
3.1 擴容CentOS7的根文件系統(xfs)
# 1. 與CentOS6一樣,先要創建一個8e格式磁碟分區 fdisk /dev/sdb # 2. 創建PV pvcreate /dev/sdb5 # 3. 將pv添加到根所在的VG中 vgextend centos /dev/sdb5 # 4. 擴容LV
# 特別注意:在擴容LV之前最好要先卸載設備,這裡沒有卸載是因為擴容的根文件系統
lvextend -l +2048 /dev/centos/root # 5. 擴容xfs文件系統 xfs_growfs /dev/centos/root # 6. 查看是否擴容成功 df -hT
3.2 收縮xfs文件系統
xfs文件系統只能擴容而無法收縮,如果要想收縮,可以先備份,之後再進行減容重建,再恢複數據。
1)備份
# xfsdump的方式備份 xfsdump -f /data/home.img /home -f 備份保存的位置 # cp直接複製文件的方式備份 cp -aR /home /data/home
2)減容重建
# 1. 卸載home目錄 umount /home/ # 2. 刪除 lv_home ### 刪除之前要備份或者將PE移動到空閑的PV中 lvremove /dev/centos/home # 3. 擴容根所在的的 lv lvresize -L 20G /dev/centos/root # 4. 擴容根文件系統 xfs_growfs /dev/centos/root # 5. 重建home的LV lvcreate -L 1G -n home centos # 6. 格式化並掛載 mkfs.xfs /dev/centos/home mount /dev/centos/home /home # 7. 還原數據 xfsrestore -f /data/home.img /home
- 注意:盡量避免對重要數據所在的文件系統做收縮操作