博文結構 什麼是LVM LVM中PV、VG、PE、LV 擴大LV容量 LVM的磁盤快照 LVM 相關指令彙整
什麼是LVM:web
LVM 的重點在於「能夠彈性的調整 filesystem 的容量!而並不是在於性能與數據保全上面。
若須要文件的讀寫性能或者是數據的可靠性,應該用RAID磁盤陣列session
LVM 能夠整合多個實體 partition 在一塊兒,讓這些 partitions 看起來就像是一個磁盤同樣!並且,還能夠在將來新增或移除其餘的實體 partition 到這個 LVM 管理的磁盤當中dom
LVM中PV、VG、PE、LV:ide
LVM 的全名是 Logical Volume Manager,中文能夠翻譯做邏輯卷軸管理員。工具
LVM 的做法是將幾個實體的 partitions (或 disk)經過軟件組合成爲一塊看起來是獨立的大磁盤(VG),而後將這塊大磁盤再通過分區成爲可以使用分區(LV),最終就可以掛載使用了。性能
Physical Volume, PV, 實體卷軸操作系統
咱們實際的 partition (或 Disk)須要調整系統識別碼(system ID)成爲 8e (LVM 的識別碼),而後再通過pvcreate 的指令將他轉成 LVM 最底層的實體卷軸(PV),以後纔可以將這些 PV 加以利用!調整 system ID 的方是就是經過gdisk翻譯
Volume Group, VG, 卷軸羣組3d
由一個或多個物理卷組成一個總體,即稱爲卷組,在卷組中能夠動態的添加或移除物理卷。許多個物理卷能夠分別組成不一樣的卷組,卷組的名稱由用戶自行定義。rest
所謂的 LVM 大磁盤就是將許多 PV 整合成這個 VG 的東西就是啦!因此 VG 就是 LVM 組合起來的大磁盤!
那麼這個大磁盤最大能夠到多少容量呢?(PE 以及 LVM 的格式版本有關)
在默認的狀況下,使用 32位的 Linux 系統時,基本上 LV 最大僅能支持到 65534 個 PE 而已,若使用默認的 PE 爲 4MB 的狀況下,最大容量則僅能達到約 256GB 而已~不過,這個問題在 64位的 Linux 系統上面已經不存在了!LV 幾乎沒有啥容量限制
Physical Extent, PE, 實體範圍區塊
LVM 默認使用 4MB 的 PE 區塊,而 LVM 的 LV 在 32 位系統上最多僅能含有 65534 個 PE (lvm1 的格式),所以默認的 LVM 的 LV 會有4M*65534/(1024M/G)=256G。
他是整個 LVM 最小的儲存區塊,也就是說,其實咱們的文件數據都是藉由寫入PE 來處理的。(相似文件系統的block大小)
Logical Volume, LV, 邏輯卷軸
邏輯卷創建子啊卷組之上,與物理卷沒有直接關係,對於邏輯捲來講,每個卷組就是一個總體,從這個總體中「切出」一小塊空間,做爲用戶建立文件系統的基礎,這一小塊空間就稱爲邏輯卷,使用mkfs等工具在邏輯捲上建立文件系統之後,就能夠直接掛載到Linux操做系統中目錄下使用。
最終的 VG 還會被切成 LV,這個 LV 就是最後能夠被格式化使用的相似分區
那麼 LV 是否能夠隨意指定大小呢?(否)
既然 PE 是整個 LVM 的最小儲存單位,那麼 LV 的大小就與在此 LV 內的 PE 總數有關。
爲了方便使用者利用 LVM 來管理其系統,所以 LV 的設備文件名一般指定爲「/dev/vgname/lvname 」的樣式!
VG階段 vgcreate :就是主要建立 VG 的指令 vgscan :搜尋系統上面是否有 VG 存在 vgdisplay :顯示目前系統上面的 VG 狀態 vgextend :在 VG 內增長額外的 PV vgreduce :在 VG 內移除 PV vgchange :設置 VG 是否啓動(active) vgremove :刪除一個 VG
LV 階段 lvcreate :建立 LV lvscan :查詢系統上面的 LV lvdisplay :顯示系統上面的 LV 狀態 lvextend :在 LV 裏面增長容量 lvreduce :在 LV 裏面減小容量 lvremove :刪除一個 LV lvresize :對 LV 進行容量大小的調整
建立邏輯卷並使用的順序:建立物理卷→建立卷組→建立邏輯卷→格式化掛載
經常使用的LVM邏輯卷與文件系統管理的命令:
pvscan命令:用於掃描系統中全部的物理卷,並輸出相關信息
pvcreate命令:用於將分區或整個硬盤轉換爲物理卷,主要是添加LVM屬性信息並劃分PE存儲單位(該命令須要使用硬盤或分區的設備文件做爲參數,能夠是多個)
pvdisplay命令:用於顯示物理卷的詳細信息,須要使用指定的物理卷做爲命令參數,默認時將顯示全部物理卷的信息
pvremove命令:用於將物理卷還原成普通分區或磁盤,再也不用於LVM體系,被移除的物理卷將沒法被pvscan識別。
卷組管理命令:
vgscan命令:用於掃描系統中以創建的LVM卷組及相關信息。經過執行命令能夠列出cl卷組。
vgcreate命令:用於將一個或多個物理卷建立爲一個卷組。
[root@localhost ~]# vgcreate web_document /dev/sdb1 /dev/sdb2 #使用物理卷/dev/sdb一、/dev/sdb2建立名爲web_document的卷組。
vgdisplay命令:用於顯示系統中個卷組的詳細信息,須要使用指定卷組名做爲命令參數(未指定卷組名時將顯示全部卷組的信息)
vgremove命令:用於刪除指定的卷組,將指定卷組名做爲參數便可。
vgextend命令:用於擴展卷組的磁盤空間,當建立新的物理卷,並須要將其添加到已有卷組中時,就可使用vgextend命令,該命令的第一個參數爲須要擴展容量的卷組名稱,後面是爲須要添加到該卷組中的物理卷。
邏輯卷管理命令:
lvscan命令:用於掃描系統中已創建的邏輯卷及相關信息。經過命令能夠能夠列出cl卷組中的邏輯卷。
lvcreate命令:用於從指定的卷組中分割空間,以建立新的邏輯卷,須要指定邏輯卷大小、名稱及所在的卷組名做爲參數
lvdisplay命令:用於顯示邏輯卷的詳細信息,能夠指定邏輯卷的設備文件做爲參數,也可使用卷組名做爲參數,以顯示該卷組中全部邏輯卷的信息
lvextend命令:用於動態擴展邏輯卷的空間,當目前使用的邏輯卷空間不足時,能夠從所在卷組中分割額外的空間進行擴展。只要指定需增長的容量大小及邏輯卷設備文件位置便可,前提條件是該卷組中還有還沒有分配的磁盤空間,不然須要先擴展卷組容量。
vcreate命令:用於刪除指定的邏輯卷,直接使用邏輯卷的設備文件做爲參數便可。
配置案例
建立邏輯卷
格式化邏輯卷,建立XFS文件系統。
掛載
若是添加邏輯卷或刪除後,使用命令「 xfs_growfs 掛載點」來更新邏輯卷!
一、xfs文件系統的備份——xfsdump命令:
xfsdump命令的限制: xfsdump不支持沒有掛載的文件系統,因此只能備份已掛載的; Xfsdump必須使用root的權限才能操做(涉及文件系統的關係); Xfsdump只能備份xfs文件系統; Xfsdump備份下來的數據(文件或存儲媒體)只能讓xfsrestore解壓; Xfsdump是經過文件系統的UUID來分辨各個備份文件的,所以不能備份兩個具備相同UUID的文件系統。
經常使用選項: -L:xfsdump會記錄每次備份的session標頭,這裏能夠填寫針對此文件系統的簡易說明; -M:xfsdump能夠記錄存儲媒體的標頭,這裏能夠填寫此媒體的簡易說明。 -l:是L的小寫,就是指定等級,有0~9共10個等級,默認爲0,即完整備份,1~9是指增量備份。 -f:有點相似tar,後面接產生的文件,也能夠接例如/dev/st0設備文件名或其餘通常文件文件名; -I:大寫的「i」,從/var/lib/xfsdump/inventory 列出目前備份的信息狀態。
root@localhost ~]# xfsdump -l O -L boot_all -Mboot_all -f /srv/boot.dump /boot #將完整備份的文件名記錄成爲/srv/boot.dump #若是不加-L和-M選項進入互動模式 xfsdump: using file dump (drive_simple) strategy xfsdump: version 3.1.4 (dump format 3.0) - type ^C for status and control xfsdump: WARNING: most recent level 0 dump was interrupted, but not resuming that dump since resume (-R) option not specified xfsdump: level 0 dump of localhost.localdomain:/boot #開始備份本機的/boot系統 xfsdump: dump date: Wed Aug 21 00:04:00 2019 #備份的時間 xfsdump: session id: 2ab52f27-54d8-4cb3-b99f-5f78601afeed #此次dump的ID xfsdump: session label: "boot_all" #簡單給予一個名字記憶 #開始備份程序 xfsdump: ino map phase 1: constructing initial dump list xfsdump: ino map phase 2: skipping (no pruning necessary) xfsdump: ino map phase 3: skipping (only one dump stream) xfsdump: ino map construction complete xfsdump: estimated dump size: 146934272 bytes xfsdump: creating dump session media file 0 (media 0, file 0) xfsdump: dumping ino map xfsdump: dumping directories xfsdump: dumping non-directory files xfsdump: ending media file xfsdump: media file size 146605160 bytes xfsdump: dump size (non-dir files) : 146370000 bytes xfsdump: dump complete: 1 seconds elapsed xfsdump: Dump Summary: xfsdump: stream 0 /srv/boot.dump OK (success) xfsdump: Dump Status: SUCCESS [root@localhost ~]# xfsdump -I #查看有沒有文件被xfsdump備份過的數據
二、xfs文件系統的還原——xfsrestore命令:
經常使用選項以下: -I:大寫的「i」跟xfsdump相同的輸出!可查詢備份數據,包括Label名稱和備份時間等; -f:後面接的就是備份文件!企業中頗有可能會接/dev/st0等磁帶機! -L:可用「-I」查詢到的數據。在這個選項後輸入; -s:須要接某特定目錄,也能復原某一文件或目錄; -r:若是是用文件來存儲備份數據,那這個就不須要使用。若是是一個磁盤內有多個文件,須要使用它來達成累積復原; -i:進入互動模式(通常不須要)
[root@localhost ~]# xfsrestore -I #查看備份文件數據 [root@localhost ~]# xfsrestore -f /srv/boot.dump -L boot_all /boot# 直接將備份數據覆蓋回去