⑴ 可否告訴我大型伺服器的硬碟的工作原理
磁碟陣列(Disk Array)原理
1.為什麼需要磁碟陣列?
如何增加磁碟的存取(access)速度,如何防止數據因磁碟的故障而失落及如何有效
的利用磁碟空間,一直是電腦專業人員和用戶的困擾;而大容量磁碟的價格非常昂貴,對
用戶形成很大的負擔。磁碟陣列技術的產生一舉解決了這些問題。
過去十幾年來,CPU的處理速度增加了五十倍有多,內存(memory)的存取速度亦大
幅增加,而數據儲存裝置--主要是磁碟(hard disk)--的存取速度只增加了三、四倍,形
成電腦系統的瓶頸,拉低了電腦系統的整體性能(through put),若不能有效的提升磁碟
的存取速度,CPU、內存及磁碟間的不平衡將使CPU及內存的改進形成浪費。
目前改進磁碟存取速度的的方式主要有兩種。一是磁碟快取控制(disk cache
controller),它將從磁碟讀取的數據存在快取內存(cache memory)中以減少磁碟存取
的次數,數據的讀寫都在快取內存中進行,大幅增加存取的速度,如要讀取的數據不在快
取內存中,或要寫數據到磁碟時,才做磁碟的存取動作。這種方式在單工環境(single-
tasking envioronment)如DOS之下,對大量數據的存取有很好的性能(量小且頻繁的存
取則不然),但在多工(multi-tasking)環境之下(因為要不停的作數據交換(swapping)
的動作)或資料庫(database)的存取(因為每一記錄都很小)就不能顯示其性能。這種方
式沒有任何安全保障。
其二是使用磁碟陣列的技術。磁碟陣列是把多個磁碟組成一個陣列,當作單一磁碟
使用,它將數據以分段(striping)的方式儲存在不同的磁碟中,存取數據時,陣列中的相
關磁碟一起動作,大幅減低數據的存取時間,同時有更佳的空間利用率。磁碟陣列所利用
的不同的技術,稱為RAID level,不同的level針對不同的系統及應用,以解決數據安全
的問題。
一般高性能的磁碟陣列都是以硬體的形式來達成,進一步的把磁碟快取控制及磁碟
陣列結合在一個控制器(RAID controler或控制卡上,針對不同的用戶解決人們對磁
盤輸出入系統的四大要求:
(1)增加存取速度,
(2)容錯(fault tolerance),即安全性
(3)有效的利用磁碟空間;
(4)盡量的平衡CPU,內存及磁碟的性能差異,提高電腦的整體工作性能。
2.磁碟陣列原理
磁碟陣列中針對不同的應用使用的不同技術,稱為RAID level,RAID是Rendent
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 0及RAID 1適用於PC及PC相關的系統如小型的網路伺服器(network server)及
需要高磁碟容量與快速磁碟存取的工作站等,比較便宜;RAID 3及RAID 4適用於大型電
腦及影像、CAD/CAM等處理;RAID 5多用於OLTP,因有金融機構及大型數據處理中心的
迫切需要,故使用較多而較有名氣, RAID 2較少使用,其他如RAID 6,RAID 7,乃至RAID
10等,都是廠商各做各的,並無一致的標准,在此不作說明。介紹各個RAID level之前,
先看看形成磁碟陣列的兩個基本技術:
磁碟延伸(Disk Spanning):
譯為磁碟延伸,能確切的表示disk spanning這種技術的含義。如圖磁碟陣列控制器,
聯接了四個磁碟,這四個磁碟形成一個陣列(array),而磁碟陣列的控制器(RAID
controller)是將此四個磁碟視為單一的磁碟,如DOS環境下的C:盤。這是disk
spanning的意義,因為把小容量的磁碟延伸為大容量的單一磁碟,用戶不必規劃數據在
各磁碟的分布,而且提高了磁碟空間的使用率。並使磁碟容量幾乎可作無限的延伸;而各
個磁碟一起作取存的動作,比單一磁碟更為快捷。很明顯的,有此陣列的形成而產生
RAID的各種技術。
磁碟或數據分段(Disk Striping or Data Striping):
因為磁碟陣列是將同一陣列的多個磁碟視為單一的虛擬磁碟(virtual disk),所以其數
據是以分段(block or segment)的方式順序存放在磁碟陣列中,數據按需要分段,從第一
個磁碟開始放,放到最後一個磁碟再回到第一個磁碟放起,直到數據分布完畢。至於分段
的大小視系統而定,有的系統或以1KB最有效率,或以4KB,或以6KB,甚至是4MB或8MB
的,但除非數據小於一個扇區(sector,即521bytes),否則其分段應是512byte的倍數。
因為磁碟的讀寫是以一個扇區為單位,若數據小於512bytes,系統讀取該扇區後,還要
做組合或分組(視讀或寫而定)的動作,浪費時間。從上圖我們可以看出,數據以分段於在
不同的磁碟,整個陣列的各個磁碟可同時作讀寫,故數據分段使數據的存取有最好的效
率,理論上本來讀一個包含四個分段的數據所需要的時間約=(磁碟的access time+數據
的tranfer 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 1至RAID 5是在此基礎上提供磁碟安全的方案。
RAID 1
RAID 1是使用磁碟鏡像(disk mirroring)的技術。磁碟鏡像應用在RAID 1之前就在很
多系統中使用,它的方式是在工作磁碟(working disk)之外再加一額外的備份磁碟
(backup disk),兩個磁碟所儲存的數據完全一樣,數據寫入工作磁碟的同時亦寫入備份
磁碟。磁碟鏡像不見得就是RAID 1,如Novell Netware亦有提供磁碟鏡像的功能,但並
不表示Netware有了RAID 1的功能。一般磁碟鏡像和RAID 1有二點最大的不同:
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的磁碟陣列更可在工
作中抽換磁碟,並可自動重建故障磁碟的數據。磁碟陣列之所以能做到容錯及不停機,
是因為它有冗餘的磁碟空間可資利用,這也就是Rendant的意義。
RAID 2
RAID 2是把數據分散為位(bit)或塊(block),加入海明碼Hamming Code,在磁碟陣列中
作間隔寫入(interleaving)到每個磁碟中,而且地址(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(利用率)
RAID 5的控制比較復雜,尤其是利用硬體對磁碟陣列的控制,因為這種方式的應用比其
他的RAID level要掌握更多的事情,有更多的輸出入需求,既要速度快,又要處理數據,
計算校驗值,做錯誤校正等,所以價格較高;其應用最好是OLTP,至於用於圖像處理等,
不見得有最佳的性能。
2.磁碟陣列的額外容錯功能:Spare or Standby driver
事實上容錯功能已成為磁碟陣列最受青睞的特性,為了加強容錯的功能以及使系統在磁
盤故障的情況下能迅速的重建數據,以維持系統的性能,一般的磁碟陣列系統都可使用
熱備份(hot spare or hot standby driver)的功能,所謂熱備份是在建立(configure)
磁碟陣列系統的時候,將其中一磁碟指定為後備磁碟,此一磁碟在平常並不操作,但若陣
列中某一磁碟發生故障時,磁碟陣列即以後備磁碟取代故障磁碟,並自動將故障磁碟的
數據重建(rebuild)在後備磁碟之上,因為反應快速,加上快取內存減少了磁碟的存取,
所以數據重建很快即可完成,對系統的性能影響很小。對於要求不停機的大型數據處理
中心或控制中心而言,熱備份更是一項重要的功能,因為可避免晚間或無人值守時發生
磁碟故障所引起的種種不便。
另一個額外的容錯功能是壞扇區轉移(bad sector reassignment)。壞扇區是磁碟故障
的主要原因,通常磁碟在讀寫時發生壞扇區的情況即表示此磁碟故障,不能再作讀寫,甚
至有很多系統會因為不能完成讀寫的動作而死機,但若因為某一扇區的損壞而使工作不
能完成或要更換磁碟,則使得系統性能大打折扣,而系統的維護成本也未免太高了。壞扇
區轉移是當磁碟陣列系統發現磁碟有壞扇區時,以另一空白且無故障的扇區取代該扇區,
以延長磁碟的使用壽命,減少壞磁碟的發生率以及系統的維護成本。所以壞扇區轉移功
能使磁碟陣列具有更好的容錯性,同時使整個系統有最好的成本效益比。其他如可外接
電池備援磁碟陣列的快取內存,以避免突然斷電時數據尚未寫回磁碟而損失;或在RAID
1時作寫入一致性的檢查等,雖是小技術,但亦不可忽視。
3.硬體磁碟陣列還是軟體磁碟陣列
市面上有所謂硬體磁碟陣列與軟體磁碟陣列之分,因為軟體磁碟陣列是使用一塊SCSI
卡與磁碟連接,一般用戶誤以為是硬體磁碟陣列。以上所述主要是針對硬體磁碟陣列,
其與軟體磁碟陣列有幾個最大的區別:
l 一個完整的磁碟陣列硬體與系統相接。
l 內置CPU,與主機並行運作,所有的I/O都在磁碟陣列中完成,減輕主機的工作負載,
增加系統整體性能。
l 有卓越的匯流排主控(bus mastering)及DMA(Direct Memory Access)能力,加速數據
的存取及傳輸性能。
l 與快取內存結合在一起,不但增加數據的存取及傳輸性能,更因減少對磁碟的存取
而增加磁碟的壽命。
l 能充份利用硬體的特性,反應快速。
軟體磁碟陣列是一個程序,在主機執行,透過一塊SCSI卡與磁碟相接形成陣列,它最大
的優點是便宜,因為沒有硬體成本(包括研發、生產、維護等),而SCSI卡很便宜(亦有的
軟體磁碟陣列使用指定的很貴的SCSI卡);它最大的缺點是使主機多了很多進程
(process),增加了主機的負擔,尤其是輸出入需求量大的系統。目前市面上的磁碟陣列
系統大部份是硬體磁碟陣列,軟體磁碟陣列較少。
4.磁碟陣列卡還是磁碟陣列控制器
磁碟陣列控制卡一般用於小系統,供單機使用。與主機共用電源,在關閉主機電源時存
在丟失Cache中的數據的的危險。磁碟陣列控制卡只有常用匯流排方式的介面,其驅動程
序與主機、主機所用的操作系統都有關系,有軟、硬體兼容性問題並潛在地增加了系統
的不安定因素。在更換磁碟陣列卡時要冒磁碟損壞,資料失落,隨時停機的風險。
獨立式磁碟陣列控制一般用於較大型系統,可分為兩種:
單通道磁碟陣列和多通道式磁碟陣列,單通道磁碟陣列只能接一台主機,有很大的
擴充限制。多通道磁碟陣列可接多個系統同時使用,以群集(cluster)的方式共用磁碟陣
列,這使內接式陣列控制及單接式磁碟陣列無用武之地。目前多數獨立形式的磁碟陣列
子系統,其本身與主機系統的硬體及操作環境?BR>
--
※ 來源:.廣州網易 BBS bbs.nease.net.[FROM: 202.103.153.151]
發信人: secu (secu), 信區: WinNT
標 題: Re: NT下做RAID
發信站: 廣州網易 BBS (Mon Aug 24 17:59:42 1998), 轉信
【 在 davychen (xiaoque) 的大作中提到: 】
: 【 在 Magicboy (師傅仔) 的大作中提到: 】
: : 請問用SCSI硬碟做軟體RAID與用性能更高一些的IDE硬碟做軟體鏡象,哪個
: : 性能更好一些?
: 當然是SCSI,但用軟體鏡象不能實現雙工。因為備分的只是數據部分,引導區部分不在
: 上面。如果用IDE的話,無論RAID0,1,5,10,50都必須同時讀寫。可能很快斐捎才袒?/font>
: 道或扇區。RAID 0,1隻要求兩個硬碟,RAID 5則至少三個硬碟。
首先,IDE的性能不會比SCSI更高的。特別是在多任務的情況下。一般廣告給出的是
最大傳送速度,並不是工作速度。同一時期的IDE與SCSI盤相比,主要是產量比較大,
電路比較簡單,所以價格比SCSI低很多,但要比性能,則差遠了。
⑵ 伺服器最大硬碟多大!
目前單硬碟是3TB,但是伺服器為了更快會組多盤陣列,所以容量就很難估計了。。
而且樓主所說的伺服器是企業級的還是軍用級的呢。軍方的伺服器或者是氣象的那些伺服器估計是上PB的吧。很難估計了就。
⑶ 網吧里的電腦到底多大存儲量為什麼那麼多游戲都能裝的下
那個放游戲的地方不是內存,是硬碟。
大多是網吧每台機器的硬碟並不大,320G也就。一般每台機器里都是常駐的網路游戲。其他的游戲 許要所謂的更新。
網吧有大硬碟伺服器 1TB 吧一般的話。其他的游戲需要機器與它進行更新。所以,網吧電腦硬碟並不大。
只是安裝游戲的話 1000G 也就是 1TB 的硬碟 足矣。一個游戲平均下來也就4~5G,你可以安裝近200個游戲~~~
⑷ 如何實現一個電腦上掛6-7個大硬碟 做FTP伺服器用
數據線串聯硬碟,除主盤外,其餘盤需要跳線掛上.