Linux下對lvm邏輯卷分割槽大小的調整(針對xfs和ext4不同檔案系統)
當我們在安裝系統的時候,由於沒有合理分配分割槽空間,在後續維護過程中,發現有些分割槽空間不夠使用,而有的分割槽空間卻有很多剩餘空間。如果這些分割槽在裝系統的時候使用了lvm(前提是這些分割槽要是lvm邏輯卷分割槽),那麼就可以輕鬆進行擴容或縮容!不同檔案系統型別所對應的建立、檢查、調整命令不同,下面就針對xfs和ext2/3/4檔案系統的lvm分割槽空間的擴容和縮容的操作做一記錄:
------------------------------------------------------------------------------------------
特別注意的是:
resize2fs命令 針對的是ext2、ext3、ext4檔案系統
xfs_growfs命令 針對的是xfs檔案系統
------------------------------------------------------------------------------------------
1)ext2/ext3/ext4檔案系統的調整命令是resize2fs(增大和減小都支援)
1 2 3 4 5 |
lvextend -L 120G /dev/mapper/centos-home // 增大至120G
lvextend -L +20G /dev/mapper/centos-home // 增加20G
lvreduce -L 50G /dev/mapper/centos-home // 減小至50G
lvreduce -L -8G /dev/mapper/centos-home // 減小8G resize2fs /dev/mapper/centos-home // 執行調整
|
2)xfs檔案系統的調整命令是xfs_growfs(只支援增大)
1 2 3 4 5 6 |
lvextend -L 120G /dev/mapper/centos-home // 增大至120G
lvextend -L +20G /dev/mapper/centos-home // 增加20G
xfs_growfs /dev/mapper/centos-home // 執行調整
就是說:xfs檔案系統只支援增大分割槽空間的情況,不支援減小的情況(切記!!!!!)。
硬要減小的話,只能在減小後將邏輯分割槽重新通過mkfs.xfs命令重新格式化才能掛載上,這樣的話這個邏輯分割槽上原來的資料就丟失了。如果有重要檔案,那就歇菜嘍~~~
|
例項1(當系統上還有空閒空間的時候)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
1)檢視分割槽空間。如下可知是xfs檔案系統( df 的-T引數就能看出檔案格式)。
[[email protected] ~] # df -hT
檔案系統 型別 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root xfs 200G 2.2G 198G 2% /
devtmpfs devtmpfs 32G 0 32G 0% /dev
tmpfs tmpfs 32G 0 32G 0% /dev/shm
tmpfs tmpfs 32G 49M 32G 1% /run
tmpfs tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 xfs 197M 139M 59M 71% /boot
tmpfs tmpfs 6.3G 0 6.3G 0% /run/user/0
/dev/mapper/centos-home xfs 628G 33M 718G 1% /home
2)使用vgdisplay命令檢視系統上的空閒空間
[email protected] ~] # vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 6
VG Access read /write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 930.80 GiB
PE Size 4.00 MiB
Total PE 238285
Alloc PE / Size 212736 / 831.00 GiB
Free PE / Size 25549 / 99.80 GiB // 這一項表示目前該系統上還存在99.80G的空閒空間(25549)
VG UUID a5hiAh-LB8M-9lRv-Ps1a-z35L-J4fk-sP3KrF
3) 將上面查到的空閒空間中的90G增減到 /home 分割槽上
[[email protected] ~] # lvextend -L +90G /dev/mapper/centos-home //或者使用-l引數(跟PE數量),即lvextend -l +25500 /dev/mapper/centos-home
Size of logical volume centos /home changed from 628.00 GiB (160768 extents) to 718.00 GiB (183808 extents).
Logical volume centos /home successfully resized.
[[email protected] ~] # xfs_growfs /dev/mapper/centos-home
meta-data= /dev/mapper/centos-home isize=512 agcount=4, agsize=41156608 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=164626432, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=80384, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 164626432 to 188219392
4)再次看著系統分割槽,發現home分割槽已經增加了90G(這種方式增加後,home分割槽之前的資料還不會丟失)
[[email protected] ~] # df -h
檔案系統 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root 200G 2.2G 198G 2% /
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 49M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 197M 139M 59M 71% /boot
tmpfs 6.3G 0 6.3G 0% /run/user/0
/dev/mapper/centos-home 718G 33M 718G 1% /home
|
雖然xfs檔案系統只支援增加,不支援減少。但並不是說在xfs系統檔案下不能減小,只是減小後,需要重新格式化才能掛載上。這樣原來的資料就丟失了!
例項2: 這種情況只適用於系統剛安裝好,邏輯分割槽內沒有什麼資料或資料不多且不重要可以刪除或拷貝的情況下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
系統安裝好後,發現home分割槽過大,想從home分割槽中拿出100G給/分割槽
[[email protected] ~] # df -hT
檔案系統 型別 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root xfs 205G 2.2G 203G 2% /
devtmpfs devtmpfs 32G 0 32G 0% /dev
tmpfs tmpfs 32G 0 32G 0% /dev/shm
tmpfs tmpfs 32G 49M 32G 1% /run
tmpfs tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 xfs 197M 139M 59M 71% /boot
tmpfs tmpfs 6.3G 0 6.3G 0% /run/user/0
/dev/mapper/centos-home xfs 718G 33M 718G 1% /home
[[email protected] ~] # umount /home/
[[email protected] ~] # lvreduce -L -100G /dev/mapper/centos-home
WARNING: Reducing active logical volume to 618.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce centos /home ? [y /n ]: y
Size of logical volume centos /home changed from 718.00 GiB (183808 extents) to 618.00 GiB (158208 extents).
Logical volume centos /home successfully resized.
如下,很顯然xfs檔案系統不能執行分割槽減小的調整!
[[email protected] ~] # xfs_growfs /dev/mapper/centos-home
xfs_growfs: /dev/mapper/centos-home is not a mounted XFS filesystem
[[email protected] ~] # mount /dev/mapper/centos-home /home/
mount : /dev/mapper/centos-home :不能讀超級塊
這樣,只能通過重新格式化這個分割槽,格式化後才能再次掛載到home下
[[email protected] ~] # mkfs.xfs /dev/mapper/centos-home -f
meta-data= /dev/mapper/centos-home isize=512 agcount=4, agsize=41156608 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=164626432, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=80384, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[[email protected] ~] # mount /dev/mapper/centos-home /home/
再次檢視分割槽,發現home分割槽已經減小了100G,只不過這個分割槽裡之前的資料都沒有了。
[[email protected] ~] # df -hT
檔案系統 型別 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root xfs 205G 2.2G 203G 2% /
devtmpfs devtmpfs 32G 0 32G 0% /dev
tmpfs tmpfs 32G 0 32G 0% /dev/shm
tmpfs tmpfs 32G 49M 32G 1% /run
tmpfs tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 xfs 197M 139M 59M 71% /boot
tmpfs tmpfs 6.3G 0 6.3G 0% /run/user/0
/dev/mapper/centos-home xfs 618G 73M 578G 1% /home
---------------------------------------------------------------------------
上面在重新格式的時候,也可以將這個格式化為ext4格式。
[[email protected] ~] # mkfs.ext4 /dev/mapper/centos-home
[[email protected] ~] # cat /etc/fstab //將home分割槽的開機掛載設定裡的xfs改為ext4
---------------------------------------------------------------------------
然後將上面從home分割槽拿出的100G放到/分割槽下
[[email protected] ~] # vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 9
VG Access read /write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 930.80 GiB
PE Size 4.00 MiB
Total PE 238285
Alloc PE / Size 211456 / 826.00 GiB
Free PE / Size 26829 / 104.80 GiB
VG UUID a5hiAh-LB8M-9lRv-Ps1a-z35L-J4fk-sP3KrF
[[email protected] ~] # lvextend -L +100G /dev/mapper/centos-root
Size of logical volume centos /root changed from 205.00 GiB (52480 extents) to 305.00 GiB (78080 extents).
Logical volume centos /root successfully resized.
[[email protected] ~] # xfs_growfs /dev/mapper/centos-root
meta-data= /dev/mapper/centos-root isize=256 agcount=5, agsize=13107200 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0 spinodes=0
data = bsize=4096 blocks=53739520, imaxpct=25
|