linux的進階存儲管理
- 一、邏輯卷
-
- (1)、邏輯卷基本概念
- (2)、基本指令
- 二、建立、拉伸磁盤
-
- (1)、建立PV、VG、LV卷,挂載
- (2)、lvm裝置的拉伸
- (3)、lvm裝置的縮減(lv的縮減)
- (4)、lvm裝置的快照
- (5)、lvm裝置的縮減(pv的縮減和轉移)
- (6)、lvm裝置的删除
一、邏輯卷
(1)、邏輯卷基本概念
一般将磁盤挂載到目錄上,當目錄不斷寫入資料後,超過磁盤大小後,會超出記憶體範圍。這時我們可以引入LVM(Logical Volume Manager) 即邏輯卷來解決分區空間不夠用的情況。為了便于大家了解LVM的工作原理,我們引入下面這個通俗易懂的示例進行說明。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYTMfhHLlN3XnxCM38FdsYkRGZkRG9lcvx2bjxiMx8VZ6l2cswWZiVTStplNOl3N3YXewVTQx9WNwU3N1EVLMZTQClGVF5UMR9Fd4VGdsATNfd3bkFGazxSUhxGatJGbwhFT1Y0Mk9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL0MWYmdTZkRzNyYTOxIGNhVWMzQTYlJWOkRTZjFmY1IzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
PV(實體卷)
相當于水果,水果條
PE實體擴充
是水果具體切的大小,把許多水果條榨汁進入到大水杯
VG(實體卷組)
,這個大水杯是不能直接使用的,需要用最小的小水杯
LV(邏輯卷)
才能使用。
使用方法:當小水杯
LV(邏輯卷)
使用滿了後,從大水杯
VG(實體卷組)
中取用即可,當大杯
VG(實體卷組)
不夠時,加入更多的水果
PV(實體卷)
進行榨汁填充即可。
(2)、基本指令
pvcreate /dev/vdb1 建立pv實體卷
vgcreate westosvg -s 2M /dev/vdb1 建立VG實體卷westosvg,設定pv大小為2M
lvcreat -L 100M -n westoslv westosvg 以westosvg為實體卷建立100M的邏輯卷westoslv
mkfs.xfs /dev/westosvg/westoslv xfs格式化邏輯卷westoslv
mount /dev/westosvg/westoslv /westosdir 将邏輯卷/westoslv進行挂載
二、建立、拉伸磁盤
(1)、建立PV、VG、LV卷,挂載
1、建立可拉伸的磁盤
建立了一塊1G大小的磁盤
檢視LVM類型的代碼
更改為LVM類型的磁盤
2、建立挂載目錄和監控友善檢視
mkdir /westosdir
watch -n 1 "pvs;echo ====;vgs;echo =====;lvs;echo ====;df -h /westosdir"
3、建立PV
pvcreate /dev/vdb1
将磁盤/dev/vdb1設為PV(相當于水果)
4、建立VG
vgcreate westosvg /dev/vdb1 -s 2M 其中-s 是指定PE(水果條)的大小最小為2M
檢視目前PE(水果條的大小)
vgdisplay
最小的sizie為2M
删除vg,重新建立vg,使用最小存儲單元大小為4M的預設設定
5、建立lvm(-L指定lv邏輯卷,即小水杯大小,-n指定邏輯卷名稱)
lvcreate -L 100M -n westoslv0 westosvg 通過westosvg實體卷組建立邏輯卷 westoslv0
6、xfs格式化lvm
mkfs.xfs /dev/westosvg/westoslv0
7、挂載
mount /dev/westosvg/westoslv0 /westosdir/
(2)、lvm裝置的拉伸
1、當vg裡面的記憶體足夠時進行拉伸
除了對lv邏輯卷進行拉伸外,還需要對挂載的檔案進行拉伸
注意: 在rhel7中可以使用裝置或挂載點來拉伸檔案系統xfs_growfs 裝置/挂載點;在rhel8中隻能使用挂載點來拉伸檔案系統xfs_growfs 挂載點
lvextend -L 200M /dev/westosvg/westoslv0 拉伸到200M
xfs_growfs /westosdir/
之前
現在
2、當vg的容量不足時
例如我們現在需要兩個G的LV,但是擴充的VG不夠就會出現以下的情況
此時我們需要fdisk互動式在/dev/vdb中建立另一實體裝置/dev/vdb2,将其标簽更改為Linux LVM
對建立實體裝置/dev/vdb2進行pv格式化即建立pv,使用新的實體卷擴大vg實體卷組,此時可以成功對lvm進行拉伸
pvcreate /dev/vdb2
vgextend westosvg /dev/vdb2 将剛剛定義為pv的實體卷/dev/vdb2加入實體卷組westosvg
這下實體卷組westosvg有兩個pv實體卷了,可以再進行lv的擴充了
(3)、lvm裝置的縮減(lv的縮減)
xfs格式不支援lvm的縮減,我們需要解除安裝資料目錄下的lvm裝置,将其格式化為支援lvm縮減的ext4檔案系統,既可以增加也可以縮減。
umount /westosdir/
mkfs.ext4 /dev/westosvg/westoslv0
挂載lvm裝置到資料目錄中,blkid可以檢視到此時lvm的檔案系統類型為ext4
mount /dev/westosvg/westoslv0 /westosdir/
blkid
在ext4檔案系統下對lvm裝置進行拉伸,與xfs檔案系統不同,在對檔案系統進行拉伸時使用的是
resize2fs lvm
裝置指令。具體縮減步奏如下
1、umount /westosdir 取消挂載
2、e2fsck -f /dev/westosvg/westoslv0 進行縮減
3、resize2fs /dev/mapper/westosvg-westoslv0 150M 縮減到150M
(4)、lvm裝置的快照
lvm邏輯卷可以支援快照功能,快照可以儲存原始lvm裝置裡的内容,讀取裝置時是從母盤讀取,但寫資料時是寫入快照。這樣一來,我們可以将lvm裝置的快照挂載到指定資料目錄中,避免在資料目錄中執行操作時對原lvm裝置的資料造成損壞。
實驗步驟:
1、建立實驗素材,在挂載目錄建立檔案
2、解除安裝挂載建立快照
解除安裝lvm裝置,為lvm裝置建立快照(-L指定快照裝置大小,-n指定快照名稱,-s指定快照源)并将快照挂載到資料目錄 /westosdir中
3、在複制的快照中可以檢視到建立的檔案,然後将快照裡面的檔案進行删除
4、解除安裝并删除該快照,重新為lvm建立一個快照westoslv0-backup1,并挂載新建立的快照到資料目錄中,檢視該資料目錄内容可以再次看到檔案。
說明快照是一種很好的備份方式
(5)、lvm裝置的縮減(pv的縮減和轉移)
1、在對lvm縮減完成後,我們可以看到實體卷組vg中的實體卷/dev/vdb2是未被使用的,此時我們可以使用
vgreduce
指令縮減vg,将閑置的實體卷/dev/vdb2移出vg
2、如果想要将正在被lvm使用的實體卷/dev/vdb1移出vg,我們需要使用pvmove指令将/dev/vdb1中的資料移動到實體卷組vg内的另一實體卷/dev/vdb2中,資料移動完成後即可成功将實體卷/dev/vdb1移出vg,縮減vg
vgreduce westosvg /dev/vdb2
隻有一個PV提供了,移除了/dev/vdb1
3、如果想要将正在被lvm使用的實體卷/dev/vdb1移出vg,我們需要使用pvmove指令将/dev/vdb1中的資料移動到實體卷組vg内的另一實體卷/dev/vdb2中,資料移動完成後即可成功将實體卷/dev/vdb1移出vg,縮減vg
pvmove /dev/vdb1 /dev/vdb2
發現/dev/vdb1的存儲空間恢複正常,轉移到/dev/vdb2/去了
(6)、lvm裝置的删除
執行
lvremove
裝置指令删除lvm裝置及為lvm裝置建立的快照,
vgremove
删除實體卷組vg,
pvremove
删除實體卷pv,
fdisk
互動式在/dev/vdb中删除建立的所有實體裝置