摘要:該文通過對操作系統中磁盤陣列的分析,提出了如何在普通實驗室微機上進行磁盤陣列實驗的方法,并結合具體的操作系統設計了可行的方案。
關鍵詞:磁盤陣列;虛擬環境
中圖分類號:TP333文獻標識碼:A文章編號:1009-3044(2008)33-1292-02
Put RAID into Practice with a Single PC Virtual Environment
ZHU Qi-jia
(Wuxi Institute of Arts and Crafts, Wuxi 214200, China)
Abstract: Based on the disk array in the operating system, this paper puts forward the experiment method of how to realize disk array in ordinary laboratory, combining with the specific operating system design a feasible scheme.
Key words: RAID; virtual environment
1 引言
磁盤陣列是把多個磁盤組成一個陣列,當作單一磁盤使用,它將數據以分段(striping)的方式儲存在不同的磁盤中,存取數據時,陣列中的相關磁盤一起動作,大幅降低數據的存取時間,同時有更佳的空間利用率。一般高性能的磁盤陣列都是以硬件的形式來達成,進一步地把磁盤存取控制及磁盤陣列結合在一個控制器(RAID controller) 或控制卡上,針對不同的用戶解決人們對磁盤輸出入系統的四大要求:1)增加存取速度;2)提高容錯(fault tolerance)能力,即安全性;3)有效的利用磁盤空間;4)盡量的平衡CPU,內存及磁盤的性能差異,提高電腦的整體工作性能。
磁盤陣列有兩種方式可以實現,那就是“軟件陣列”與“硬件陣列”。軟件陣列是指通過網絡操作系統自身提供的磁盤管理功能將連接在SCSI卡上的多塊硬盤配置成邏輯盤,組成陣列。硬件陣列是使用專門的磁盤陣列卡來實現的。這兩種方式要在微機上實現,則必須有SCSI卡或磁盤陣列卡且使用多個相同的硬盤,這在現實中可以實現,但對學校實驗室來說具備這樣條件卻不多,且價格較高。為解決這個問題筆者通過多次探索與實踐,找到了在實驗室普通微機上做RAID實驗的方法。
2 磁盤陣列原理
磁盤陣列中針對不同的應用使用的不同技術,稱為RAID level,而每一level代表一種技術,RAID技術是一種工業標準,目前業界公認的標準是RAID-0、RAID-1、RAID-3、RAID-5。
RAID 0是無數據冗余的存儲空間條帶化,具有成本低、讀寫性能極高、存儲空間利用率高等特點,適用于音、視頻信號存儲等對速度要求極其嚴格的特殊場合。這種方式其實沒有冗余功能,沒有安全保護,只是提高了磁盤讀寫性能和整個服務器的磁盤容量。
RAID 1是兩塊硬盤數據完全鏡像,安全性好,技術簡單,管理方便,讀寫性能均好。因為它是一一對應的,所以它無法單塊硬盤擴展,要擴展,必須同時對鏡像的雙方進行同容量的擴展。因為這種冗余方式為了安全起見,實際上只利用了一半的磁盤容量,數據空間浪費大。
RAID 3在安全方面以奇偶校驗(parity check)取代海明碼做錯誤校正及檢測,所以只需要一個額外的校檢磁盤(parity disk)。如某一磁盤發生故障,換上新的磁盤后,整個磁盤陣列(包括奇偶校驗磁盤)需重新計算一次,將故障磁盤的數據恢復并寫入新磁盤中。磁盤陣列的第一個磁盤分段是校驗值,第二個磁盤至后一個磁盤再折回第一個磁盤的分段是數據,然后第二個磁盤的分段是校驗值,從第三個磁盤再折回第二個磁盤的分段是數據,以此類推,直到放完為止。
RAID5(如圖1)不用校驗磁盤而將校驗數據以循環的方式放在每一個磁盤中。RAID 5是目前應用最廣泛的RAID技術。各塊獨立硬盤進行條帶化分割,相同的條帶區進行奇偶校驗,校驗數據平均分布在每塊硬盤上。以n塊硬盤構建的RAID 5陣列可以有n-1塊硬盤的容量,存儲空間利用率非常高。任何一塊硬盤上的數據丟失,均可以通過校驗數據推算出來。它和RAID 3最大的區別在于校驗數據是否平均分布到各塊硬盤上。RAID 5具有數據安全、讀寫速度快,空間利用率高等優點,應用非常廣泛,但不足之處是如果1塊硬盤出現故障以后,整個系統的性能將大大降低。
3 建立虛擬機與添加硬盤
安裝好虛擬機后開始創建和配置虛擬機。建立虛擬機步驟如下:1)按 CTRL+N創建一個新的虛擬機;2)新建虛擬機向導,單擊 Next;3)虛擬機配置選擇 Custom;4)選擇客戶操作系統windows 2003 server;5)命名虛擬機并輸入位置;6)訪問權限選擇“Make this virtual machine private”;7)虛擬機帳戶選擇 “User that powers on the virtual machine”;8)選擇一個處理器;9)內存選擇700MB;10)網絡類型選擇 “Use bridged networking”;11)I/O 適配器類型選擇“ LSI Logic”;12)磁盤選擇“Create a new virtual disk”;13)虛擬磁盤類型選擇 SCSI;14)磁盤容量輸入“10GB”,取消選擇 “Allocate all disk space now”,為了節省空間,不必分配所有磁盤空間;15)磁盤文件輸入“localdisk.vmdk”,單擊“Finish”完成虛擬機的創建。

圖1 RAID5示意圖
要在windows 2003 server中做RAID實驗,需要向虛擬機中添加多個容量相同的硬盤。添加虛擬硬件設備磁盤步驟如下:1)在虛擬機主界面中選中windows 2003 server,單擊 “Edit virtual machine settings”按鈕打開硬件配置窗口;2)虛擬機設置界面中單擊 “Add”;3)新增硬件向導界面中單擊 “Next”;4)硬件類型選擇 “Hard Disk”;5)磁盤選擇“ Create a new virtual disk”;6)虛擬磁盤類型選擇 “SCSI”;7)指定磁盤容量輸入“1.0GB”,并復選“Allocate all disk space now”,如果希望節省空間,則不必分配所有磁盤空間。出于性能方面的考慮,需要為每個虛擬共享磁盤預先分配所有磁盤空間。特別是在 Oracle 數據庫創建期間或者當數據庫的 DML 活動較頻繁時,如果共享磁盤的大小增長快速,虛擬機可能會間歇掛起一段較短的時間甚至崩潰;8)輸入磁盤文件并復選“ Advanced”;9)虛擬設備節點選擇 “SCSI 1:0”,模式選擇 “Independent”,所有共享磁盤選擇 “Persistent”,最后單擊 “Finish”完成第一個虛擬SCSI硬盤的添加。
重復以上建立添加虛擬硬盤步驟1至9以創建四個虛擬SCSI硬盤,完成后在虛擬機的配置頁面就可以看到4個硬盤。有了新添加的虛擬硬盤,在Windows 2003 Server虛擬機中使用管理工具就可以進行RAID實驗。下面以RAID-5為例介紹實驗的設計過程。
4 創建與修復RAID-5卷
啟動虛擬機進入Windows 2003 Server桌面,在安裝Windows 2003 Server時,硬盤將自動初始化為基本磁盤。在基本磁盤分區中不能創建RAID-5卷,而只能在動態磁盤上創建類似的磁盤配置。在將一個磁盤從基本磁盤轉換為動態磁盤后,磁盤上包含的將是卷,而不再是磁盤分區。其中的每個卷是硬盤驅動器上的一個邏輯部分,還可以為每個卷指定一個驅動器字母或者掛接點。
轉換動態磁盤步驟如下:1)依次單擊“開始”-->“所有程序”-->“管理工具”-->“計算機管理”選項,顯示“計算機管理”窗口;2)在左側控制臺中依次展開“存儲”-->“磁盤管理”選項,以顯示計算機中安裝的所有磁盤;3)右擊要設置為動態磁盤的硬盤,并在彈出的快捷菜單中選擇“升級到動態磁盤”選項,將顯示“升級到動態磁盤”對話框;4)選中要升級的磁盤,然后單擊“確定”按鈕,將顯示“要升級的磁盤”對話框,在這里要求用戶對要升級為動態磁盤的硬盤進行確認。5)單擊“升級”按鈕,將顯示“磁盤管理”提示框,系統再次要求用戶對磁盤升級予以確認;6)單擊“是”按鈕,將顯示“升級磁盤”警告框。在這里提示要升級磁盤上的文件系統將被強制卸下,并要求用戶對該操作進一步予以確認;7)單擊“是”按鈕,系統將開始磁盤的升級過程。
實現RAID-5過程如下:1)在“磁盤管理”中,右擊要設置RAID-5的硬盤,并在快捷菜單中選擇“創建卷”選項,將顯示“創建卷向導”窗口;2)單擊“下一步”按鈕,將顯示“選擇卷類型”頁面,在這里選擇要創建的卷類型。通常情況下,為了保障數據的安全,應當選擇采用RAID-5卷;3)單擊“下一步”按鈕,將顯示“選擇磁盤”頁面。在左側“所有可用的動態磁盤”列表框中選擇要添加的磁盤,并單擊“添加”按鈕,即可將其添加至該RAID-5卷并顯示在“選定的動態磁盤”列表框中;4)動態磁盤添加安畢后,單擊“下一步”按鈕,將顯示“指派驅動器號和路徑”頁面。選中“指派驅動器號”選項,并為該RAID-5卷指派驅動器號,以便于管理和訪問;5)單擊“下一步”按鈕,顯示“卷區格式化”頁面。選擇“按下面提供的信息格式化這個卷”選項,并采用默認的NTFS文件系統和分配單位大小??梢詾樵揜AID-5卷指定一個卷標,以用于與其他卷相區別;6)單擊“下一步”按鈕,將顯示“完成創建卷向導”頁面,此時卷的創建完成;7、單擊“完成”按鈕,系統將自動格式化新創建的卷(如圖2)。至此,RAID-5卷已創建完成。

圖2 完成創建向導
磁盤冗余的目的就在于當磁盤出現故障時,系統能夠保存數據的完整性。如果在RAID-5中某個磁盤成員失敗必須及時加以恢復。替換磁盤和重新生成RAID-5卷步驟如下:1)更換故障磁盤,并將它設置為動態磁盤;2)在“磁盤管理”中,右擊失敗磁盤的RAID-5卷,在彈出的快捷菜單中選擇“恢復卷”選項,將顯示“修復RAID-5卷對話框”;3)選擇要在RAID-5卷中替換失敗磁盤的磁盤,并單擊“確定”按鈕。此時RAID-5卷開始自動修復;4)右擊失敗的磁盤,并在彈出的快捷菜單中選擇“刪除磁盤”選項,并從系統中刪除該磁盤。
5 實驗效果或小結
本實驗基于Windows XP環境下進行,在虛擬機中能很好地完成虛擬機創建、虛擬硬盤的增加、升級動態磁盤、創建與修復RAID-5卷等實驗,針對現實中實際RAID實驗,它無需增加硬盤與陣列卡等硬件,實驗也可以多次進行而對微機無額外要求。實驗結果表明它與實際通過硬件實驗達到了相同的效果,虛擬實驗環境對于RAID實驗是一個理想的選擇。
參考文獻:
[1] 二代龍震工作室.Windows 2003 Server實用教程[M].北京:電子工業出版社,2003.
[2] 蔣理.計算機網絡實驗操作教程[M].西安:西安電子科技大學出版社,2003.
[3] 易倍思工作室. 虛擬機全接觸[M].上海:科學技術出版社,2004.