二、Logical Volume Manager,邏輯卷管理
1、LVM機制的基本概念:
PV(物理卷)
VG(卷組)
LV(邏輯卷)
(1)pv 物理卷:
物理卷是LVM機制的基本存儲設備,通常對應爲一個普通分區或整個硬盤。
創建物理卷時,會在分區或硬盤的頭部創建一個保留區塊,用於記錄LVM的屬性,並把存儲空間分割成默認大小爲4MB的基本單元(Physical Extent,PE),從而構成物理卷
物理卷一般直接使用設備文件名稱,如/dev/sdb1 , /dev/sdb1, /dev/sdd等
對於轉換成物理卷的普通分區,建議先使用fdisk工具將分區類型的ID標記號改爲“8e”(8e表示LVM邏輯卷),若是整塊硬盤,可以將所有磁盤空間劃分爲一個主分區後再做相對應調整
(2)VG(Volume Group,卷組)
卷組: 由一個或多個物理卷組成一個整體
在卷組中可以動態的添加或移除物理卷
許多個物理卷可以分別組成不同的卷組,卷組的名稱由用戶自定義
(3)LV(Logical Volume,邏輯卷)
邏輯卷: 邏輯卷建立在卷組之上,與物理卷沒有直接關係
對於邏輯捲來說,每一個卷組就是一個整體,從這個整體中“切出”一小塊空間,作爲用戶創建文件系統的基礎,這一小塊空間就稱爲邏輯卷
使用mkfs等工具在邏輯捲上創建文件系統以後,就可以掛載到Linux系統中的目錄下使用
2、LVM機制的管理:
(1)pvcreate命令——PV物理卷管理
pvcreate用於將分區或整個硬盤轉換爲物理卷,主要是添加LVM屬性並劃分PE存儲單元
例:[root@localhost ~]# pvcreate /dev/sdd1
(2)pvscan命令——掃描系統中的所有物理卷,並輸出相關信息
例:[root@localhost ~]# pvscan
(3)pvdisplay命令——用於顯示物理卷的詳細信息
例:[root@localhost ~]# pvdisplay /dev/sdd1
(4)pvremove命令——將物理卷還原成普通分區或磁盤,不再用於LVM體系
例:[root@localhost ~]# pvremove /dev/sd[b-c]1
(5)vgcreate命令——用於將一個或多個物理卷創建爲一個卷組
例:[root@localhost ~]# vgcreate 123 /dev/sdb1 /dev/sdd1
(6)vgscan命令——用於掃描系統中已建立的LVM卷組及相關信息
(7)vgdisplay命令——用於顯示系統中各卷組的詳細信息
(8)vgremove命令——用於刪除指定的卷組,指定卷組名稱作爲參數即可
例:vgremove 123
(8)vgextend命令——用於擴展卷組的磁盤空間
當建立了新的物理卷,並需要將其添加到已有的卷組中時,就可以使用vgextend命令
vgextend命令第一個參數爲需要擴展容量的卷組名稱,其後爲需要添加到該卷組中的各物理卷
(9)vgreduce命令——從卷組中刪除物理卷
vgreduce指令通過刪除LVM卷組中的物理捲來減少卷組容量。
刪除刪除卷組中丟失的物理卷,使卷組恢復正常狀態
(10)lvcreate命令——從指定的卷組中分割空間,以創建新的邏輯卷
需要指定邏輯卷大小,名稱和所在的卷組名稱作爲參數
邏輯卷創建好以後,可以通過“/dev/卷組名/邏輯卷名”形式的設備文件進行訪問(或/dev/mapper/卷組名-邏輯卷名)
例:lvcreate -L 10G -n 111 123
(11)lvscan命令——掃描系統中已建立的邏輯卷及相關信息
(12)lvdisplay命令——顯示邏輯卷的詳細信息
需要指定邏輯卷的設備文件作爲參數,也可以使用卷組名作爲參數(顯示該卷組中的所有邏輯卷信息)
不指定參數則顯示所有,同pvdisplay和vgdisplay
(13)lvextend命令——動態擴展邏輯卷的空間,當目前使用的邏輯卷空間不足時,可以從所在卷組中分割額外的空間進行擴展。
需要指定增加的容量大小和邏輯卷文件位置
前提是該卷組中還有尚未分配的磁盤空間,否則需要先擴展卷組容量
掛載文件系統後擴容,需要執行以下命令才能被系統識別
例:[root@localhost ~]# lvextend -L +10G /dev/123/111
(14)lvremove命令——刪除指定的邏輯卷
直接使用邏輯卷的設備文件作爲參數即可
例:[root@localhost ~]# lvremove /dev/123/111
(15)lvreduce命令——減少LVM邏輯卷佔用的空間大小
例:[root@localhost ~]# lvreduce -L -5G /dev/123/111 xfs 只支持擴容,不支持減少
實驗:
1、實驗準備:
(1)先在虛擬機上添加3塊大小爲20G的硬盤。重啓虛擬機,使得剛加的硬盤能夠被識別。
(2)[root@localhost ~]# fdisk -l #########查看添加的硬盤是否被系統識別? 沒有的話重新啓動虛擬機
(3)將每個實體硬盤分區以及轉換格式爲後期建虛擬卷做準備。
1、 fdisk /dev/sdb
命令(輸入m獲取幫助):n
Select (default p) :p #########一路默認設置
命令(輸入m獲取幫助):t #########進入設置硬盤類型模式
Hex代碼(輸入L列出所有代碼):8e ########將硬盤分區的類型設置爲LVM
命令(輸入m獲取幫助):p ########查看上面的設置是否正確,有誤立即回頭修改
命令(輸入m獲取幫助):w #########將上面的設置保存
2、 fdisk /dev/sdc
命令(輸入m獲取幫助):n
Select (default p) :p #########一路默認設置
命令(輸入m獲取幫助):t #########進入設置硬盤類型模式
Hex代碼(輸入L列出所有代碼):8e ########將硬盤分區的類型設置爲LVM
命令(輸入m獲取幫助):p ########查看上面的設置是否正確,有誤立即回頭修改
命令(輸入m獲取幫助):w #########將上面的設置保存
3、 fdisk /dev/sdd
命令(輸入m獲取幫助):n
Select (default p) :p #########一路默認設置
命令(輸入m獲取幫助):t #########進入設置硬盤類型模式
Hex代碼(輸入L列出所有代碼):8e ########將硬盤分區的類型設置爲LVM
命令(輸入m獲取幫助):p ########查看上面的設置是否正確,有誤立即回頭修改
命令(輸入m獲取幫助):w #########將上面的設置保存
4、[root@localhost ~]# fdisk -l #########查看上面的設置是否正確,有誤立即回頭修改
2、實驗過程:
(1) 建立物理卷:
1、[root@localhost ~]# pvcreate /dev/sd{b..d}1 ##########將sdb、sdc、sdd變成pv模式,後面有1可以回頭看,在上面設置後sdb後面自動加上了
2、pvscan ###########查看上面設置情況
(2)建立卷組:
1、[root@localhost ~]#vgcreate mailbox /dev/sd{b..d}1 ##########建立卷組mailbox
2、vgscan ##############發現目前還沒有任何狀況 ***沒有創建邏輯卷
3、vgdisplay #########查看卷組的詳細信息 每個pe大小爲4M
(3)建立邏輯卷:
1、[root@localhost ~]#lvcreate -L 25G -n mbox01 mailbox ##########建立第一個邏輯卷mbox01,大小爲25G,***此時文件夾可以看到邏輯卷:/dev/mailbox/mbox01
2、[root@localhost ~]#lvcreate -L 15G -n mbox02 mailbox ##########建立第一個邏輯卷mbox02,大小爲15G.
3、lvdisplay ##########查看上面設置兩個邏輯卷的情況
(3·1)在未掛載的情況下拓展邏輯卷的大小:
1、[root@localhost ~]#lvextend -L +10G /dev/mailbox/mbox01 #########給mbox01的空間拓展10G
2、lvdisplay ##########查看拓展是否成功?(mbox01的空間是否增加10G)
(4)格式化邏輯卷:
1、[root@localhost ~]#mkfs -t xfs /dev/mailbox/mbox01 ##########將前面設置好的邏輯卷1號格式化,爲後面的掛載做準備。(要掛載就必須先格式化)
2、[root@localhost ~]#mkfs -t xfs /dev/mailbox/mbox02 ##########將前面設置好的邏輯卷2號格式化,爲後面的掛載做準備。
(5)邏輯卷掛載:
1、[root@localhost ~]#mkdir /opt/mbox{1..2} ##########在/opt目錄下建立邏輯卷的掛載點 **mbox1** 邏輯卷文件是mbox01
2、[root@localhost ~]#ls /opt/ ##########查 看掛載點創建是否成功?
3、[root@localhost ~]#vim /etc/fstab ##########打開掛載文件系統的配置文件
4、/dev/mailbox/mbox01 /opt/mbox1 xfs defaults 0 0 ##########將邏輯卷文件mbox01*永久*掛載到mbox1下
/dev/mailbox/mbox02 /opt/mbox2 xfs defaults 0 0 ##########將邏輯卷文件mbox02*永久*掛載到mbox2下
4·1、df-Th ##########尚未發現掛載文件系統的出現
5、[root@localhost ~]#mount -a ##########刷新所有掛載文件系統
6、df -Th ##########即可發現前面的掛載文件系統已實現掛載
3、實驗拓展:
(1)在已掛載的情況下,再次拓展邏輯卷:
1、[root@localhost ~]#lvextend -L +5G /dev/mailbox/mbox01 ##########和前面的一樣照常增加空間
2、df -Th ##########發現目標邏輯卷並沒有拓展空間
3、[root@localhost ~]#xfs_growfs /dev/mapper/mailbox-mbox01 ##########重新刷新邏輯卷的文件系統
(2)實現Swap分區拓展:
1、[root@localhost ~]# fdisk /dev/sdd ##########進入sdd的交互模式
2、設備 Boot Start End Blocks Id System ##########將sdd分成sdd1的主分區(83),sdd2的拓展分區(5),再在sdd2裏面分出sdd5、sdd6的邏輯分區
/dev/sdd1 2048 20973567 10485760 83 Linux
/dev/sdd2 20973568 41943039 10484736 5 Extended
/dev/sdd5 20975616 31461375 5242880 83 Linux
/dev/sdd6 31463424 41943039 5239808 83 Linux
3、命令(輸入 m 獲取幫助):t ##########將sdd5的邏輯分區變爲Swap分區
分區號 (1,2,5,6,默認 6):5
Hex 代碼(輸入 L 列出所有代碼):82
已將分區“Linux”的類型更改爲“Linux swap / Solaris”
4、命令(輸入 m 獲取幫助):w ############保存後退出
The partition table has been altered!
5、查看swap分區是否得以拓展:
[root@localhost ~]# cat /proc/meminfo |grep Sw*