您好,登錄后才能下訂單哦!
這期內(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è)資訊頻道。
免責(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)容。