您好,登錄后才能下訂單哦!
小編這次要給大家分享的是Linux中如何使用邏輯卷管理(LVM),文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
管理磁盤空間對系統(tǒng)管理員來說是一件重要的日常工作。一旦磁盤空間耗盡就需要進(jìn)行一系列耗時而又復(fù)雜的任務(wù),以提升磁盤分區(qū)中可用的磁盤空間。它也需要系統(tǒng)離線才能處理。通常這種任務(wù)會涉及到安裝一個新的硬盤、引導(dǎo)至恢復(fù)模式或者單用戶模式、在新硬盤上創(chuàng)建一個分區(qū)和一個文件系統(tǒng)、掛載到臨時掛載點去從一個太小的文件系統(tǒng)中移動數(shù)據(jù)到較大的新位置、修改 /etc/fstab 文件的內(nèi)容來反映出新分區(qū)的正確設(shè)備名、以及重新引導(dǎo)來重新掛載新的文件系統(tǒng)到正確的掛載點。
我想告訴你的是,當(dāng) LVM (邏輯卷管理)首次出現(xiàn)在 Fedora Linux 中時,我是非??咕芩?。我最初的反應(yīng)是,我并不需要在我和我的設(shè)備之間有這種額外的抽象層。結(jié)果是我錯了,邏輯卷管理是非常有用的。
LVM 讓磁盤空間管理非常靈活。它提供的功能諸如在文件系統(tǒng)已掛載和活動時,很可靠地增加磁盤空間到一個邏輯卷和它的文件系統(tǒng)中,并且,它也允許你將多個物理磁盤和分區(qū)融合進(jìn)一個可以分割成邏輯卷(LV)的單個卷組(VG)中。
卷管理也允許你去減少分配給一個邏輯卷的磁盤空間數(shù)量,但是,這里有兩個要求,第一,卷必須是未掛載的。第二,在卷空間調(diào)整之前,文件系統(tǒng)本身的空間大小必須先被減少。
有一個重要的提示是,文件系統(tǒng)本身必須允許重新調(diào)整大小的操作。當(dāng)重新提升文件系統(tǒng)大小的時候,EXT2、3 和 4 文件系統(tǒng)都允許離線(未掛載狀態(tài))或者在線(掛載狀態(tài))重新調(diào)整大小。你應(yīng)該去認(rèn)真了解你打算去調(diào)整的文件系統(tǒng)的詳細(xì)情況,去驗證它們是否可以完全調(diào)整大小,尤其是否可以在線調(diào)整大小。
即時擴(kuò)展一個文件系統(tǒng)
在我安裝一個新的發(fā)行版到我的生產(chǎn)用機(jī)器中之前,我總是喜歡在一個 VirtualBox 虛擬機(jī)中運行這個新的發(fā)行版一段時間,以確保它沒有任何的致命的問題存在。在幾年前的一個早晨,我在我的主要使用的工作站上的虛擬機(jī)中安裝了一個新發(fā)行的 Fedora 版本。我認(rèn)為我有足夠的磁盤空間分配給安裝虛擬機(jī)的主文件系統(tǒng)。但是,我錯了,大約在安裝到三分之一時,我耗盡了我的文件系統(tǒng)的空間。幸運的是,VirtualBox 檢測到了磁盤空間不足的狀態(tài),并且暫停了虛擬機(jī),然后顯示了一個明確指出問題所在的錯誤信息。
請注意,這個問題并不是虛擬機(jī)磁盤太小造成的,而是由于宿主機(jī)上空間不足,導(dǎo)致虛擬機(jī)上的虛擬磁盤在宿主機(jī)上的邏輯卷中沒有足夠的空間去擴(kuò)展。
因為許多現(xiàn)在的發(fā)行版都缺省使用了邏輯卷管理,并且在我的卷組中有一些可用的空余空間,我可以分配額外的磁盤空間到適當(dāng)?shù)倪壿嬀?,然后即時擴(kuò)展宿主機(jī)的文件系統(tǒng)。這意味著我不需要去重新格式化整個硬盤,以及重新安裝操作系統(tǒng)或者甚至是重啟機(jī)器。我不過是分配了一些可用空間到適當(dāng)?shù)倪壿嬀碇?,并且重新調(diào)整了文件系統(tǒng)的大小 —— 所有的這些操作都在文件系統(tǒng)在線并且運行著程序的狀態(tài)下進(jìn)行的,虛擬機(jī)也一直使用著宿主機(jī)文件系統(tǒng)。在調(diào)整完邏輯卷和文件系統(tǒng)的大小之后,我恢復(fù)了虛擬機(jī)的運行,并且繼續(xù)進(jìn)行安裝過程,就像什么問題都沒有發(fā)生過一樣。
雖然這種問題你可能從來也沒有遇到過,但是,許多人都遇到過重要程序在運行過程中發(fā)生磁盤空間不足的問題。而且,雖然許多程序,尤其是 Windows 程序,并不像 VirtualBox 一樣寫的很好,且富有彈性,Linux 邏輯卷管理可以使它在不丟失數(shù)據(jù)的情況下去恢復(fù),也不需要去進(jìn)行耗時的安裝過程。
LVM 結(jié)構(gòu)
邏輯卷管理的磁盤環(huán)境結(jié)構(gòu)如下面的圖 1 所示。邏輯卷管理允許多個單獨的硬盤和/或磁盤分區(qū)組合成一個單個的卷組(VG)。卷組然后可以再劃分為邏輯卷(LV)或者被用于分配成一個大的單一的卷。普通的文件系統(tǒng),如 EXT3 或者 EXT4,可以創(chuàng)建在一個邏輯卷上。
在圖 1 中,兩個完整的物理硬盤和一個第三塊硬盤的一個分區(qū)組合成一個單個的卷組。在這個卷組中創(chuàng)建了兩個邏輯卷和文件系統(tǒng),比如,可以在每個邏輯卷上創(chuàng)建一個 EXT3 或者 EXT4 的文件系統(tǒng)。
圖 1: LVM 允許組合分區(qū)和整個硬盤到卷組中
在一個主機(jī)上增加磁盤空間是非常簡單的,在我的經(jīng)歷中,這種事情是很少的。下面列出了基本的步驟。你也可以創(chuàng)建一個完整的新卷組或者增加新的空間到一個已存在的邏輯卷中,或者創(chuàng)建一個新的邏輯卷。
增加一個新的邏輯卷
有時候需要在主機(jī)上增加一個新的邏輯卷。例如,在被提示包含我的 VirtualBox 虛擬機(jī)的虛擬磁盤的 /home
文件系統(tǒng)被填滿時,我決定去創(chuàng)建一個新的邏輯卷,以存儲包含虛擬磁盤在內(nèi)的虛擬機(jī)數(shù)據(jù)。這將在我的 /home
文件系統(tǒng)中釋放大量的空間,并且也允許我去獨立地管理虛擬機(jī)的磁盤空間。
增加一個新的邏輯卷的基本步驟如下:
1 如有需要,安裝一個新硬盤。
2 可選: 在硬盤上創(chuàng)建一個分區(qū)。
3 在硬盤上創(chuàng)建一個完整的物理卷(PV)或者一個分區(qū)。
4 分配新的物理卷到一個已存在的卷組(VG)中,或者創(chuàng)建一個新的卷組。
5 從卷空間中創(chuàng)建一個新的邏輯卷(LV)。
6 在新的邏輯卷中創(chuàng)建一個文件系統(tǒng)。
7 在 /etc/fstab
中增加適當(dāng)?shù)臈l目以掛載文件系統(tǒng)。
8 掛載文件系統(tǒng)。
為了更詳細(xì)的介紹,接下來將使用一個示例作為一個實驗去教授關(guān)于 Linux 文件系統(tǒng)的知識。
示例
這個示例展示了怎么用命令行去擴(kuò)展一個已存在的卷組,并給它增加更多的空間,在那個空間上創(chuàng)建一個新的邏輯卷,然后在邏輯卷上創(chuàng)建一個文件系統(tǒng)。這個過程一直在運行著和已掛載的文件系統(tǒng)上執(zhí)行。
警告:僅 EXT3 和 EXT4 文件系統(tǒng)可以在運行和掛載狀態(tài)下調(diào)整大小。許多其它的文件系統(tǒng),包括 BTRFS 和 ZFS 是不能這樣做的。
安裝硬盤
如果在系統(tǒng)中現(xiàn)有硬盤上的卷組中沒有足夠的空間可以增加,那么可能需要去增加一塊新的硬盤,然后創(chuàng)建空間增加到邏輯卷中。首先,安裝物理硬盤,然后,接著執(zhí)行后面的步驟。
從硬盤上創(chuàng)建物理卷
首先需要去創(chuàng)建一個新的物理卷(PV)。使用下面的命令,它假設(shè)新硬盤已經(jīng)分配為 /dev/hdd
。
pvcreate /dev/hdd
在新硬盤上創(chuàng)建一個任意分區(qū)并不是必需的。創(chuàng)建的物理卷將被邏輯卷管理器識別為一個新安裝的未處理的磁盤或者一個類型為 83 的 Linux 分區(qū)。如果你想去使用整個硬盤,創(chuàng)建一個分區(qū)并沒有什么特別的好處,而且元數(shù)據(jù)所用的磁盤空間也能用做 PV 的一部分使用。
擴(kuò)展已存在的卷組
在這個示例中,我將擴(kuò)展一個已存在的卷組,而不是創(chuàng)建一個新的;你可以選擇其它的方式。在物理磁盤已經(jīng)創(chuàng)建之后,擴(kuò)展已存在的卷組(VG)去包含新 PV 的空間。在這個示例中,已存在的卷組命名為:MyVG01。
vgextend /dev/MyVG01 /dev/hdd
創(chuàng)建一個邏輯卷
首先,在卷組中從已存在的空余空間中創(chuàng)建邏輯卷。下面的命令創(chuàng)建了一個 50 GB 大小的 LV。這個卷組的名字為 MyVG01,然后,邏輯卷的名字為 Stuff。
lvcreate -L +50G --name Stuff MyVG01
創(chuàng)建文件系統(tǒng)
創(chuàng)建邏輯卷并不會創(chuàng)建文件系統(tǒng)。這個任務(wù)必須被單獨執(zhí)行。下面的命令在新創(chuàng)建的邏輯卷中創(chuàng)建了一個 EXT4 文件系統(tǒng)。
mkfs -t ext4 /dev/MyVG01/Stuff
增加一個文件系統(tǒng)卷標(biāo)
增加一個文件系統(tǒng)卷標(biāo),更易于在文件系統(tǒng)以后出現(xiàn)問題時識別它。
e2label /dev/MyVG01/Stuff Stuff
掛載文件系統(tǒng)
在這個時候,你可以創(chuàng)建一個掛載點,并在 /etc/fstab
文件系統(tǒng)中添加合適的條目,以掛載文件系統(tǒng)。
你也可以去檢查并校驗創(chuàng)建的卷是否正確。你可以使用 df
、lvs
和 vgs
命令去做這些工作。
在 LVM 文件系統(tǒng)中調(diào)整邏輯卷大小
從 Unix 的第一個版本開始,對文件系統(tǒng)的擴(kuò)展需求就一直伴隨,Linux 也不例外。隨著有了邏輯卷管理(LVM),現(xiàn)在更加容易了。
1 如有需要,安裝一個新硬盤。
2 可選: 在硬盤上創(chuàng)建一個分區(qū)。
3 在硬盤上創(chuàng)建一個完整的物理卷(PV)或者一個分區(qū)。
4 分配新的物理卷到一個已存在的卷組(VG)中,或者創(chuàng)建一個新的卷組。
5 從卷空間中創(chuàng)建一個新的邏輯卷(LV),或者用卷組中部分或全部空間擴(kuò)展已有的邏輯卷。
6 如果創(chuàng)建了新的邏輯卷,那么在上面創(chuàng)建一個文件系統(tǒng)。如果對已有的邏輯卷增加空間,使用 resize2fs
命令來增大文件系統(tǒng)來填滿邏輯卷。
7 在 /etc/fstab
中增加適當(dāng)?shù)臈l目以掛載文件系統(tǒng)。
8 掛載文件系統(tǒng)。
示例
這個示例展示了怎么用命令行去擴(kuò)展一個已存在的卷組。它會給 /Staff
文件系統(tǒng)增加大約 50GB 的空間。這將生成一個可用于掛載的文件系統(tǒng),在 Linux 2.6 內(nèi)核(及更高)上可即時使用 EXT3 和 EXT4 文件系統(tǒng)。我不推薦你用于任何關(guān)鍵系統(tǒng),但是這是可行的,我已經(jīng)成功了好多次;即使是在根(/
)文件系統(tǒng)上。是否使用自己把握風(fēng)險。
警告:僅 EXT3 和 EXT4 文件系統(tǒng)可以在運行和掛載狀態(tài)下調(diào)整大小。許多其它的文件系統(tǒng),包括 BTRFS 和 ZFS 是不能這樣做的。
安裝硬盤
如果在系統(tǒng)中現(xiàn)有硬盤上的卷組中沒有足夠的空間可以增加,那么可能需要去增加一塊新的硬盤,然后創(chuàng)建空間增加到邏輯卷中。首先,安裝物理硬盤,然后,接著執(zhí)行后面的步驟。
從硬盤上創(chuàng)建物理卷
首先需要去創(chuàng)建一個新的物理卷(PV)。使用下面的命令,它假設(shè)新硬盤已經(jīng)分配為 /dev/hdd
。
pvcreate /dev/hdd
在新硬盤上創(chuàng)建一個任意分區(qū)并不是必需的。創(chuàng)建的物理卷將被邏輯卷管理器識別為一個新安裝的未處理的磁盤或者一個類型為 83 的 Linux 分區(qū)。如果你想去使用整個硬盤,創(chuàng)建一個分區(qū)并沒有什么特別的好處,而且元數(shù)據(jù)所用的磁盤空間也能用做 PV 的一部分使用。
增加物理卷到已存在的卷組
在這個示例中,我將使用一個新的物理卷來擴(kuò)展一個已存在的卷組。在物理卷已經(jīng)創(chuàng)建之后,擴(kuò)展已存在的卷組(VG)去包含新 PV 的空間。在這個示例中,已存在的卷組命名為:MyVG01。
vgextend /dev/MyVG01 /dev/hdd
擴(kuò)展邏輯卷
首先,在卷組中從已存在的空余空間中創(chuàng)建邏輯卷。下面的命令創(chuàng)建了一個 50 GB 大小的 LV。這個卷組的名字為 MyVG01,然后,邏輯卷的名字為 Stuff。
lvcreate -L +50G --name Stuff MyVG01
擴(kuò)展文件系統(tǒng)
如果你使用了 -r 選項,擴(kuò)展邏輯卷也將擴(kuò)展器文件系統(tǒng)。如果你不使用 -r 選項,該操作不行單獨執(zhí)行。下面的命令在新調(diào)整大小的邏輯卷中調(diào)整了文件系統(tǒng)大小。
resize2fs /dev/MyVG01/Stuff
你也可以去檢查并校驗調(diào)整大小的卷是否正確。你可以使用 df、lvs 和 vgs 命令去做這些工作。
提示
過去幾年來,我學(xué)習(xí)了怎么去做讓邏輯卷管理更加容易的一些知識,希望這些提示對你有價值。
1 除非你有一個明確的原因去使用其它的文件系統(tǒng)外,推薦使用可擴(kuò)展的文件系統(tǒng)。除了 EXT2、3、和 4 外,并不是所有的文件系統(tǒng)都支持調(diào)整大小。EXT 文件系統(tǒng)不但速度快,而且它很高效。在任何情況下,如果默認(rèn)的參數(shù)不能滿足你的需要,它們(指的是文件系統(tǒng)參數(shù))可以通過一位知識豐富的系統(tǒng)管理員來調(diào)優(yōu)它。
2 使用有意義的卷和卷組名字。
3 使用 EXT 文件系統(tǒng)標(biāo)簽
看完這篇關(guān)于Linux中如何使用邏輯卷管理(LVM)的文章,如果覺得文章內(nèi)容寫得不錯的話,可以把它分享出去給更多人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。