Linux邏輯卷管理員

博文結構
什麼是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翻譯

Linux邏輯卷管理員

Volume Group, VG, 卷軸羣組3d

由一個或多個物理卷組成一個總體,即稱爲卷組,在卷組中能夠動態的添加或移除物理卷。許多個物理卷能夠分別組成不一樣的卷組,卷組的名稱由用戶自行定義。rest

所謂的 LVM 大磁盤就是將許多 PV 整合成這個 VG 的東西就是啦!因此 VG 就是 LVM 組合起來的大磁盤!
那麼這個大磁盤最大能夠到多少容量呢?(PE 以及 LVM 的格式版本有關)
在默認的狀況下,使用 32位的 Linux 系統時,基本上 LV 最大僅能支持到 65534 個 PE 而已,若使用默認的 PE 爲 4MB 的狀況下,最大容量則僅能達到約 256GB 而已~不過,這個問題在 64位的 Linux 系統上面已經不存在了!LV 幾乎沒有啥容量限制

Linux邏輯卷管理員

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, 邏輯卷軸

Linux邏輯卷管理員

邏輯卷創建子啊卷組之上,與物理卷沒有直接關係,對於邏輯捲來講,每個卷組就是一個總體,從這個總體中「切出」一小塊空間,做爲用戶建立文件系統的基礎,這一小塊空間就稱爲邏輯卷,使用mkfs等工具在邏輯捲上建立文件系統之後,就能夠直接掛載到Linux操做系統中目錄下使用。

最終的 VG 還會被切成 LV,這個 LV 就是最後能夠被格式化使用的相似分區
那麼 LV 是否能夠隨意指定大小呢?(否)
既然 PE 是整個 LVM 的最小儲存單位,那麼 LV 的大小就與在此 LV 內的 PE 總數有關。
爲了方便使用者利用 LVM 來管理其系統,所以 LV 的設備文件名一般指定爲「/dev/vgname/lvname 」的樣式!

Linux邏輯卷管理員

Linux邏輯卷管理員

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 進行容量大小的調整

建立邏輯卷並使用的順序:建立物理卷→建立卷組→建立邏輯卷→格式化掛載

Linux邏輯卷管理員

經常使用的LVM邏輯卷與文件系統管理的命令:

Linux邏輯卷管理員

pvscan命令:用於掃描系統中全部的物理卷,並輸出相關信息

Linux邏輯卷管理員

pvcreate命令:用於將分區或整個硬盤轉換爲物理卷,主要是添加LVM屬性信息並劃分PE存儲單位(該命令須要使用硬盤或分區的設備文件做爲參數,能夠是多個)

Linux邏輯卷管理員

pvdisplay命令:用於顯示物理卷的詳細信息,須要使用指定的物理卷做爲命令參數,默認時將顯示全部物理卷的信息

Linux邏輯卷管理員

pvremove命令:用於將物理卷還原成普通分區或磁盤,再也不用於LVM體系,被移除的物理卷將沒法被pvscan識別。

Linux邏輯卷管理員

卷組管理命令:
vgscan命令:用於掃描系統中以創建的LVM卷組及相關信息。經過執行命令能夠列出cl卷組。

Linux邏輯卷管理員

vgcreate命令:用於將一個或多個物理卷建立爲一個卷組。

[root@localhost ~]# vgcreate web_document  /dev/sdb1 /dev/sdb2 
#使用物理卷/dev/sdb一、/dev/sdb2建立名爲web_document的卷組。

vgdisplay命令:用於顯示系統中個卷組的詳細信息,須要使用指定卷組名做爲命令參數(未指定卷組名時將顯示全部卷組的信息)

Linux邏輯卷管理員

vgremove命令:用於刪除指定的卷組,將指定卷組名做爲參數便可。

Linux邏輯卷管理員

vgextend命令:用於擴展卷組的磁盤空間,當建立新的物理卷,並須要將其添加到已有卷組中時,就可使用vgextend命令,該命令的第一個參數爲須要擴展容量的卷組名稱,後面是爲須要添加到該卷組中的物理卷。

Linux邏輯卷管理員


邏輯卷管理命令:

lvscan命令:用於掃描系統中已創建的邏輯卷及相關信息。經過命令能夠能夠列出cl卷組中的邏輯卷。

Linux邏輯卷管理員

lvcreate命令:用於從指定的卷組中分割空間,以建立新的邏輯卷,須要指定邏輯卷大小、名稱及所在的卷組名做爲參數

Linux邏輯卷管理員

lvdisplay命令:用於顯示邏輯卷的詳細信息,能夠指定邏輯卷的設備文件做爲參數,也可使用卷組名做爲參數,以顯示該卷組中全部邏輯卷的信息

Linux邏輯卷管理員

lvextend命令:用於動態擴展邏輯卷的空間,當目前使用的邏輯卷空間不足時,能夠從所在卷組中分割額外的空間進行擴展。只要指定需增長的容量大小及邏輯卷設備文件位置便可,前提條件是該卷組中還有還沒有分配的磁盤空間,不然須要先擴展卷組容量。

Linux邏輯卷管理員

vcreate命令:用於刪除指定的邏輯卷,直接使用邏輯卷的設備文件做爲參數便可。

Linux邏輯卷管理員

配置案例


建立邏輯卷

Linux邏輯卷管理員

格式化邏輯卷,建立XFS文件系統。

Linux邏輯卷管理員


掛載

Linux邏輯卷管理員

若是添加邏輯卷或刪除後,使用命令「 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#  直接將備份數據覆蓋回去
相關文章
相關標籤/搜索