1、LVM簡介
安全
LVM(Logical Volume Manager,邏輯卷管理)的重點在於能夠動態調整文件系統的容量!而並不是在於數據的存儲效率及安全上面。須要文件的讀寫性能或者是數據的可靠性是RAID所考慮的問題。LVM能夠整合多個實體分區在一塊兒,讓這些分區看起來就像是一個磁盤同樣!並且,還能夠在將來新增或移除其它的實體分區到這個LVM管理的磁盤當中。如此一來,整個磁盤空間的使用上,實在是至關的具備彈性。
ide
2、LVM經常使用術語性能
1.物理存儲介質(he physical mediaThe physical media):這裏指系統的存儲設備文件,如/dev/sda,/dev/sdb等等;測試
2.物理卷(Physical Volume):簡稱PV,物理卷就是指硬盤分區或從邏輯上與磁盤分區具備一樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區,硬盤)比較,卻包含有與LVM相關的管理參數;spa
3.卷組(Volume Group):簡稱VG,LVM卷組相似於非LVM系統中的物理硬盤,其由物理卷組成。能夠在卷組上建立一個或多個「LVM分區」(邏輯卷),LVM卷組有一個或多個物理卷組成
blog
4.邏輯卷(Logical Volume):簡稱LV,LVM的邏輯卷相似於非LVM系統中的硬盤分區,在邏輯捲上能夠創建文件系統(如/home,/usr等);
rem
5.PE(Physical Extent):PV中能夠分配的最小存儲單元稱爲PE,PE的大小是能夠配置的,默認爲4MB;
get
6.LE(Logical Extent):LV中能夠分配的最小存儲單元稱爲LE,在同一個卷組中,LE的大小和PE是同樣的,且一一對應;
同步
圖1 LVM磁盤結構圖
it
3、建立邏輯卷
1.例如:要建立一個10G的lv;
2.注:邏輯卷能夠拿分區或者整塊硬盤作實驗;這裏我用/dev/sda7,/dev/sdb作實驗
3.步驟:
3.1.建立物理分區:
①fdisk /dev/sda;(劃分/dev/sda6分區,大小10G,修改分區類型爲Linux LVM,ID改成8e)
②partx -a /dev/sda;同步分區;
3.2.建立物理卷(PV):
①pvcreate /dev/sd{a6,b};
②pvs;
③pvdisplay;
與PV相關的一些管理命令:
pvcreate:將實體分區建立成爲PV;
pvs:顯示pv簡要信息;
pvdisplay:顯示PV詳細信息;
pvscan:搜尋目前系統裏面任何具備PV的磁碟;
pvremove:將PV屬性移除,讓該分區不具備PV屬性;
pvmove:移動pv
3.3.建立卷組(VG):
語法:vgcreate VGNAME(卷組名) /dev/pv1...(物理卷)
①vgcreate vg0 /dev/sd{a6,b};
②vgs;
③pvdisplay;
④vgdisplay;
與VG相關的一些管理命令:
vgcreate:建立VG;
vgs:顯示vg簡要信息;
vgdisplay:顯示vg詳細信息;
vgscan:搜尋系統上面是否有VG存在;
vgextend:在vg內添加額外的pv;
vgreduce:在vg內移除pv;
vgremove:刪除一個VG;
vgchange:配置vg是否啓動(active);
3.4.建立邏輯卷(LV):
語法:lvcreate [-L 邏輯卷大小 | -l PE的個數] [-n 邏輯卷名稱] [所屬的卷組名]
①lvcreate -L 10G -n lv0 vg0;
②lvdisplay;
與LV相關的一些管理命令:
lvcreate:建立LV;
lvs:顯示lv簡要信息;
lvdisplay:顯示lv詳細信息;
lvscan:查詢系統上面的lv;
lvextend:在lv裏面添加容量;
lvreduce:在lv裏面減小容量;
lvremove:刪除一個lv;
lvresize:對lv進行容量大小的調整
3.5.創建文件系統(格式化):
①mkfs.ext4 /dev/vg0/lv0;
3.6.掛載邏輯卷(寫進/etc/fstab文件實現自動掛載):
①mkdir /mnt/ln0;
②/dev/vg0/lv0 mnt/lv0 ext4 defaults 0 0
③mount -a;
④df- h
⑤cp -r /etc/* /mnt/lv0;
4、擴展邏輯卷
1.注:擴展邏輯卷,前提卷組要有足夠的容量;
2.擴展邏輯卷步驟:
①lvextend -L +10G /dev/vg0/lv0;
②lvdisplay;
③resize2fs /dev/vg0/lv0;同步文件系統,resize2fs只能同步ext系列文件系統;
④df -h;
注:擴展邏輯卷容量表示方法:+10G的含義是在已有的當前容量上加上10G;10G的含義是把容量擴展到10G;
3.要想把卷組空間容量所有擴展完而且同步文件系統使用如下命令:
①lvextend -r -l +100%FREE /dev/vg0/lv0;
5、擴展卷組
1.方法:加硬盤;(這裏我用/dev/sdc硬盤作實驗)
2.擴展卷組步驟:
①pvcreate /dev/sdc;##把硬盤變成物理卷
②vgextend vg0 /dev/sdc;##把物理卷加入卷組
③vgdisplay;
6、縮減邏輯卷
1.縮減邏輯卷步驟:
①umount /mnt/lv0:##取消已經掛載的邏輯卷
②e2fsck -f /dev/vg0/lv0;##強制進行磁盤檢測
③resize2fs /dev/vg0/lv0 10G;
④lvreduce -L 10G /dev/vg0/lv0;
⑤mount -a:從新掛載邏輯卷
⑥lvdisplay;
⑦df -h;
7、刪除物理卷(PV)
1.刪除PV步驟:
①pvmove /dev/sdb;將PV中的PE個數移動到別的PV
②pvdisplay;(能夠看到PE個數被移動到別的PV)
③vgreduce vg0 /dev/sdb;從卷組中刪除PV
④vgdisplay;(能夠看到卷組容量變小了)
⑤ pvs;(能夠看見/dev/sdb不屬於VG0)
⑥pvremove /dev/sdb;移除pv,不讓/dev/sdb具備pv屬性;
⑦pvs;查看
8、刪除邏輯卷
1.刪除邏輯卷步驟:
①umount /mnt/lv0;取消已經掛載的邏輯卷
②lvremove /dev/vg0/lv0;
③lvs;
9、刪除卷組
1.刪除卷組步驟:
①vgremove vg0;
④pvs;
10、邏輯卷快照
1.快照是特殊的邏輯卷,它是在生成快照時存在的邏輯卷的 準確拷貝。
2.對於須要備份或者複製的現有數據集臨時拷貝以及其它操 做來講,快照是最合適的選擇。
3.快照只有在它們和原來的邏輯卷不一樣時纔會消耗空間:
3.1在生成快照時會分配給它必定的空間,但只有在原來的邏輯卷或 者快照有所改變纔會使用這些空間。
3.2當原來的邏輯卷中有所改變時,會將舊的數據複製到快照中。
3.3快照中只含有原來的邏輯卷中更改的數據或者自生成快照後的快 照中更改的數據。
3.4創建快照的卷大小隻須要原始邏輯卷的15%~20%就夠了。也可 以使用lvextend放大快照。
4.快照就是將當時的系統信息記錄下來,就好像照相通常, 若未來有任何數據改動了,則原始數據會被移動到快照區,沒有改動的區域則由快照區和文件系統共享。
5.因爲快照區與本來的LV共用不少PE的區塊,所以快照區與被快照的LV必需要要在同一個VG上。系統恢復的時候的文件數量不能高於快照區的實際容量。
11、建立快照邏輯卷
注:要事先建立好邏輯卷(我這裏事先建立好了邏輯卷(/dev/vg0/lv0),並掛載在/mnt/lv0裏),並拷貝一些數據到目錄裏作實驗,如下四步事先準備好:
(1)cd /mnt/lv0;
(2)cp /etc/fstab f1;
(3)cp /etc/fstab f2;
(4)cp /etc/fstab f3 ;
1.建立邏輯卷快照步驟:
注:建立快照要注意卷組空間容量要足夠;快照邏輯卷容量小於或等於被快照的邏輯卷;
①lvcreate -L 1G -s -n lv0-snapshot -p r /dev/vg0/lv0;建立快照
②lvdisplay;查看快照信息
③mkdir /mnt/snapshot;建立快照目錄
④mount /dev/vg0/lv0-snapshot /mnt/snapshot/;掛載快照
2.測試:
①cd /mnt/lv0;進入到被快照的邏輯卷目錄裏
②echo > f1;在被快照的邏輯卷裏清空f1的數據
③cd /mnt/snapshot;進入到快照邏輯卷目錄裏
④cat f1;能夠看到原始f1的數據內容
3.利用快照回覆數據:
(1)注:所要恢復的數據不能超過快照區的總大小,由於若是變更的數據大小超過了快照區的空間,那麼快照區是不能容納全部變更的數據了,這個時候快照功能會失效。
(2)方法:把快照裏的數據複製到邏輯卷的掛載目錄裏便可;
4.刪除快照邏輯卷:
①umount /mnt/snapshot/;取消掛載
②lvremove /dev/vg0/lv0-snapshot;刪除快照邏輯卷