技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁(yè) > 教程 > 服務(wù)器類 >

如何在Linux上設(shè)置RAID 10確保高性能

來(lái)源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2018-05-30 00:25┆點(diǎn)擊:

  RAID 10(又叫RAID 1+0或鏡像條帶)陣列結(jié)合了RAID 0和RAID 1兩者的功能特性,從而提供了高性能、容錯(cuò)的磁盤(pán)輸入/輸出操作。在RAID 0中,讀取/寫(xiě)入操作跨多個(gè)驅(qū)動(dòng)器并路執(zhí)行;在RAID 1中,一模一樣的數(shù)據(jù)寫(xiě)入到兩個(gè)或多個(gè)驅(qū)動(dòng)器上。

  在本教程中,我將介紹如何使用5只相同的8 GiB磁盤(pán),構(gòu)建一個(gè)軟件RAID 10陣列。雖然用來(lái)構(gòu)建RAID 10陣列的最大磁盤(pán)數(shù)量是4只(比如一組條帶化的兩個(gè)鏡像),但我們將增添一只額外的備用驅(qū)動(dòng)器,以防其中一個(gè)主驅(qū)動(dòng)器出現(xiàn)故障。我們還將介紹一些工具,你以后可以用來(lái)分析RAID陣列的性能。

  請(qǐng)注意:全面深入地介紹RAID 10及其他分區(qū)方案(以及不同尺寸的驅(qū)動(dòng)器和文件系統(tǒng))的所有優(yōu)缺點(diǎn)不在本文的探討范圍之內(nèi)。

  RAID 10陣列是如何工作的?

  如果你需要實(shí)施一種支持輸入/輸出密集型操作(比如數(shù)據(jù)庫(kù)、電子郵件和網(wǎng)站服務(wù)器)的存儲(chǔ)解決方案,RAID 10是正確的選擇。下面會(huì)介紹其中原委。不妨先看一看下圖。

  鏡像1和鏡像2的條帶

如何在Linux上設(shè)置RAID 10確保高性能 三聯(lián)

  設(shè)想一下某個(gè)文件由上圖中的數(shù)據(jù)塊A、B、C、D和E組成。每個(gè)RAID 1鏡像集(比如鏡像1或鏡像2)將數(shù)據(jù)塊復(fù)制到兩個(gè)設(shè)備中的每一個(gè)。由于這種配置,寫(xiě)入性能有所下降,因?yàn)槊總€(gè)數(shù)據(jù)塊都要寫(xiě)入兩次,每只磁盤(pán)各寫(xiě)入一次,而相比從單只讀盤(pán)讀取數(shù)據(jù),讀取性能依然沒(méi)有變化。優(yōu)點(diǎn)在于,這種方案提供了冗余性,因?yàn)槌敲總€(gè)鏡像中的多只磁盤(pán)出現(xiàn)故障,否則可以維持正常的磁盤(pán)輸入/輸出操作。

  RAID 0條帶的工作原理是,把數(shù)據(jù)劃分成多個(gè)數(shù)據(jù)塊,并將數(shù)據(jù)塊A寫(xiě)入到鏡像1,同時(shí)將數(shù)據(jù)塊B寫(xiě)入到鏡像2,依次類推,因而提高了總體的讀取和寫(xiě)入性能。另一方面,沒(méi)有一個(gè)鏡像含有向主集提交的任何一部分?jǐn)?shù)據(jù)的完整信息。這意味著,如果其中一個(gè)鏡像出現(xiàn)故障,整個(gè)RAID 0組件(以及因而RAID 10集)就無(wú)法操作,數(shù)據(jù)出現(xiàn)無(wú)法恢復(fù)的丟失。

  構(gòu)建RAID 10陣列

  RAID 10陣列有兩種可能的構(gòu)建方案:復(fù)雜方案(只要一步就能構(gòu)建),或嵌套方案(構(gòu)建方法是,先構(gòu)建兩個(gè)或多個(gè)RAID 1陣列,然后把它們用作RAID 0中的組件設(shè)備)。在本教程中,我們將介紹構(gòu)建復(fù)雜的RAID 10陣列,原因在于這種陣列讓我們可以使用數(shù)量為奇數(shù)或偶數(shù)的磁盤(pán),并且可以作為單一RAID設(shè)備來(lái)加以管理,而不是介紹嵌套方案(只允許數(shù)量為偶數(shù)的驅(qū)動(dòng)器,必須作為嵌套設(shè)備來(lái)加以管理, RAID 1和RAID 0分開(kāi)來(lái)處理)。

  假設(shè)你已安裝了mdadm,該后臺(tái)程序在你的系統(tǒng)上運(yùn)行。想了解詳細(xì)內(nèi)容,請(qǐng)參閱這篇教程:。另外假設(shè)已在每只磁盤(pán)上創(chuàng)建了主分區(qū)sd[bcdef]1。因而,ls -l /dev | grep sd[bcdef]的輸出應(yīng)該是這樣:

如何在Linux上設(shè)置RAID 10確保高性能

  接下來(lái)使用下面這個(gè)命令,構(gòu)建一個(gè)RAID 10陣列:

  # mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd[bcde]1 --spare-devices=1 /dev/sdf1

  該陣列構(gòu)建完畢后(構(gòu)建過(guò)程應(yīng)該用不了幾分鐘),# mdadm --detail /dev/md0的輸出應(yīng)該是這樣:

如何在Linux上設(shè)置RAID 10確保高性能

  在我們繼續(xù)下一步之前有幾點(diǎn)需要予以說(shuō)明。

  1. Used Dev Space表明了陣列所使用的每個(gè)成員設(shè)備的容量。

  2. Array Size是指陣列的總大小。就RAID 10陣列而言,這相當(dāng)于(N*C)/M,其中N是指活動(dòng)設(shè)備的數(shù)量,C是指活動(dòng)設(shè)備的容量,M則指每個(gè)鏡像中的設(shè)備數(shù)量。所以在這里,(N*C)/M相當(dāng)于(4*8GiB)/2 = 16GiB。

  3. Layout指數(shù)據(jù)布局的具體細(xì)節(jié)??赡艿牟季种等缦滤尽?/p>

  •n(默認(rèn)選項(xiàng)):意味著 near拷貝。一個(gè)數(shù)據(jù)塊的多個(gè)拷貝在不同的設(shè)備中處于相似的偏移(offset)。這種布局提供的讀取和寫(xiě)入性能與RAID 0陣列的性能相似。

如何在Linux上設(shè)置RAID 10確保高性能

  •o表明offset拷貝。不是數(shù)據(jù)段在條帶里面復(fù)制,而是整個(gè)條帶被復(fù)制,但由一個(gè)設(shè)備輪轉(zhuǎn),那樣重復(fù)數(shù)據(jù)塊分布在不同的設(shè)備上。因而,隨后的數(shù)據(jù)塊拷貝在下一個(gè)驅(qū)動(dòng)器中,下移一個(gè)數(shù)據(jù)段。想讓你的RAID 10陣列使用這種布局,將--layout=o2添加到用來(lái)構(gòu)建陣列的命令。

如何在Linux上設(shè)置RAID 10確保高性能