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
  • 注意:盡量避免對重要數據所在的文件系統做收縮操作