溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何理解Linux 系統(tǒng)的LVM邏輯卷管理

發(fā)布時(shí)間:2021-11-06 15:11:09 來源:億速云 閱讀:151 作者:柒染 欄目:建站服務(wù)器

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)如何理解Linux 系統(tǒng)的LVM邏輯卷管理,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一.前言

每個(gè)Linux使用者在安裝Linux時(shí)都會(huì)遇到這樣的困境:在為系統(tǒng)分區(qū)時(shí),如何精確評估和分配各個(gè)硬盤分區(qū)的容量,因?yàn)?span data-mce-="">系統(tǒng)管理員不但要考慮到 當(dāng)前某個(gè)分區(qū)需要的容量,還要預(yù)見該分區(qū)以后可能需要的容量的最大值。因?yàn)槿绻烙?jì)不準(zhǔn)確,當(dāng)遇到某個(gè)分區(qū)不夠用時(shí)管理員可能甚至要備份整個(gè)系統(tǒng)、清除硬 盤、重新對硬盤分區(qū),然后恢復(fù)數(shù)據(jù)到新分區(qū)。

雖然現(xiàn)在有很多動(dòng)態(tài)調(diào)整磁盤的工具可以使用,例如PartationMagic等等,但是它并不能完全解決問題,因?yàn)槟硞€(gè)分區(qū)可能會(huì)再次被耗盡;另 外一個(gè)方面這需要重新引導(dǎo)系統(tǒng)才能實(shí)現(xiàn),對于很多關(guān)鍵的服務(wù)器,停機(jī)是不可接受的,而且對于添加新硬盤,希望一個(gè)能跨越多個(gè)硬盤驅(qū)動(dòng)器的文件系統(tǒng)時(shí),分區(qū) 調(diào)整程序就不能解決問題。

因此完美的解決方法應(yīng)該是在零停機(jī)前提下可以自如對文件系統(tǒng)的大小進(jìn)行調(diào)整,可以方便實(shí)現(xiàn)文件系統(tǒng)跨越不同磁盤和分區(qū)。幸運(yùn)的是Linux提供的邏輯盤卷管理(LVM,LogicalVolumeManager)機(jī)制就是一個(gè)完美的解決方案。

LVM是邏輯盤卷管理(LogicalVolumeManager)的簡稱,它是Linux環(huán)境下對磁盤分區(qū)進(jìn)行管理的一種機(jī)制,LVM是建立在硬 盤和分區(qū)之上的一個(gè)邏輯層,來提高磁盤分區(qū)管理的靈活性。通過LVM系統(tǒng)管理員可以輕松管理磁盤分區(qū),如:將若干個(gè)磁盤分區(qū)連接為一個(gè)整塊的卷組 (volumegroup),形成一個(gè)存儲(chǔ)池。管理員可以在卷組上隨意創(chuàng)建邏輯卷組(logicalvolumes),并進(jìn)一步在邏輯卷組上創(chuàng)建文件系 統(tǒng)。管理員通過LVM可以方便的調(diào)整存儲(chǔ)卷組的大小,并且可以對磁盤存儲(chǔ)按照組的方式進(jìn)行命名、管理和分配,例如按照使用用途進(jìn)行定義: “development”和“sales”,而不是使用物理磁盤名“sda”和“sdb”。而且當(dāng)系統(tǒng)添加了新的磁盤,通過LVM管理員就不必將磁盤的 文件移動(dòng)到新的磁盤上以充分利用新的存儲(chǔ)空間,而是直接擴(kuò)展文件系統(tǒng)跨越磁盤即可。

二.LVM簡介

LVM(Logical Volume Manager,邏輯卷管理器)是一種把硬盤驅(qū)動(dòng)器空間分配成邏輯卷的方法,使硬盤不必使用分區(qū)也能被簡單地重新劃分大小。傳統(tǒng)上,一個(gè)分區(qū)大小是靜態(tài) 的。假如一個(gè)用戶在這個(gè)分區(qū)上沒有空間時(shí),他要么重新分區(qū)(這可能要求整個(gè)操作系統(tǒng)重裝),要么像符號(hào)鏈接一樣使用組裝機(jī)。使用LVM,硬盤驅(qū)動(dòng)器或硬盤 驅(qū)動(dòng)器集合就會(huì)分配給一個(gè)或多個(gè)物理卷(Physical Volume)。物理卷被合并成邏輯卷組(Logical Volume Group),唯一例外的是/boot分區(qū)。由于物理卷無法跨越一個(gè)以上驅(qū)動(dòng)器,如果想讓邏輯卷組跨越一個(gè)以上驅(qū)動(dòng)器,就應(yīng)該在驅(qū)動(dòng)器上創(chuàng)建一個(gè)或多個(gè)物 理卷。邏輯卷組被分成邏輯卷,被分配了掛載點(diǎn)(如/home 和/),以及文件系統(tǒng)類型(如ext3)。當(dāng)“分區(qū)”達(dá)到了它們的極限時(shí),邏輯卷組中的空閑空間就可以被添加給邏輯卷來增加分區(qū)的大小。當(dāng)某個(gè)新的硬盤驅(qū) 動(dòng)器被添加到系統(tǒng)上后,它也可以被添加到邏輯卷組中,邏輯卷是可以擴(kuò)展的分區(qū)。由于LVM允許在機(jī)器的物理存儲(chǔ)資源以外創(chuàng)建邏輯卷,并且邏輯卷組中,邏輯 卷是可以擴(kuò)展分區(qū)。由于LVM允許在機(jī)器的物理存儲(chǔ)資源以外創(chuàng)建邏輯卷,并且邏輯卷可以在系統(tǒng)仍處于運(yùn)行狀態(tài)時(shí)擴(kuò)充和縮減,所以就為Linux系統(tǒng)管理員 提供了他們夢寐以求的存儲(chǔ)器靈活性。

LVM的作用:LVM的實(shí)際運(yùn)作情形則根據(jù)做法不同而有所差異。但LVM通常包括實(shí)體儲(chǔ)存分群(Physical Storage Grouping)、重設(shè)邏輯扇區(qū)大?。↙ogical Volume Resizing),以及數(shù)據(jù)轉(zhuǎn)移(Data Migrating)。

三.為什么使用LVM

對于Linux用戶而言,在安裝一臺(tái)Linux機(jī)器的時(shí)候,遇到的問題之一就是給各分區(qū)估計(jì)和分派足夠的硬盤空間。無論對一個(gè)正在為服務(wù)器尋找空間的系統(tǒng)管理員,還是對一個(gè)磁盤即將用盡的普通用戶來說,這都是一個(gè)非常常見的問題。一般我們會(huì)想到解決的方法是:

掛接一個(gè)新的硬盤,然后使用符號(hào)鏈接,鏈接到新的硬盤。利用一些調(diào)整分區(qū)大小的工具進(jìn)行無損傷數(shù)據(jù)分區(qū)。

但是,這些都只是暫時(shí)性的解決辦法,而且都需要讓機(jī)器停止運(yùn)行或者持續(xù)很長時(shí)間的分區(qū)工作導(dǎo)致而不能正常提供服務(wù)。即使緩解了硬盤空間問題,不久,仍然會(huì)面臨同樣的問題。

對于一個(gè)大型站點(diǎn)來說,有著數(shù)量眾多的客戶,又連接在互聯(lián)網(wǎng)上,服務(wù)器關(guān)機(jī)一分鐘,都會(huì)給公司帶來很大損失。此外,使用這種方法,在修改了分區(qū)表之后,每一次都得重新啟動(dòng)系統(tǒng)。采用新技術(shù)LVM(邏輯卷管理程序)可以幫助我們解決這些問題。

四.LVM的歷史

當(dāng)然,LVM并不是最新技術(shù),早在UNIX操作系統(tǒng)時(shí)代,在像HP、IBM AIX上就可以看到VM的身影,作為IBM的旗艦產(chǎn)品,AIX很早就支持了動(dòng)態(tài)邏輯分區(qū)(DVM),當(dāng)然,它的DVM設(shè)計(jì)是比較厲害的,此后在AIX 5L中,重構(gòu)了UNIX內(nèi)核,增加了邏輯卷管理(LVM)和日志文件系統(tǒng)(JFS)等功能。使之AIX更加強(qiáng)大。在各種商業(yè)UNIX系統(tǒng)中,譬如AIX、 HP-UNIX、Tru64 UNIX等系統(tǒng)中,邏輯卷管理已經(jīng)被廣泛采用,成為了事實(shí)上的一個(gè)標(biāo)準(zhǔn)。

LVM的功能于2.3內(nèi)核發(fā)展中版本納入支持。2001年1月,Linux2.4.0內(nèi)核發(fā)布,開始正式支持邏輯卷管理,使得Linux新內(nèi)核更適 應(yīng)服務(wù)器的應(yīng)用。以前版本的Linux必須要在內(nèi)核上打上相應(yīng)的補(bǔ)丁才到實(shí)現(xiàn)LVM功能?,F(xiàn)在,我們看到從Redhat Linux 9.0開始已經(jīng)在內(nèi)核級(jí)支持LVM。因此,我們可以使用LVM幫助我們更加有效地管理磁盤。要注意的是LVM有兩個(gè)版本,分別是LVM 1與LVM 2,相關(guān)工具與設(shè)定方式會(huì)有些差異性,本文都會(huì)使用LVM 2的環(huán)境介紹使用。LVM 1命令只能在2.4內(nèi)核上工作。當(dāng)運(yùn)行2.6內(nèi)核時(shí),不能使用LVM 1命令。 關(guān)于更多關(guān)于LVM 2的信息,請參閱/usr/share/doc/lvm2*/WHATS_NEW。一個(gè)完整的LVM 2命令被安裝在/usr/sbin/下。在/usr/無效的啟動(dòng)環(huán)境中,每個(gè)命令前需要加上/sbin/lvm.static(例如,/sbin /lvm.static vgchange -ay)。在/usr有效的環(huán)境中,不再需要在每個(gè)命令前加上lvm(例如,/usr/sbin/lvm vgchage –ay變?yōu)?usr/sbin/vgchange -ay)。新的LVM2命令(例如,/usr/sbin/vgchange –ay和/sbin/lvm.static vgchange –ay)會(huì)檢測你是否在運(yùn)行2.4內(nèi)核。如果是,它會(huì)調(diào)用舊的LVM 1命令。

五.LVM結(jié)構(gòu)和分類

LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux環(huán)境下對磁盤分區(qū)進(jìn)行管理的一種機(jī)制,它將多個(gè)物理分區(qū)匯聚為一個(gè)卷組(Volume Group),而且這些物理卷的大小可以不相同,甚至類型也可以不同(如SCSI、SATA磁盤)。組成的卷組就像一塊大硬盤,然后再從中分割出一塊一塊 的邏輯卷(Logical Volume),并進(jìn)一步在邏輯卷組上創(chuàng)建文件系統(tǒng),如下圖所示。

LVM最大的優(yōu)點(diǎn)是不同去考慮物理磁盤的特征,中間構(gòu)架了一層“絕緣層”,或者以現(xiàn)代名詞,叫做服務(wù)層,提供磁盤空間服務(wù)。如果沒有這個(gè)中間層,必 然存在物理磁盤大小的限制,這是不可克服的事實(shí),在這個(gè)磁盤上進(jìn)行的分區(qū),必然受到物理?xiàng)l件制約,存儲(chǔ)數(shù)據(jù)很不方便。在一臺(tái)計(jì)算機(jī)只有一個(gè)100MB磁盤 的年代,這并不是大問題,LVM設(shè)計(jì)之初,就認(rèn)識(shí)到了人類懶惰的本質(zhì),在性能、可管理性、兼容、功能支持等方面,實(shí)現(xiàn)了很好的平衡。

LVM支持兩種模式的邏輯卷,如下圖所示。一種是串連模式(Concatenation)另一種是條塊模式(Striping),系統(tǒng)默認(rèn)是串連模 式。這兩種模式有什么區(qū)別呢?比如,有兩塊IDE接口的30GB硬盤/dev/hdb、/dev/hdc,它們共同組成了一個(gè)卷組vg1,在此卷組上創(chuàng)建 了個(gè)40GB的邏輯卷lv1。如果這個(gè)邏輯卷是串連模式,數(shù)據(jù)在兩塊硬盤上將順序存放,只有當(dāng)一塊硬盤存滿之后才去使用另一塊硬盤。如果這個(gè)邏輯卷是條塊 模式,數(shù)據(jù)將被分割成固定大小的條塊,然后分散到兩塊硬盤上。這樣意味著你有更多有效的磁盤帶寬,數(shù)據(jù)的讀寫速度將大幅提高。條塊模式盡管給我們帶來了高 性能,但也帶來了高風(fēng)險(xiǎn),如果任意一塊磁盤壞掉,那全部的邏輯卷都會(huì)丟失,其結(jié)果將是災(zāi)難性的。然而LVM技術(shù)對這種災(zāi)難已經(jīng)早有防范。LVM的實(shí)現(xiàn)不僅 可以在磁盤分區(qū)上實(shí)現(xiàn),也可以在RAID卷上實(shí)現(xiàn)。無論是硬盤RAID還是軟件RAID,LVM都給予了很好的支持。

六.LVM的Snapshots(快照)特性

LVM提供了一個(gè)非常好的特性:snapshots(快照)。它允許管理員建立一個(gè)塊設(shè)備:該設(shè)備是一個(gè)邏輯卷在某一時(shí)刻凍結(jié)的精確拷貝。這個(gè)特性 通常用于批處理過程(如備份)需要處理邏輯卷,但又不能停止系統(tǒng)。當(dāng)操作完成時(shí),snapshots(快照)設(shè)備可以被移除。這個(gè)特性要求在建立 snapshots(快照)設(shè)備時(shí)邏輯卷處于相容狀態(tài)。使用LVM,我們可以做一個(gè)LV瞬間的快照,然后掛載(mount)它,再備份它。請注意,快照不 是永久的。如果你卸下LVM或重啟,它們就丟失了,需要重新創(chuàng)建。下圖是LVM snapshots(快照)示意圖。

快照有兩種方式:一種是只讀,另一種是可讀寫。如果你只要拷貝數(shù)據(jù),那么只讀快照看起來不錯(cuò),不過可讀寫快照則有好幾個(gè)優(yōu)點(diǎn)。首先是無須額外處理日 志文件系統(tǒng)-你可以在快照上簡單地實(shí)現(xiàn)日志恢復(fù)。只讀快照則必須保證文件系統(tǒng)在開始快照之前就得和設(shè)備同步,因此需要日志重現(xiàn)。

七.LVM常用術(shù)語

1.物理存儲(chǔ)介質(zhì)(The Physical media

這里指系統(tǒng)的存儲(chǔ)設(shè)備:硬盤或硬盤上的分區(qū),如:/dev/hda1、/dev/sda等等,是存儲(chǔ)系統(tǒng)最低層的存儲(chǔ)單元。

2.物理卷(Physical Volume,PV

物理卷就是指硬盤分區(qū)或從邏輯上與磁盤分區(qū)具有同樣功能的設(shè)備(如RAID),是LVM的基本存儲(chǔ)邏輯塊,但和基本的物理存儲(chǔ)介質(zhì)(如分區(qū)、磁盤等)比較,卻包含有與LVM相關(guān)的管理參數(shù)。

3.卷組(Volume Group,VG

LVM中的最高抽象層,由一個(gè)或多個(gè)物理卷組成。一個(gè)邏輯卷管理系統(tǒng)中可以只有一個(gè)卷組,也可以擁有多個(gè)卷組。LVM卷組類似于非LVM系統(tǒng)中的物理硬盤,其由物理卷組成。

4.邏輯卷(Logical Volume,LV

LVM的邏輯卷類似于非LVM系統(tǒng)中的硬盤分區(qū),在邏輯卷之上可以建立文件系統(tǒng)(比如/home或者/usr等)。系統(tǒng)中的多個(gè)邏輯卷可以屬于同一個(gè)卷組,也可以屬于不同的多個(gè)卷組。

5.PE(Physical Extent,PE

每一個(gè)物理卷被劃分為大小相等的稱為PE(Physical Extents)的基本單元。物理區(qū)域是物理卷中可用于分配的最小存儲(chǔ)單元,物理區(qū)域的大小可根據(jù)實(shí)現(xiàn)情況在建立物理卷時(shí)指定。物理區(qū)域大小一旦確定,將 不能更改,同一卷組中的所有物理卷的物理區(qū)域大小需要一致。PE的大小是可配置的,默認(rèn)為4MB。

6.LE(Logical Extent,LE

邏輯卷也被劃分為被稱為LE(LogicalExtents)的可被尋址的基本單位。在同一個(gè)卷組中,LE的大小和PE是相同的,并且一一對應(yīng)。

7.VGDA(卷組描述符區(qū)域)

和非LVM系統(tǒng)將包含分區(qū)信息的元數(shù)據(jù)保存在位于分區(qū)起始位置的分區(qū)表中一樣,邏輯卷及卷組相關(guān)的元數(shù)據(jù)被保存在位于物理卷起始處的VGDA中。 VGDA包括以下內(nèi)容:PV描述符、VG描述符、LV描述符和一些PE描述符。系統(tǒng)啟動(dòng)LVM時(shí)激活VG,并將VGDA加載至內(nèi)存,來識(shí)別LV的實(shí)際物理 存儲(chǔ)位置。當(dāng)系統(tǒng)進(jìn)行I/O操作時(shí),就會(huì)根據(jù)VGDA建立的映射機(jī)制來訪問實(shí)際的物理位置。

七.安裝LVM

首先確定系統(tǒng)中是否安裝了lvm工具:

#rpm–qa|greplvm
lvm-1.0.3-4

如果命令結(jié)果輸入類似于上例,那么說明系統(tǒng)已經(jīng)安裝了LVM管理工具;如果命令沒有輸出則說明沒有安裝LVM管理工具,則需要從網(wǎng)絡(luò)下載或者從光盤裝LVMrpm工具包。

安裝了LVM的RPM軟件包以后,要使用LVM還需要配置內(nèi)核支持LVM。RedHat默認(rèn)內(nèi)核是支持LVM的,如果需要重新編譯內(nèi)核,則需要在配置內(nèi)核時(shí),進(jìn)入Multi-deviceSupport(RAIDandLVM)子菜單,選中以下兩個(gè)選項(xiàng):

[*]Multipledevicesdriversupport(RAIDandLVM)
<*>Logicalvolumemanager(LVM)Support

然后重新編譯內(nèi)核,即可將LVM的支持添加到新內(nèi)核中。

為了使用LVM,要確保在系統(tǒng)啟動(dòng)時(shí)激活LVM,幸運(yùn)的是在RedHat7.0以后的版本,系統(tǒng)啟動(dòng)腳本已經(jīng)具有對激活LVM的支持,在/etc/rc.d/rc.sysinit中有以下內(nèi)容:

#LVMinitialization
if[-e/proc/lvm-a-x/sbin/vgchange-a-f/etc/lvmtab];then
action$"SettingupLogicalVolumeManagement:"/sbin/vgscan&&/sbin
/vgchange-ayfi

其中關(guān)鍵是兩個(gè)命令,vgscan命令實(shí)現(xiàn)掃描所有磁盤得到卷組信息,并創(chuàng)建文件卷組數(shù)據(jù)文件/etc/lvmtab和/etc/lvmtab.d/*;vgchange-ay命令激活系統(tǒng)所有卷組。

八.LVM命令

LVM命令表1


LVM

命令

描述

pv

pvcreate

將物理分區(qū)建成為PV

pvscan

搜索當(dāng)前系統(tǒng)里任何具有PV的磁盤


pvdisplay

顯示當(dāng)前系統(tǒng)上的PV狀態(tài)


pvremove

將PV屬性刪除,讓該分區(qū)不具有PV屬性


partprobe

這個(gè)命令可以讓核心立刻讀入最新的分區(qū)表而不必重新引導(dǎo)


vg

vgcreate

建立VG。它的參數(shù)比較多,等一下介紹

vgscan

搜索系統(tǒng)上面是否有VG存在


vgdisplay

顯示當(dāng)前系統(tǒng)上的VG狀態(tài)


vgextend

在VG內(nèi)增加額外的PV


vgreduce

在VG內(nèi)刪除PV


vgchange

設(shè)置VG是否啟動(dòng)(active)


vgremove

刪除一個(gè)VG


lv

lvcreate

建立LV

lvscan

查詢系統(tǒng)上的LV


lvdisplay

顯示系統(tǒng)上的LV狀態(tài)


lvextend

在LV里增加容量


lvreduce

在LV里減少容量


lvremove

刪除一個(gè)LV


lvresize

對LV進(jìn)行容量大小的調(diào)整


LVM命令表2


任務(wù)

PV

VG

LV

搜索(scan)

pvscan

vgscan

lvscan

建立(create)

pvcreate

vgcreate

lvcreate

列出(display)

pvdisplay

vgdisplay

lvdisplay

增加(extend)

 

vgextend

lvextend

減少(reduce)

 

vgreduce

lvreduce

刪除(remove)

pvremove

vgremove

lvremove

改變?nèi)萘浚╮esize)

 

vgresize

 

九.LVM配置實(shí)戰(zhàn)

Linux中實(shí)現(xiàn)LVM的方法有兩種:一種是在安裝Linux時(shí)利用Disk Druid程序在圖形化界面下實(shí)現(xiàn);另一種是利用LVM命令在字符界面下實(shí)現(xiàn),下面的過程是基于后一種(字符界面)實(shí)現(xiàn)的。

1.準(zhǔn)備物理分區(qū)

首先,我們需要選擇用于LVM的物理存儲(chǔ)器。這些通常是標(biāo)準(zhǔn)分區(qū),但也可以是已創(chuàng)建的Linux Software RAID卷。這里我利用fdisk命令,將sdb、sdc兩塊磁盤分區(qū)sdb1、sdc1,通過fdisk的t指定指定分區(qū)為8e類型(Linux LVM),如下圖所示。

2.創(chuàng)建物理卷PV

創(chuàng)建卷是在磁盤的物理分區(qū)或與磁盤分區(qū)具有同樣功能的設(shè)備(如RAID)上創(chuàng)建而來的。它只在物理分區(qū)中劃出了一個(gè)特殊的區(qū)域,用于記載與LVM相關(guān)的管理參數(shù)。

創(chuàng)建物理卷的命令是pvcreate:
#pvcreate /dev/sdb1
Physical volume “/dev/sdb1” successfully created
#pvcreate /dev/sdc1
Physical volume “/dev/sdc1” successfully created

以上命令分別將/dev/sdc1、/dve/sdd1初始化成物理卷,使用物理卷顯示命令pvdisplay查看物理卷情況如下:
#pvdisplay
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 36.00 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID QDmnUd-tuvH-U4Hn-n5Ry-zGRT-OlyK-67Dxbb
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size 36.00 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID NDBf68-6qrD-9hE6-Rotv-RdxL-Azvv-7Nlcos

3.創(chuàng)建卷組VG

卷組是一個(gè)或多個(gè)物理卷的組合。卷組將多個(gè)物理卷組合在一起,形成一個(gè)可管理的單元,它類似于非LVM系統(tǒng)中的物理硬盤。

創(chuàng)建卷組的命令為vgcreate,下面利用它創(chuàng)建一個(gè)名為“l(fā)vmdisk”的卷組,該卷組包含/dev/sdb1、/dev/sdc1兩個(gè)物理卷。

#vgcreate lvmdisk /dev/sdb1 /dev/sdc1
Volume group “l(fā)vmdisk” successfully created

使用卷組查看命令vgdisplay顯示卷組情況:
#vgdisplay
--- Volume group ---
VG Name lvmdisk
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 71.98GB
PE Size 4.00MB
Total PE 18428
Alloc PE / Size 0 / 0
Free PE / Size 18428 / 71.98GB
VG UUID SARfuj-wAUI-od81-VWAc-Alnt-aaFN-JWaPVf

當(dāng)多個(gè)物理卷組合成一個(gè)卷組后時(shí),LVM會(huì)在所有的物理卷上做類似于格式化的工作,將每個(gè)物理卷切成一塊一塊的空間,這一塊一塊的空間就稱為PE(Physical Extent),它的默認(rèn)大小是4MB。

由于受內(nèi)核限制的原因,一個(gè)邏輯卷最多只能包含65536個(gè)PE,所以一個(gè)PE的大小就決定了邏輯卷的最大容量,4MB的PE決定了單個(gè)邏輯卷最大容量為256GB,若希望使用大于256GB的邏輯卷,則創(chuàng)建卷組時(shí)需要指定更大的PE。

例如,如果希望使用64MB的PE創(chuàng)建卷組,這樣邏輯卷最大容量就可以為4TB,命令如下:
#vgcreate -64mb lvmdisk /dev/sdb1 /dev/sdc1

4.創(chuàng)建邏輯卷LV

邏輯卷(Logical Volumes,LV),是在卷組中劃分的一個(gè)邏輯區(qū)域,類似于非LVM系統(tǒng)中的硬盤分區(qū)。

創(chuàng)建邏輯卷的命令為lvcreate,通過下面的命令,我們在卷組lvmdisk上創(chuàng)建了一個(gè)名字為pldy1的邏輯卷,大小為15GB,其設(shè)備入口為/dev/lvmdisk/pldy1。
#lvcreate -L 15G -n pldy1 lvmdisk
Logical volume "pldy1" create

也可以使用-l參數(shù),通過指定PE數(shù)來設(shè)定邏輯分區(qū)大小。

例如,希望創(chuàng)建一個(gè)使用全部空間的邏輯卷,需要先查清卷組中的PE總數(shù),通過上面的vgdisplay命令查得當(dāng)前卷組PE總數(shù)為18428,命令如下:
#lvcreate –l 18428 –n pldy1 lvmdisk

當(dāng)邏輯卷創(chuàng)建成功扣,可以使用lvmdisplay命令查看邏輯卷情況:
#lvdisplay
---Logical voume ---
LV Name /dev/lvmdisk/pldy1
VG Name lvmdisk
LV UUID FQcnm3-BMyq-NkJz-hykw-9xg1-Qy8d-8UeGCN
LV Write Access read/write
LV Status available
#open 0
LV Size 15.00GB
Current LE 3840
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:0

同卷組一樣,邏輯卷在創(chuàng)建過程中也被分成了一塊一塊的空間,這些空間稱為LE(Logical Extents),在同一個(gè)卷組中,LE的大小和PE是相同的,并且一一對應(yīng)。

5.創(chuàng)建文件系統(tǒng)

在邏輯卷上創(chuàng)建ext3文件系統(tǒng):
#mkfs -t ext3 /dev/lvmdisk/pldy1

創(chuàng)建了文件系統(tǒng)后,就可以加載使用:
#mkdir /opt/Oracle
#mount /dev/lvmdisk/pldy1 /opt/Oracle

為了在系統(tǒng)啟動(dòng)時(shí)自動(dòng)加載文件系統(tǒng),則還需要在/etc/fstab中添加內(nèi)容:
#dev/lvmdisk/pldy1 /opt/Oracle ext3 defaults 1 2

6.管理LVM

LVM的最大好處就是可以動(dòng)態(tài)地調(diào)整分區(qū)大小,而無須重新啟動(dòng)機(jī)器,下面讓我們來體驗(yàn)一下吧!繼續(xù)上面的實(shí)例,現(xiàn)假設(shè)邏輯卷/dev/lvmdisk/pldy1空間不足,需要增加其大小,我們分兩種情況討論。

(1)查看卷組中有無剩余的空間
通過vgdiskplay命令可以檢查當(dāng)前卷組空間使用情況:
#vgdisplay
--- Volume group ---
VG Name lvmdisk
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 71.98GB
PE Size 4.00MB
Total PE 18428
Alloc PE / Size 3840 / 15.00GB
Free PE / Size 14588 / 56.98GB
VG UUID SARfuj-wAUI-od81-VWAc-Alnt-aaFN-JWaPVf

確定當(dāng)前卷組剩余空間56.98GB,剩余PE數(shù)量為14588個(gè)。在這里將所有的剩余空間全部增加給邏輯卷/dev/lvmdisk/pldy1。
#lvextend -l +14588 /dev/lvmdisk/pldy1
Extending logical volume pldy1 to 56.98 GB
Logical volume pldy1 successfully resized

上面的命令使用了-l+14588參數(shù),它的意思是給指定的邏輯卷增加14588個(gè)PE。如果不是將全部空間都使用,還可使用其他形式的lvextend命令。

例如,將邏輯卷/dev/lvmdisk/pldy1增加5GB的空間,使其空間達(dá)到20GB,可寫成:“#lvextend –L+5G /dev/lvmdisk/pldy1”或“#lvextend –L20G /dev/lvmdisk/pldy1”。增加了邏輯卷容量后,就要通過ext2online命令修改文件系統(tǒng)的大小了。
#ext2online /opt/Oracle/

轉(zhuǎn)換好后,讓我們查看一下文件系統(tǒng)的當(dāng)前狀態(tài):
#df -lh
Filesystem 1k-blocks Used Available Use% mounted on
/dev/sba1 7.4G 1.8G 5.3G 25% /
none 135M 0 135M 0% /dev/shm
/dev/mapper/lvmdisk-pldy1 71G 81M 68G 1% /opt/Oracle

(2)卷組中空間不足

當(dāng)卷組中沒有足夠的空間用于擴(kuò)展邏輯卷的大小時(shí),需要增加卷組的容量,而增加卷組容量的唯一辦法就是向卷組中添加新的物理卷。

首先增加一塊新硬盤(36GB SCSI硬盤),并對其完成分區(qū)、創(chuàng)建物理卷等工作。接下來利用vgextend命令將新的物理卷(/dev/sdd1)加入卷組中。

擴(kuò)展卷組的命令如下:
#vgextend lvmdisk /dev/sdd1
Volume group "lvmdisk" successfully extended

利用vgdisplay命令查看卷組lvmdisk的情況:
#vgdisplay
--- Volume group ---
VG Name lvmdisk
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 107.97GB
PE Size 4.00MB
Total PE 27640
Alloc PE / Size 3840 / 15.00GB
Free PE / Size 23800 / 92.97GB
VG UUID 18Rfuj-udUI-od81-VWcT-Alnt-aaFN-JWaPVf

完成卷組的擴(kuò)容后,就可以按照第一種情況的方法完成邏輯卷的擴(kuò)容,最終實(shí)現(xiàn)分區(qū)的動(dòng)態(tài)調(diào)整。

(3)救援模式下面,如何使用LVM工具

一般Linux發(fā)行版本使用LVM2的命令,例如,vgscan和vgcreate實(shí)際上是鏈接到lvm.static。例如:
#ls –l /sbin/vgscan
lrwxrwxrwx 1 root root 10 Oct 8 16:06 /sbin/vgscan -> lvm.static

在救援模式下,這些鏈接沒有自動(dòng)建立,所有這些命令無法使用。要執(zhí)行LVM的命令,使用如下命令:
lvm <command>

例如:
lvm vgscan

(4)使用dm-crypt在LVM(版本是LVM2)上創(chuàng)建一個(gè)加密的邏輯卷

<1>使用命令lvcreate創(chuàng)建一個(gè)名字是CRYPTO的邏輯卷(LV):
#lvcreate -n CRYPTO -L+100M DATA
Logical volume "CRYPTO" created

<2>使用cryptsetup命令把邏輯卷CRYPTO設(shè)置成為加密的塊設(shè)備:
#cryptsetup create CRYPTO /dev/DATA/CRYPTO
Enter passphrase:xxxxxx

<3>使用命令cryptsetup檢查狀態(tài):
#cryptsetup status DMCRYPT
/dev/mapper/DMCRYPT is active:
cipher:aes-plain
keysize:256 bits
devce:/dev/dm-6
offset: 0 sectors
size:204800 sectors

<4>使用mke2fs在DMCRYPT上創(chuàng)建文件系統(tǒng):
#mke2fs /dev/mapper/DMCRYPT
mke2fs 1.35 (23-Feb-2008)
max_blocks 104857600, rsv_groups=128000, rsv_gdb=256
...
...

<5>掛載文件系統(tǒng)并且在文件系統(tǒng)上創(chuàng)建文件:
#mkdir /mnt/crypt;
#mount /dev/mapper/DMCRYPT /mnt/crypt
#cd /mnt/crypt

卸載文件系統(tǒng),刪除映射的加密塊設(shè)備,這種情況下,如果沒有密碼是無法正常獲取其中數(shù)據(jù)的:
#umount /mnt/crypt
#cryptsetup remove DMCRYPT
The following can also be done after reboot.

重新加密塊設(shè)備,提示需要輸入密碼:
#cryptsetup create DMCRYPT /dev/DATA/CRYPTO
Enter passphrase:<-------- WRONG PASSPHRASE!
#mount /dev/mapper/DMCRYPT /mnt/crypt
mount: you must secify the filesystem type

用正確的密碼打開:
#cryptsetup remove DMCRYPT
#cryptsetup create DMCRYPT /dev/DATA/CRYPTO
Enter passphrase:xxxxxx
#mount /dev/mapper/DMCRYPT /mnt/crypt

7.LVM故障排除提示

(1)一致性檢查

大多數(shù)LVM命令都執(zhí)行一致性檢查??梢允褂妹顅gdisplay、vgscan檢查VLM配置,并查找不一致的地方。

(2)日志文件和跟蹤文件

LVM沒有專用的日志文件或跟蹤文件。它將錯(cuò)誤和警告記錄到/var/syslog/syslog.log中。

上述就是小編為大家分享的如何理解Linux 系統(tǒng)的LVM邏輯卷管理了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI