[食譜好菜] 利用 Windows 內建的 RAID 機制將多顆硬碟合在一起用

手上或所處的資訊環境如果有一些舊硬碟,在還堪用的情況之下,應該會希望能持續發揮它的價值直到它生命的最終點,微軟從 Windows 7、Windows Server 2012 R2 開始就內建軟體式的 RAID 功能,有 JBODRAID-0RAID-1RAID-5 可以選擇使用,已經能滿足大部分的需求了。

我操作的環境是 Windows Server 2019,在開始選單上按右鍵,點擊 Disk Management(磁碟管理)進入磁碟機的管理畫面。

首先確認我們的磁碟機必須是 Unallocated(未配置)的狀態,只有在 Unallocated 的狀態才可以進行磁碟機的配置。

在任一 Unallocated 的磁碟機上按右鍵就會看到新增磁碟區的選單,選項分別是:

  1. New Simple Volume(新增簡單磁碟區)
  2. New Spanned Volume(新增跨距磁碟區)
  3. New Striped Volume(新增等量磁碟區)
  4. New Mirrored Volume(新增鏡像磁碟區)
  5. New RAID-5 Volume(新增 RAID-5 磁碟區)

New Spanned Volume(新增跨距磁碟區)

Simple Volume 就不介紹了,想要單純使用磁碟機就選 New Simple Volume,我們從 Spanned Volume 開始,它相當於做 JBOD,JBOD 嚴格來說它不算是 RAID,它是把磁碟機串聯起來變成一個大容量的空間來使用,作業系統會從第一顆磁碟機開始寫資料,等到第一顆磁機的空間滿了,再從第二顆開始寫資料……依此類推,所以讀寫速度跟單顆磁碟機一樣,如果所有磁碟機都寫滿了,我們可以再串新的磁碟機上去,擴充使用空間。

選擇 New Spanned Volume

加入磁碟機

做好的樣子

當磁碟機毀損的時候,這時就要看運氣了,如果我們想要的資料剛好放在沒有毀損的磁碟機中,資料就還在;不幸地在毀損的磁碟機中,那就 Let it go 了。

New Striped Volume(新增等量磁碟區)

Striped Volume 相當於做 RAID-0,將兩個以上的磁碟機並聯使用,不只空間等比增加,讀寫速度也是等比增加,作業系統會將我們的資料以 64K 大小切成一塊一塊的,分散儲存在磁碟機中。

選擇 New Striped Volume

加入磁碟機

做好的樣子

這邊有一件事要注意,加進去做等量磁碟區的磁碟機最好是相同大小,如果都不同大小,那麼會以最小的那個磁碟機可用空間為主,舉例來說,三個磁碟機的可用空間分別是 60G、70G、80G 的話,那做出來的等量磁碟區會是 180G,額外會空出 10G 及 20G 的空間,而且當磁碟機都用滿的時候,是沒有辦法再並聯新的磁碟機。

另外,跟 JBOD 不同的是,做成 RAID-0 的情況下,只要任一磁碟機毀損,全部的資料就毀損了,因此在選擇做成 RAID-0 之前千萬要想清楚。

New Mirrored Volume

Mirrored Volume 相當於做 RAID-1,將兩顆磁碟機做鏡像,資料在寫入一顆磁碟機時,同時抄寫到另外一顆上,可以允許一顆磁碟機毀損而資料還在,RAID-1 跟 RAID-0 一樣,所加入的磁碟機可用空間要相等,磁碟機如果不同大小,一樣是以可用空間最小的那顆為主。

選擇 New Mirrored Volume

加入磁碟機

做好的樣子

測試其中一顆磁碟機毀損

我先放一張圖片在剛剛建立的鏡像磁碟區

然後將其中一顆磁碟機拔除,可以看到我放的那張圖片還在。

New RAID-5 Volume

最後是 RAID-5 Volume,RAID-5 應該是滿常用的 RAID 類型,它兼顧了效能、成本及安全,在三者之間取得一個平衡,要做 RAID-5 至少需要三顆磁碟機,做好之後的可用空間會是 N-1 顆磁碟機大小,它將資料跟資料的奇偶校驗資訊分開儲存在不同的磁碟機上,當其中一顆磁碟機毀損了,可以利用剩下來的資料跟奇偶校驗資訊來恢復毀損的資料。

選擇 New RAID-5 Volume

加入磁碟機

做好的樣子

測試其中一顆磁碟機毀損

我一樣放了一張圖片在剛剛建好的 RAID-5 磁碟區,然後拔除一顆磁碟機之後,可以看到圖片依然健在。

最後再提醒一下,再怎麼穩固的 RAID 機制都無法確保資料百分之百不會丟失,隨時監控磁碟機狀況,出現異常訊息時,當換則換,並且做好備援及備份,這才是上策。

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學