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 建立鏡像磁碟(Mirror) 至 "電腦管理" => "磁碟管理" 可看到 磁碟1 (HDD2) 是完全乾淨的磁碟 磁碟1 右鍵 => 初始化磁碟 磁碟0 (HDD1) 右鍵 => 轉換成動態磁碟 將兩顆磁碟都轉換成動態磁碟,完成後將重新開機 重開機後,再回到磁碟管理,磁碟0 上右鍵 "新增鏡像" 選取磁碟1(HDD2)作為鏡像目標 靜候Mirror同步完成 Mirror完成 磁碟故障測試 先在桌面上建立一個文字檔,來確認Raid功能是否正常 關機,將HDD1移除 開機正常,資料正確,來加上一筆資料 裝置管理員顯示只有一顆HDD 磁碟管理顯示一顆HDD遺失 關機,我把HDD2改為IDE 0,增加一顆HDD3設為IDE 1 開機正常,裝置管理員顯示為2個HDD 磁碟管理員顯示磁碟1 (HDD3)未配置,Mirror失敗 初始化磁碟1 (HDD3) 移除原本的Mirror 重建Mirror (步驟請參照上面不贅述) 切換磁碟開機與重新同步 上面展示了磁碟故障時如何重建Mirror,但如果磁碟不是全死,要如何取出磁碟檢測後讓Raid重新同步 ?  首先我們先到資料匣選項將隱藏檔顯示出來 編輯C:\boot.ini 複製operating system到第二行,並修改 rdisk 與描述 重新開機,出現開機選單就可以選擇你想用哪一顆磁碟開機了,在此我們先選擇用 HDD3 開機 開進OS,桌面上的文字檔再加上一筆註記,我們即將測試移除HDD2 關機,移除HDD2 再次選擇使用 HDD3 開機 錯誤 !! 這是正常的,因為IDE 0不見了,所以原本 IDE 1 的 HDD3 在系統上被當作 IDE 0了 選擇第一個開機 開機正常,只剩下一顆HDD HDD3被當作是"磁碟0"了 (因為是IDE 0) 確認資料正確 關機,把HDD2加回來 使用HDD2開機 BSOD !!   (ノ゚0゚)ノ~      這是正常的,因為HDD2的資料不同步 使用HDD3開機 開機正常,磁碟顯示為2 磁碟管理顯示"磁碟0" (HDD2) Raid不同步 在此我們桌面上的文字檔再加上一筆註記,我們來測試Rebuild HDD2 "磁碟0" (HDD2) 點選 "重新啟動磁碟區" Raid Rebuild 中 ...... 靜待Raid Rebuid完成 重新開機,選擇HDD2開機 開機正常 !! 資料正確 !! ⸜(。˃ ᵕ ˂ )⸝♡ 後話 前面說過,在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嗎 ?) (¬_¬") 建立鏡像磁碟(Mirror) 至 "電腦管理" => "磁碟管理",可看到 磁碟1 (HDD1) 是完全乾淨的磁碟 點及右鍵 => 連線 初始化磁碟 以 " 系統管理者身分 " 執行Powershell / cmd 先刪除HDD1的MSR diskpart list disk sel disk 1 list par sel par 1 delete par override list par 重新建立 EFI Boot磁區與MSR sel disk 0 list par sel disk 1 create par efi size=100 create par msr size=16 list par 將 磁碟0、磁碟1 轉換為"動態磁碟"後,離開diskpart sel disk 1 convert dynamic sel disk 0 convert dynamic exit 回到 磁碟管理,點選 磁碟0 上新增鏡像 Mirror進行中 Mirror完成 處理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 透過bcdedit /enum可以確認到現在EFI的開機的GUID P: cd EFI\Microsoft\Boot bcdedit /enum ※此指令只能在CMD下執行※ 將現有 {bootmgr} Clone一份出來,並把S設定為相同的{GUID} cmd bcdedit /copy {bootmgr} /d "Windows Boot Manager Cloned" bcdedit /set {GUID} device partition=S: 透過 bcdedit /enum all 可看到剛剛建立出來的開機選項 bcdedit /enum all 將剛剛的變更匯出為BCD2 bcdedit /export P:\EFI\Microsoft\Boot\BCD2 將P的資料全部複製到S robocopy p:\ s:\ /e /r:0 將S的BCD2更名為BCD,並刪除P的BCD2 S: cd EFI\Microsoft\Boot ren BCD2 BCD del P:\EFI\Microsoft\Boot\BCD2 回到diskpart,將磁碟代號 P、S 移除 diskpart list vol sel vol 1 remove letter P sel vol 2 remove letter S exit 到此EFI開機設定全數完成 (累...) 磁碟故障測試 關機,到Hyperv "設定"=>"韌體"中已經可以看到HDD1的 "Windows Boot Manager Cloned" 移除HDD0 將Windows Boot Manager Cloned開機順序提高至1 開機,使用第一個選項 HDD0 開機 無法開機,正常 點選Enter,重新選擇HDD1開機 開機正常,磁碟管理顯示"備援失敗" 至此,磁碟故障測試完成,如此確認了就算失去任何一顆HDD都能夠正常開機 重建Mirror 關機,我們將HDD0掛回來 選擇HDD1開機 裝置管理員確認已認到2顆HDD 磁碟顯示Mirror Fail,來移除鏡像 點選HDD0,匯入外部磁碟 將HDD0的舊磁區刪除 點選HDD1,重新建立Mirror Mirror中 Mirror完成 後話 僅以此分享一下即使是現在 UEFI Bios 年代,Windows Software Raid 依然還能用 只是你這輩子應該都不會再去用他 ……  ╮(╯_╰)╭