您好,登錄后才能下訂單哦!
LVM邏輯盤卷管理
LVM是邏輯盤卷管理的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。它的機制就是將多個塊設備連接為一個整塊的卷組(volumegroup),形成一個存儲池。然后,在這個卷組上創建邏輯卷(logicalvolumes),并進一步在邏輯卷上創建文件系統。
當硬盤的空間不夠使用的時候,可以繼續將其它的硬盤的分區加入其中,這樣可以實現磁盤空間的動態管理,相對于普通的磁盤分區有很大的靈活性。
物理卷(physicalvolume):指磁盤分區或與磁盤分區有同樣功能的設備(如RAID)。創建物理卷時磁盤類型需要是8e。如:/dev/hda1、/dev/sda等等,是存儲系統最低層的存儲單元。創建物理卷的時候不可以直接格式化!
卷組(volumegroup):就是將多個物理卷組合起來,邏輯上成為一塊硬盤。它的大小有物理卷大小和多少決定,且至少要有一個物理卷。
邏輯卷(logicalvolume):在卷組上創建,可以在創建的邏輯卷上建立文件系統。類似與磁盤分區。不同的是邏輯卷的邊界可以隨意擴展或縮小。
PE(PhysicalExtents):在創建卷組時底層指定的一個存儲單位,借鑒Oracle的表述方式就叫做物理盤區(物理擴展),所以我們在劃分一個邏輯卷時就是分配多少個PE來決定的,PE的大小是由卷組決定的,PE的大小也是可配置的(下面會闡述),默認為4MB。
LE(LogicalExtents):當PE被分配到一個邏輯卷之后就被稱作是LE,也就是說,把邏輯卷劃分為被稱為LE(Logical Extents) 的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,并且一一對應。
快照(Snapshot):邏輯卷也支持快照,LVM快照通過把文件系統的改變記錄到一個快照分區,而不是對這個分區做鏡像(也就是保留過去某一刻的狀態)。因此當你創建一個快照分區時,你不需要使用和你正創建快照的分區一樣大小的分區,而是在做快照過程中需要改變的大小。這取決于有多少數據正在寫入分區和你希望保留LVM快照多長時間。你保留的時間越長,在文件系統的的改變越多,更多的快照分區就會被填充改變的信息。在分區上的改變率越高,快照的平均生命期越短。如果一個LVM分區的改變量超過了快照的大小,那么快照就會被釋放。簡單說就是:快照中什么都沒有它只是一個訪問原文件的通路。(如圖所示)有了快照之后我們對數據的備份就會非常的簡單方便。
其創建過程是:先將物理設備做成物理卷,然后將物理卷組合起來形成卷組,最后在卷組上創建邏輯卷。而我們使用的就是邏輯卷。
硬盤有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邏輯卷實現過程:
1、創建分區
首先創建磁盤分區,這里使用SCSI硬盤,并且系統已經有了三個主分區,那么我們只能創建擴展分區,并在擴展分區上創建邏輯分區了。我使用fdisk工具進行分區。
#fdisk /dev/sda
注意的是分區類型必須是8e,否則無法支持LVM邏輯卷的使用。分區完最好輸入p查看下創建好的分區以及類型,最后保存退出。這里我創建了/dev/sda5和/dev/sda6兩個邏輯分區,大小分別是7G和3G。
2、創建物理卷
命令是pvcreate,我們可以將上面所創建的兩個分區創建為物理卷,也可以先只將一個分區創建為物理卷。
#pvcreate /dev/sda5 /dev/sda6
3、創建卷組
命令是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。
4、激活卷組
為了立即使用卷組而不用重啟系統,可以使用vgchange命令來激活卷組
#vgchage -ay myvg
5、創建邏輯卷
創建邏輯卷的命令是lvcreate,我們在myvg卷組上創建一個6G大小的邏輯卷,
-L來指定邏輯卷的大小;-n指定邏輯卷的名稱
#lvcreate -L 6G -n mylv myvg
6、格式化邏輯卷分區
這里我使用的是ext3格式的文件系統
#mke2fs -j /dev/myvg/mylv
創建掛載點來掛在創建好的邏輯卷分區
#mkdir /mylv
#mount /dev/myvg/mylv /mylv
擴展一下內容
1、為卷組添加新的物理卷
當我們又創建了新的物理卷的時候,想要添加到myvg卷組中時,需要使用vgextend這個命令了。
#vgextend -t myvg /dev/sda7 #先測試是否可以添加物理卷
#vgextend myvg /dev/sda7
這里/dev/sda7表示我們創建的新的物理卷
2、從卷組中刪除物理卷
要從一個卷組中刪除一個物理卷,首先要確認要刪除的物理卷沒有被任何邏輯卷使用,這時我們就要使用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刪除
3、刪除邏輯卷
刪除邏輯卷時,要先將其卸載,然后才能刪除,這里我們為了簡單說明就將上面新建的邏輯卷作為例子
#umount /dev/myvg/mylv
#lvremove /dev/myvg/mylv
Do you really want to remove active logical volume mydata? [y/n]:y
4、擴展邏輯卷大小
擴展邏輯卷大小的命令是lvextend,上面我們創建邏輯卷的時候還剩4G容量,那么我們就為其再添加2G容量的步驟如下
#lvextend –L 8G /dev/myvg/mylv
或者這樣增加這1G容量
#lvextend –L +2G /dev/myvg/mylv
增加邏輯卷的容量以后,我們的物理邊界擴展了,此時查看邏輯卷的大小并沒有改變,因為邏輯邊界沒有擴展。所以我們就需要擴展邏輯卷的邏輯邊界了,命令如下
#resize2fs /dev/myvg/mylv #這里不用跟調整的大小,會自動擴展到擴展的物理邊界
5、減小邏輯卷的大小
需要先將文件系統卸載了。需要注意的是,在縮減的時候我們的數據文件可能會受到影響,所以一般不建議縮減邏輯卷大小。這里我們使用的大小是添加過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來減小邏輯卷大小。
常用命令的簡單介紹:
1、物理卷相關命令
pvcreate #創建物理卷
pvremove #移除物理卷
pvmove #移動物理卷的數據
pvscan #掃描物理卷
pvdisplay #查看物理卷的信息
例如:
#pvdisply #查看所有的物理卷信息
#pvdisply /dev/sda5 #只查看特定的物理卷的信息
pvs #簡單查看物理卷的信息
2、卷組相關命令
vgcreate #創建卷組
-s :指定PE大小,默認PE大小是4M
vgdisplay #查看卷組的信息
vgextend #擴展卷組大小
-t :檢測制定物理卷是否可以添加進來
vgreduce #縮減卷組大小
-t :檢測指定物理卷是否可以移除出去
vgscan #掃描卷組
vgs #查看卷組的簡單信息
3、邏輯卷相關命令
lvcreate #創建邏輯卷
-L :指定創建邏輯卷的大小
-n :指定邏輯卷的名稱
lvdisplay #查看邏輯卷的信息
lvremove #移除邏輯卷
lvreduce #縮減邏輯卷大小
lvextend #擴展邏輯卷大小
lvs #簡單查看邏輯卷的信息
二、創建學習篇
首先創建PV,然后將PV組合成VG,最后將VG劃分為LV。
1、創建分區
使用分區工具(如:fdisk等)創建LVM分區,注意LVM的分區類型為8e。
使用fdisk創建分區,根據設備文件的絕對路徑(/dev/sda)進入分區管理
注:一定要指定分區的格式為8e,這是LVM的分區格式
2、創建物理卷(PV)
格式:pvcreate 設備名稱
查看結果:
格式:pvdisplay 設備名稱
格式:pvs
3、創建卷組(VG)
格式:vgcreate VGNAME PV名稱 …
vgcreate –s PE 可以指定PE大小
查看結果:
格式:vgdisplay 設備名稱
格式:vgs
4、創建邏輯卷(LV)
格式:lvcreate –L SIZE –n LV_NAME VG_NAME
(說明:-L指定邏輯卷的大小,-n指定邏輯卷名稱卷組名稱 –l指定PE的個數)
查看結果:
格式:lvdisplay
格式:lvs
5、LV格式化及掛載
下一步需要對LV進行格式化(使用mke2fs進行格式化操作),然后LV才能存儲資料
注:邏輯卷的設備文件路徑:/dev/VG_NAME/LV_NAME
/dev/mapper/VG_NAME-LV_NAME
三、管理學習篇
1、擴展VG
首先準備好一個PV,然后使用vgextend命令即可完成擴展;
命令格式:vgextend VG_NAME /PATH/TO/PV
2、縮減VG
首先確定要移除的PV,然后將此PV上的數據轉移至其他PV,最后從卷組中將此PV移除;
命令格式:
移動數據:pvmore 盤區到盤區
移除VG:vgreduce VG_NAME /PATH/TO/PV
注:在移除物理卷之前一定要把數據轉移到其他盤區上。
3、刪除PV
命令格式:pvremove
4、擴展邏輯卷
首先確定擴展多大?然后確定當前邏輯卷所在的卷組有足夠的空間可用,最后進行擴展:方法:
一:擴展物理邊界:lvextend-L [+]SIZE /path/to/lv
(注:“+”可省的,其中有“+”表示擴展了,無“+”表示擴展了)
二:擴展邏輯邊界:resize2fs/path/to/device
5、縮減邏輯卷
由于邏輯卷的縮減有風險,所以第一步要確定縮減為多大?也就是說至少能容納原有的數據,第二步進行縮減;縮減需要三步:
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
7、利用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當中】
8、移除邏輯卷和快照卷
首先要確定已經卸載過了邏輯卷
格式:lvremove /path/to/lv
9、移除卷組
格式: vgremove/path/to/lv
總結:LVM邏輯卷是Linux里面一個很棒的空間使用機制,因為分區在沒有格式化的情況下是沒有辦法加大或者放小的。通過LVM可以將你的磁盤空間做到靈活自如。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。