天才教育網(wǎng)合作機構(gòu) > 英語培訓(xùn)機構(gòu) > IB培訓(xùn)機構(gòu) >

東莞維修培訓(xùn)網(wǎng)

歡迎您!
朋友圈

400-850-8622

全國統(tǒng)一學(xué)習(xí)專線 9:00-21:00

位置:英語培訓(xùn)資訊 > IB培訓(xùn)資訊 > 磁盤陣列(Disk Array)原理

磁盤陣列(Disk Array)原理

日期:2006-10-19 00:00:00     瀏覽:195    來源:東莞維修培訓(xùn)網(wǎng)

磁盤陣列(Disk Array)原理
1.為什么需要磁盤陣列?

如何增加磁盤的存取(access)速度,如何防止數(shù)據(jù)因磁盤的故障而失落及如何有效的利用磁盤空間,一直是電腦專業(yè)人員和用戶的困擾;而大容量磁盤的價格非常昂貴,對用戶形成很大的負(fù)擔(dān)。磁盤陣列技術(shù)的產(chǎn)生一舉解決了這些問題。

過去十幾年來,CPU的處理速度增加了五十倍有多,內(nèi)存(memory)的存取速度亦大幅增加,而數(shù)據(jù)儲存裝置--主要是磁盤(hard disk)--的存取速度只增加了三、四倍,形成電腦系統(tǒng)的瓶頸,拉低了電腦系統(tǒng)的整體性能(through put),若不能有效的提升磁盤的存取速度,CPU、內(nèi)存及磁盤間的不平衡將使CPU及內(nèi)存的改進(jìn)形成浪費。

目前改進(jìn)磁盤存取速度的的方式主要有兩種。一是磁盤快取控制(disk cache controller),它將從磁盤讀取的數(shù)據(jù)存在快取內(nèi)存(cache memory)中以減少磁盤存取的次數(shù),數(shù)據(jù)的讀寫都在快取內(nèi)存中進(jìn)行,大幅增加存取的速度,如要讀取的數(shù)據(jù)不在快取內(nèi)存中,或要寫數(shù)據(jù)到磁盤時,才做磁盤的存取動作。這種方式在單工環(huán)境(single- tasking envioronment)如DOS之下,對大量數(shù)據(jù)的存取有很好的性能(量小且頻繁的存取則不然),但在多工(multi-tasking)環(huán)境之下(因為要不停的作數(shù)據(jù)交換(swapping) 的動作)或數(shù)據(jù)庫(database)的存取(因為每一記錄都很小)就不能顯示其性能。這種方式?jīng)]有任何安全保障。

其二是使用磁盤陣列的技術(shù)。磁盤陣列是把多個磁盤組成一個陣列,當(dāng)作單一磁盤使用,它將數(shù)據(jù)以分段(striping)的方式儲存在不同的磁盤中,存取數(shù)據(jù)時,陣列中的相關(guān)磁盤一起動作,大幅減低數(shù)據(jù)的存取時間,同時有更佳的空間利用率。磁盤陣列所利用的不同的技術(shù),稱為RAID level,不同的level針對不同的系統(tǒng)及應(yīng)用,以解決數(shù)據(jù)安全
的問題。

一般高性能的磁盤陣列都是以硬件的形式來達(dá)成,進(jìn)一步的把磁盤快取控制及磁盤陣列結(jié)合在一個控制器(RAID controler或控制卡上,針對不同的用戶解決人們對磁盤輸出入系統(tǒng)的四大要求:
(1)增加存取速度,
(2)容錯(fault tolerance),即安全性
(3)有效的利用磁盤空間;
(4)盡量的平衡CPU,內(nèi)存及磁盤的性能差異,提高電腦的整體工作性能。

2.磁盤陣列原理

磁盤陣列中針對不同的應(yīng)用使用的不同技術(shù),稱為RAID level,RAID是Redundent Array of Inexpensive Disks的縮寫,而每一level代表一種技術(shù),目前業(yè)界公認(rèn)的標(biāo)準(zhǔn)是RAID 0~RAID 5。這個level并不代表技術(shù)的高低,level 5并不高于level 3,level 1也不低過level 4,至于要選擇那一種RAID level的產(chǎn)品,純視用戶的操作環(huán)境(operating environment)及應(yīng)用(application)而定,與level的高低沒有必然的關(guān)系。
RAID 0及RAID 1適用于PC及PC相關(guān)的系統(tǒng)如小型的網(wǎng)絡(luò)服務(wù)器(network server)及需要高磁盤容量與快速磁盤存取的工作站等,比較便宜;RAID 3及RAID 4適用于大型電腦及影像、CAD/CAM等處理;RAID 5多用于OLTP(在線事務(wù)處理),因有金融機構(gòu)及大型數(shù)據(jù)處理中心的迫切需要,故使用較多而較有名氣, RAID 2較少使用,其他如RAID 6,RAID 7,乃至RAID 10等,都是廠商各做各的,并無一致的標(biāo)準(zhǔn),在此不作說明。介紹各個RAID level之前, 先看看形成磁盤陣列的兩個基本技術(shù):

磁盤延伸(Disk Spanning):

譯為磁盤延伸,能確切的表示disk spanning這種技術(shù)的含義。如圖磁盤陣列控制器, 聯(lián)接了四個磁盤,這四個磁盤形成一個陣列(array),而磁盤陣列的控制器(RAID controller)是將此四個磁盤視為單一的磁盤,如DOS環(huán)境下的C:盤。這是disk spanning的意義,因為把小容量的磁盤延伸為大容量的單一磁盤,用戶不必規(guī)劃數(shù)據(jù)在各磁盤的分布,而且提高了磁盤空間的使用率。并使磁盤容量幾乎可作無限的延伸;而各個磁盤一起作取存的動作,比單一磁盤更為快捷。很明顯的,有此陣列的形成而產(chǎn)生RAID的各種技術(shù)

 磁盤或數(shù)據(jù)分段(Disk Striping or Data Striping):

因為磁盤陣列是將同一陣列的多個磁盤視為單一的虛擬磁盤(virtual disk),所以其數(shù)據(jù)是以分段(block or segment)的方式順序存放在磁盤陣列中,數(shù)據(jù)按需要分段,從*個磁盤開始放,放到最後一個磁盤再回到*個磁盤放起,直到數(shù)據(jù)分布完畢。至于分段的大小視系統(tǒng)而定,有的系統(tǒng)或以1KB最有效率,或以4KB,或以6KB,甚至是4MB或8MB的,但除非數(shù)據(jù)小于一個扇區(qū)(sector,即521bytes),否則其分段應(yīng)是512byte的倍數(shù)。因為磁盤的讀寫是以一個扇區(qū)為單位,若數(shù)據(jù)小于512bytes,系統(tǒng)讀取該扇區(qū)后,還要做組合或分組(視讀或?qū)懚?的動作,浪費時間。從上圖我們可以看出,數(shù)據(jù)以分段于在不同的磁盤,整個陣列的各個磁盤可同時作讀寫,故數(shù)據(jù)分段使數(shù)據(jù)的存取有*的效率,理論上本來讀一個包含四個分段的數(shù)據(jù)所需要的時間約=(磁盤的access time+數(shù)據(jù)的tranfer time)X4次,現(xiàn)在只要一次就可以完成。

若以N表示磁盤的數(shù)目,R表示讀取,W表示寫入,S表示可使用空間,則數(shù)據(jù)分段的性能為:
R:N(可同時讀取所有磁盤)
W:N(可同時寫入所有磁盤)
S:N(可利用所有的磁盤,并有*的使用率)

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

從上面兩點我們可以看出,disk spanning定義了RAID的基本形式,提供了一個便宜、靈活、高性能的系統(tǒng)結(jié)構(gòu),而disk striping解決了數(shù)據(jù)的存取效率和磁盤的利用率問題,RAID 1至RAID 5是在此基礎(chǔ)上提供磁盤安全的方案。

RAID 1

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

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

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

下圖為RAID 1,每一筆數(shù)據(jù)都儲存兩份:
從圖可以看出:
R:N(可同時讀取所有磁盤)
W:N/2(同時寫入磁盤數(shù))
S:N/2(利用率)

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

很多人以為RAID 1要加一個額外的磁盤,形成浪費而不看好RAID 1,事實上磁盤越來越便宜,并不見得造成負(fù)擔(dān),況且RAID 1有*的容錯(fault tolerence)能力,其效率也是除RAID 0之外*的。

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

RAID 2是把數(shù)據(jù)分散為位(bit)或塊(block),加入海明碼Hamming Code,在磁盤陣列中作間隔寫入(interleaving)到每個磁盤中,而且地址(address)都一樣,也就是在各個磁盤中,其數(shù)據(jù)都在相同的磁道(cylinder or track)及扇區(qū)中。RAID 2的設(shè)計是使用共軸同步(spindle synchronize)的技術(shù),存取數(shù)據(jù)時,整個磁盤陣列一起動作,在各作磁
盤的相同位置作平行存取,所以有*的存取時間(accesstime),其總線(bus)是特別的設(shè)計,以大帶寬(band wide)并行傳輸所存取的數(shù)據(jù),所以有*的傳輸時間(transfer time)。在大型檔案的存取應(yīng)用,RAID 2有*的性能,但如果檔案太小,會將其性能拉下來,因為磁盤的存取是以扇區(qū)為單位,而RAID 2的存取是所有磁盤平行動作,而且是作
單位元的存取,故小于一個扇區(qū)的數(shù)據(jù)量會使其性能大打折扣。RAID 2是設(shè)計給需要連續(xù)且大量數(shù)據(jù)的電腦使用的,如大型電腦(mainframe to supercomputer)、作影像處理或CAD/CAM的工作站(workstation)等,并不適用于一般的多用戶環(huán)境、網(wǎng)絡(luò)服務(wù)器 (network server),小型機或PC。

RAID 2的安全采用內(nèi)存陣列(memory array)的技術(shù),使用多個額外的磁盤作單位錯誤校正(single-bit correction)及雙位錯誤檢測(double-bit detection);至于需要多少個額外的磁盤,則視其所采用的方法及結(jié)構(gòu)而定,例如八個數(shù)據(jù)磁盤的陣列可能需要三個額外的磁盤,有三十二個數(shù)據(jù)磁盤的高檔陣列可能需要七個額外的磁盤。
RAID 3

RAID 3的數(shù)據(jù)儲存及存取方式都和RAID 2一樣,但在安全方面以奇偶校驗(parity check)取代海明碼做錯誤校正及檢測,所以只需要一個額外的校檢磁盤(parity disk)。奇偶校驗值的計算是以各個磁盤的相對應(yīng)位作XOR的邏輯運算,然后將結(jié)果寫入奇偶校驗磁盤,任何數(shù)據(jù)的修改都要做奇偶校驗計算,

如某一磁盤故障,換上新的磁盤后,整個磁盤陣列(包括奇偶校驗磁盤)需重新計算一次, 將故障磁盤的數(shù)據(jù)恢復(fù)并寫入新磁盤中;如奇偶校驗磁盤故障,則重新計算奇偶校驗值, 以達(dá)容錯的要求.

較之RAID 1及RAID 2,RAID 3有85%的磁盤空間利用率,其性能比RAID 2稍差,因為要做奇偶校驗計算;共軸同步的平行存取在讀檔案時有很好的性能,但在寫入時較慢,需要重新計算及修改奇偶校驗磁盤的內(nèi)容。RAID 3和RAID 2有同樣的應(yīng)用方式,適用大檔案及大量數(shù)據(jù)輸出入的應(yīng)用,并不適用于PC及網(wǎng)絡(luò)服務(wù)器。
RAID 4

RAID 4也使用一個校驗磁盤,但和RAID 3不一樣

RAID 4是以扇區(qū)作數(shù)據(jù)分段,各磁盤相同位置的分段形成一個校驗磁盤分段(parity block),放在校驗磁盤。這種方式可在不同的磁盤平行執(zhí)行不同的讀取命今,大幅提高磁盤陣列的讀取性能;但寫入數(shù)據(jù)時,因受限于校驗磁盤,同一時間只能作一次,啟動所有磁盤讀取數(shù)據(jù)形成同一校驗分段的所有數(shù)據(jù)分段,與要寫入的數(shù)據(jù)做好校驗計算再寫入。即使如此,小型檔案的寫入仍然比RAID 3要快,因其校驗計算較簡單而非作位(bit level)的計算;但校驗磁盤形成RAID 4的瓶頸,降低了性能,因有RAID 5而使得RAID 4較少使用。

RAID 5
RAID5避免了RAID 4的瓶頸,方法是不用校驗磁盤而將校驗數(shù)據(jù)以循環(huán)的方式放在每一個磁盤中,

磁盤陣列的*個磁盤分段是校驗值,第二個磁盤至后一個磁盤再折回*個磁盤的分段是數(shù)據(jù),然后第二個磁盤的分段是校驗值,從第三個磁盤再折回第二個磁盤的分段是數(shù)據(jù),以此類推,直到放完為止。圖中的*個parity block是由A0,A1...,B1,B2計算出來,第二個parity block是由B3,B4,...,C4,D0計算出來,也就是校驗值是由各磁盤
同一位置的分段的數(shù)據(jù)所計算出來。這種方式能大幅增加小檔案的存取性能,不但可同時讀取,甚至有可能同時執(zhí)行多個寫入的動作,如可寫入數(shù)據(jù)到磁盤1而其parity block在磁盤2,同時寫入數(shù)據(jù)到磁盤4而其parity block在磁盤1,這對聯(lián)機交易處理 (OLTP,On-Line Transaction Processing)如銀行系統(tǒng)、金融、股市等或大型數(shù)據(jù)庫的
處理提供了*的解決方案(solution),因為這些應(yīng)用的每一筆數(shù)據(jù)量小,磁盤輸出入頻繁而且必須容錯。

事實上RAID 5的性能并無如此理想,因為任何數(shù)據(jù)的修改,都要把同一parityblock的所有數(shù)據(jù)讀出來修改后,做完校驗計算再寫回去,也就是RMW cycle(Read-Modify-Write cycle,這個cycle沒有包括校驗計算);正因為牽一而動全身,所以:
R:N(可同時讀取所有磁盤)
W:1(可同時寫入磁盤數(shù))
S:N-1(利用率)

RAID 5的控制比較復(fù)雜,尤其是利用硬件對磁盤陣列的控制,因為這種方式的應(yīng)用比其他的RAID level要掌握更多的事情,有更多的輸出入需求,既要速度快,又要處理數(shù)據(jù),計算校驗值,做錯誤校正等,所以價格較高;其應(yīng)用*是OLTP,至于用于圖像處理等, 不見得有*的性能。

 [消息] 想學(xué)習(xí)破解嗎?想自己解軟件嗎![YCG]破解學(xué)習(xí)班報名了 
2.磁盤陣列的額外容錯功能:Spare or Standby driver

事實上容錯功能已成為磁盤陣列最受青睞的特性,為了加強容錯的功能以及使系統(tǒng)在磁盤故障的情況下能迅速的重建數(shù)據(jù),以維持系統(tǒng)的性能,一般的磁盤陣列系統(tǒng)都可使用熱備份(hot spare or hot standby driver)的功能,所謂熱備份是在建立(configure) 磁盤陣列系統(tǒng)的時候,將其中一磁盤指定為后備磁盤,此一磁盤在平常并不操作,但若陣列中某一磁盤發(fā)生故障時,磁盤陣列即以后備磁盤取代故障磁盤,并自動將故障磁盤的數(shù)據(jù)重建(rebuild)在后備磁盤之上,因為反應(yīng)快速,加上快取內(nèi)存減少了磁盤的存取, 所以數(shù)據(jù)重建很快即可完成,對系統(tǒng)的性能影響很小。對于要求不停機的大型數(shù)據(jù)處理中心或控制中心而言,熱備份更是一項重要的功能,因為可避免晚間或無人值守時發(fā)生磁盤故障所引起的種種不便。

另一個額外的容錯功能是壞扇區(qū)轉(zhuǎn)移(bad sector reassignment)。壞扇區(qū)是磁盤故障的主要原因,通常磁盤在讀寫時發(fā)生壞扇區(qū)的情況即表示此磁盤故障,不能再作讀寫,甚至有很多系統(tǒng)會因為不能完成讀寫的動作而死機,但若因為某一扇區(qū)的損壞而使工作不能完成或要更換磁盤,則使得系統(tǒng)性能大打折扣,而系統(tǒng)的維護(hù)成本也未免太高了。壞扇區(qū)轉(zhuǎn)移是當(dāng)磁盤陣列系統(tǒng)發(fā)現(xiàn)磁盤有壞扇區(qū)時,以另一空白且無故障的扇區(qū)取代該扇區(qū), 以延長磁盤的使用壽命,減少壞磁盤的發(fā)生率以及系統(tǒng)的維護(hù)成本。所以壞扇區(qū)轉(zhuǎn)移功能使磁盤陣列具有更好的容錯性,同時使整個系統(tǒng)有*的成本效益比。其他如可外接電池備援磁盤陣列的快取內(nèi)存,以避免突然斷電時數(shù)據(jù)尚未寫回磁盤而損失;或在RAID 1時作寫入一致性的檢查等,雖是小技術(shù),但亦不可忽視。


3.硬件磁盤陣列還是軟件磁盤陣列

市面上有所謂硬件磁盤陣列與軟件磁盤陣列之分,因為軟件磁盤陣列是使用一塊SCSI卡與磁盤連接,一般用戶誤以為是硬件磁盤陣列。以上所述主要是針對硬件磁盤陣列,其與軟件磁盤陣列有幾個*的區(qū)別:

l 一個完整的磁盤陣列硬件與系統(tǒng)相接。
l 內(nèi)置CPU,與主機并行運作,所有的I/O都在磁盤陣列中完成,減輕主機的工作負(fù)載, 增加系統(tǒng)整體性能。
l 有卓越的總線主控(bus mastering)及DMA(Direct Memory Access)能力,加速數(shù)據(jù)的存取及傳輸性能。
l 與快取內(nèi)存結(jié)合在一起,不但增加數(shù)據(jù)的存取及傳輸性能,更因減少對磁盤的存取而增加磁盤的壽命。
l 能充份利用硬件的特性,反應(yīng)快速。

軟件磁盤陣列是一個程序,在主機執(zhí)行,透過一塊SCSI卡與磁盤相接形成陣列,它*的優(yōu)點是便宜,因為沒有硬件成本(包括研發(fā)、生產(chǎn)、維護(hù)等),而SCSI卡很便宜(亦有的軟件磁盤陣列使用指定的很貴的SCSI卡);它*的缺點是使主機多了很多進(jìn)程(process),增加了主機的負(fù)擔(dān),尤其是輸出入需求量大的系統(tǒng)。目前市面上的磁盤陣列
系統(tǒng)大部份是硬件磁盤陣列,軟件磁盤陣列較少。
4.磁盤陣列卡還是磁盤陣列控制器

磁盤陣列控制卡一般用于小系統(tǒng),供單機使用。與主機共用電源,在關(guān)閉主機電源時存在丟失Cache中的數(shù)據(jù)的的危險。磁盤陣列控制卡只有常用總線方式的接口,其驅(qū)動程序與主機、主機所用的操作系統(tǒng)都有關(guān)系,有軟、硬件兼容性問題并潛在地增加了系統(tǒng)的不安定因素。在更換磁盤陣列卡時要冒磁盤損壞,資料失落,隨時停機的風(fēng)險。

獨立式磁盤陣列控制一般用于較大型系統(tǒng),可分為兩種:
單通道磁盤陣列和多通道式磁盤陣列,單通道磁盤陣列只能接一臺主機,有很大的擴(kuò)充限制。多通道磁盤陣列可接多個系統(tǒng)同時使用,以群集(cluster)的方式共用磁盤陣列,這使內(nèi)接式陣列控制及單接式磁盤陣列無用武之地。目前多數(shù)獨立形式的磁盤陣列子系統(tǒng),其本身與主機系統(tǒng)的硬件及操作環(huán)境?
--


首先,IDE的性能不會比SCSI更高的。特別是在多任務(wù)的情況下。一般廣告給出的是
*傳送速度,并不是工作速度。同一時期的IDE與SCSI盤相比,主要是產(chǎn)量比較大,
電路比較簡單,所以價格比SCSI低很多,但要比性能,則差遠(yuǎn)了。

RAID并沒有限制使用多少個盤,應(yīng)時盤越多越好。
對于SCSI結(jié)構(gòu)的RAID來說,盤的*數(shù)量與SCSI通道(SCSI總線)的數(shù)量有關(guān)一般是每個通道最多裝15個盤(SCSI/3)對于FC-AL(光纖)則是每個通道200個盤當(dāng)然,要有這樣大的磁盤箱才行!

如果本頁不是您要找的課程,您也可以百度查找一下:
相關(guān)文章