歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 通用線程 -- 新 Linux 2.4 內核中的軟件 RAID,第一部分

通用線程 -- 新 Linux 2.4 內核中的軟件 RAID,第一部分

日期:2017/2/27 14:25:13   编辑:更多Linux
  作者:Daniel Robbins    安裝與簡介    新 Linux 2.4 內核出現了!應該立即找一台空閒 PC,裝上 Linux,看看它能做些什麼!在 Daniel Robbins 關於 Linux 2.4 軟件 RAID 的兩篇文章中,他引入了一種通過將數據分布在多個磁盤上來增強磁盤性能和可靠性的新技術。第一部分討論軟件 RAID 的安裝(內核及工具的安裝),並說明如何創建線性卷和 RAID-0 卷。        這個新內核包含許多極好的新功能和增強功能。其中之一就是包含了流行的軟件 RAID 的實現。軟件 RAID 使您不必購買昂貴的硬件 RAID 控制器和附件就能極大地增強 Linux 磁盤的 IO 性能和可靠性。由於 Linux RAID 是用軟件實現的,所以它靈活、速度快 ... 而且有趣!    RAID 奇跡  軟件 RAID 的概念很簡單 -- 使您可以將兩個或多個塊設備(通常是磁盤分區)組合為單個 RAID 設備。我們假定您有三個空分區:hda3、hdb3 和 hdc3。使用軟件 RAID,您就能將這些分區組合起來,並將它們作為單個 RAID 設備 /dev/md0 來處理。接下來就可以格化 md0,為其創建文件系統,並像任何其他分區一樣使用它。還有許多不同的配置 RAID 卷的方法 -- 一些用於最大化性能,一些用於最大化可用性,而另一些二者兼具。    有兩種 RAID 形式:線性模式和 RAID-0 模式。從技術上講,二者都不是 RAID,因為 RAID 代表“廉價磁盤冗余陣列”,而 RAID-0 和線性模式都不提供任何類型的數據冗余。然而,兩種模式 -- 尤其是 RAID-0 模式 -- 都非常有用。我首先概述這兩種 "RAID" 形式,隨後將逐步指導您在您的系統上安裝軟件 RAID。    線性模式簡介  線性模式是將兩個或多個塊設備組合為一個 "RAID" 卷的最簡便方法之一 -- 只是將設備連接起來。如果您有三個分區,hda3、hdb3 和 hdc3,每個分區的容量大約 2G,它們將構成一個 6G 的合成線性卷。線性卷的前三分之一位於 hda3 上,後三分之一位於 hdc3 上,中間三分之一位於 hdb3 上。    要配置線性卷,您至少要有兩個要連接的分區。它們可以大小不同,甚至可以同時屬於一個物理磁盤上,而不會對性能產生負面影響。    線性應用  線性模式是將同一磁盤上的兩個或多個分區組合為單個卷的最好方法。盡管用其他 RAID 技術這麼做可能導致巨大的性能損失,但線性模式不存在這個問題,因為它不以並行方式(像其它 RAID 模式那樣)對各組成分區進行寫操作。但也正是由於這一原因,線性模式與 RAID-0、RAID-4、RAID-5 相比有性能不足的傾向,在某種程度上也不如 RAID-1。    一般說來,線性模式並不會在非傳統 RAID 分區的基礎上提供任何性能改善。事實上,如果您的線性卷分布於多個磁盤上,它就很可能由於偶然的硬盤故障而變得不可用。線性卷的故障概率等於線性卷的組成物理磁盤和控制器的故障概率之和。如果一個物理磁盤報廢,線性卷通常不可恢復。線性模式與使用單一磁盤相比不會產生額外的冗余。    但是線性模式是避免對單個磁盤進行重新分區的極好方法。例如,假定您的第二個 IDE 驅動器有兩個未用的分區(hdb1 和 hdb3)。並假定由於關鍵數據在 hdb2 上,您無法對驅動器重新分區。您仍可以運用線性模式將 hdb1 和 hdb3 組合為具有內聚性的單一線性卷。    當您只需要一個單獨的大分區(並且確實沒必要提高性能)時,線性模式也是將不同磁盤上大小相異的分區組合起來的一種好方法。但對於除此以外的任何其它工作,您可以使用比 RAID 更好的技術。    RAID-0 模式簡介  RAID-0 也是一種不帶任何 "R"(冗余)的 "RAID" 模式。盡管如此,RAID-0 還是極其有用的。這主要是因為它是各種 RAID 模式中性能潛力最大的一種模式。    要安裝 RAID-0 卷,您需要有兩個或多個大小相同(或是幾乎相同)的分區。RAID-0 代碼將在所有的組成分區之間均分讀寫。通過在各組成設備之間並行讀寫,RAID-0 成倍提高了 IO 性能。如果不考慮控制器和總線帶寬的復雜性,則由位於兩個相同磁盤上的兩個分區構成的 RAID-0 卷能提供幾乎兩倍於傳統分區的性能。如果將您的 RAID-0 卷分布到三個磁盤,則性能也幾乎是原來的三倍。這就是 IDE 磁盤的 RAID-0 陣列優於市面上最快的 SCSI 或 FC-AL 驅動器的原因。為了真正增強性能,您可以在 RAID-0 陣列中安裝一組 SCSI 或 FC-AL 驅動器。這就是 RAID-0 的魅力。    要創建 RAID-0 卷,您需要彼此位於不同磁盤上的兩個或多個分區。卷的容量將等於各組成分區的容量之和。就像線性模式一樣,您完全可以用 RAID-0 將來自各種驅動器(諸如 IDE 和 SCSI 驅動器)的塊設備組合為單個卷。    如果您正在用 IDE 磁盤創建 RAID-0 卷,您應該盡量使用符合 UltraDMA 的磁盤及控制器,以獲得最大的可靠性。同時,為了避免降低性能,每個 IDE 通道上只應連接一個驅動器 -- 從屬設備(尤其是當它也是 RAID-0 陣列的一部分時)對速度的負面影響幾乎會抵消 RAID-0 的全部性能優勢。您可能還需要外加一個 IDE 控制器,以便提供您所需的額外 IDE 通道。    如果您准備用 SCSI 設備創建一個 RAID-0 卷,注意不要讓所有驅動器的總吞吐量超過 SCSI(和 PCI)總線的最大吞吐量。在這種情況下,SCSI 總線將成為限制性能的因素。舉個例子,如果您在速度為 40 兆字節/秒的 68 針 Ultra Wide 總線上安裝四個最大吞吐量為 15 兆字節/秒的驅動器,有時就會出現驅動器使總線飽和的情況,性能也將升高到接近 40兆字節/秒的最大值。對於您的應用程序來說這可能相當不錯(畢竟,40兆字節/秒的 IO 並不是太差!),但其峰值 IO 性能可能僅與使用三個驅動器的 RAID-0 卷的峰值 IO 性能相同。    RAID-0 應用  從可靠性的立場來看,RAID-0 模式與線性模式具有同樣的特征 -- 向陣列中添加的驅動器越多,卷的故障概率就越高。此外,與線性模式一樣,單個驅動器的報廢將會擊垮整個 RAID-0 卷,而且無法恢復。要計算您的 RAID-0 卷的故障概率,只需將所有組成驅動器的故障概率相加即可。    RAID-0 對於需要獲得最大 IO 性能的應用程序來說很理想,因為它是目前性能最好的 RAID 模式。但請記住,僅當您能承受更多的卷故障風險時才應使用這一模式。    如果您正在設置 compute farm 或 web 集群,RAID-0 是一種提高磁盤 IO 性能的極佳方法。由於在這種情況下您將有一定的現成冗余(大量備用機器),所以您的資源在以下這種罕見情況下仍可用:必須關閉其硬盤驅動器出現故障的機器來更換這個驅動器並重新啟動。    設置 Linux 2.4 軟件 RAID  使 Linux 2.4 支持軟件 RAID 涉及兩個步驟。首先,應在內核一級啟用 RAID 支持。這通常要重新編譯安裝一個新內核,除非您已經在使用一個內置 RAID 支持的 Linux 2.4 內核。    然後,需編譯並安裝 raidtools 軟件包。raidtools 是使您可以初始化、啟動、停止及控制 RAID 卷的用戶級工具。一旦完成了這兩步,您就可以創建自己的 RAID 卷,在這些卷上創建文件系統,最後就可以掛載這些卷了。    內核問題  我使用的是 2.4.0-test10 內核。我建議您使用您能得到的最新 2.4 內核,至少應是 2.4.0-test10 內核 (但不是 2.4.0-test11,因為它有嚴重的系統文件損壞問題)。您可在 kernel.org 上找一個近期的內核,還可以在 developerWorks 上找到說明如何重新編譯並安裝一個新內核的教程(請參閱本文後面的參考資源部分)。    配置內核  我建議您對內核進行配置,以便在內核一級添加軟件 RAID 支持(而不是作為模塊支持)。當您輸入 "make menUConfig" 或 "make xconfig" 後,您會發現軟件 RAID 設置位於 "Multi-device support (RAID and LVM)" 部分。我也建議您啟用與 RAID 相關的每一項支持,包括 "Boot support" 和 "Auto Detect support"。這將允許內核在引導時自動啟動 RAID 卷,如果您願意,您還可以創建一個 RAID 根文件系統。下面是 "make menuconfig" 的快照。最後兩個選項(LVM 支持)不是必需的,盡管我也將它們編入了內核:    配置內核以支持 RAID     點擊查看大圖  在適當配置內核之後,請安裝它並重新引導。現在我們來搜索最新版的 raidtools。    安裝 raidtools  在安裝 raidtools 前,我們需要搜索它的最新版本。您通常可在 kernel.org 找到 raidtools 程序。查找最新的 "raidtools-0.90" 檔案文件(不是 raid0145!)。當前最新的是 "raidtools-19990824-0.90.tar.gz"。    如果您喜歡冒險(如果您正在使用 2.4.0-test 內核,則您就是在冒險),您可能想訪問 RedHat 網站(請參閱參考資源)並獲取您可找到的最新版本的 raidtools。當前最新的是 "raidtools-dangerous-0.90-20000116.tar.gz"。    要安裝 raidtools,請將檔案文件解包。然後輸入以下命令:      # cd raidtools-0.90  # ./configure  # make  # make install             哈哈 -- raidtools-0.90 已安裝好了。現在您就可以隨時開時使用軟件 RAID 了。為確保內核的 RAID 支持是有效的,請確保存在 /proc/mdstat 文件。該文件包含軟件 RAID 的當前配置信息:      # cat /proc/mdstat             分區設置  好了,現在該准備磁盤分區了,您至少需要兩個磁盤分區。如果您使用的是 RAID-0,則應確保這些磁盤分區位於不同的磁盤上,並且其大小近似相同。毫無疑問,這些磁盤上的數據將被破壞。    另一點需要特別注意的是 -- 當您創建分區時,將分區類型指定為 "FD"。這將使 Linux 內核能將它們識別




Copyright © Linux教程網 All Rights Reserved