Cent0S7默認啟用LVM2(Logical Volume Manager),把機器的一塊硬盤分為兩個區sda1和sda2,其中分區sda1作為系統盤/boot掛載,少量空間;sda2作為一個物理卷並且完全作為邏輯卷組VG(Volume Group)centos,在這個邏輯卷組centos中建立三個邏輯卷LV(Logical Volume)root和home還有swap,分別掛載到根目錄/和/home以及swap。而兩個分區sda1和sda2上都建立了文件系統XFS,文件系統XFS作為RedHat的默認文件系統也有它的考慮,成為繼ext3,ext4之後的主流文件系統。
幾個概念的關系:M個物理硬盤HD或者物理硬盤中的分區一起組建為一個邏輯卷組VG及存儲池,在卷組VG中創建N個邏輯卷LV,在一個邏輯卷LV中創建文件系統比如xfs。物理硬盤/分區、邏輯卷有最小基本尋址單元,CentOS7默認的大小為4MB,二者一一對應,類似於鏈接或者變量引用,但是一個二者關系並非一直不變,因為物理硬盤可能發生變化而邏輯卷自動調整。創建卷組和邏輯卷,會類似於創建分區一樣在磁盤開始位置寫入卷的信息VGDA(卷組描述符區域,Volume Group Descriptor Area)用於識別。邏輯卷的好處在於屏蔽物理底層支撐,可自由擴展變更,而不用擔心硬盤或者分區的物理空間局限,也就不會存在為了擴展分區大小而去備份/擴展分區重新格式化硬盤等問題。
HD/分區--通過pvcreate->PV--通過vgcreate(vgchange)/vgextend-->VG--通過lvcreate/lvextend-->LV--通過mkfs-->FS--通過xfs_growfs等-->df磁盤生效,磁盤生效但是關鍵點在於,CentOS 7的/home占用太多空間,根目錄相較而言就小得多,而OpenStack安裝以及存儲的東西都在根目錄下。上傳幾個鏡像說不定就把你的根目錄空間耗盡。不像其他文件系統ext3,ext4或者reiserfs等,有命令(resize2fs,resize_reiserfs)直接支持縮小文件系統的大小,xfs支持擴展增大但是不支持縮小空間!
所以下面要做的步驟大概為:(最好能root用戶登錄系統,本機或者ssh root過去,免得不必要的麻煩)
1. 備份/home/用戶文件,要是沒啥內容則忽略這步(為什麼非要這個/home,刪掉直接用root?還是保留它,它存在也有道理的,再說生產環境還是不要只用root)
2. umount /home 卸載並lvremove刪除這個home邏輯卷,釋放它的空間
3. lvcreate新建一個小的卷,並在其上mkfs建立xfs文件系統,分配掛載到/home,拷貝回來之前的內容
(這個時候空余的空間隨便你分配,可以再建立別的邏輯卷,或者直接空閒下來以後使用,也可以直奔主題的走下面的第四步)
4. 把之前的home邏輯卷釋放並分配新卷home之後剩下的空間,lvextend分配給root卷,並用命令xfs_growfs擴展它的文件系統空間
首先看看當前默認的磁盤使用及掛載情況,home占用的空間真的太大而根目錄太小,其中的邏輯卷的掛載格式為/dev/mapper/VolumeGroupName-LogicalVolumeName
df
-h
FilesystemSizeUsedAvailUse%Mountedon
/dev/mapper/centos-root
50G4.8G46G10%/
devtmpfs3.9G03.9G0%
/dev
tmpfs3.9G140K3.9G1%
/dev/shm
tmpfs3.9G8.9M3.9G1%
/run
tmpfs3.9G03.9G0%
/sys/fs/cgroup
/dev/mapper/centos-home
873G12G862G2%
/home
/dev/sda1
494M133M362M27%
/boot
cat
/etc/fstatb
/dev/mapper/centos-root
/xfsdefaults00
UUID=6abe266a-12fe-4361-9417-8d317bc25c8d
/boot
xfsdefaults00
/dev/mapper/centos-home
/home
xfsdefaults00
/dev/mapper/centos-swap
swapswapdefaults00
#當前邏輯卷組和邏輯卷的情況
vgdisplay
---Volumegroup---
VGNamecentos
SystemID
Formatlvm2
MetadataAreas1
MetadataSequenceNo6
VGAccess
read
/write
VGStatusresizable
MAXLV0
CurLV3
OpenLV3
MaxPV0
CurPV1
ActPV1
VGSize931.02GiB
PESize4.00MiB
TotalPE238341
AllocPE/Size238325/930.96GiB
FreePE/Size16/64.00MiB
VGUUIDIFQnYm-fCLh-38mD-Duid-nYXQ-qktX-3F1atk
lvdisplay
---Logicalvolume---
LVPath
/dev/centos/swap
LVNameswap
VGNamecentos
LVUUIDFGrPuO-2T02-1OfG-0dcz-oVTy-qcsh-IxEmd4
LVWriteAccess
read
/write
LVCreationhost,
time
localhost,2015-11-1104:46:00+0800
LVStatusavailable
#open2
LVSize7.75GiB
CurrentLE1984
Segments1
Allocationinherit
Readaheadsectorsauto
-currently
set
to256
Blockdevice253:1
---Logicalvolume---
LVPath
/dev/centos/home
LVNamehome
VGNamecentos
LVUUIDx7Oh0t-6R1x-ey7G-G5OX-PnBO-VI0C-kcRuvO
LVWriteAccess
read
/write
LVCreationhost,
time
localhost,2015-11-1104:46:01+0800
LVStatusavailable
#open1
LVSize873.21GiB
CurrentLE223541
Segments1
Allocationinherit
Readaheadsectorsauto
-currently
set
to256
Blockdevice253:2
---Logicalvolume---
LVPath
/dev/centos/root
LVNameroot
VGNamecentos
LVUUIDPgscNL-rvyY-21Z1-tVe3-80vC-ONCw-VlvmYs
LVWriteAccess
read
/write
LVCreationhost,
time
localhost,2015-11-1104:46:04+0800
LVStatusavailable
#open1
LVSize50.00GiB
CurrentLE12800
Segments1
Allocationinherit
Readaheadsectorsauto
-currently
set
to256
Blockdevice253:0
1.備份/home目錄數據
2.卸載這個/home並刪除這個邏輯卷home
unmount
/home
3.刪除/dev/mapper/centos-home這個邏輯卷
lvremove
/dev/mapper/centos-home
Doyoureallywanttoremoveactivelogicalvolumehome?[y
/n
]:y
Logicalvolume
"home"
successfullyremoved
4.新建一個卷home,fdisk格式化為8e格式,文件系統還是搞為xfs,同時分配掛載到home
#L表示大小,默認單位為M;n表示卷名;這裡的centos是CentOS7安裝系統的時候就默認建立好的卷組名
lvcreate-L50G-nhomecentos
WARNING:xfssignaturedetectedon
/dev/centos/home
atoffset0.Wipeit?[y
/n
]:y
Wipingxfssignatureon
/dev/centos/home
.
Logicalvolume
"home"
created.
#激活卷組centos,使得這個新建的home邏輯卷生效(用vgchange而不用lvchange)
vgchange-aycentos
#在新建的邏輯卷home上建立xfs文件系統
mkfs-txfs
/dev/centos/home
#把這個新邏輯卷home掛到之前的文件夾/home中去
mount
/dev/centos/home
/home/
5.最後再把釋放出來多余的空間分配給root卷並xfs_growfs擴展文件系統
lvextend-L+823G
/dev/centos/root
#再次激活下卷組centos
vgchange-aycentos
#擴展這個區
xfs_growfsroot
http://xxxxxx/Linuxjc/1155983.html TechArticle