歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

通用線程:學習 Linux LVM,第 1 部分

作者:Daniel Robbins     “邏輯卷管理”為存儲器管理帶來的魔力    本文中,Daniel 向您介紹了 Linux LVM(邏輯卷管理)背後的概念,並告訴您如何將最新的內核補丁和工具安裝到您的系統上。LVM 可以讓您在除機器上的物理存儲資源以外創建邏輯卷。不過,與物理卷不同,邏輯卷可以在系統仍處於運行狀態時擴充和縮減,這樣就為 Linux 系統管理員提供了他們夢寐以求的存儲器靈活性。    在這一系列中,我要向您介紹如何安裝和使用新的內置在 Linux 2.4 內核中的“邏輯卷管理”支持。如果您以前從未使用過任何形式的 LVM ,那麼您得好好學一學;它是一種非常棒的技術。 在我們真正設置和運行 LVM 之前,我要解釋一下它究竟是什麼以及它是如何工作的。然後,我們准備對 LVM 做一些測試來充分了解它。    LVM 介紹  如果您象我一樣,那麼您對 UNIX 和 Linux 的體驗是從 PC 平台,而不是從大型的商業 UNIX 服務器和工作站上開始的。在基本 PC 上,我們總是不得不對硬盤驅動器執行分區。使用 PC 的人通常相當了解 fdisk 這樣的在硬盤上創建和刪除主要分區和擴展分區的工具。硬盤分區是一種令人厭煩,但公認是使操作系統設置和運行進程不可或缺的一部分。    因為要做好工作,確實需要精確地估計每個分區需要多少空間,所以硬盤驅動器分區可能是非常煩人的事。如果估計得不准確,Linux 系統很可能會顧此失彼 -- 為解決這個問題,您甚至可能需要執行整個系統備份、將硬盤清除干淨,然後將所有數據恢復到新的(可能比原來好一些)分區布局中。討厭!這些就是系統管理員在一開始就盡力避免的情況。    雖然分區曾一度是靜態存儲器的天下,但值得慶幸的是,我們現在有許多 PC 重新分區工具(PowerQuest 的 Partition Magic 產品就是最流行的一種)。這些工具可以讓您用一個特殊磁盤來引導系統,並可以動態地重新調整分區和文件系統的大小。重新引導後,您就擁有了重新調整過大小的新分區,這樣就有望將您從存儲器危境中解脫出來。這些重新調整分區大小的工具很有效,並從某種程度上解決了一些存儲器管理問題。但它們是不是就完美了呢?不一定。    象 Partition Magic 這樣的工具對於工作站來說非常有效,但對服務器來說就不合適了。首先,它們需要重新引導系統。而這正是大多數系統管理員盡量避免的。如果在每次需要調整存儲器(例如,如果每周存儲器調整都需要做很大調整)時不能重新引導機器怎麼辦?如果需要擴充文件系統使它能跨越多個硬盤驅動器會發生什麼,或者如果在允許 Apache 繼續提供 Web 頁面的同時需要動態擴充或縮減卷的存儲容量,您該怎麼做?在一個高度可用的動態環境中,基本的分區大小調整器無法滿足這些要求。對於這樣一些和其它一些情況,“邏輯卷管理”是一種非常出色(如果不是最完美)的解決方案。    進入 LVM  現在,讓我們看看 LVM 是如何解決這些問題的。我們執行下面的三步驟過程來創建 LVM 邏輯卷。首先,我們需要選擇用於 LVM 的物理存儲器資源。這些通常是標准分區,但也可以是我們已創建的 Linux Software RAID 卷。如果使用 LVM 術語,這些存儲器資源稱為“物理卷”。設置 LVM 的第一步是正確初始化這些分區以使它們可以被 LVM 系統識別。如果添加物理分區,它還包括設置正確的分區類型,以及運行 pvcreate 命令。    在初始化 LVM 使用的一個或多個物理卷後,可以繼續進行第二步 -- 創建卷組。您可以把卷組看作是由一個或多個物理卷所組成的存儲器池。 在 LVM 運行時,我們可以向卷組添加物理卷,甚至從中除去它們。不過,我們不能直接在卷組上安裝或創建文件系統。而是告訴 LVM 使用我們的卷組存儲器池創建一個或多個“邏輯卷”:    在物理卷上創建卷組        創建 LVM 邏輯卷非常容易,而且一旦創建它以後,我們就可以把文件系統放在它上面、安裝它,然後開始使用卷來存儲文件。使用 "lvcreate" 命令來創建邏輯卷,指定新卷的名稱、所希望的卷的大小,以及希望這個特定邏輯卷所屬的卷組。然後,LVM 系統從我們指定的卷組中分配存儲量來創建准備使用的新卷。創建新卷後,可以將 ext2 或 ReiserFS 文件系統放在上面、安裝它,然後照我們喜歡的方式使用它。    從現有卷組創建兩個邏輯卷        范圍  在幕後,LVM 系統以大小相等的“塊”(稱為“范圍”)為單位分配存儲量。我們可以指定在創建卷組時使用的特定的范圍大小。范圍的大小缺省為 4Mb,這對於大多數情況來說相當理想。LVM 的一個好處是在已經安裝了邏輯卷並在使用邏輯卷的情況下,可以動態地改變邏輯卷使用的范圍的物理存儲位置(換句話說,就是存儲它們所在的磁盤)。LVM 系統確保邏輯卷在管理員物理地改變存儲位置的同時能夠繼續正常操作。    當然,因為所有事物都是在大小相等的范圍之上創建的,所以要為已存在的邏輯卷分配一些額外的范圍實際上很容易 -- 換句話說,動態“增長”卷:    從卷組添加額外的范圍,擴展邏輯卷的大小       一旦擴充了邏輯卷,接下來就可以擴充 ext2 或 ReiserFS 文件系統來利用這一新的磁盤空間。如果使用例如 resize_reiserfs 這樣的程序,也可以在已安裝和正使用卷時擴充文件系統!真正令人稱奇的是 -- 使用 LVM 和聯機文件系統擴充實用程序,可以在改變存儲器配置時不再需要重新引導系統,甚至不需要降低到運行級別 1。    唯一需要關閉系統的情況是在需要添加新的物理磁盤時。添加了新磁盤後,可以將這些新的物理卷添加到卷組中來創建新的范圍補給。    設置 LVM  好,讓我們開始安裝 LVM。LVM 由兩部分組成:內核部分和一套用戶空間工具。為了開始,先跳到主要 LVM 頁面(請參閱本文稍後部分的參考資料)並下載可以找到的最新版本的 LVM tar 文件(當前是 lvm_0.9.1_beta3.tar.gz)。LVM tar 文件包含了所有用戶空間工具以及一組內核補丁程序。這正是令人感興趣的地方。    如果已經安裝了 2.4 系列內核,則系統上已有 LVM 支持,如果沒有,很簡單,只需要重新編譯內核來啟用 LVM 支持即可。不過,您可能不希望使用自帶的(或發行版提供的)2.4 內核所包括的 LVM 支持。如果希望使用最新的 LVM 版本,要將 LVM tar 文件中的補丁程序應用到當前的 2.4 內核源碼樹。以下是執行方法。    為了開始,進入內核源碼目錄 (/usr/src/linux) 並創建一個稱為 "extras" 的目錄。然後進入該目錄並抽取 LVM tar 文件:    # cd /usr/src/linux  # mkdir extras  # cd extras  # tar xzvf /path/to/location/of/lvm_0.9.1_beta3.tar.gz    執行完這一步後,您會注意到在 extras 中有一個稱之為 "LVM" 的目錄,它包含了另一個根據您剛剛解包的 LVM 版本命名的目錄。進入這兩個目錄找到 LVM 源碼:    清單 1:找到 LVM 源碼    您將看到幾個文本文件、腳本和源目錄。您會在 "INSTALL" 文件中找到安裝指令;我將指導您完成這一過程。首先,我們希望運行配置腳本,如下:    # ./configure --prefix=/ --mandir=/usr/man      修補  執行完這條命令後,將創建並配置 Makefile,以在 /sbin 中安裝所有 LVM 工具,在 /usr/man 中安裝幫助頁面。如果您的幫助頁面位於 /usr/share/man 中(按照 FHS 2.1),則對上述路徑作相應的調整。如果內核源碼不在 /usr/src/linux 中,還需要將 "--with-kernel_dir=/path/to/usr/src/linux" 選項添加到一行中。配置腳本完成後,我們就可以准備安裝這些工具並生成當前內核的補丁了。讓我們首先對內核加以修補。進入 PATCHES 目錄:    # cd PATCHES    現在輸入 "make"。makefile 將生成專用於特定 2.4 系列內核源碼的補丁:    # make    補丁名為 lvm-[lvmversion]-[kernelversion].patch。例如,因為我使用的是版本 0.9.1_beta3 的 LVM 和內核 2.4.0-ac11,所以補丁名為 lvm-0.9.1_beta3-2.4.0-ac11.patch。您可以在當前目錄中找到它。現在該應用補丁了。要應用補丁,需要將目錄切換到內核源碼所在的位置,然後使用 patch 命令,如清單 2 所示:    清單 2:patch 命令    雖然 LVM INSTALL 文檔並沒有提到,但我通常將 "-l" 選項傳遞給 patch。該選項讓補丁程序補償空白中的任何變化(例如細微的縮排變化),這些變化一般會造成補丁的某些部分失敗。如果上述命令完成時沒有任何帶有 "FAILED" 的行,那麼就可以准備安裝用戶磁盤空間工具了。如果不是這樣,您需要審視 /usr/src/linux 目錄來查找 ..rej 文件,然後使用文本編輯器手工將被拒絕的部分插入到源碼中 -- 真麻煩!不過,在大多數情況下,應用補丁都很順利,您可以迅速使用它。    配置、編譯和安裝  好,現在有了一個經過修補的內核,因此它具有最新可用的 LVM 代碼。現在需要配置內核來啟用 LVM 支持。我建議您直接將 LVM 支持編譯到內核中而不是將它配置成作為一個模塊編譯。啟動您喜愛的 Linux 內核配置方法:    # cd /usr/src/linux  # make menUConfig    您在 "Multi-device support (RAID and LVM)" 部分中可以找到 LVM 選項。一旦啟用了第一個選項:    [*] Multiple devices driver support (RAID and LVM)     ....您將看到以下選項,您也應該啟用它們:    <*>  Logical volume manager (LVM) support    根據您使用的 LVM 版本,可能還有其它一些希望啟用的與 LVM 相關的選項。完成後,保存內核配置,並執行標准內核編譯例程,然後重新引導。恭喜 -- 您現已啟用了內核 LVM 支持;現在,我們需要編譯和安裝用戶磁盤空間工具。這一步很簡單:    # cd /usr/src/linux/extras/LVM/0.9.1_beta3  # make  # make install    另外還有一步,它是可選的。如果您要做的不僅是測試 LVM,還需要將以下幾行添加到啟動 rc 腳本中:    /sbin/vgscan  /sbin/vgchange -a y    這些行將浏覽所有可用的卷組並激活它們。然後,將以下這行添加到關機 rc 腳本中,並確保它在卸裝了所有文件系統後執行:    /sbin/vgchange -a n    如果只是測試 LVM,可以跳過這些步驟。只是要記住,在每次重新引導後,在邏輯卷可以使用前,需要以 root 輸入 "vgscan" 和 "vgchange -a y"。    以上就是這篇文章的內容。在下一篇文章中,我將介紹如何創建您自己的邏輯卷,以及如何發揮 LVM 的威力。到時候再見!    參考資料    從 Sistina Software 下載 LVM tar 文件。   請務必仔細查看 Linux LVM FAQ。   等不及的讀者可以查看 Heinz Mauelshagen 的 LVM HOWTO,它介紹了如何設置物理卷、卷組和邏輯卷。這是我將在下一篇文章中涉及的內容。   另外還有一個有意思的 HOWTO,告訴您 如何在邏輯卷上設置根文件系統。   Andreas Dilger 參與了 Linux LVM 項目,他有一個看上去不錯的 聯機 ext2 文件系統大小調整器。   ReiserFS 是一種非常好的文件系統(特別在與 LVM 結合使用時)。如果使用的是 ReiserFS,需要獲取 reiserfs-utils tar 文件,它包含了一個稱為 "reiserfs_resize" 的程序 -- 允許對 ReiserFS 文件系統聯機調整大小。   有關設置 Linux Software RAID 卷的詳細信息,請參閱 Daniel 在 developerWorks 上有關 Software RAID 系列的第 1 部分和第 2 部分。   如果想進行回顧,請參閱 developerWorks 上的 Linux 內核編譯教程。   




 



Copyright © Linux教程網 All Rights Reserved