Windows Software Raid


Windows Software Raid - Legacy MBR

前言

上次寫到了Linux的Software Raid https://mdfk.goddamn.idv.tw/books/linux/page/linux-software-raid-mdadm

相對於Linux現在在UEFI Bios上Sofrware Raid設定起來很方便,現在的Windows Software Raid在UEFI Bios上操作起來就如同Legacy Bios上的Linux Software Raid一樣很麻煩,此篇先回顧一下"想當年" Legacy Bios上Windows Software Raid是如何建立的,下一篇再來談現在UEFI Bios上面如何建立。

But ...... 一定要先說在前面,在Windows 2003那個年代除非使用Hardware Raid Card否則是沒什麼更好的Raid選擇,一些最便宜的Server大多都只能用這個方式來達成資料冗餘,但在Windows Software Raid在Intel® 快速儲存技術(Intel RST / IRST / RSTe / VROC)技術出來之後,現在Windows Software Raid在實務上基本上完全沒有人會去使用,如今一台Workstation等級的機器就算沒有Harware Raid Card都完全支援Intel Software Raid,比起Windows Software Raid來說好用簡單太多Performance又好,這種Windows Software Raid可謂是時代的眼淚,所以基本上此篇分享就是個單純完全無用的技術分享。  ╮(╯_╰)╭

設定方式

資料來源 : https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/mirror-system-boot-partition-raid1

測試環境

鍵人我使用Hyperv第一代來模擬Legacy Bios環境,HDD1先安裝好Windows 2003 R2 OS,HDD2為同大小完全新的HDD

image.png

image.png

建立鏡像磁碟(Mirror)

至 "電腦管理" => "磁碟管理"

image.png

可看到 磁碟1 (HDD2) 是完全乾淨的磁碟

image.png

磁碟1 右鍵 => 初始化磁碟

image.png

磁碟0 (HDD1) 右鍵 => 轉換成動態磁碟

image.png

將兩顆磁碟都轉換成動態磁碟,完成後將重新開機

2024-07-18_17-15_1.png

image.png

image.png

image.png

image.png

重開機後,再回到磁碟管理,磁碟0 上右鍵 "新增鏡像"

image.png

選取磁碟1(HDD2)作為鏡像目標

image.png

靜候Mirror同步完成

image.png

Mirror完成

image.png

磁碟故障測試

先在桌面上建立一個文字檔,來確認Raid功能是否正常

image.png

關機,將HDD1移除

image.png

開機正常,資料正確,來加上一筆資料

image.png

裝置管理員顯示只有一顆HDD

image.png

磁碟管理顯示一顆HDD遺失

image.png

關機,我把HDD2改為IDE 0,增加一顆HDD3設為IDE 1

image.png

開機正常,裝置管理員顯示為2個HDD

image.png

磁碟管理員顯示磁碟1 (HDD3)未配置,Mirror失敗

image.png

初始化磁碟1 (HDD3)

image.png

移除原本的Mirror

image.png

image.png

image.png

image.png

重建Mirror (步驟請參照上面不贅述)

image.png

切換磁碟開機與重新同步

上面展示了磁碟故障時如何重建Mirror,但如果磁碟不是全死,要如何取出磁碟檢測後讓Raid重新同步 ? 

首先我們先到資料匣選項將隱藏檔顯示出來

image.png

編輯C:\boot.ini

image.png

複製operating system到第二行,並修改 rdisk 與描述

image.png

重新開機,出現開機選單就可以選擇你想用哪一顆磁碟開機了,在此我們先選擇用HDD3開機

image.png

開進OS,桌面上的文字檔再加上一筆註記,我們即將測試移除HDD2

image.png

關機,移除HDD2

image.png

再次選擇使用HDD3開機

image.png

錯誤 !! 這是正常的,因為IDE 0不見了,所以原本 IDE 1 的 HDD3 在系統上被當作 IDE 0了

image.png

選擇第一個開機

image.png

開機正常,只剩下一顆HDD

image.png

HDD3被當作是"磁碟0"了 (因為是IDE 0)

image.png

確認資料正確

image.png

關機,把HDD2加回來

image.png

使用HDD2開機

image.png

BSOD !!  (ノ゚0゚)ノ~     這是正常的,因為HDD2的資料不同步

image.png

使用HDD3開機

image.png

開機正常,磁碟顯示為2

image.png

磁碟管理顯示"磁碟0" (HDD2) Raid不同步

image.png

在此我們桌面上的文字檔再加上一筆註記,我們來測試Rebuild HDD2

image.png

"磁碟0" (HDD2) 點選 "重新啟動磁碟區"

image.png

image.png

Raid Rebuild 中 ......

image.png

靜待Raid Rebuid完成

image.png

重新開機,選擇HDD2開機

image.png

開機正常 !! 資料正確 !! ⸜(。˃ ᵕ ˂ )⸝♡

image.png

後話

前面說過,在Windows 2003那個年代除非使用Hardware Raid Card否則是沒什麼更好的Raid選擇,一些最便宜的Server大多都只能用這個方式來達成資料冗餘,但在Windows Software Raid在Intel® 快速儲存技術(Intel RST / IRST / RSTe / VROC)技術出來之後,現在Windows Software Raid在實務上基本上完全沒有人會去使用,如今一台Workstation等級的機器就算沒有Harware Raid Card都完全支援Intel Software Raid,比起Windows Software Raid來說好用簡單太多Performance又好,這種Windows Software Raid可謂是時代的眼淚,現在也許在某些"特殊"的情境下或許會對大家有幫助......吧 (?)

至於UEFI上設定Windows Software Raid的複雜程度就比MBR上高了不少,欲知詳情下回分解 ( ˶°ㅁ°) !!

Windows Software Raid - UEFI GPT

前言

延續之前 Windows Software Raid - Legacy MBR 的技術分享 ,Windows 2003年代還會有一些低階Server有機會那樣做,在Intel® 快速儲存技術(Intel RST / IRST / RSTe / VROC)技術出來之後,現在Windows Software Raid在實務上基本上完全沒有人會去使用,如今一台Workstation等級的機器就算沒有Harware Raid Card都完全支援Intel Software Raid,比起Windows Software Raid來說好用簡單太多Performance又好,這種Windows Software Raid可謂是時代的眼淚,此篇 Windows Software Raid - UEFI GPT 相較於 Legacy MBR 在設定上更加麻煩、實用性上更低,基本上就是分享一下現代的Windows Server還是可以在UEFI GPT上還是可以做Software Raid,但...你這輩子應該都不會這樣做。

設定方式

資料來源 : https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/set-up-dynamic-boot-partition-mirroring

測試環境

鍵人我使用Hyperv第二代來模擬UEFI GPT環境,HDD0先安裝好Windows 2022 OS,HDD1為同大小完全新的HDD,同時先刪除Recover磁區 (你真的在Server上用過Recover嗎 ?) (¬_¬")

圖片.png

圖片.png

建立鏡像磁碟(Mirror)

至 "電腦管理" => "磁碟管理",可看到 磁碟1 (HDD1) 是完全乾淨的磁碟

圖片.png

圖片.png

點及右鍵 => 連線

圖片.png

初始化磁碟

圖片.png

圖片.png

"系統管理者身分"執行Powershell / cmd

圖片.png

先刪除HDD1的MSR

diskpart
list disk
sel disk 1
list par
sel par 1
delete par override
list par

圖片.png

重新建立 EFI Boot磁區與MSR

sel disk 0
list par
sel disk 1
create par efi size=100
create par msr size=16
list par

圖片.png

將 磁碟0、磁碟1 轉換為"動態磁碟"後,離開diskpart

sel disk 1
convert dynamic
sel disk 0
convert dynamic
exit

圖片.png

回到 磁碟管理,點選 磁碟0 上新增鏡像

圖片.png

圖片.png

Mirror進行中

圖片.png

Mirror完成

圖片.png

處理EFI Boot

Mirror是處理好了,但是EFI可不像是MBR直接使用Active來指定開機的磁區,所以在這裡我們必須對HDD1的EFI磁區進行處理,這樣一但出問題HDD1才能夠獨立開機。

首先先進Diskpart,將剛剛未格式化的EFI磁碟格式化為FAT32,並把HDD0 EFI掛載為P、HDD1 EFI掛載為S

diskpart
sel disk 1
sel par 1
assign letter=S
format fs=FAT32 quick
sel disk 0
sel par 1
assign letter=P
exit

圖片.png

透過bcdedit /enum可以確認到現在EFI的開機的GUID

P:
cd EFI\Microsoft\Boot
bcdedit /enum

圖片.png

※此指令只能在CMD下執行※

將現有 {bootmgr} Clone一份出來,並把S設定為相同的{GUID}

cmd
bcdedit /copy {bootmgr} /d "Windows Boot Manager Cloned"
bcdedit /set {GUID} device partition=S:

圖片.png

透過 bcdedit /enum all 可看到剛剛建立出來的開機選項

bcdedit /enum all

圖片.png

將剛剛的變更匯出為BCD2

bcdedit /export P:\EFI\Microsoft\Boot\BCD2

圖片.png

將P的資料全部複製到S

robocopy p:\ s:\ /e /r:0

圖片.png

將S的BCD2更名為BCD,並刪除P的BCD2

S:
cd EFI\Microsoft\Boot
ren BCD2 BCD
del P:\EFI\Microsoft\Boot\BCD2

圖片.png

回到diskpart,將磁碟代號 P、S 移除

diskpart
list vol
sel vol 1
remove letter P
sel vol 2
remove letter S
exit

圖片.png

到此EFI開機設定全數完成 (累...)

磁碟故障測試

關機,到Hyperv "設定"=>"韌體"中已經可以看到HDD1的 "Windows Boot Manager Cloned"

圖片.png

移除HDD0

圖片.png

將Windows Boot Manager Cloned開機順序提高至1

圖片.png

開機,使用第一個選項 HDD0 開機

圖片.png

無法開機,正常

圖片.png

點選Enter,重新選擇HDD1開機

圖片.png

開機正常,磁碟管理顯示"備援失敗"

圖片.png

至此,磁碟故障測試完成,如此確認了就算失去任何一顆HDD都能夠正常開機

重建Mirror

關機,我們將HDD0掛回來

圖片.png

選擇HDD1開機

圖片.png

裝置管理員確認已認到2顆HDD

圖片.png

磁碟顯示Mirror Fail,來移除鏡像

圖片.png

圖片.png

圖片.png

圖片.png

點選HDD0,匯入外部磁碟

圖片.png

圖片.png

圖片.png

將HDD0的舊磁區刪除

圖片.png

圖片.png

點選HDD1,重新建立Mirror

圖片.png

圖片.png

Mirror中

圖片.png

Mirror完成

圖片.png

後話

僅以此分享一下即使是現在 UEFI Bios 年代,Windows Software Raid 依然還能用

只是你這輩子應該都不會再去用他 ……  ╮(╯_╰)╭