2011年6月7日星期二

「私の愛馬は凶暴です」——IBM ServeRaid M5015+WD20EARS*3+ST3300657SS

曾經有一段時間玩過Adaptec AHA-2940U2B+IBM Ultrastar IC35L036UCPR15-0。一直用下來雖然很吵,但那強大的能力,也真的令本乞丐很滿意。可惜那東西用了差不多一年便壽終正寢,不過那東西用那個價錢買回來,也真的不能投訴太多。曾經有一段時間幻想SAS的大能……可惜當年的我根本沒有能力支付那高昂的設備。

事隔三年,如今我總算有多一點閒錢,加上最近系統的硬盤又有一些問題,看來這次不花一點錢去擺平是不行的……

萬惡之源︰IBM ServeRAID M5015 SAS/SATA Controller


IBM ServeRaid M5015圖一︰IBM ServeRaid M5015實物照,這是賣給我的賣家拍攝的。


本乞丐深信緣來沒法檔。當本乞丐的電腦恰巧在硬盤上出現一些問題,又恰巧讓本乞丐看到上述那張IBM ServeRaid M5015,本乞丐就明白到,這筆錢不能省了。供應製造需求,永遠是電腦市場恆久不變的真理。明知不買便是最省錢,可是看到比原價低於六折的OEM版LSI MegaRAID 9260-8i,還是費盡九牛二虎之力欺騙自己不買不行。

LSI MegaRAID 9260-8i憑藉其800MHz CPU的加持,加上SAS 2.0的支援,即使在推出差不多兩年後的今天,還是很強悍的SAS RAID卡。

Adaptec ACK-I-mSASx4-SAS4x1-FO-1M實物照

圖二︰賣家附送的Adaptec ACK-I-mSASx4-SAS4x1-FO-1M實物照,這是賣給我的賣家拍攝的。相比那批隨機附送的SATA線,這線的硬度不其然令本乞丐聯想起鐵線,難怪要用上那麼大的膠袋才放得下。據說這東西賣上二百多元一條,不過當你看到淘寶上一條才50人民幣左右的SAS連接線,很自然便會懷疑這東西憑甚麼那麼值錢……


偏向虎山行︰WD20EARS
不得不說,為了那張強大的IBM ServeRaid M5015,便已經教本乞丐甚為吃力,然而接下來看到所謂的企業級SATA硬盤時,只能慨嘆那些出事機率比那些民用級的東西好一點的東西,能標上超過一倍的售價。可是本乞丐在多年用腦的經驗告訴本乞丐︰連15000rpm企業級的SCSI也有倒下的一天,不如以多個硬盤來換取更高的安全性。不過本乞丐也知道這個藉口很強詞奪理,自己心底也相當清楚,縱使是IBM ServeRaid M5015+WD20EARS*3,得出一個看起來比WD2003FYYS*2更安全的RAID 5系統,但是本乞丐非常明白,由於本乞丐沒有錢用上BBU,為了安全起建便只能以Write Through,偏偏在Write Through的情況下,連續寫入的速度將會大為下降。如果不是想要SAS,IBM ServeRaid M5015再強大的性能,也只會得物無所用。

IBM ServeRaid M5015+WD20EARS*3RAID 5於HD Tach long bench下的讀取表現。

圖三︰IBM ServeRaid M5015+WD20EARS*3RAID 5於HD Tach long bench下的讀取表現。理論上RAID 5的讀取效能,相當於硬盤數減一的RAID 0。從這圖可以看到,平均連續讀取頻寬約220.9MB/s。由於Windows XP本身並不支援比2TB更大的硬盤,因此本乞丐把這RAID 5一分為二,圖中看到的是較快的一個虛擬硬盤。留意其隨機讀取時間約13.9ms,這速度相信是由於WD20EAR並不是常時7200rpm的硬盤,因此比一般7200rpm硬盤慢。


機緣巧合︰ST3300657SS
Seagate Cheetah 15K.7 300GB SAS ST3300657SS實物照。

圖四︰Seagate Cheetah 15K.7 300GB SAS ST3300657SS實物照。不得不說,「中國製」三個字異常礙眼。


正如本乞丐所說,IBM ServeRaid M5015只用在三隻便宜貨的RAID 5之上,除了浪費和得物無所用,實在沒有多少字能夠形容,因此本乞丐還是在努力物飾合意的SAS硬盤。還記得四年前看到Seagate Cheetah 15K.5 73GB SAS ST373455SS內心激動之情,不過一想到SAS HBA+硬盤最少要三千大元的價位,不得不打退堂鼓。

時至今日,既然已經買了IBM ServeRaid M5015,也就不用想甚麼SAS HBA了。至於當年的Seagate Cheetah 15K.5 73GB SAS ST373455SS,也已經被Seagate Cheetah 15K.7 300GB SAS ST3300657SS代替了。然而本乞丐偏偏喜歡走偏門,對於本地代理的行貨價格完全不能接受,因此走到淘寶上找一個便宜的ST3450857SS來玩玩,偏偏那商家卻來爽約,寧可退錢也不發貨。貨品的錢雖然退回來,可是那10%的手續費卻不能不給……唉……

事已至此,本乞丐只好在本地拍賣尋找有沒有大意的人兄,賣出自己手上不合用的行貨SAS硬盤。而本乞丐偏偏又真的找到那位大意的人兄,又很有緣的把那ST3300657SS競投成功。

IBM ServeRaid M5015+ST3300657SS RAID 0於HD Tach long bench下的讀取表現。

圖五︰IBM ServeRaid M5015+ST3300657SS RAID 0於HD Tach long bench下的讀取表現。值得留意的有︰一、Cheetah 15k.7是當世之上唯一能達到單一硬盤最高傳輸頻寬>200MB/s,而且random access time達到5.6ms的怪物級硬盤,不過那random access time明顯稍微慢了一點,原因本乞丐將會在後邊描述。二、這曲線看起上明顯不平直,相信是由於這硬盤是被本乞丐用作系統硬盤導致,也由於系統拖累,本乞丐手上的ST3300657SS平均連續傳輸頻寬也較弱。


IBM ServeRaid M5015+ST3300657SS RAID 0於HD Tune下的讀取表現。

圖六︰IBM ServeRaid M5015+ST3300657SS RAID 0於HD Tune下的讀取表現。整體上跟HD Tach下的數據相去不遠,不過Burst Speed居然比最高傳輸頻寬低,看來這一項是不可信的。


比較令本乞丐意外的是,相比起IBM Ultrastar IC35L036UCPR15-0那吵耳的聲音,Cheetah 15K.7 300GB SAS ST3300657SS真的很靜,甚至比Western Digital WD360GD更靜,果然這就是科技的進步……

重頭開始︰IBM ServeRaid M5015的設定參數
本乞丐對於RAID 5和SAS絕對是一名新手,所以只能胡亂設定,於RAID 5本乞丐把Read Policy設定為Read Ahead,IO Policy是Cached IO,以及Write Policy是Write Through。於ST3300657SS本乞丐除了Write Policy是Write Back外,其他都是一樣。

結果本乞丐錯了,原來LSI和IBM是有指引,教導用家如何設定的!

Read Policy︰這張RAID卡有Read Ahead和No Read Ahead,相比起舊有型號真的很極端。兩者的分別是Read Ahead會預先讀取一整個Strip的DATA。Read Ahead對於連續讀取表現更有利,至於No Read Ahead於隨機讀取更快。另外有Adaptive Read Ahead,能自行判決何時用上哪一個Read Policy,不過這張RAID卡沒有這選項。

IO Policy︰這卡有Cached IO和Direct IO。根據LSI的建議,就是在任何時間,應該用Direct IO。Cached IO在任何情況下,都會用上RAID卡上的緩衝記憶體,會直接拖慢硬盤的寫入或讀取速度。

IBM ServeRaid M5015+ST3300657SS RAID 0的兩個HD Tune讀取表現。

圖七︰IBM ServeRaid M5015+ST3300657SS RAID 0的兩個HD Tune讀取表現。同樣是用上了Direct IO,當中上半部的random access time終於能達到5.6ms或以下的水平,明顯反映出Cached IO對硬盤性能的影響,下半部的random access time較長,相信是作業系統背景工作的問題。上下兩者的主要分別是上半部是用上了No Read Ahead,下半部是Read Ahead。理論上應該是下半部應該在連續讀取上比上半部好,不過在HD Tune下本乞丐看不出兩者的分別,相信HD Tune並未能反映兩者的分別。


IBM ServeRaid M5015+ST3300657SS RAID 0的兩個HD Tach long bench讀取表現

圖八︰IBM ServeRaid M5015+ST3300657SS RAID 0的兩個HD Tach long bench讀取表現。同樣是用上了Direct IO,上半部是用上了No Read Ahead,下半部是Read Ahead。留意兩者的random access time達到5.5ms的低水平。比較值得留意的,是Read Ahead下的Burst Speed比No Read Ahead超過接近三倍,但在HD Tune上卻沒有這樣的分別,相信是由於兩個軟件測試Burst Speed的機制有所不同。理論上來說,Read Policy是不應該對Burst Speed有所影響。更重要的是,根據SAS 2.0的規格,其接口上限速度應低於768MB/s,所以HD Tach long bench所測的,很可能是RAID卡的緩衝記憶體的速度。


Write Policy︰這個有三個選項,包括Write Through、Write Back和Write Back with BBU。所謂的Write Policy,就是RAID卡何時判定資料已經寫入。Write Through是指資料成功寫入硬盤資料層,才算是成功寫入。Write Back是指資料成功載入硬盤上的緩衝記憶體便算是成功寫入。Write Back with BBU是在BBU存在的情況下才Write Back。由於本乞丐並沒有購買BBU,所以這個選項是作廢的。

上文提及本乞丐由於安全理由,而沒有在RAID 5上使用Write Back。自Windows 95起,相信不少人也養成了在作業系統發出指令後才關機(那是AT時代的事了,到了ATX年代是發出關機指令後直接自行關機的,我想沒有多少個讀者會知道「您現在可以放心關機」是甚麼來的)。正於上文所說,Write Back的情況下會有一段短暫的時間,是資料於硬盤緩衝記憶體中,而並未寫入硬盤磁軌之上。假如於這段時間內,電腦突然斷電,便會令到這些資料流失。一般的ATA硬盤都是採用Write Back的Write Policy,因此當電腦意外關機,便需要進行冗長的硬盤掃瞄,以查出哪些檔案抄寫出現問題,而這類資料流失也是藍屏死機的其中一個成因。加設BBU能令RAID卡在意外停電期間保持供電,令到RAID卡上的緩衝記憶體資料不會因停電而失去。不過萬一停電時間過長,或BBU未儲蓄足夠電力,同樣會令RAID卡上的緩衝記憶體資料因停電而失去,因此BBU也不是絕對安全。

不過,稍為對電腦有多一點了解的讀者,也明白到硬盤緩衝記憶體的資料,是等到硬盤較閒置時才寫入硬盤磁軌,因此如果以Write Through的選項運作,特別是連續寫入單一大檔案時,便會出現等待寫入的時間大為增加,嚴重阻礙寫入的速度。不過Write Through也不一定比Write Back慢,比如是在寫入大量零碎的小檔案時,Write Through反而比Write Back更快,所以不能一概而論。

然而本乞丐一開始打算用RAID 5當作較安全的檔案庫,所儲存的大都是大檔案,用Write Through絕對會大大拖慢寫入檔案的時間。而且Write Back本身一直是ATA硬盤常用的Write Policy,加上本乞丐對大廈供電還是很有信心,結果還是決定在沒有BBU的情況下,用回Write Back。雖然危險還是有,不過本乞丐還是不希望為了這小機率的危險,犧牲過多的性能或金錢。

總結︰學海無涯
在此算是為這一次的電腦升級留下一個記錄。能夠一圓在自己電腦上運行SAS硬盤和RAID 5,本乞丐真的算是十分開心,不過要學的東西真的很多,當中雖然也走了不少冤枉路,不過的確是有所得著的。

7 則留言:

  1. 我想..用得5015 一定用用到sas /ssd.
    其實用15K7價錢..我想加小小就已經用得到SSD 二

    回覆刪除
  2. Seagate 15K.7那價位的新品只能買到MLC,本乞丐接受不了MLC的壽命,以上。

    回覆刪除
  3. 其實MLC 不太差...


    15K未用過..不過10K SAS 2.5" 就用了幾年..上SSD 另一番感受:D

    回覆刪除
  4. SSD甚麼的,自己用了感覺良好即可。本乞丐有錢的話,也想買SLC SSD來過一下癮。

    不過話還是要說清楚,當看到企業級的SAS SSD全都是SLC的時候,要本乞丐相信MLC的壽命未免太難了。

    回覆刪除
  5. sas /ssd 用的不是那么好用啊,还是要花钱升级

    回覆刪除
  6. M5015有支援WIN7嗎?會不會挑硬碟品牌?謝謝

    回覆刪除
  7. >>santaipumps1
    M5015的話,在LSI的驅動程式一直有更新,我現在用Windows 8也完全沒有問題。
    硬碟品牌的話,暫時用上Western Digital和Seagate都沒有問題。

    回覆刪除