LVM的基本認識及使用
Logical Volume Manager
LVM是在物理裝置的基礎上,建立邏輯儲存裝置,邏輯儲存裝置可以隨意擴充,或縮減
功能
1、根據需求動態擴充,或縮減空間
2、實現快照備份
基本結構及概念
PV: pyicalvolume 物理卷,由物理裝置盤區,raid或磁碟組成,
VG: volumegroup 卷組,由整數個PV組成,一個PV包含若干個 PE可新增或縮減PV彈性變化
LV: logical volume 邏輯卷,建立在vg上,最大不能超過vg的大小
PE: 最小的物理儲存單位,只有載入到VG上才確定其大小 類似與物理磁碟中的block
LE: 在物理捲上叫PE,在邏輯捲上叫
PV 管理工具
pvs :pv summary概要顯示pv資訊
pvdisplay:詳細顯示pv使用情況
pvcreate: 建立pv
-f 強制建立pv,不管其是否被劃分到其他的vg中使用
-v verbose 顯示建立過程
-u uuid 基於uuid建立物理卷
pvremove 移除pv,將資料擦去,移除之
pvmove 將資料從該pv上轉移到其他的pv上,以使該pv可以進行其他的移除類操作
pvremove wipes the label on a device so that LVM will no longer recognise it as
a physical volume.
pvscan 探測,掃描該系統上的所有的LVM塊裝置
pvchage:修改物理卷屬性
VG管理工具
vgs 概要顯示vg資訊
vgdisplay 顯示vg的詳細資訊
vgcreate 建立vg
-h|--help 獲取幫助
-s #[bBsSkKmMgGtTpPeE] 設定PE的大小,一旦被建立很難被改變
使用格式如下:
[-t|--test] [-v|--verbose] [--version][PHYSICAL DEVICE OPTIONS] VolumeGroupName pyicalDevicePath [PhysicalDevicePath...]
vgextend 改變vg大小,只能是pv的整數大小。格式如下
-f|--forceVolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
強制改變其大小,一般不要這樣,可能會毀壞資料
vgremove 移除VG,當你的VG不再使用了,可以移除之,如果VG中有PV請先移除之,
如果有邏輯卷存在,會提示你先移除PV,可以使用-f直接覆蓋
vgreduce 允許你從vg中移除一個或更多未使用的pv
[-v|--verbose] VolumeGroupName [PhysicalVolumePath...]
LV邏輯卷,邏輯卷,邏輯卷只能在所在的vg中動態擴充,或縮減。
lvcreate 邏輯卷的建立,使用現有的邏輯卷組空間建立,
-l|--extents LogicalExtentsNumber[%{VG|PVS|FREE
-L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE
-n|--name LogicalVolume{Name|Path}
-s|--snapshot [VolumeGroup{Name|Path} ExternalOriginLogicalVolumeName]]
-s snapshot 製作快照卷 [vg{name|path}] 原lv(要做快照的物件) VG{name|path}
-n 為LV命名
lvdisplay 詳細顯示邏輯卷資訊
lvs概要顯示邏輯卷資訊
lvextend 擴充套件邏輯卷,利用現有vg空間擴充lv大小
-l|--extents LogicalExtentsNumber[%{VG|LV|PVS|FREE|ORIGIN}]
-L|--size[+]LogicalVolumeSize[bBsSkKmMgGtTpPeE]
使用格式:
lvextend optionsLogicalVolumePath[PhysicalVolumePath[:PE[-PE]]...]
lvconvert將邏輯卷轉化為快照,
lvreduce 刪除邏輯卷,刪除邏輯卷時,須確保資料已備份或儲存
snapshot 儲存的只是變化了的資料,未變化的資料還在原來的儲存空間的
快照卷 是對磁碟某一個時刻的資料進行儲存,它儲存的只是變化了的資料
對磁碟儲存資料過程的時間很短,只在一瞬間,因此,基本上是完成資料,在儲存過程中變化的資料不能儲存,其和快照後的資料可以通過增量備份實現其儲存
快照卷也可以作為訪問資料的一個入口,因此只能存在與和要儲存的卷的組中,不能跨組
但只能訪問快照時刻的資料、
快照後的資料不會儲存到快照卷中,
其實現過程中不能格式化資料
具體實現命令
lvcreate–s –L #{kmgtpe} –n SNAPSHOT_NAME OriginalLogicalVolumeName
二、邏輯卷與快照卷功能的實現
1:建立一個至少有兩個PV組成的大小為10G的名為testvg的VG;要求PE大小為16MB, 而後在卷組中建立大小為5G的邏輯卷testlv;掛載至/users目錄;
1、 要想建立pv必須要有可建立的物理裝置,因此先建立兩個5G的硬碟sdb1,sdb2,且將磁碟格式轉化成8e lvm格式,以供建立lvm使用省略
2、 建立物理卷
#pvcreate/dev/sdb{1,2} Physicalvolume"/dev/sdb1"successfullycreated Physicalvolume"/dev/sdb2"successfullycreated
3、建立大小10G PE 16MB 的VGtestvg
#vgcreate-s16mtestvg/dev/sdb{1,2} Volumegroup"testvg"successfullycreated
4、建立大小為5G的testlv
#lvcreate-ntestlv-L5Gtestvg Logicalvolume"testlv"created #lvs LVVGAttrLSizePoolOriginData%Meta%MoveLogCpy%SyncConvert testlvtestvg-wi-a-----5.00g
5、對/dev/testvg/testlv進行格式化
mkfs.ext4/dev/testvg/testlv
掛載到已建立的/users 目錄下如此這樣就可以使用testlv空間了了
2:新建使用者archlinux,要求其家目錄為/users/archlinux,而後su切換至archlinux使用者,復 制/etc/pam.d目錄至自己的家目錄;
[[email protected]~]$cp-r/etc/pam.d//users/archlinux/
3:擴充套件testlv至7G,要求archlinux使用者的檔案不能丟失;
#lvextend-L7G/dev/testvg/testlv #resize2fs-p/dev/testvg/testlv
#擴充套件邏輯邊界
4:收縮testlv至3G,要求archlinux使用者的檔案不能丟失;
縮減時,應先縮減其邏輯邊界,在縮減其物理邊界,而且不能線上縮減,需先解除安裝,還要強制進行磁碟檢測,而且要確保縮減後的空間能承載現有資料,否則會出錯!
1) 解除安裝,略
2) 縮減其邏輯邊界
#e2fsck-f/dev/testvg/testlv #resize2fs-p/dev/testvg/testlv3G
3) 縮減其物理邊界
#lvreduce-L3G/dev/testvg/testlv
4)重新掛載並使用
5、對testlv建立快照,並嘗試基於快照備份資料,驗正快照的功能;
建立快照卷
#lvcreate-L3G-s/dev/testvg/testlv-nshotlv #lvcreate-L3G-s/dev/testvg/testlv-nshlv
掛載到/media目錄下
#mount/dev/testvg/shlv/media #ls/mediaarchlinuxlost+found
修改原資料
#cd/users/ #mkdirtom #ls/users archlinuxlost+foundtom
快照卷資料並未改變
#ls/media archlinuxlost+found
刪除原資料
#rm-rf/users/*
將快照卷原樣複製到原目錄下,將原目錄下的資料恢復到快照時刻的樣子,實現了資料的基礎備份
#cp-af/media/*/users/
#ls/users
archlinuxlost+found
6、建立一個由兩個物理卷組成的大小為5G的卷組裝置,要求其PE大小為16M;而後在此卷組中建立一個大小為2G的邏輯卷lv1,此邏輯卷要能在開機後自動掛載至/users目錄;
#pvcreate/dev/sda{5,6} Physicalvolume"/dev/sda5"successfullycreated Physicalvolume"/dev/sda6"successfullycreated #vgcreate-s16Mmyvg/dev/sda{5,6} Volumegroup"myvg"successfullycreated #vgs VG#PV#LV#SNAttrVSizeVFree myvg200wz--n-10.00g10.00g #lvcreate-L2G-nLV1/dev/myvg Logicalvolume"LV1"created #mkfs.ext4/dev/myvg/LV1 #vim/etc/fstab /dev/myvg/LV1/usersext4defaults00 ~ "/etc/fstab"18L,963C #mount-a
通過以上例項,大概可體現LVM 的基本使用格式及功用
轉載於:https://blog.51cto.com/fallcamel/1689405