這是 Linux 中 LVM(邏輯卷管理)的完整初學(xué)者指南。
在網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)過程中,需要針對(duì)客戶的行業(yè)特點(diǎn)、產(chǎn)品特性、目標(biāo)受眾和市場情況進(jìn)行定位分析,以確定網(wǎng)站的風(fēng)格、色彩、版式、交互等方面的設(shè)計(jì)方向。創(chuàng)新互聯(lián)公司還需要根據(jù)客戶的需求進(jìn)行功能模塊的開發(fā)和設(shè)計(jì),包括內(nèi)容管理、前臺(tái)展示、用戶權(quán)限管理、數(shù)據(jù)統(tǒng)計(jì)和安全保護(hù)等功能。
在本教程中,您將了解 LVM 的概念、它的組件以及為什么要使用它。
我不會(huì)僅限于理論上的解釋,我還將展示在 Linux 中創(chuàng)建和管理 LVM 的動(dòng)手示例。
簡而言之,我將為您提供在現(xiàn)實(shí)世界中開始使用 LVM 所需的所有必要信息。
LVM 代表邏輯卷管理。這是管理存儲(chǔ)系統(tǒng)的另一種方法,而不是傳統(tǒng)的基于分區(qū)的方法。在 LVM 中,您無需創(chuàng)建分區(qū),而是創(chuàng)建邏輯卷,然后您可以像掛載磁盤分區(qū)一樣輕松地將這些卷掛載到文件系統(tǒng)中。
LVM 包含三個(gè)主要組件:
盡管該列表由三個(gè)部分組成,但其中只有兩個(gè)是分區(qū)系統(tǒng)的直接對(duì)應(yīng)部分,下表記錄了這一點(diǎn)。
物理卷沒有任何直接對(duì)應(yīng)物,但我很快就會(huì)談到這一點(diǎn)。
LVM 的主要優(yōu)點(diǎn)是調(diào)整卷或卷組的大小非常容易。它抽象出了所有丑陋的部分(分區(qū)、原始磁盤),并為我們留下了一個(gè)中央存儲(chǔ)池可供使用。
如果您曾經(jīng)經(jīng)歷過分區(qū)大小調(diào)整的恐懼,那么您會(huì)想要使用 LVM。
這篇文章不僅僅是理論。在此過程中,我將展示實(shí)際的命令示例,學(xué)習(xí)某些東西的最佳方法是親身實(shí)踐。為此,我建議您使用虛擬機(jī)。
為了幫助你,我已經(jīng)準(zhǔn)備了一個(gè)簡單的 Vagrantfile,你可以用它來用 VirtualBox 啟動(dòng)一個(gè)非常輕量級(jí)的虛擬機(jī)。此虛擬機(jī)具有三個(gè)額外的磁盤,您和我可以將它們用于下面的命令示例。
在文件系統(tǒng)的某處創(chuàng)建一個(gè)目錄,并將以下內(nèi)容保存在該文件中,名為Vagrantfile.
或者,如果您愿意,可以使用wget或curl從我的 gist 下載文件。
確保你安裝了Vagrant和VirtualBox。
一旦 Vagrantfile 就位,將環(huán)境變量設(shè)置VAGRANT_EXPERIMENTAL為disks.
最后,使用以下命令啟動(dòng)虛擬機(jī)(確保您與 Vagrantfile 位于同一目錄中):
機(jī)器運(yùn)行后,您可以使用vagrant sshSSH 連接到它并運(yùn)行本文中的示例命令。
完成后請記住vagrant destroy從與 Vagrantfile 相同的目錄運(yùn)行。
在您可以使用任何命令之前,您需要安裝該lvm2軟件包。這應(yīng)該預(yù)裝在大多數(shù)現(xiàn)代發(fā)行版中,尤其是基于 Ubuntu 的發(fā)行版中。但是,在繼續(xù)之前,我不得不提到這一點(diǎn)。要安裝lvm2,請查閱您的發(fā)行版的文檔。
對(duì)于這個(gè)動(dòng)手演練,我構(gòu)建了一個(gè)具有 40G 根存儲(chǔ)(不重要)和三個(gè)大小為 5G 的外部磁盤的虛擬機(jī)。這些磁盤的大小是任意的。
如您所見,我將使用的設(shè)備sdc是sdd和sde。
還記得我告訴過你 LVM 包含三個(gè)主要組件嗎?
是時(shí)候一一見他們了。
關(guān)于 LVM,您首先需要了解的是物理卷。物理卷是用于實(shí)現(xiàn)抽象即邏輯卷的原材料或構(gòu)建塊。簡單來說,物理卷是 LVM 系統(tǒng)的邏輯單元。
物理卷可以是任何東西,原始磁盤或磁盤分區(qū)。創(chuàng)建和初始化物理卷是一回事。兩者都意味著您只是在為進(jìn)一步的操作準(zhǔn)備構(gòu)建塊(即分區(qū)、磁盤)。這將在瞬間變得更加清晰。
實(shí)用程序:pv所有管理物理卷的實(shí)用程序都以P hysical Volume的字母開頭。例如pvcreate, pvchange,pvs等pvdisplay。
您可以使用原始未分區(qū)磁盤或分區(qū)本身來創(chuàng)建物理卷。
正如我之前提到的,我的虛擬機(jī)連接了三個(gè)外部驅(qū)動(dòng)器,讓我們從/dev/sdc.
我們使用pvcreate命令來創(chuàng)建物理卷。只需將設(shè)備名稱傳遞給它即可。
你應(yīng)該看到這樣的東西:-
接下來我將/dev/sdd分成相等的部分。使用任何工具cfdisk,,,等parted,fdisk有很多工具可以完成這項(xiàng)工作。
您現(xiàn)在可以在一個(gè)步驟中從這兩個(gè)分區(qū)中快速創(chuàng)建另外兩個(gè)物理卷,同時(shí)將這兩個(gè)設(shè)備傳遞給pvcreate。
看一看:-
您可以使用三個(gè)命令來獲取可用物理卷的列表pvscan,pvs和pvdisplay。您通常不需要向這些命令傳遞任何內(nèi)容。
pvscan:-
pvs:-
pvdisplay:-
正如您所看到的,除了列出物理卷之外,這些命令還為您提供了大量有關(guān)這些卷的其他信息。
pvremove您可以使用該命令刪除物理卷。就像pvcreate,只需將設(shè)備(初始化為物理卷)傳遞給pvremove命令。
為了演示,我將從/dev/sdd2列表中刪除。
輸出應(yīng)與此相同:-
現(xiàn)在列出物理卷sudo pvs
/dev/sdd2不再在這里。
卷組是物理卷的集合。它是 LVM 中的下一個(gè)抽象級(jí)別。卷組是結(jié)合了多個(gè)原始存儲(chǔ)設(shè)備的存儲(chǔ)容量的存儲(chǔ)池。
實(shí)用程序:所有卷組實(shí)用程序名稱都以 開頭vg,代表卷組,例如、等。vgcreatevgsvgrename
卷組是使用該vgcreate命令創(chuàng)建的。的第一個(gè)參數(shù)vgcreate是您要為該卷組指定的名稱,其余的是要支持存儲(chǔ)池的物理卷的列表。
例子:-
列出卷組類似于列出物理卷,您可以使用具有不同詳細(xì)級(jí)別的不同命令vgdisplay、vgscan和vgs。
我個(gè)人更喜歡vgs命令,sudo vgs
您可以使用以下命令列出連接到特定卷組的所有物理卷:-
例子:-
您還可以獲得物理卷的計(jì)數(shù)。
例子:-
擴(kuò)展卷組意味著向卷組添加額外的物理卷。為此,vgextend使用該命令。語法很簡單:-
讓我們將lvm_tutorial音量擴(kuò)大/dev/sdd2.
專注于輸出:-
在物理卷部分,我們最終將其/dev/sdd2作為物理卷刪除,但必須將分區(qū)或原始磁盤初始化為物理卷,否則 LVM 將無法將其作為卷組的一部分進(jìn)行管理。所以在將它添加到卷組之前vgextend做好準(zhǔn)備。/dev/sdd2
現(xiàn)在列出附加到此卷組的物理卷,以確保安全。
輸出:-
/dev/sdd2現(xiàn)在按預(yù)期在列表中。
就像擴(kuò)展一個(gè)卷組意味著添加另一個(gè)物理卷一樣,減少它意味著刪除一個(gè)或多個(gè)物理卷。
我們使用vgreduce命令來執(zhí)行此操作。一般語法如下:-
讓我們刪除物理卷/dev/sdc和/dev/sdd1.
例子:-
再次列出物理卷。
輸出:-
那兩個(gè)物理卷不見了。
現(xiàn)在,為了本文的其余部分,將這兩個(gè)物理卷添加回來。
vgremove您可以使用該命令刪除邏輯卷。
現(xiàn)在不要運(yùn)行此命令,否則您必須重新創(chuàng)建卷組。如果您想對(duì)其進(jìn)行測試,請?jiān)诒疚牡淖詈筮\(yùn)行它。
這是您將主要使用的內(nèi)容。邏輯卷就像一個(gè)分區(qū),但它不是位于原始磁盤之上,而是位于卷組之上。你可以,
在本節(jié)中,您將學(xué)習(xí),
實(shí)用程序 :所有卷組實(shí)用程序名稱都以 開頭lv,代表邏輯卷。例如, ,等等, ,等等lvcreatelvslvreducevgcreatevgsvgrename
lvcreate使用該命令創(chuàng)建邏輯卷。常用的語法如下所示,
在虛擬機(jī)上運(yùn)行以下命令:
示例輸出:
正如我之前所說,您可以將文件系統(tǒng)放在邏輯卷上,也可以將其掛載到文件系統(tǒng)的任何位置。
/dev/ / 創(chuàng)建后,您可以在路徑中找到邏輯卷。例如,在我們的例子中,音量將在 /dev/lvm_tutorial/lv1 .
現(xiàn)在您可以像使用任何分區(qū)一樣使用它。用ext4格式化,
將它安裝在當(dāng)前目錄結(jié)構(gòu)中的某個(gè)位置,例如/mnt,
您可以使用命令擴(kuò)展邏輯卷lvextend并使用命令減小其大小lvreduce。或者,您可以使用單個(gè)命令lvresize來完成這兩項(xiàng)任務(wù)。
首先讓我們看看卷組中是否還有剩余空間。
輸出:-
根據(jù)輸出,我還有一些空間,所以讓我們將卷大小增加 2GB。
請記住,邏輯卷仍安裝在/mnt.
使用以下命令調(diào)整卷大?。?/p>
一般語法是這樣的:
后面的符號(hào) + 或 --L取決于您是嘗試增加音量還是分別減小音量。
卷大小增加后,文件系統(tǒng)也必須調(diào)整大小。對(duì)于 ext4,要使用的命令是resize2fs.
輸出:
減少邏輯卷是一項(xiàng)稍微復(fù)雜的任務(wù),我不會(huì)在本文中討論這個(gè)問題。我將把這個(gè)卷的大小減少 1GB。
lvremove您可以使用該命令刪除邏輯卷。命令語法如下:-
在虛擬機(jī)上運(yùn)行此命令:-
輸出:-
在邏輯卷、物理卷和卷組上還有許多其他操作可行,但不可能將所有這些都寫到一篇文章中。
我/dev/sde在虛擬機(jī)中為您多留了一個(gè)磁盤,使用它,練習(xí)本文中的一些命令,創(chuàng)建一個(gè)新的卷組,擴(kuò)展一個(gè)現(xiàn)有的卷組,只是練習(xí)。
我希望這篇文章對(duì)你有所幫助,如果你想在以后看到更多關(guān)于這方面的內(nèi)容,請?jiān)谙旅娴脑u(píng)論部分告訴我。
pvdisplay命令。
這條命令可以看到你創(chuàng)建了哪些pv,以及這些pv屬于哪些vg。這時(shí)你就可以看到你創(chuàng)建的vg的名字,vg名字一樣的當(dāng)然就是該vg的成員了。本人通過命令得到的信息如下:
[root@localhost etc]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb6
VG Name vg1
PV Size 486.31 MB / not usable 6.31 MB
Allocatable yes
PE Size (KByte) 16384
Total PE 30
Free PE 30
Allocated PE 0
PV UUID OwU2OE-TUIR-F79o-8pel-tIYZ-kH2s-0LNBtI
--- Physical volume ---
PV Name /dev/sdb7
VG Name vg1
PV Size 486.31 MB / not usable 6.31 MB
Allocatable yes
PE Size (KByte) 16384
Total PE 30
Free PE 30
Allocated PE 0
PV UUID Jt7639-mnwu-hjEP-NAT6-4qpD-SF0k-mYE2aj
,這時(shí)你就能看出/dev/sdb6和/dev/sdb7同是vg1的成員。
Linux和Windows都采用了MBR的磁盤管理方法,也就是先對(duì)一個(gè)硬盤進(jìn)行分區(qū),在對(duì)這個(gè)一般光盤進(jìn)行格式化的方法;他們的區(qū)別是: Linux系統(tǒng),是先進(jìn)行磁盤分區(qū),如果需要使用該分區(qū),將其掛載到對(duì)應(yīng)目錄即可;而Windows則是自動(dòng)將所有分區(qū)掛載好 傳統(tǒng)的磁盤管理的缺點(diǎn):不方便進(jìn)行分區(qū)擴(kuò)充、容易導(dǎo)致文件系統(tǒng)崩潰、不適用于作為生產(chǎn)環(huán)境的服務(wù)器、拷貝分區(qū)的時(shí)候要求強(qiáng)制卸載磁盤分區(qū),分區(qū)轉(zhuǎn)移時(shí)耗費(fèi)的時(shí)間長;
LVM磁盤管理技術(shù) 是Linux環(huán)境下對(duì)磁盤管理的一種技術(shù),是通過一個(gè)建立在硬盤和分區(qū)之上的邏輯層來提高磁盤分區(qū)的靈活性
物理卷(PV):就是真正的物理硬盤或物理分區(qū)
卷組(VG):是將多個(gè)物理硬盤整合到一起形成的邏輯卷組;也可以視作一塊邏輯硬盤
邏輯卷(LV):卷組是一塊邏輯硬盤,邏輯硬盤必須分區(qū)之后才能使用;邏輯卷可以視作是卷組的邏輯分區(qū)
物理擴(kuò)展(PE):物理擴(kuò)展是用來保存數(shù)據(jù)的最小單元
系統(tǒng)首先把物理硬盤合并為卷組;再通過卷組分區(qū);將卷組(邏輯硬盤)分成邏輯分區(qū)(邏輯卷)進(jìn)行使用;
把物理硬盤分成分區(qū),也可以使用一整塊的物理硬盤;把物理硬盤分區(qū)建立為物理卷(PV)也可以把整塊物理硬盤都建立為物理卷;把剛剛劃分的物理卷合為卷組(VG)卷組就已經(jīng)可以動(dòng)態(tài)的調(diào)整大小了,最后把卷組劃分成邏輯卷,其中邏輯卷也是可以隨時(shí)劃分大小的
pvcreate命令在系統(tǒng)中一般用于創(chuàng)建物理卷;
語法結(jié)構(gòu)
在使用這個(gè)命令的時(shí)候不要對(duì)存放Linux系統(tǒng)的盤符進(jìn)行進(jìn)行使用;我們在創(chuàng)建物理卷的時(shí)候都是對(duì)邏輯分區(qū)進(jìn)行創(chuàng)建的;擴(kuò)展分區(qū)(Extend)不能進(jìn)行創(chuàng)建物理卷
pvdisplay 命令用于查看當(dāng)前的分區(qū)情況
語法格式以及常用參數(shù):
查看我們剛剛創(chuàng)建的物理卷
pvremove命令常用于刪除對(duì)應(yīng)的物理卷
語法結(jié)構(gòu):
刪除我們剛剛創(chuàng)建的物理卷
vgcreate 命令的作用是將一個(gè)或多個(gè)物理卷整合成一個(gè)卷組;在創(chuàng)建卷組之前我們需要保證系統(tǒng)中有足夠的除系統(tǒng)存放卷本身的物理卷(使用pvscan查看)需要注意的是,存放Linux的系統(tǒng)物理卷不能被劃分到自定義卷組中、 常用參數(shù):-s:設(shè)定PE(最小物理存儲(chǔ)單元)的大小、-l:最大邏輯卷數(shù)量、-p:允許存在的最大物理卷數(shù)量
語法結(jié)構(gòu):
將我們剛剛創(chuàng)建物理卷添加到卷組之中
vgdisplay 這個(gè)命令可以用來查看我們創(chuàng)建的卷組; 常見的參數(shù) -s 卷組信息以短格式輸出 ;vgdisplay可以查看對(duì)應(yīng)卷組的簡短信息,所以相對(duì)于pvdisplay用處又大了那么一點(diǎn)
語法格式:
查看剛剛創(chuàng)建的卷組和某一個(gè)卷組的信息
同樣:vgscan 命令也可以查看當(dāng)前卷組使用情況的簡短信息
vgremove 命令的作用是刪除指定的卷組
語法結(jié)構(gòu):
刪除我們剛剛創(chuàng)建的卷組
注意:當(dāng)刪除含有邏輯卷的卷組的時(shí)候系統(tǒng)會(huì)提示是否刪除對(duì)應(yīng)卷組和對(duì)應(yīng)邏輯卷,只有在兩個(gè)都輸入:y之后系統(tǒng)才會(huì)刪除對(duì)應(yīng)的卷組
lvcreate 命令作用是在一個(gè)指定的卷組中創(chuàng)建一塊邏輯卷,前提是要求有指定的卷組; 常用參數(shù):-L:規(guī)定創(chuàng)建的邏輯卷大小(直接寫大小就可以)、-l:通過PE劃分邏輯卷的大?。ê竺娼拥臄?shù)字是PE的個(gè)數(shù))
語法結(jié)構(gòu):
在指定的卷組里創(chuàng)建邏輯卷
lvdisplay 命令可用于查看邏輯卷的詳細(xì)信息,也可以用來查看指定邏輯卷的詳細(xì)信息 參數(shù):-m:查看對(duì)應(yīng)邏輯卷的掛載信息
語法結(jié)構(gòu):
檢查指定的邏輯卷,并查看指定邏輯卷的掛載信息:
管理邏輯卷大小的常用命令是lvextend 命令和 lvreduce 命令分別表示邏輯卷大小的擴(kuò)充和減少, 其中l(wèi)vextend命令表示邏輯卷大小擴(kuò)充,常用參數(shù) -L(指的是擴(kuò)充的具體大?。?、-l(指的是擴(kuò)充的LE塊數(shù)量);lvextend命令表示邏輯卷大小的減小,常用參數(shù)-L(指的是減小的具體大?。?l(指的是減小的LE塊數(shù)量)
語法結(jié)構(gòu):
對(duì)我們指定的兩個(gè)邏輯卷分別進(jìn)行容量的增加和減少,并掛載對(duì)應(yīng)的邏輯卷