Linux系統中磁盤創建管理(二)



Linux系統中磁盤創建管理(二)



Linux系統中LVM的創建與管理指南

LVM是Logical Volume Manager(邏輯卷管理器)的簡寫,它爲主機提供了更高層次的磁盤存儲管理能力。LVM可以幫助系統管理員爲應用與用戶方便地分配存儲空間,在LVM管理下的邏輯卷可以按需改變大小或添加移除。另外,LVM可以爲所管理的邏輯卷提供定製的命名標識。


LVM相關概念簡介

LVM是建立在磁盤分區和文件系統之間的一個邏輯層,專門爲文件系統屏蔽下層磁盤分區佈局,提供一個邏輯的盤卷,再在盤捲上來建立文件系統。

LVM的結構如圖1所示:

wKiom1Lc1_LDcMqvAABxhm5A2mA988.jpg



圖1展示了LVM的基本結構,那麼圖中的VG是什麼,PV又是什麼?下面對LVM邏輯卷涉及的概念作以簡單的介紹。


1、物理卷(Physical Volume,PV)

   物理卷就是指硬盤分區,也可以指整個硬盤或已創建的軟RAID ,是LVM的基本存儲設備,與普通物理存儲介質的區別是該設備包含有LVM相關的管理參數。


2、卷組(Volume Group,VG)

   卷組是由一個或多個物理卷所組成的存儲池,在卷組上能創建一個或多個“LVM分區”(邏輯卷)。


3、邏輯卷(Logical Volume,LV)

邏輯卷LV類似於非LVM系統中的硬盤分區,它建立在卷組之上,是一個標準的塊設備,在邏輯卷之上可以建立文件系統。可以做這樣一個設想來理解以上三者的關係: 如果把PV比做地球的一個板塊,VG則是一個地球,因爲地球是由多個板塊組成的,那麼在地球上劃分一個區域並標記爲亞洲,則亞洲就相當於一個LV。


4、物理塊(Physical Extent,PE)

   物理卷是由大小相等的物理塊PE爲存儲的基本單位,同時也是LVM尋址的最小單元。


5、邏輯塊(Logical Extent,LE)

   邏輯卷是由大小相等的邏輯塊爲存儲的基本單位。在同一個卷組中,LE的大小和PE是相等的,有一一對應的關係。


6、卷組描述區(Volume Group Description Area,VGDA)

   VGDA中保存了邏輯卷以及卷組相關的元數據,它和磁盤將包含分區信息的元數據保存在位於分區的起始位置的分區表類似。

   VGDA包括以下內容: PV描述符、VG描述符、LV描述符、和一些PE描述符。系統啓動LVM時激活VG,並將VGDA加載至內存,來識別LV的實際物理存儲位置。當系統進行I/O操作時,就會根據VGDA建立的映射機制來訪問實際的物理位置。

如何創建邏輯卷

創建邏輯卷通常包括如下步驟:

創建分區

創建物理卷

創建卷組

激活卷組

創建邏輯卷

創建文件系統


相關命令:

PV命令——

          pvcreate  建立 PV

          pvscan  查找當前系統中具有 PV 屬性的磁盤

          pvdisplay  顯示目前系統上面的 PV 狀態


VG命令——

          vgcreate   建立 VG

          vgscan     查看系統上具有 VG 屬性

          vgdisplay  查看系統上的 VG 狀態

          vgextend   在 VG 內增加額外的 PV

          vgreduce   在 VG 內移除 PV


LV命令——

          lvcreate   建立 LV

                     -L 後面設定容量

                     -n 後面設定 LV 名稱

          lvscan     查看系統上 LV 的屬性

          lvdisplay  查看系統上的 LV 狀態

          lvextend   在 LV 裏面增加容量


下面通過一個實例來詳細介紹創建邏輯卷的整個過程。


【LVM實例】



添加1塊物理硬盤,進行 LVM 的磁盤管理。

查看分區表:

#fdisk  -l


可以看到有 1 塊新硬盤,sdb

我們將這塊硬盤分成 3 個分區,每個分區 300MB 空間

wKiom1Lc2Bex1NAfAAOt7dwIyJw165.jpg


上面曾經提到過,標準的 Linux分區ID號爲 83,此時我們已經產生了3個標準的分區:sdb1  sdb2  sdb3。下面需要將這 3 個標準分區的 ID號改成可以支持 LVM 的分區ID。

備註:LVM的分區ID=8e


wKioL1Lc1_WRtGxtAAHZ6d1OMHs481.jpg


備註:t 表示更改分區 ID號


保存退出之後,查看一下分區表,就看見了 3個新的分區,並且 ID=8e

wKiom1Lc2BnS0UXcAACu9YrxPDk882.jpg

[root@oracle ~]# partprobe



既然已經產生了支持 LVM的標準分區,下面來創建 PV,這裏我們先使用兩個標準分區 sdb1  sdb2

wKioL1Lc1_fS85K6AADJ9kF2a7U584.jpg

查看一下創建的結果:

pvscan  查找當前系統中具有 PV 屬性的磁盤


wKiom1Lc2BuRzhmYAACiyzg08xg207.jpg


pvdisplay  顯示目前系統上面的 PV 狀態


wKioL1Lc1_qgIpsdAAJZaL_69h4659.jpg


現在創建了 PV 之後,開始將這兩個 PV 合併成一個 VG,


並把這個 VG 定名爲 firstVG

wKiom1Lc2B6gmh1gAABt0qzjvu4958.jpg

備註:此時這個 VG 中的 PE爲默認值,即 4MB

     若想改變 PE 的大小,需要在創建 VG 的時候指定 PE 的大小

如:

備註:我們從 VG 中刪除一個 PV

     #vgreduce  firstVG  /dev/sdb2


看一下 VG 的創建結果

vgscan  查看系統上具有 VG 屬性

wKioL1Lc1_zT2I74AACN1XXUcmY245.jpg


vgdisplay  查看系統上的 VG 狀態

wKiom1Lc2CHyDWxQAAGmdabq2Iw221.jpg

現在 VG 也產生了,接下來就是將這個 VG 分割成 LV,從上圖可以看到該 VG 的容量是 576MB,下面我們直接將整個 VG 劃分成一個 LV,同時將這個 LV 命名爲 firstLV。

wKioL1Lc1__yspY5AABsKpelnI8157.jpg

查看一下 LV 的創建結果




lvscan 查看系統上 LV 的屬性

wKiom1Lc2CPyQMmuAABYLcB06fo655.jpg




lvdisplay 查看系統上的 LV 狀態

wKioL1Lc2ASzV0LaAAGkwvILWn0967.jpg


現在 LV 也創建好了,接下來就是格式化、掛載目錄使用了

wKiom1Lc2Cvy0qeJAACg88w3WMQ688.jpg

備註:實現永久掛載

    #vi  /etc/fstab







當有一天發現 /mnt/lvm 這個目錄的空間不夠用了,咋辦?

下面就來演示擴展的操作:

先卸載該目錄

wKioL1Lc2AnxYHFIAAAhZmCTXB0203.jpg

我們在最開始的時候創建了第三個具有8e標識的分區 sdb3,現在先把這個分區變成 PV,再將該 PV加入到 firstVG中。


創建 PV 的步驟略。

wKiom1Lc2C2hs7_mAABw4AlCFRo539.jpg



加入到原有 VG 中後,可以先查看一下新的 PV 的容量,pvdisplay

之後根據這個容量顯示的單位來進行原有 LV 的擴展


lvextend 在 LV 裏面增加容量

wKioL1Lc2AzAqz10AAC0mqpFbeM304.jpg



此時查看一下 firstLV 的容量

wKiom1Lc2DSC6xyiAAGf70a7HBU458.jpg

仔細觀察可以看到原有 firstLV 的大小已經被擴容到 856MB了。


我將已經擴容了的新 LV 掛載到 /mnt/lvm下

wKiom1Lc1-TjEgOIAAA3PrAXv10001.jpg


使用 df 命令來查看一下 /mnt/lvm這個目錄的容量

wKioL1Lc18LgmskeAACUiyBG-bI185.jpg

我們看到了一個有意思的地方,顯示 /mnt/lvm 目錄的容量爲 567MB。

也就是說 /dev/firstVG/firstLV 這個分區的大小並沒有擴大,但是上面明明看到了新的 LV 的大小是 856MB,這是咋回事呢??

這裏涉及到了文件系統的擴容,需要一個命令 resize2fs


wKiom1Lc1-ex3xLPAACuc84RORY688.jpg


備註:文件系統擴容時,需要先將已經掛載的目錄卸載


現在我們再次掛載之後再來查看一下 /mnt/lvm 目錄的大小

wKiom1Lc2xGyXObYAACUn5XvJeM345.jpg


至此實現了真正的擴容。



刪除LVM

#umount  /mnt/lvm   卸載目錄

#lvremove  /dev/firstVG/firstLV   移除 LV

#vgchange  -a  n  firstVG   關閉 VG 的 Active 標誌

#vgremove  firstVG       移除 VG

#pvremove  /dev/sdb1   移除 PV











發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章