總結之:LVM硬盤管理(一)

一、前言

對Linux運維而言,在安裝系統的時候,遇到的問題之一就是如何分區以及如何給分區劃分合理的空間。如果不慎空間劃分的少了,到時可能就會遇到分區空間不足,需要通過符號鏈接或者調整分區大小的工具來處理,但是這終究不是辦法,不久後,你還會遇到同樣的問題。

而LVM(邏輯卷管理程序)可以很好的幫助我們解決這些問題。

二、LVM簡介:

歡迎LVM隆重登場,LVM是Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制,目前穩定版爲1.0.5,開發版LVM2,現在使用的基本都是LVM2

三、LVM原理:

LVM是建立在硬盤和分區之上的一個邏輯層,它會爲文件系統屏蔽下層磁盤佈局,提供一個抽象的盤卷,在該盤捲上建立文件系統。由此,LVM可以將多個物理磁盤組合成一個非常大的抽象的盤卷,然後再該盤捲上建立文件系統,並且當硬盤空間不夠使用的時候,可以繼續將其他的硬盤的分區加入其中,這樣就可以實現磁盤空間的動態管理,相對於普通的磁盤分區有很大的靈活性。當然,它的好處不止如此!

四、LVM相關術語:

物理存儲介質(Physical Media):系統的存儲設備;比如:硬盤。是存儲系統最底層的存儲單元

物理卷(Physical Volume):硬盤分區或者從邏輯上與磁盤分區具有相同功能的設備;比如:RAID,是LVM的基本存儲邏輯塊。

卷組(Volume Group):一個或者多個物理卷組成一個卷組,對LVM而言,卷組類似於非LVM系統中的物理硬盤。可以在卷組上創建一個或多個邏輯卷

邏輯卷(Logical Volume):LVM的邏輯卷相當於非LVM系統中的分區,可以在LVM的邏輯捲上創建文件系統

PE (Physical Extent):每一個物理卷被劃分爲稱爲PE(physical extent)的基本單位,具有唯一編號的PE是可以被LVM尋址的最小單位。PE的大小是可以設置的,默認爲4MB

LE(Logical Extent):邏輯卷也被劃分爲被稱爲LE(Logical Extent)的可被尋址的基本單位。在同一個卷組中,LE和PE的大小是相同的,並且一一對應。

五、LVM模型:

image

六、前期準備工作

1、系統環境:

宿主主機:Windows 7 X64 8G內存

虛擬機:Vmware 10

Linux系統:Centos 6.4  X86_64  2G內存  雙核CPU

SSh工具:xshell

2、添加硬盤

我是在虛擬機上操作的,所有首先添加3塊硬盤到我的虛擬機中。

image

3、查看添加的硬盤信息

fdisk –l,硬盤添加成功

image

4、有了硬盤,那就需要規劃LVM了,可以將三個硬盤全部做成LVM,也可以將三個硬盤中的某些空間做成LVM,這裏,我使用每個硬盤的某些空間做成LVM,以便後邊的實驗能順利進行。

規劃:sdb1 5G  sdc1 5G  sdd1 5G 

使用fdisk /dev/sdb 、fdisk /dev/sdc  、fdisk /dev/sdd來進行硬盤分區

image

全部分區完成之後,使用fdisk –l /dev/sd[bcd]查看着三個分區的信息是否正確

image

查看內核是否已經識別該分區,如果已經識別則無需重啓虛擬機,如果無法識別則要重啓虛擬機

image

七、創建LVM

1、創建物理卷—>命令pvcreat

使用格式pvcreate DEVICE,將sdb1、sdc1和sdd1都創建爲物理卷

pvcreate /dev/sdb1

pvcreate /dev/sdc1

pvcreate /dev/sdd1

image

2、使用pvdisplay可以查看我們的物理卷

image

3、創建卷組(VG)—>命令vgcreate

使用格式 vgcreate  卷組名  DEVICE1 DEVICE2 DEVICE3

vgcreate Datalvm  /dev/sdb1 /dev/sdc1 /dev/sdd1

image

4、使用vgdisplay查看剛纔創建的卷組

image

Note1:

               1、當多個物理卷組合成一個卷組後,LVM會在所有的物理捲上做類似格式化的工作,將每個物理卷切成一塊一塊的空間,這一塊一塊的空間就成爲PE,默認大小爲4M。

               2、由於受內核限制,一個邏輯卷最多隻能包含65536個PE,所以一個PE的大小就決定了邏輯卷的最大容量。4MB的PE決定了單個邏輯卷最大容量爲256G

               3、創建邏輯卷時,使用vgcreate – 64MB Datalvm /dev/sdb1 /dev/sdc1 /dev/sdd1來指定PE大小

5、創建邏輯卷LV—>命令lvcreate

使用格式:lvcreate –L SIZE –n LV_NAME VG_NAME ,也可以使用lvcreate –l  # 指定PE的個數

lvcreate –L 8G –n Mydata Datalvm

image

6、使用lvdisplay查看創建的邏輯卷

image

Note2:

                   1、這裏看到LV_Path的路徑爲/dev/Datalvm/Mydata,我們ls -l一下這個設備文件,發現這是一個鏈接文件,其路徑爲/dev/dm-2,所以我們通過這兩種方式可以找到這個邏輯卷,其實還有一個路徑可以幫助我們找到這個設備文件,路徑爲/dev/mapper/Datalvm-Mydata

image

7、創建文件系統

在邏輯捲上創建ext4文件系統

[root@myb362 mapper]# mkfs -t ext4 /dev/Datalvm/Mydata
[root@myb362 mapper]# mkdir /data            #創建掛載點
[root@myb362 mapper]# mount /dev/mapper/Datalvm-Mydata  /data       #掛載
[root@myb362 mapper]# ls /data                  #查看掛載點內容,掛載成功,邏輯卷創建成功
lost+found
[root@myb362 mapper]# touch /data/test #創建一個文件
[root@myb362 mapper]# ls /data                 #再次查看
lost+found  test
[root@myb362 mapper]# umount /dev/dm-2 #卸載邏輯卷
[root@myb362 mapper]# ls /data            #再次查看
[root@myb362 mapper]#

上邊我使用了LV的三種設備文件表示方法,希望你沒有搞暈。

 

八、管理LVM

1、邏輯卷和卷組擴容

前面已經說過,LVM可以實現動態調整分區空間大小,而無需重啓機器,那假如我們剛纔創建的邏輯卷/dev/Datalvm/Mydata空間不足,需要增加空間。那我們需要分卷組中有剩餘空間和卷組中沒有剩餘空間兩種情況來考慮。

 ①卷組中有剩餘空間

使用vgdisplay查看卷組信息

image

卷組剩餘空間7.02GB,剩餘PE數量1798個。我們把所有的剩餘空間全部增加給邏輯卷/dev/Datalvm/Mydata

再進行這步操作之前,爲了完全模擬真實環境,我們最好先將/dev/Datalvm/Mydata掛載到/data目錄下,說明此邏輯卷正在被使用

mount /dev/Datalvm/Mydata /data

接着擴展邏輯卷

lvextend  -l +1798 /dev/Datalvm/Mydata 

image

前面說過增加PE的個數可以使用-l,當然也可以使用 –L 7.02G ,你喜歡就好。

好了,擴展完成,讓我們查看一下文件系統的當前狀態

image

很遺憾,還是8G,沒有擴展成功。這是爲什麼呢?還少一步,使用resize2fs命令來調整分區的大小

resize2fs /dev/Datalvm/Mydata

image

再次使用df -h查看

image

擴容已經成功。

②卷組中沒有剩餘空間

當卷組中沒有剩餘空間或者剩餘空間不足夠用於擴展邏輯卷的大小時,就需要增加捲組的容量,增加捲組容量的唯一方法當然就是向卷組中添加新的物理卷。

還記得剛纔我們並沒有劃分完的硬盤嗎?是時候讓他們上場了。

首先創建一個分區/dev/sdb2,大小爲10G,然後創建成物理卷。接下來就要把這個物理卷加入到我們那的卷組了。

在創建/dev/sdb2分區的時候,我的系統內核無論如何都無法識別他,只有重啓系統才解決問題。不知道你是否也遇到這個問題了,如果遇到了,那就重啓系統吧

擴展卷組—>命令vgextend 

使用格式:vgextend VG_NAME DEVICE

image

完成卷組的擴容之後,那麼擴展邏輯卷的操作就和第一種情況是一樣一樣的了。

總結:LVM是linux系統中非常好用的磁盤分區管理機制,配合RAID能讓我們的系統更加的安全和穩定,並且有很強的擴展性。接下來會就LVM的卷組、邏輯捲縮減以及如何製作快照卷寫一篇博文,歡迎各位關注,如博客中有錯誤之處,還望大家指出。

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