LVM:
LVM: Logical Volume Manager,可以實作動態的擴容和縮容,邏輯卷是一種邏輯上的管理方式,把一塊或多塊硬碟或磁區邏輯的組合在一起,命令成一個卷組(VG),卷組的空間來自所有硬碟空間的總和,(組成邏輯卷的硬碟或磁區大小可以不一樣)
VG:
多個磁盤或者磁區組合在一起的(邏輯上的大硬碟)
LV:
是從VG中取出一塊空間而來的(相當于VG這個邏輯上大硬碟的一個磁區)
PE:
PE:物理盤區,作用是負責分配空間的最小單位(邏輯卷中),擴容和縮容都是以PE為單位來操作的,PE大小默認為4M

LVM的實作程序:
-
1.將設備設為物理卷 -- 貼個標簽,表示這個硬碟要作為物理卷使用了
-
2.指定卷組(一個或多個物理卷加入卷組形成一個大硬碟)
-
3.創建邏輯卷(相當于磁區)
-
4.創建檔案系統并掛載

邏輯卷的名字:
邏輯卷有三個名稱你可以用,一個真名,兩個軟連接,
第一個邏輯卷對應設備名:/dev/dm-# (邏輯卷的真名)
dm: device mapper,將一個或多個底層塊設備組織成一個邏輯設備的模塊
邏輯卷的軟鏈接:
-
/dev/mapper/VG_NAME-LV_NAME
-
/dev/VG_NAME/LV_NAME
邏輯卷的實作范例:
#創建swap空間,磁區的id要改為82,創建邏輯卷,物理設備磁區的id要改成8e fdisk的t選項,
#如果是使用硬碟的話,就不存在改ID的問題了,
#這些命令依賴lvm2這個工具包
#創建物理卷
pvcreate /dev/sda3
#為卷組分配物理卷
vgcreate vg0(卷組名) /dev/sda3(把創建的pv加進來) #-s可以指定PE的大小
#從卷組創建邏輯卷
lvcreate -L 256M -n data vg0 # -n:指定設備名稱 -l:PE的個數 -L:指定LV的大小
mkfs.xfs /dev/vg0/data #創建檔案系統
#掛載
mount /dev/vg0/data /mnt/data
邏輯卷的擴展和縮減
擴展邏輯卷:
#兩步實作 -- 空間擴展和檔案系統擴展 (缺點在于檔案系統擴容的時候不同系列的檔案系統命令不一樣)
#第一步實作邏輯卷的空間擴展
lvextend -L [+]#[mMgGtT](大小) /dev/VG_NAME/LV_NAME #-l:擴容多少個pe -L:擴容的大小 不寫+號表示擴容到xx,寫了+號表示增加xxx
#第二步實作檔案系統的擴展
#使用df命令看到的是檔案系統的情況,擴容了的部分但是上面沒有檔案系統,所以就看不見
#針對ext
resize2fs /dev/VG_NAME/LV_NAME #resize2fs:對ext系列的檔案系統進行擴容,把檔案系統同步到空間里面去
#針對xfs
xfs_growfs MOUNTPOINT
#一步實作容間和檔案系統的擴展(不用關注檔案系統的型別,直接擴容)
lvextend -r -l +100%FREE /dev/VG_NAME/LV_NAME #-l:pe的個數 -r:表示不管是什么檔案系統都立即同步檔案系統 +100%FREE:表示剩下的所有剩余空間
擴展卷組的空間:
##添加物理卷到卷組中(磁區需要改id號)
pvcreate 物理卷
##將添加的設備添加到卷組中
vgextend 卷組名 物理卷
縮減邏輯卷(有丟失資料的風險)
#建議先備份再縮減,xfs檔案系統不支持縮減
#五個步驟:1.卸載 -- 2.檢查檔案系統完整性(不管是否完整必須) -- 3.縮減檔案系統 -- 4.縮減邏輯卷大小 -- 5.重新掛載
#1.卸載:
umount /dev/VG_NAME/LV_NAME #首先卸載
#2.檢查檔案系統完整性
e2fsck -f /dev/VG_NAME/LV_NAME
#3.縮減檔案系統
resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT](縮減后的大小,例如2G表示縮減到2G)
#4.縮減邏輯卷大小
lvreduce -L [-]#[mMgGtT](這個大小要和上面的大小相匹配) /dev/VG_NAME/LV_NAME(對誰進行縮減)
#5.重新掛載
mount /dev/VG_NAME/LV_NAME mountpoint
清除快取的方法:
使用 free -h 可以看到快取
查看快取對應的目錄: find /proc -name 'drop*' --- /proc/sys/vm/drop_caches
清理快取:echo 3 > /proc/sys/vm/drop_caches --- 3就是清理快取
#快取的目的就是為了提高性能(一般做測驗的時候才清理快取)
拆除指定的PV存盤設備
要想移除指定的pv存盤設備,首先要將它上面的資料移到別的pv上面去,(要確保上面的資料在別的pv上面能存得下)
#實作方法:
#移動指定pv設備上的所有被占用的pe移動到同一卷組的其他成員上面
pvmove 指定的pv設備
#把pv設備從vg里面移走
vgreduce 指定的設備
#不讓這個設備作為pv了
pvremove 指定的設備
洗掉邏輯卷
應該倒過來洗掉,從邏輯卷、卷組再到物理卷
-
1.取消掛載
-
2.洗掉邏輯卷: lvremove 邏輯卷
-
3.洗掉卷組: vgremove 卷組
-
4.洗掉物理卷:pbremove 物理卷
邏輯卷快照
快照:把當前的狀態快速做一個備份,快照類似備份的效果,但是特別快
邏輯卷快照:瞬間把邏輯卷做個備份
作業邏輯:
- 首先有一個卷組,卷組里面存在一個邏輯卷,假設邏輯卷里面有一些檔案,
- 做快照就是在同屬于同一卷組的空間中創建一個邏輯卷(快照邏輯卷--snapshot,具有特殊屬性),
- 創建快照的時候并沒有把原邏輯卷中的資料備份到快照中,只是在硬碟上分配了一個空間,
- 起到備份效果是因為在更改原檔案的時候,會自動把被修改檔案的舊版本推送到快照里面去了(只存放最初的原始版本)沒有修改的檔案就不會被放到做快照的這個空間里面去,
總結:
快照備份邏輯:創建快照的時候會分配一塊空間,只有原檔案發生了修改,才會把這個原檔案的最初版本放到快照里面去(快照里面只放發生了改變的資料),
快照的實作:(快照也是一種邏輯卷,所以使用的命令和創建邏輯卷的命令一樣)
#為現有邏輯卷創建快照,注意ext4必須使用-p r 實作只讀
#創建快照:
lvcreate -l 64 -s -n data-snapshot /dev/vg0/data
#-l: 指定這個快照的大小(多少個pe)
# -s:表示創建的是快照,不加s表示創建的是普通邏輯卷
# -n: 快照的名字
# /dev/vg0/data -- 表示指定的是誰的快照(原始邏輯卷的名稱)
創建完成后可以使用 lvs或lvdisplay來進行查看(因為快照也是一個邏輯卷)
#創建快照以后進行掛載
#掛載快照,xfs注意要使用-o ro實作只讀,訪止快照被修改
mkdir -p /mnt/snap
mount -o ro,nouuid /dev/vg0/data-snapshot /mnt/snap #nouuid--不檢查uuid xfs這類檔案系統不允許相同的uuid設備掛載, ext系列檔案系統不用加nouuid都行的
#掛載以后,進入這個目錄進行查看能看的資料的原因是(這里面的資料是來源于原邏輯卷的,并非已經將這些資料備份了,因為之后原邏輯卷的資料修改以后,才會備份被修改資料的初始資料)
#恢復快照(使用快照資料還原修改過的資料)
umount /dev/vg0/data-snapshot #先取消掛載
umount /dev/vg0/data #先取消掛載
lvconvert --merge /dev/vg0/data-snapshot #利用快斬訓原原來的邏輯卷資料
#merge -- 合并,融入
#還原以后,快斬訓自動洗掉
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/498265.html
標籤:其他
