本來想自己寫一下今天的過程,發現有一篇理論和操作性俱佳的文件,遂轉之如下,個人實際操作比較簡單,也放在最後了,權當記錄:
LVM是邏輯盤卷管理(LogicalVolumeManager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和 分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。通過LVM系統管理員可以輕鬆管理磁盤分區,如:將若干個磁盤分區連接爲一個整塊的卷組 (volumegroup),形成一個存儲池。管理員可以在卷組上隨意創建邏輯卷組(logicalvolumes),並進一步在邏輯卷組上創建文件系 統。管理員通過LVM可以方便的調整存儲卷組的大小,並且可以對磁盤存儲按照組的方式進行命名、管理和分配,例如按照使用用途進行定義:“development”和“sales”,而不是使用物理磁盤名“sda”和“sdb”。而且當系統添加了新的磁盤,通過LVM管理員就不必將磁盤的 文件移動到新的磁盤上以充分利用新的存儲空間,而是直接擴展文件系統跨越磁盤即可。
物理存儲介質(PhysicalStorageMedia)
指系統的物理存儲設備:磁盤,如:/dev/hda、/dev/sda等,是存儲系統最底層的存儲單元。
物理卷(Physical Volume,PV)
指磁盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。
卷組(Volume Group,VG)
類似於非LVM系統中的物理磁盤,其由一個或多個物理卷PV組成。可以在卷組上創建一個或多個LV(邏輯卷)。
邏輯卷(Logical Volume,LV)
類似於非LVM系統中的磁盤分區,邏輯卷建立在卷組VG之上。在邏輯卷LV之上可以建立文件系統(比如/home或者/usr等)。
物理塊(Physical Extent,PE)
每一個物理卷PV被劃分爲稱爲PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認爲4MB。所以物理卷(PV)由大小等同的基本單元PE組成。
邏輯塊(Logical Extent,LE)LVM抽象模型
邏輯卷LV也被劃分爲可被尋址的基本單位,稱爲LE。在同一個卷組中,LE的大小和PE是相同的,並且一一對應。
【二】LVM 參數:
(1)【PV階段參數】
pvchange Change attributes of a Physical Volume.
pvck 用來檢測物理卷的LVM元數據的一致性。默認情況下,物理卷中的前4個扇區保存着LVM卷標.
pvcreate 用於將物理硬盤分區初始化爲物理卷,以便LVM使用
pvdisplay 用於顯示物理卷的屬性 -s以短格式輸出 -m:顯示PE到LE的映射.
pvmove Move Physical Extents.
pvremove Remove a Physical Volume.
pvresize Resize a disk or partition in use by LVM2.
pvs Report information about Physical Volumes.
pvscan Scan all disks for Physical Volumes.
(2)【VG階段參數】
vgcfgbackup Backup Volume Group descriptor area.
vgcfgrestore Restore Volume Group descriptor area.
vgchange vgchange命令用於修改卷組的屬性,經常被用來設置卷組是處於活動狀態或非活動狀態。處於活動狀態的卷組無法被刪除,必須使用vgchange命令將卷組設置爲非活動狀態後才能刪除;
例如: vgchange -ay vg1 #將卷組"vg1"設置爲活動狀態 (-an 設置爲非活動狀態 )
vgck Check Volume Group metadata.
vgconvert Convert Volume Group metadata format.
vgcreate 用於創建LVM卷組。-l:卷組上允許創建的最大邏輯卷數; -p:卷組中允許添加的最大物理卷數; -s:卷組上的物理卷的PE大小。例如:vgcreate -s 16M vg1 /dev/sdb1
vgdisplay Display attributes of Volume Groups.
vgexport Make volume Groups unknown to the system.
vgextend 向卷組中添加物理卷(PV)來增加捲組(VG)的容量.
vgimport Make exported Volume Groups known to the system.
vgimportclone Import and rename duplicated Volume Group (e.g. a hardware snapshot).
vgmerge Merge two Volume Groups.
vgmknodes Recreate Volume Group directory and Logical Volume special files
vgreduce 刪除LVM卷組中的物理捲來減少卷組容量。不能刪除LVM卷組中剩餘的最後一個物理卷.
vgremove 用於用戶刪除LVM卷組。當要刪除的卷組上已經創建了邏輯卷時,vgremove命令需要進行確認刪除,防止誤刪除數據。
vgrename Rename a Volume Group 例如:vgrename vg vg1 把vg的名字改爲vg1
vgs Report information about Volume Groups.
vgscan Scan all disks for Volume Groups and rebuild caches.
vgsplit Split a Volume Group into two, moving any logical volumes from one Volume Group to another by moving entire
Physical Volumes.
(3)【LV階段參數】
lvchange Change attributes of a Logical Volume.
lvconvert Convert a Logical Volume from linear to mirror or snapshot.
lvcreate 用於創建LVM的邏輯卷. -L:指定邏輯卷的大小,單位爲“kKmMgGtT”字節;-l:指定邏輯卷的大小(PE數)。
lvceate [ -L l ] [-n LV 名稱] VG 名稱
lvdisplay Display attributes of a Logical Volume.
lvextend 在線擴展邏輯卷的空間大
lvreduce 用於減少LVM邏輯卷佔用的空間大小. 收縮邏輯卷的空間大小有可能會刪除邏輯捲上已有的數據; -L:指定邏輯卷的大小,單位 爲“kKmMgGtT”字節;-l:指定邏輯卷的大小(PE數)。
lvmchange Change attributes of the Logical Volume Manager.
lvmconfig Display the configuration information after loading
lvmdiskscan Scan for all devices visible to LVM2.
lvmdump Create lvm2 information dumps for diagnostic purposes.
lvremove 刪除一個LV
lvrename 改LV名.
lvresize 對LV進行容量大小的調整。
lvs Report information about Logical Volumes.
lvscan Scan (all disks) for Logical Volumes.
【三】創建PV、VG、LV
fdisk -l
#fdisk /dev/sda(..sdb..sdc..sdd) -----p---n--t--8e---p--w--- (設置硬盤的Linux LVM 8e)
/dev/sdb1 2048 2099199 1048576 8e Linux LVM
/dev/sdb2 2099200 4196351 1048576 8e Linux LVM
/dev/sdb3 4196352 6293503 1048576 8e Linux LVM
/dev/sdb4 6293504 10485759 2096128 8e Linux LVM
(1)創建PV:
[root@localhost ~]# pvcreate /dev/sdb1 //可以dev/sdb{1,2,3,4}
Physical volume "/dev/sdb1" successfully created.
[root@localhost ~]# pvscan //查看PV信息
PV /dev/sda2 VG cl lvm2 [39.00 GiB / 0 free]
PV /dev/sdb1 lvm2 [1.00 GiB]
[root@localhost ~]# pvdisplay #查看PV詳細信息
--- Physical volume ---
PV Name /dev/sda2
VG Name cl
PV Size 39.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 9983
Free PE 0
Allocated PE 9983
PV UUID YWKAcK-TqHD-94kq-lzVi-8a2g-s188-dmtO2a
"/dev/sdb1" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID NXJ7oB-BXpm-7FPx-2utQ-8qrA-z5Q5-99UlSw
[root@localhost ~]# pvremove /dev/sdb3 #刪除PV
Labels on physical volume "/dev/sdb3" successfully wiped.
(2)創建VG
(1)vgcreate -s 8M v_vg /dev/sdb1 ##新建一個v_vg VG 指定一個PE爲8M(默認4M)
[root@localhost ~]# pvdisplay
-- Physical volume ---
PV Name /dev/sdb1
VG Name v_vg
PV Size 1.00 GiB / not usable 8.00 MiB
Allocatable yes #是否已分配
PE Size 8.00 MiB #PE 8M
Total PE 127
Free PE 127 #沒有被LV用掉的PE
Allocated PE 0 #尚可分配出去的PE數量
PV UUID NXJ7oB-BXpm-7FPx-2utQ-8qrA-z5Q5-99UlSw
[root@localhost ~]# vgdisplay #查看VG的信息
--- Volume group ---
VG Name v_vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 1016.00 MiB
PE Size 8.00 MiB
Total PE 127
Alloc PE / Size 0 / 0
Free PE / Size 127 / 1016.00 MiB
VG UUID JbTWno-2lf1-KZjJ-PbA1-0e4w-QH16-BE6VvX
[root@localhost ~]# vgextend v_vg /dev/sdb2 #把PV加入VG中
--- Volume group ---
VG Name v_vg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 1.98 GiB #整體VG容量的大小
PE Size 8.00 MiB
Total PE 254
Alloc PE / Size 0 / 0 #分配出去的PE數量
Free PE / Size 254 / 1.98 GiB #沒有分配出去的PE數量
VG UUID JbTWno-2lf1-KZjJ-PbA1-0e4w-QH16-BE6VvX
(2)創建LV
lvcreate -L +1G -n v_home v_vg
格式化文件系統和掛載: mkfs.ext4 /dev/v_vg/v_home mount /dev/v_vg/v_home /mnt
備註:設備是放在/dev/mapper/目錄下
【四】、放大LV容量和縮小LV容量
lvresize -L +400M /dev/v_vg/v_home #給添加400M
LV已經擴展到400M,但是文件沒有相對的增加。
dumpe2fs /dev/v_vg/v_home
resize2fs /dev/v_vg/v_home ##完整的進行LV容量擴充到整個文件系統中。
縮小LV容量:
先卸載umount
e2fsck -f /dev/v_vg/v_home #進行磁盤檢查
resize2fs /dev/v_vg/v_home 2G 調整LV大小並重建文件系統
lvresize -L -400M /dev/v_vg/v_home 減小LV容量
說明: 在xfs文件系統中,只能增大分區而不能減小。
resize2fs命令 針對的是ext2、ext3、ext4文件系統
xfs_growfs命令 針對的是xfs文件系統
xfs_repair進行修復
備註: 1)ext2/ext3/ext4文件系統的調整命令是resize2fs(增大和減小都支持)centos6圖形界面: system-config-lvm
lvextend -L 120G /dev/v_vg/v_home //增大至120G
lvextend -L +20G /dev/v_vg/v_home //增加20G
lvreduce -L 50G /dev/v_vg/h_home //減小至50G
lvreduce -L -8G /dev/v_vg/v_home //減小8G
resize2fs /dev/v_vg/v_home //執行調整
2)xfs文件系統的調整命令是xfs_growfs(只支持增大)
lvextend -L 120G /dev/v_vg/h_home //增大至120G
lvextend -L +20G /dev/v_vg/h_home //增加20G
xfs_growfs /dev/v_vg/h_home //執行調整
則是有進程佔用/home,使用如下命令來終止佔用進程: fuser -m -k /home
xfs文件系統只支持增大分區空間的情況,不支持減小的情況(切記!!!!!)。硬要減小的話,只能在減小後將邏輯分區重新通過mkfs.xfs命令重新格式化才能掛載上,這樣的話這個邏輯分區上1)查看分區空間。如下可知是xfs文件系統(df的-T參數就能看出文件格式)
2)使用vgdisplay命令查看系統上的空閒空間
xfs:
xfs相關常用命令
fs_admin: 調整 xfs 文件系統的各種參數
xfs_copy: 拷貝 xfs 文件系統的內容到一個或多個目標系統(並行方式)
xfs_db: 調試或檢測 xfs 文件系統(查看文件系統碎片等)
xfs_check: 檢測 xfs 文件系統的完整性
xfs_bmap: 查看一個文件的塊映射
xfs_repair: 嘗試修復受損的 xfs 文件系統
xfs_fsr: 碎片整理
xfs_quota: 管理 xfs 文件系統的磁盤配額
xfs_metadump: 將 xfs 文件系統的元數據 (metadata) 拷貝到一個文件中
xfs_mdrestore: 從一個文件中將元數據 (metadata) 恢復到 xfs 文件系統
xfs_growfs: 調整一個 xfs 文件系統大小(只能擴展)
xfs_freeze 暫停(-f)和恢復(-u)xfs 文件系統
xfs_logprint: 打印xfs文件系統的日誌
xfs_mkfile: 創建xfs文件系統
xfs_info: 查詢文件系統詳細信息
xfs_ncheck: generate pathnames from i-numbers for XFS
xfs_rtcp: XFS實時拷貝命令
xfs_io: 調試xfs I/O路徑
————————————————
版權聲明:本文爲CSDN博主「Resines」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/genglei1022/article/details/78065427
------------------------------------------Start------------------------------------------------------
一、分區新添加的磁盤
1.查看磁盤: df -lh
2.分區:fdisk /dev/sda
具體是sda還是sdb亦或是hda等,要看您的磁盤類型和序號
A.輸入 n
B.輸入 p
C.輸入 分區號3、4默認3
D.輸入 t 選擇文件類型
E.輸入 8e
F.輸入 p
G.輸入 w
3.掛載磁盤
A.檢查分區文件類型默認xfs
df -T /dev/sda4
B.新磁盤上創建xfs文件系統
mkfs.xfs /dev/sda4
二、擴展Linux下的磁盤空間
1.創建PV
pvcreate /dev/sda4
pvdisplay
2.查看VG詳情,並將PV加入VG
vgdisplay
vgextend centos /dev/sda4 #此處的centos爲VG Name,/dev/sda4爲新的PV Name
3.查看LV詳情
lvdisplay
4.擴展邏輯卷
lvextend /dev/mapper/centos-root /dev/sda4
5.調整文件系統大小,我的測試環境是xfs文件系統,使用xfs_growfs命令調整
xfs_growfs /dev/mapper/centos-root
6.最後確認存儲空間是否擴容成功
df -lh
------------------------------------------End------------------------------------------------------