RAID 1無工作磁盤和備份磁盤之分,多個磁盤可同時動作而有重疊(overlaping)讀取的功能,甚至不同的鏡像磁盤可同時作寫入的動作,這是一種最佳化的方式,稱為負載平衡(load-balance)。例如有多個用戶在同一時間要讀取數據,系統能同時驅動互相鏡像的磁盤,同時讀取數據,以減輕系統的負載,增加I/O的性能。
RAID 1的磁盤是以磁盤延伸的方式形成陣列,而數據是以數據分段的方式作儲存,因而在讀取時,它幾乎和RAID 0有同樣的性能。從RAID的結構就可以很清楚的看出RAID 1和一般磁盤鏡像的不同。
下圖為RAID 1,每一筆數據都儲存兩份:
從圖可以看出:
R:N(可同時讀取所有磁盤)
W:N/2(同時寫入磁盤數)
S:N/2(利用率)
讀取數據時可用到所有的磁盤,充分發揮數據分段的優點;寫入數據時,因為有備份,所以要寫入兩個磁盤,其效率是N/2,磁盤空間的使用率也只有全部磁盤的一半。
很多人以為RAID 1要加一個額外的磁盤,形成浪費而不看好RAID 1,事實上磁盤越來越便宜,并不見得造成負擔,況且RAID 1有最好的容錯(fault tolerence)能力,其效率也是除RAID 0之外最好的。
在磁盤陣列的技術上,從RAID 1到RAID 5,不停機的意思表示在工作時如發生磁盤故障, 系統能持續工作而不停頓,仍然可作磁盤的存取,正常的讀寫數據;而容錯則表示即使磁盤故障,數據仍能保持完整,可讓系統存取到正確的數據,而SCSI的磁盤陣列更可在工作中抽換磁盤,并可自動重建故障磁盤的數據。磁盤陣列之所以能做到容錯及不停機, 是因為它有冗余的磁盤空間可資利用,這也就是Redundant的意義。
RAID 2
RAID 2是把數據分散為位(bit)或塊(block),加入海明碼Hamming Code,在磁盤陣列中作間隔寫入nterleaving)到每個磁盤中,而且地址(address)都一樣,也就是在各個磁盤中,其數據都在相同的磁道(cylinder or track)及扇區中。RAID 2的設計是使用共軸同步(spindle synchronize)的技術,存取數據時,整個磁盤陣列一起動作,在各作磁盤的相同位置作平行存取,所以有最好的存取時間(accesstime),其總線(bus)是特別的設計,以大帶寬(band wide)并行傳輸所存取的數據,所以有最好的傳輸時間(transfer time)。在大型檔案的存取應用,RAID
2有最好的性能,但如果檔案太小,會將其性能拉下來,因為磁盤的存取是以扇區為單位,而RAID 2的存取是所有磁盤平行動作,而且是作單位元的存取,故小于一個扇區的數據量會使其性能大打折扣。RAID 2是設計給需要連續且大量數據的電腦使用的,如大型電腦(mainframe to supercomputer)、作影像處理或CAD/CAM的工作站(workstation)等,并不適用于一般的多用戶環境、網絡服務器 (network server),小型機或PC。
RAID 2的安全采用內存陣列(memory array)的技術,使用多個額外的磁盤作單位錯誤校正(single-bit
correction)及雙位錯誤檢測(double-bit detection);至于需要多少個額外的磁盤,則視其所采用的方法及結構而定,例如八個數據磁盤的陣列可能需要三個額外的磁盤,有三十二個數據磁盤的高檔陣列可能需要七個額外的磁盤。
RAID 3
RAID 3的數據儲存及存取方式都和RAID 2一樣,但在安全方面以奇偶校驗(parity check)取代海明碼做錯誤校正及檢測,所以只需要一個額外的校檢磁盤(parity disk)。奇偶校驗值的計算是以各個磁盤的相對應位作XOR的邏輯運算,然后將結果寫入奇偶校驗磁盤,任何數據的修改都要做奇偶校驗計算,
如某一磁盤故障,換上新的磁盤后,整個磁盤陣列(包括奇偶校驗磁盤)需重新計算一次,
將故障磁盤的數據恢復并寫入新磁盤中;如奇偶校驗磁盤故障,則重新計算奇偶校驗值, 以達容錯的要求.
較之RAID 1及RAID 2,RAID 3有85%的磁盤空間利用率,其性能比RAID 2稍差,因為要做奇偶校驗計算;共軸同步的平行存取在讀檔案時有很好的性能,但在寫入時較慢,需要重新計算及修改奇偶校驗磁盤的內容。RAID 3和RAID 2有同樣的應用方式,適用大檔案及大量數據輸出入的應用,并不適用于PC及網絡服務器。
RAID 4
RAID 4也使用一個校驗磁盤,但和RAID 3不一樣 RAID 4是以扇區作數據分段,各磁盤相同位置的分段形成一個校驗磁盤分段(parity block),放在校驗磁盤。這種方式可在不同的磁盤平行執行不同的讀取命今,大幅提高磁盤陣列的讀取性能;但寫入數據時,因受限于校驗磁盤,同一時間只能作一次,啟動所有磁盤讀取數據形成同一校驗分段的所有數據分段,與要寫入的數據做好校驗計算再寫入。即使如此,小型檔案的寫入仍然比RAID 3要快,因其校驗計算較簡單而非作位(bit level)的計算;但校驗磁盤形成RAID 4的瓶頸,降低了性能,因有RAID 5而使得RAID 4較少使用。
RAID 5
RAID5避免了RAID 4的瓶頸,方法是不用校驗磁盤而將校驗數據以循環的方式放在每一個磁盤中, 磁盤陣列的第一個磁盤分段是校驗值,第二個磁盤至后一個磁盤再折回第一個磁盤的分段是數據,然后第二個磁盤的分段是校驗值,從第三個磁盤再折回第二個磁盤的分段是數據,以此類推,直到放完為止。圖中的第一個parity block是由A0,A1...,B1,B2計算出來,第二個parity block是由B3,B4,...,C4,D0計算出來,也就是校驗值是由各磁盤同一位置的分段的數據所計算出來。這種方式能大幅增加小檔案的存取性能,不但可同時讀取,甚至有可能同時執行多個寫入的動作,如可寫入數據到磁盤1而其parity block在磁盤2,同時寫入數據到磁盤4而其parity block在磁盤1,這對聯機交易處理 (OLTP,On-Line Transaction Processing)如銀行系統、金融、股市等或大型數據庫的處理提供了最佳的解決方案(solution),因為這些應用的每一筆數據量小,磁盤輸出入頻繁而且必須容錯。事實上RAID 5的性能并無如此理想,因為任何數據的修改,都要把同一parityblock的所有數據讀出來修改后,做完校驗計算再寫回去,也就是RMW cycle(Read-Modify-Write cycle,這個cycle沒有包括校驗計算);正因為牽一而動全身,所以:
R:N(可同時讀取所有磁盤)
W:1(可同時寫入磁盤數)
S:N-1(利用率)
新聞熱點
疑難解答