天天看點

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

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的工作原理,我們引入下面這個通俗易懂的示例進行說明。

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

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大小的磁盤

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

檢視LVM類型的代碼

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

更改為LVM類型的磁盤

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

2、建立挂載目錄和監控友善檢視

mkdir /westosdir
watch -n 1 "pvs;echo ====;vgs;echo =====;lvs;echo ====;df -h /westosdir" 
           

3、建立PV

pvcreate /dev/vdb1
           

将磁盤/dev/vdb1設為PV(相當于水果)

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

4、建立VG

vgcreate westosvg /dev/vdb1 -s 2M  其中-s 是指定PE(水果條)的大小最小為2M
           
【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

檢視目前PE(水果條的大小)

vgdisplay
           

最小的sizie為2M

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

删除vg,重新建立vg,使用最小存儲單元大小為4M的預設設定

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

5、建立lvm(-L指定lv邏輯卷,即小水杯大小,-n指定邏輯卷名稱)

lvcreate -L 100M -n westoslv0 westosvg   通過westosvg實體卷組建立邏輯卷 westoslv0
           
【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

6、xfs格式化lvm

mkfs.xfs /dev/westosvg/westoslv0 
           
【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

7、挂載

mount /dev/westosvg/westoslv0 /westosdir/
           
【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

(2)、lvm裝置的拉伸

1、當vg裡面的記憶體足夠時進行拉伸

除了對lv邏輯卷進行拉伸外,還需要對挂載的檔案進行拉伸

注意: 在rhel7中可以使用裝置或挂載點來拉伸檔案系統xfs_growfs 裝置/挂載點;在rhel8中隻能使用挂載點來拉伸檔案系統xfs_growfs 挂載點

lvextend -L 200M /dev/westosvg/westoslv0                拉伸到200M
xfs_growfs /westosdir/
           

之前

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

現在

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

2、當vg的容量不足時

例如我們現在需要兩個G的LV,但是擴充的VG不夠就會出現以下的情況

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

此時我們需要fdisk互動式在/dev/vdb中建立另一實體裝置/dev/vdb2,将其标簽更改為Linux LVM

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

對建立實體裝置/dev/vdb2進行pv格式化即建立pv,使用新的實體卷擴大vg實體卷組,此時可以成功對lvm進行拉伸

pvcreate /dev/vdb2
vgextend westosvg /dev/vdb2    将剛剛定義為pv的實體卷/dev/vdb2加入實體卷組westosvg
           

這下實體卷組westosvg有兩個pv實體卷了,可以再進行lv的擴充了

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

(3)、lvm裝置的縮減(lv的縮減)

xfs格式不支援lvm的縮減,我們需要解除安裝資料目錄下的lvm裝置,将其格式化為支援lvm縮減的ext4檔案系統,既可以增加也可以縮減。

umount /westosdir/
mkfs.ext4 /dev/westosvg/westoslv0 
           
【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

挂載lvm裝置到資料目錄中,blkid可以檢視到此時lvm的檔案系統類型為ext4

mount /dev/westosvg/westoslv0 /westosdir/
blkid 
           
【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

在ext4檔案系統下對lvm裝置進行拉伸,與xfs檔案系統不同,在對檔案系統進行拉伸時使用的是

resize2fs lvm

裝置指令。具體縮減步奏如下

1、umount /westosdir                                       取消挂載
2、e2fsck -f /dev/westosvg/westoslv0                       進行縮減
3、resize2fs /dev/mapper/westosvg-westoslv0   150M         縮減到150M
           
【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

(4)、lvm裝置的快照

lvm邏輯卷可以支援快照功能,快照可以儲存原始lvm裝置裡的内容,讀取裝置時是從母盤讀取,但寫資料時是寫入快照。這樣一來,我們可以将lvm裝置的快照挂載到指定資料目錄中,避免在資料目錄中執行操作時對原lvm裝置的資料造成損壞。

實驗步驟:

1、建立實驗素材,在挂載目錄建立檔案

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

2、解除安裝挂載建立快照

解除安裝lvm裝置,為lvm裝置建立快照(-L指定快照裝置大小,-n指定快照名稱,-s指定快照源)并将快照挂載到資料目錄 /westosdir中

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

3、在複制的快照中可以檢視到建立的檔案,然後将快照裡面的檔案進行删除

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

4、解除安裝并删除該快照,重新為lvm建立一個快照westoslv0-backup1,并挂載新建立的快照到資料目錄中,檢視該資料目錄内容可以再次看到檔案。

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤
【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

說明快照是一種很好的備份方式

(5)、lvm裝置的縮減(pv的縮減和轉移)

1、在對lvm縮減完成後,我們可以看到實體卷組vg中的實體卷/dev/vdb2是未被使用的,此時我們可以使用

vgreduce

指令縮減vg,将閑置的實體卷/dev/vdb2移出vg

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

2、如果想要将正在被lvm使用的實體卷/dev/vdb1移出vg,我們需要使用pvmove指令将/dev/vdb1中的資料移動到實體卷組vg内的另一實體卷/dev/vdb2中,資料移動完成後即可成功将實體卷/dev/vdb1移出vg,縮減vg

vgreduce westosvg /dev/vdb2
           

隻有一個PV提供了,移除了/dev/vdb1

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

3、如果想要将正在被lvm使用的實體卷/dev/vdb1移出vg,我們需要使用pvmove指令将/dev/vdb1中的資料移動到實體卷組vg内的另一實體卷/dev/vdb2中,資料移動完成後即可成功将實體卷/dev/vdb1移出vg,縮減vg

pvmove /dev/vdb1 /dev/vdb2
           
【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

發現/dev/vdb1的存儲空間恢複正常,轉移到/dev/vdb2/去了

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

(6)、lvm裝置的删除

執行

lvremove

裝置指令删除lvm裝置及為lvm裝置建立的快照,

vgremove

删除實體卷組vg,

pvremove

删除實體卷pv,

fdisk

互動式在/dev/vdb中删除建立的所有實體裝置

【linux進階2】linux的進階存儲管理(lvm卷的擴充和縮減)一、邏輯卷二、建立、拉伸磁盤

繼續閱讀