磁盤陣列

磁盤陣列

磁盤陣列中針對不同的應用使用的不同技術,稱爲RAID level, RAIDRedundant Array of Inexpensive Disks的縮寫,而每一level代表一種技術,目前業界公認的標準是RAID 0~RAID 5。這個level並不代表技術的高低,level 5並不高於level 3,level 1也不低過level 4,至於要選擇那一種RAID level的產品,純視用戶的操作環境(operating environment)及應用(application)而定,level的高低沒有必然的關係。RAID 0RAID 1適用於PCPC相關的系統如小型的網絡服務器(network server)及需要高磁盤容量與快速磁盤存取的工作站等,因爲比較便宜,但因一般人對磁盤陣列不瞭解,沒有看到磁盤陣列對他們價值,市場尚未打開;RAID 2RAID 3適用於大型電腦及影像、CAD/CAM等處理;RAID 5多用於OLTP,因有金融機構及大型數據處理中心的迫切需要,故使用較多而較有名氣,但也因此形成很多人對磁盤陣列的誤解,以爲磁盤陣列非要RAID 5不可;RAID 4較少使用,因爲兩者有其共同之處,RAID 4有其先天的限制。其他如RAID 6,RAID 7,乃至RAID 10,都是廠商各做各的,並無一致的標準,在此不作說明。介紹各個RAID level之前,先看看形成磁盤陣列的兩個基本技術:

譯爲磁盤延伸,能確切的表示disk spanning這種技術的含義。如下圖所示,DFTraid 磁盤陣列控制器,聯接了四個磁盤:

這四個磁盤形成一個陣列(array),而磁盤陣列的控制器(RAID controller)是將此四個磁盤視爲單一的磁盤,DOS環境下的C:盤。這是disk spanning的意義,因爲把小容量的磁盤延伸爲大容量的單一磁盤,用戶不必規劃數據在各磁盤的分佈,而且提高了磁盤空間的使用率。DFTraidSCSI磁盤陣列更可連接幾十個磁盤,形成數十GB到數百GB的陣列,使磁盤容量幾乎可作無限的延伸;而各個磁盤一起作取存的動作,比單一磁盤更爲快捷。很明顯的,有此陣列的形成而產生RAID的各種技術。我們也可從上圖看出inexpensive(便宜)的意義,因爲四個250MBbytes的磁盤比一個1GBytes的磁盤要便宜,尤其以前大磁盤的價格非常昴貴,但在磁盤越來越便宜的今天,inexpensive已非磁盤陣列的重點,雖然對於需要大磁盤容量的系統,仍是考慮的要點。

磁盤  因爲磁盤陣列是將同一陣列的多個磁盤視爲單一的虛擬磁盤(virtual disk),所以其數據是以分段(block or segment)的方式順序存放在磁盤陣列中,如下圖:

磁盤0

 

磁盤1

 

磁盤2

 

磁盤3

A0-A1

B0-B1

C0-C1

D0-D1

 

A2-A3

B2-B3

C2-C3

D2-D3

 

A4-A5

B4-B5

C4-C5

D4-C5

 

A6-A7

B6-B7

C6-C7

D6-D7

數據按需要分段,從第一個磁盤開始放,放到最後一個磁盤再回到第一個磁盤放起,直到數據分佈完畢。至於分段的大小視系統而定,有的系統或以1KB最有效率,或以4KB,或以6KB,甚至是4MB8MB,但除非數據小於一個扇區(sector,521bytes),否則其分段應是512byte的倍數。因爲磁盤的讀寫是以一個扇區爲單位,若數據小於512bytes,系統讀取該扇區後,還要做組合或分組(視讀或寫而定)的動作,浪費時間。從上圖我們可以看出,數據以分段於在不同的磁盤,整個陣列的各個磁盤可同時作讀寫,故數據分段使數據的存取有最好的效率,理論上本來讀一個包含四個分段的數據所需要的時間約=(磁盤的access time +數據的transfer time)X4,現在只要一次就可以完成。

若以N表示磁盤的數目,R表示讀取,W表示寫入,S表示可使用空間,則數據分段的性能爲:
R:N(
可同時讀取所有磁盤)
W:N(
可同時寫入所有磁盤)
S:N(
可利用所有的磁盤,並有最佳的使用率)

Disk striping也稱爲RAID 0,很多人以爲RAID 0沒有甚麼,其實這是非常錯誤的觀念,因爲RAID 0使磁盤的輸出入有最高的效率。而磁盤陣列有更好效率的原因除數據分段外,它可以同時執行多個輸出入的要求,因爲陣列中的每一個磁盤都能獨立動作,分段放在不同的磁盤,不同的磁盤可同時作讀寫,而且能在快取內存及磁盤作並行存取(parallel access)的動作,但只有硬件的磁盤陣列纔有此性能表現。

從上面兩點我們可以看出,disk spanning定義了RAID的基本形式,提供了一個便宜、靈活、高性能的系統結構,disk striping解決了數據的存取效率和磁盤的利用率問題,RAID 1RAID 5是在此基礎上提供磁盤安全的方案。

RAID 1

RAID 1是使用磁盤鏡像(disk mirroring)的技術。磁盤鏡像應用在RAID 1之前就在很多系統中使用,它的方式是在工作磁盤(working disk)之外再加一額外的備份磁盤(backup disk),兩個磁盤所儲存的數據完全一樣,數據寫入工作磁盤的同時亦寫入備份磁盤。磁盤鏡像不見得就是RAID 1,Novell NetWare亦有提供磁盤鏡像的功能,但並不表示NetWare有了RAID 1的功能。一般磁盤鏡像和RAID 1有二點最大的不同:

RAID 1無工作磁盤和備份磁盤之分,多個磁盤可同時動作而有重疊(overlapping)讀取的功能,甚至不同的鏡像磁盤可同時作寫入的動作,這是一種最佳化的方式,稱爲負載平衡(load-balance)。例如有多個用戶在同一時間要讀取數據,系統能同時驅動互相鏡像的磁盤,同時讀取數據,以減輕系統的負載,增加I/O的性能。

RAID 1的磁盤是以磁盤延伸的方式形成陣列,而數據是以數據分段的方式作儲存,因而在讀取時,它幾乎和RAID 0有同樣的性能。從RAID的結構就可以很清楚的看出RAID 1和一般磁盤鏡像的不同。

下圖爲RAID 1,每一筆數據都儲存兩份

磁盤0

 

磁盤1

 

磁盤0

 

磁盤1

A0

A2

A4

B1

 

A1

A3

B0

B2

 

A0

A2

A4

B1

 

A1

A3

B0

B2

從上圖可以看出:
R:N(
可同時讀取所有磁盤)
W:N/2(
同時寫入磁盤數)
S:N/2(
利用率)

讀取數據時可用到所有的磁盤,充分發揮數據分段的優點;寫入數據時,因爲有備份,所以要寫入兩個磁盤,其效率是N/2,磁盤空間的使用率也只有全部磁盤的一半。

很多人以爲RAID 1要加一個額外的磁盤,形成浪費而不看好RAID 1,事實上磁盤越來越便宜,並不見得造成負擔,況且RAID 1有最好的容錯(fault tolerance)能力,其效率也是除RAID 0之外最好的。我們可視應用的不同,在同一磁盤陣列中使用不同的RAID level,如華藝科技公司的DFTraid系列都可同一磁盤陣列中定義八個邏輯磁盤(logic disk),分別使用不同的RAID level,分爲C:,D:E:三個邏輯磁盤(LUN0,LUN1,LUN2).

RAID 1完全做到了容錯包括不停機(non-stop),當某一磁盤發生故障,可將此磁盤拆下來而不影向其他磁盤的操作;待新的磁盤換上去之後,系統即時做鏡像,將數據重新覆上去,RAID 1在容錯及存取的性能上是所有RAID level之冠。

在磁盤陣列的技術上,RAID 1RAID 5,不停機的意思表示在工作時如發生磁盤故障,系統能持續工作而不停頓,仍然可作磁盤的存取,正常的讀寫數據;而容錯則表示即使磁盤故障,數據仍能保持完整,可讓系統存取到正確的數據,SCSI的磁盤陣列更可在工作中抽換磁盤,並可自動重建故障磁盤的數據。磁盤陣列之所以能做到容錯及不停機,是因爲它有冗餘的磁盤空間可資利用,這也就是Redundant的意義。

RAID 2

RAID 2是把數據分散爲位元(bit)或塊(block),加入海明碼Hamming Code,在磁盤陣列中作間隔寫入(interleaving)到每個磁盤中,而且地址(address)都一樣,也就是在各個磁盤中,其數據都在相同的磁道(cylinder or track)及扇區中。RAID 2的設計是使用共軸同步(spindle synchronize)的技術,存取數據時,整個磁盤陣列一起動作,在各作磁盤的相同位置作平行存取,所以有最好的存取時間(access time),其總線(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);至於需要多少個額外的磁盤,則視其所採用的方法及結構而定,例如八個數據磁盤的陣列可能需要三個額外的磁盤,有三十二個數據磁盤的高檔陣列可能需要七個額外的磁盤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章