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