LVM邏輯盤卷管理安全
LVM是邏輯盤卷管理的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是創建在硬盤和分區之上的一個邏輯層,來提升磁盤分區管理的靈活性。它的機制就是將多個塊設備鏈接爲一個整塊的卷組(volumegroup),造成一個存儲池。而後,在這個卷組上建立邏輯卷(logicalvolumes),並進一步在邏輯捲上建立文件系統。網絡
當硬盤的空間不夠使用的時候,能夠繼續將其它的硬盤的分區加入其中,這樣能夠實現磁盤空間的動態管理,相對於普通的磁盤分區有很大的靈活性。數據結構
物理卷(physicalvolume):指磁盤分區或與磁盤分區有一樣功能的設備(如RAID)。建立物理卷時磁盤類型須要是8e。如:/dev/hda一、/dev/sda等等,是存儲系統最低層的存儲單元。建立物理卷的時候不能夠直接格式化!app
卷組(volumegroup):就是將多個物理卷組合起來,邏輯上成爲一塊硬盤。它的大小有物理卷大小和多少決定,且至少要有一個物理卷。ide
邏輯卷(logicalvolume):在卷組上建立,能夠在建立的邏輯捲上創建文件系統。相似與磁盤分區。不一樣的是邏輯卷的邊界能夠隨意擴展或縮小。工具
PE(PhysicalExtents):在建立卷組時底層指定的一個存儲單位,借鑑Oracle的表述方式就叫作物理盤區(物理擴展),因此咱們在劃分一個邏輯卷時就是分配多少個PE來決定的,PE的大小是由卷組決定的,PE的大小也是可配置的(下面會闡述),默認爲4MB。學習
LE(LogicalExtents):當PE被分配到一個邏輯卷以後就被稱做是LE,也就是說,把邏輯卷劃分爲被稱爲LE(Logical Extents) 的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,而且一一對應。測試
快照(Snapshot):邏輯卷也支持快照,LVM快照經過把文件系統的改變記錄到一個快照分區,而不是對這個分區作鏡像(也就是保留過去某一刻的狀態)。所以當你建立一個快照分區時,你不須要使用和你正建立快照的分區同樣大小的分區,而是在作快照過程當中須要改變的大小。這取決於有多少數據正在寫入分區和你但願保留LVM快照多長時間。你保留的時間越長,在文件系統的的改變越多,更多的快照分區就會被填充改變的信息。在分區上的改變率越高,快照的平均生命期越短。若是一個LVM分區的改變量超過了快照的大小,那麼快照就會被釋放。簡單說就是:快照中什麼都沒有它只是一個訪問原文件的通路。(如圖所示)有了快照以後咱們對數據的備份就會很是的簡單方便。加密
其建立過程是:先將物理設備作成物理卷,而後將物理卷組合起來造成卷組,最後在卷組上建立邏輯卷。而咱們使用的就是邏輯卷。spa
硬盤有4種分區形式,分別是主分區、擴展分區、邏輯分區和活動分區。下面分別對它們進行介紹。
主分區
主分區是用於安裝操做系統的分區,其中包含操做系統啓動時所必需的文件和數據,系統啓動
時必須經過它才能啓動。要在硬盤上安裝操做系統,該硬盤上至少要有一個主分區,而且設爲
活動分區來引導啓動系統。一個硬盤最多隻能劃分4個主分區。
擴展分區
擴展分區是用戶在建立4個以上的分區時使用的分區類型,擴展分區是不能直接用來存儲數據
的,而只是用於劃分邏輯分區。擴展分區下能夠包含多個邏輯分區,能夠爲其邏輯分區進行高
級格式化,併爲其分配驅動器號。例如,當用戶想爲硬盤建立5個分區時,若是都將其建立爲主
分區,系統只能認出4個,這不能知足咱們的需求。此時,就能夠建立3個主分區,再建立一個
擴展分區,而後在擴展分區下建立2個邏輯分區。
邏輯分區
邏輯分區是從擴展分區劃分出來的,主要用於存儲數據。在擴展分區中最多能夠建立23個邏輯
分區,各邏輯分區能夠得到惟一的由D到Z的盤符。
活動分區
活動分區是用於加載系統啓動信息的分區。主分區須要激活爲活動分區後,才能正常地啓動操
做系統。若是硬盤中沒有一個主分區被設置爲活動分區,則該硬盤將沒法正常啓動。
硬盤分區格式也就是文件系統格式。文件系統格式是操做系統用於明確磁盤或分區上文件
的方法和數據結構,不一樣的分區格式採用不一樣的文件管理機制來存儲和讀取文件數據,而
不一樣的操做系統則須要不一樣的文件系統格式的支持。
目前經常使用的分區格式主要有3種,即FAT16格式、FAT32格式和NTFS格式,下面分別對
它們進行介紹。
FAT16格式
FAT16格式是MS-DOS和早期的Windows 95操做系統中使用的磁盤分區格式,它採用16位的文件分
配表,也稱爲FAT格式。FAT16對如今的操做系統已經再也不適用。
FAT32格式
FAT32格式採用32位的文件分配表,對磁盤的管理能力較強,支持Windows XP和其以前的部分
Windows 操做系統。
NTFS格式
NTFS是一種特別爲磁盤配額、文件加密和網絡應用等管理安全特性而設計的硬盤分區格式。其
優勢是安全性和穩定性方面很是好,在使用過程當中不易產生文件碎片,並能對用戶的操做進行
記錄,經過對用戶權限進行很是嚴格的限制,使每一個用戶只能按照系統賦予的權限進行操做,
充分保護了系統和數據的安全,若是要安裝Windows 7或Windows 8必須採用NTFS格式。
簡單的實現一個LVM邏輯卷實現過程:
一、建立分區
首先建立磁盤分區,這裏使用SCSI硬盤,而且系統已經有了三個主分區,那麼咱們只能建立擴展分區,並在擴展分區上建立邏輯分區了。我使用fdisk工具進行分區。
#fdisk /dev/sda
注意的是分區類型必須是8e,不然沒法支持LVM邏輯卷的使用。分區完最好輸入p查看下建立好的分區以及類型,最後保存退出。這裏我建立了/dev/sda5和/dev/sda6兩個邏輯分區,大小分別是7G和3G。
二、建立物理卷
命令是pvcreate,咱們能夠將上面所建立的兩個分區建立爲物理卷,也能夠先只將一個分區建立爲物理卷。
#pvcreate /dev/sda5 /dev/sda6
三、建立卷組
命令是vgcreate,將上面建立的兩個物理卷建立爲一個卷組
#vgcreate myvg /dev/sda5 /dev/sda6
注意:
myvg是指定建立的卷組的邏輯名,能夠隨意的設定。後面就是將建立的物理卷添加到卷組中,這裏咱們也能夠只將一個物理卷添加到卷組中,等想再添加另外一個物理卷的時候再添加。須要注意PE(默認是4M)這個概念,它表示卷組上建立的全部邏輯卷都以4MB爲增量單位來進行擴充或縮減。PE大小決定了邏輯卷的最大大小,4MB的PE決定了單個邏輯卷最大容量爲256GB,若但願使用大於256G的邏輯卷則建立卷組時指定更大的PE。PE大小範圍爲8KB到512MB,而且必須老是2的倍數。若是想指定PE大小隻須要添加-s選項,指定PE大小就好了,列:
#vgcreate -s 16M myvg /dev/sda5 /dev/sda6。這裏指定PE大小爲16M。
四、激活卷組
爲了當即使用卷組而不用重啓系統,可使用vgchange命令來激活卷組
#vgchage -ay myvg
五、建立邏輯卷
建立邏輯卷的命令是lvcreate,咱們在myvg卷組上建立一個6G大小的邏輯卷,
-L來指定邏輯卷的大小;-n指定邏輯卷的名稱
#lvcreate -L 6G -n mylv myvg
六、格式化邏輯卷分區
這裏我使用的是ext3格式的文件系統
#mke2fs -j /dev/myvg/mylv
建立掛載點來掛在建立好的邏輯卷分區
#mkdir /mylv
#mount /dev/myvg/mylv /mylv
擴展一下內容
一、爲卷組添加新的物理卷
當咱們又建立了新的物理卷的時候,想要添加到myvg卷組中時,須要使用vgextend這個命令了。
#vgextend -t myvg /dev/sda7 #先測試是否能夠添加物理卷
#vgextend myvg /dev/sda7
這裏/dev/sda7表示咱們建立的新的物理卷
二、從卷組中刪除物理卷
要從一個卷組中刪除一個物理卷,首先要確認要刪除的物理卷沒有被任何邏輯卷使用,這時咱們就要使用pvdisplay命令察看一個物理卷信息:
若是某個物理卷正在被邏輯卷所使用,就須要將該物理卷的數據備份到其餘地方,而後再刪除。刪除物理卷的命令爲vgreduce:
#vgreduce myvg /dev/sda7 這裏爲了簡單說明,就將新添加的/dev/sda7從卷組中刪除
附註:
若是咱們建立的卷組包含兩個物理卷,一個7G(/dev/sda5),一個3G(/dev/sda6),而咱們LV上面已經有6G的數據了,這樣咱們就不能將/dev/sda5給移除了,由於移除/dev/sda5必然會損壞數據。並且咱們不能肯定數據是否是都在/dev/sda5上面,也不能貿然移除/dev/sda6。若是須要移除/dev/sda6的話,應該先將/dev/sda6上面的數據移到同卷組的其餘物理捲上,而後再移除/dev/sda6。這就須要使用pvmove這個命令了,步驟以下
#pvmove /dev/sda6 #不須要指定將數據移動到那兒個磁盤上,它會自動將數據移動到同組的物理捲上
#vgreduce myvg /dev/sda6 將物理卷6刪除
三、刪除邏輯卷
刪除邏輯卷時,要先將其卸載,而後才能刪除,這裏咱們爲了簡單說明就將上面新建的邏輯卷做爲例子
#umount /dev/myvg/mylv
#lvremove /dev/myvg/mylv
Do you really want to remove active logical volume mydata? [y/n]:y
四、擴展邏輯卷大小
擴展邏輯卷大小的命令是lvextend,上面咱們建立邏輯卷的時候還剩4G容量,那麼咱們就爲其再添加2G容量的步驟以下
#lvextend –L 8G /dev/myvg/mylv
或者這樣增長這1G容量
#lvextend –L +2G /dev/myvg/mylv
增長邏輯卷的容量之後,咱們的物理邊界擴展了,此時查看邏輯卷的大小並無改變,由於邏輯邊界沒有擴展。因此咱們就須要擴展邏輯卷的邏輯邊界了,命令以下
#resize2fs /dev/myvg/mylv #這裏不用跟調整的大小,會自動擴展到擴展的物理邊界
五、減少邏輯卷的大小
須要先將文件系統卸載了。須要注意的是,在縮減的時候咱們的數據文件可能會受到影響,因此通常不建議縮減邏輯卷大小。這裏咱們使用的大小是添加過1G後的邏輯卷的大小,咱們將其縮減爲5G的大小。步驟以下
#umount /dev/myvg/mylv
#e2fsck –f /dev/myvg/mylv #強行檢測邏輯卷
#resize2fs /dev/myvg/mylv 5G #調整邏輯卷的大小
#lvreduce –L 5G /dev/myvg/mylv #縮減邏輯卷的大小
或者
(#lvreduce –L -2G /dev/myvg/mylv)
#mount /dev/myvg/mylv /mylv
#df –lh #查看各個磁盤的大小
說明:在咱們縮減的時候須要先用e2fsck命令強行檢測下邏輯卷,而後用resize2fs命令調整邏輯卷的大小,最後用lvreduce來減少邏輯卷大小。
經常使用命令的簡單介紹:
一、物理卷相關命令
pvcreate #建立物理卷
pvremove #移除物理卷
pvmove #移動物理卷的數據
pvscan #掃描物理卷
pvdisplay #查看物理卷的信息
例如:
#pvdisply #查看全部的物理卷信息
#pvdisply /dev/sda5 #只查看特定的物理卷的信息
pvs #簡單查看物理卷的信息
二、卷組相關命令
vgcreate #建立卷組
-s :指定PE大小,默認PE大小是4M
vgdisplay #查看卷組的信息
vgextend #擴展卷組大小
-t :檢測制定物理卷是否能夠添加進來
vgreduce #縮減卷組大小
-t :檢測指定物理卷是否能夠移除出去
vgscan #掃描卷組
vgs #查看卷組的簡單信息
三、邏輯卷相關命令
lvcreate #建立邏輯卷
-L :指定建立邏輯卷的大小
-n :指定邏輯卷的名稱
lvdisplay #查看邏輯卷的信息
lvremove #移除邏輯卷
lvreduce #縮減邏輯卷大小
lvextend #擴展邏輯卷大小
lvs #簡單查看邏輯卷的信息
2、建立學習篇
首先建立PV,而後將PV組合成VG,最後將VG劃分爲LV。
1、建立分區
使用分區工具(如:fdisk等)建立LVM分區,注意LVM的分區類型爲8e。
使用fdisk建立分區,根據設備文件的絕對路徑(/dev/sda)進入分區管理
注:必定要指定分區的格式爲8e,這是LVM的分區格式
二、建立物理卷(PV)
格式:pvcreate 設備名稱
查看結果:
格式:pvdisplay 設備名稱
格式:pvs
三、建立卷組(VG)
格式:vgcreate VGNAME PV名稱 …
vgcreate –s PE 能夠指定PE大小
查看結果:
格式:vgdisplay 設備名稱
格式:vgs
四、建立邏輯卷(LV)
格式:lvcreate –L SIZE –n LV_NAME VG_NAME
(說明:-L指定邏輯卷的大小,-n指定邏輯卷名稱卷組名稱 –l指定PE的個數)
查看結果:
格式:lvdisplay
格式:lvs
五、LV格式化及掛載
下一步須要對LV進行格式化(使用mke2fs進行格式化操做),而後LV才能存儲資料
注:邏輯卷的設備文件路徑:/dev/VG_NAME/LV_NAME
/dev/mapper/VG_NAME-LV_NAME
3、管理學習篇
一、擴展VG
首先準備好一個PV,而後使用vgextend命令便可完成擴展;
命令格式:vgextend VG_NAME /PATH/TO/PV
二、縮減VG
首先肯定要移除的PV,而後將此PV上的數據轉移至其餘PV,最後從卷組中將此PV移除;
命令格式:
移動數據:pvmore 盤區到盤區
移除VG:vgreduce VG_NAME /PATH/TO/PV
注:在移除物理卷以前必定要把數據轉移到其餘盤區上。
三、刪除PV
命令格式:pvremove
4、擴展邏輯卷
首先肯定擴展多大?而後肯定當前邏輯卷所在的卷組有足夠的空間可用,最後進行擴展:方法:
一:擴展物理邊界:lvextend-L [+]SIZE /path/to/lv
(注:「+」可省的,其中有「+」表示擴展了,無「+」表示擴展了)
二:擴展邏輯邊界:resize2fs/path/to/device
五、縮減邏輯卷
因爲邏輯卷的縮減有風險,因此第一步要肯定縮減爲多大?也就是說至少能容納原有的數據,第二步進行縮減;縮減須要三步:
a)、卸載並強行檢測文件系統
命令:e2fsck –f
b)、邏輯邊界
命令:resize2fs/path/to/device SIZE
c)、物理邊界
命令:lvextend -L [+/-]SIZE /path/to/lv
d)、查看結果
6、快照卷(只是作原件的通路,不能修改,不能寫入)
lvcreate
-s :指定快照卷;
-p r:限定快照卷爲只讀訪問的;
格式: lvcreate -L SIZE-s -p r -n LV_NAME /path/to/lv
七、利用LV的快照功能還原系統
#lvcreate -L 50M -s -p r -n mylv-snap /dev/myvg/mylv【建立快照mylv-snap】
#mount -o ro /dev/myvg/mylv-snap /media【掛載快照】
#tar -jcv -f /backup/lvm.tar.bz2 /media/* 【備份快照數據】
#umount /media
#lvremove /dev/myvg/mylv-snap
對/dev/myvg/mylv裏面的數據進行隨意修改.......
還原:
#tar -jxv -f /backup/lvm.tar.bz2 -C /mnt【將快照備份的數據還原到lvm當中】
八、移除邏輯卷和快照卷
首先要肯定已經卸載過了邏輯卷
格式:lvremove /path/to/lv
九、移除卷組
格式: vgremove/path/to/lv
總結:LVM邏輯卷是Linux裏面一個很棒的空間使用機制,由於分區在沒有格式化的狀況下是沒有辦法加大或者放小的。經過LVM能夠將你的磁盤空間作到靈活自如。