磁碟陣列控制卡的相關設定
作者:tank 日期:2006-05-07
磁碟陣列控制卡的相關設定
一、磁碟陣列充分利用硬碟的資料傳輸速率(Data Transfer Rate)
在沒有開始談陣列控制卡的相關設定前,我想先談一下硬碟的資料傳輸速率(Data Transfer Rate)。資料傳輸速率是硬碟機相當重要的技術指標,有最大瞬間(Burst)資料傳輸速率、內部(Internal)資料傳輸速率,以及持續(Sustain)資料傳輸速率等不同的數值。其中,「持續資料傳輸速率」直接影響硬碟機進行大量資料傳送時的效能表現。
由於「最大瞬間資料傳輸速率」等同於「介面(Interface)」的資料傳輸速率,而這個特性限制了數個硬碟機所組成的磁碟陣列的最高效能表現。
舉例來說,希捷(Seagate)的ST39103LW(Cheetah系列硬碟)Ultra 2 SCSI硬碟機,其介面資料傳輸速率為80MB/sec。外部平均資料傳輸速率為24.5MB/sec。也就是在使用四個硬碟機同時讀取資料時,其資料傳送就會到達介面的飽和點了。
由於內部資料傳輸速率取決於硬碟機各個主要組件如磁頭、碟片、主軸馬達等的技術能力,因此內部資料傳輸速率便是硬碟機從碟片讀出資料的速率。
談這些,可以回答大夥較常問的問題:IDE硬碟還是SCSI硬碟比較快。哪一種硬碟比較好?就硬碟設計來看,因為SCSI硬碟大部分都應用在較高階的環境中,所以預設的使用年限也較長;又因為要求較高的效能表現,所以會使用較新的技術。當然,售價也會較高。
可是,如果你大部分的工作是在Windows95/98或是DOS的環境下執行,使用SCSI硬碟,就有一點浪費了。比較單一顆SCSI與IDE硬碟的效能,也會讓人覺得SCSI硬碟並沒有快很多。原因無它,就在於兩款硬碟機持續資料傳輸速率的數值並沒有差太多。
如何才能讓SCSI硬碟機發揮長處呢?關鍵點在於作業系統是否支援多工功能,其可否讓數個硬碟機同時傳送資料。而磁碟陣列系統(RAID)就是可以讓SCSI硬碟機發揮其效能的一種方式。
二、磁碟陣列卡的設定
前一次的技術開講中,簡介了各個RAID組態(RAID Level)的構成及應用領域。這次,主要是談談RAID在實務中的一些設定方式。在這篇文章中,並不會提到磁碟控制卡如何設定,這部分請參照控制卡的使用手冊。
(一)毀損資料重建(Data Rebuild)
在RAID level 3、5的設定下,資料是經過計算,得出同位元檢查資料後,再分散儲存在各個硬碟上。磁碟陣列中只容許有一顆硬碟故障。如果在硬碟故障到系統重建完成之間,有第二顆硬碟故障,則整個磁碟陣列的資料都將流失。因此,磁碟陣列的管理者,必須儘量在很短的時間內排除故障,重建系統,以確保資料的安全。
(二)磁碟陣列卡的故障管理能力
1.故障硬碟的偵測及通知
在整個系統運作時,如果沒有對磁碟陣列有「讀/寫(R/W)」的動作,就算有硬碟機故障,磁碟陣列卡(以下簡稱為陣列控制卡)也不會立即知道硬碟機已經離線,必須等到要讀/寫資料時,才會發現硬碟機離線,進而發出警告。我們知道,磁碟陣列在硬碟故障時,是最脆弱的。如果無法立即知道硬碟機故障,將增加整個磁碟陣列的風險。
設定陣列控制卡定時掃描匯流排上的硬碟機,以確認硬碟機是否正常工作,可以避免前述的狀況,而且定時檢查硬碟的時間間隔,是可以調整的。如果有硬碟機故障,控制卡可以在硬碟機故障的第一時間點就通知管理者;但是,這樣也會佔用陣列控制卡上「控製晶片」的時間,所以管理者必須在兼顧安全性與效率之間,自行取得一個平衡點。
在故障發生時,控制卡可以有數種不同的方式通知管理者:
(1)蜂鳴器告警:這是最基本的配備,但是伺服器有可能不是放置在管理者身邊,所以其他的通知方式也有其需要。
(2)傳真與呼叫器:利用控制卡內建的RS-232埠,在事件發生時,控制外接的數據機(MODEM),將警告訊息傳送出去。
(3)電子郵件:透過RAID管理程式,使用作業系統的網際網路(Internet)架構,發送電子郵件。當然,系統中一定要有通訊錄,而且包括有被通知者的電子信箱(E-mail)位址。
(4)事件檢視:陣列控制卡大都有記錄資料可以查看事件發生的時間及內容。
在確知有故障硬碟時,如何正確的將故障硬碟機取下,再更換正常硬碟,也是在實務上必須考量的事情。
陣列控制卡大都提供某些工具程式,讓硬碟機LED(在硬碟機上的二極體小燈)依照設定的模式閃爍,藉以辨認硬碟機。或是以不同的LED燈號顯示硬碟機的狀態。讓維修人員或管理者很容易分辨故障硬碟。
確認故障硬碟機後,我們就可以將硬碟機取下。幾乎所有的陣列控制卡均提供硬碟機熱抽換(Hot Swap)的功能。也就是可以在系統不關機的狀況下,直接將硬碟取下。
2.資料重建
磁碟陣列中如果有一個硬碟故障,管理者須立即將故障硬碟機換下,並進行資料重建。在資料重建完成前,磁碟陣列系統是相當脆弱的。如何縮短整個重建的時程,是陣列控制卡非常重要的課題。
如果依照傳統維修流程,在發現有硬碟故障時才通知維修人員到場,並進行更換硬碟、做資料重整。這樣的程序,其實並不符合實際上的需求,磁碟陣列曝露在風險中的時間太長了。
實務上,整個資料重建的過程可以更有效率。目前的做法已趨向使用備援磁碟機,達到資料自動重建的功能。調整後的資料重建程序如下:
安裝備援磁碟機→陣列控制卡定時偵測硬碟機→有硬碟機故障時→系統自動啟動重建。
3.備援磁碟機(Spare Drive)
備援磁碟機的主要功能,是讓磁碟陣列發生某顆硬碟機故障時,可立即取代故障磁碟機,並讓陣列控制卡可以啟動資料重建,以縮短整體重建時間。
備援磁碟機平時是沒有動作的,其功能類似磁碟陣列的保險。一個磁碟陣列可以有不只一個備援磁碟機,端視整體的設計而定。備援磁碟機一但加入磁碟陣列中,就成為磁碟陣列的硬碟機成員。原先故障硬碟機更換後,可以再指定成為備援磁碟機。
備援磁碟機依照用途可以分為本地(Local)備援機及公用(Global)備援機,
本地備援磁碟機指定給特定的邏輯磁碟機使用。如圖
公用備援磁碟機則是指定給一組邏輯磁碟機使用。這些邏輯磁碟機組中,如果有任一個硬碟機故障,備援磁碟機就會加入邏輯磁碟機組中,並開始重建。以或然率來看,不會同時有好幾個硬碟機損壞,所以這種模式是較節省成本的。如圖:
我們可以在陣列的組合方式上,使用複合的模式,同時使用公用與本地備援磁碟機。以增加系統的安全性!
說明:
邏輯磁碟機0中的成員是9GB磁碟機,邏輯磁碟機1、2的成員是4GB。因為其容量不夠,4 GB的公用備援磁碟機不能使用在邏輯磁碟機0;如果使用9GB的硬碟當作公用備援磁碟機。對邏輯磁碟機1、2來說,又太浪費了。
將9GB設定為邏輯磁碟機0的本地備援磁碟機,4GB設定為邏輯磁碟機1、2的公用備援磁碟機。這樣,邏輯磁碟機中有任一個磁碟故障時,皆可以得到備援磁碟機的協助。
4.重建優先權(Rebuild Priority)
資料重建時,可能系統仍在運作。這時陣列控制卡一方面要讀出殘存的資料,計算出正確資料後寫入磁碟機組;一方面又要回應作業系統存取資料的要求,其工作負荷量是相當大的。
管理者在這樣的狀況下,可以有幾個選擇:現在的作業最重要,資料重建先緩一緩吧,此時資料重建屬於「最低優先」;資料重建最重要,沒資料,什麼都沒啦此時資料重建屬於「最高優先」;平常心看待啦,此時資料重建屬「平常模式」。
我們可以在重建優先權中設定資料重建的緊急性。當然,安全性與效率仍然是管理者判斷的依據。
5.開機的順序
某些主機板內建了SCSI介面,或是系統中安裝了SCSI控制卡,而陣列控制卡也是SCSI介面。因此在使用者的管理角度而言,指定由哪一片控制卡上的裝置來開機,是有其必要的。
在SCSI控制卡的BIOS設定選項中,有一項是開啟或關閉(Enable/Disable)SCSI BIOS,關閉這個選項,系統就不會從這片控制卡所連結的裝置開機。
6.邏輯磁碟機的設定
在陣列控制卡下,我們將數個硬碟機合併成一個大容量的單一硬碟。這個單一硬碟,我們稱為邏輯磁碟機(Logic Drive)。以作業系統來看,是將此一邏輯磁碟機當作一個實體的硬碟。邏輯磁碟機中資料的存取與運作,是陣列控制卡所負責的事。
談到這裡,我們要提醒讀者諸君:在SCSI匯流排上,每一個裝置都必須指定一個唯一的ID號碼,作為識別與存取的依據。否則SCSI控制卡是無法看到,也無法存取這個裝置。
邏輯磁碟機是陣列控制卡做出來的,所以控制卡也必須賦予邏輯磁碟機一個ID號碼。這也是陣列控制卡的設定選項裡,有所謂的「Edit and Map SCSI ID」選項的原因。如果我們在陣列控制卡下,將邏輯磁碟機分為兩個區段(Partition),我們就必須指定兩個ID給每一個區段。而在作業系統角度來看,就變成有兩個硬碟連接在陣列控制卡之下了。整個邏輯磁碟機的設定程序如下:
(1)選擇硬碟組成邏輯磁碟機
(2)分割區段(如果有必要的話)
(3)指定ID給區段使用
指定ID號碼給邏輯磁碟機的動作與RAID的控制比較沒有關聯。也就是說,當我們更改SCSI ID號碼時,邏輯磁碟機內的資料並不會消失。我們可以想像成,當我們更改房屋的門牌號碼時,並不會對房屋的結構有任何影響。
7.快取(Cache)記憶體的設定
陣列控制卡中都配備有快取記憶體以增快資料處理的效率。值得注意的是,如果設定為「Write Back」,則整體效率雖然比「Write Through」快,但是,在資料還沒有寫入硬碟前,如果遭遇到電源中斷或是系統當機的意外,資料可能會遺失。在要求高安全係數時,將快取記憶體關閉是較適合的。
8.I/O最佳化
陣列控制卡可以依照使用的環境的需求,設定其I/O區段的大小。在資料庫的應用環境中,其特性是檔案數目多而小;而在影音環境的應用下,對於I/O的需求,就希望是一個連續性的大區段資料輸出了。這個部分的設定如果更改,現有的資料就會無法讀取。所以我們在初始化RAID邏輯磁碟機時就必須先設定其I/O特性。一定要更改時,就只能重新初始化邏輯磁碟機了。
9.RAID的擴充
磁碟陣列系統使用一陣子之後,無可避免會遭遇擴充的問題。大部分陣列控制卡提供線上擴充的能力。也就是可以在系統不關機的狀況下,增加硬碟機到現有的邏輯磁碟機中。
當然,線上擴充所耗用的時間相當長,陣列控制卡將資料從原先的陣列中讀出,重新計算,再寫回新的陣列中。由於容量增加,這個程序所花的時間,要比資料重建更多一些。整個的過程是不可逆向操作的,換句話說就是增加的硬碟不能取消。
在某些陣列控制卡上,提供了線上RAID Level轉移(Migration)功能,可以做模式的更換,如RAID 0換成RAID 5,RAID 3換成RAID 5,RAID 5換成RAID 1。
在RAID 3、5的組態中,新增加的硬碟機容量可以完全的被使用到。這也是RAID 3、5在容量擴充時所擁有的優勢。而RAID 1在硬碟擴充時一次要增加兩個硬碟,其成本是較高的。
10.韌體(Firmware)的升級
在RAID控制卡之上,有數個韌體(Firmware)存在,分別是RAID BIOS, SCSI BIOS,以及BOOT record。RAID BIOS與RAID控制有關,前面提到的一些相關設定幾乎都是RAID BIOS在控制,而SCSI BIOS則是負責與主機板之間的溝通。功能就如同一般SCSI控制卡上的BIOS。
BOOT Record主要在記錄邏輯磁碟機的相關組態,如哪幾顆硬碟組成邏輯磁碟機等資訊。
以目前使用的快閃記憶體(Flash Memory)技術而言,使用者都可以自行升級。當然,在升級時需注意過程的安全性,不要有不正常的關機動作。否則,快閃記憶體中的資料損毀,可是會讓控制卡無法工作的。
三、結論
無論陣列控制卡提供多強大、多方便的功能以增進資料安全性及重建的效率,硬碟機仍然是非常脆弱的裝置,RAID系統需要定時作備份以確保資料安全性,有備無患,才是資料安全最高指導原則。國內有些單位的管理者,以為安裝了RAID系統,資料就可以高枕無憂了,卻忽略了備份的動作,結果卻造成更大的資料損失。