1. 程式人生 > >ext4和xfs檔案系統的擴容和收縮

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
  • 注意:儘量避免對重要資料所在的檔案系統做收縮操作