QNAP HA(高可用性):發生故障轉移時的資料一致性

HA架構下容錯移轉時的需求

當使用兩台NAS組成HA(高可用性)架構時,容錯移轉時所需達成的目標是什麼呢?理所當然,「當其中一台故障時,能夠自動切換到另一台,並持續作業」應該是大家的期待。

那麼,如果問「只要作業能持續進行,即使寫入中的資料出現資料損毀或遺漏也沒關係嗎?」基本上答案應該是「不行」。部分使用者可能會回答:「如果發生容錯移轉,反正正在寫入的檔案會重新寫入,所以沒問題。」這樣的意見也存在。

然而,如果有「可能發生一致性異常的事實」或「有些檔案未同步到備機的事實」,那麼在容錯移轉發生時,就必須比對備機端的資料集或檔案的checksum(檢查碼)來確認資料是否正確。

因此,最近QNAP的NAS已支援HA架構,隨之而來也收到「QNAP NAS在HA架構下發生容錯移轉時,資料的一致性是否能夠保障?」這樣的問題,所以進行了確認。該使用者目前使用日本廠牌的NAS,並反映「在發生容錯移轉時,有大量檔案未儲存到備機。

那麼,馬上來進行確認。

測試環境

這次使用的測試環境如下,架構大致如下所示。

容錯移轉發生時的一致性確認

從操作用PC透過叢集IP(192.168.131.230)複製檔案,在檔案複製過程中拔掉主機的電源線,觸發容錯移轉,並於複製完成後在叢集IP上確認md5sum值是否一致。

本次測試使用的檔案為Windows11的安裝程式檔案。

記事のコンテンツ

實驗!大容量檔案複製

如宣告所述,在叢集寫入檔案時拔掉主機的電源線。寫入會暫停,待容錯移轉完成後,複製會繼續並完成……

重複這樣的測試約3次,結果如下:

第1次 - 297b8c040ef6bb78edfb8d216b04b307 - 無問題
第2次 - 297b8c040ef6bb78edfb8d216b04b307 - 無問題
第3次 - 297b8c040ef6bb78edfb8d216b04b307 - 無問題

複製暫停的情況

測試過程中,也出現了這樣的情況:從主機切換到備機時,出現「發生了非預期的網路錯誤。」這類錯誤。

此時,主機端尚未完成的檔案已經反映到備機的資料夾,因此會同時顯示「備機已存在檔案,是否要覆寫?」的詢問。

此時在叢集IP上確認檔案,發現是複製中的檔案,且checksum(檢查碼)不一致。

遇到這種情況時,選擇「重試」->「取代檔案」,即可順利完成檔案複製,且不會發生不一致。

實驗2 大量檔案複製

複製大量檔案,並在過程中發生容錯移轉,確認檔案是否能完整複製到備機。

大量檔案部分,這次使用WIDER_train的樣本資料(檔案數12880,資料夾數63,總容量1.37GB)。

同樣在複製過程中停止主機電源來進行確認。

對複製的資料夾使用以下指令產生md5sum清單,並比較checksum及檔案清單。

find ./ |sort |xargs md5sum > md5sum.list

用diff指令比對清單,就能簡單確認是否有差異。

記事のコンテンツ

重複3次測試,均未發生差異。

結論

在QNAP NAS上構建HA架構,針對「大容量檔案、大量檔案兩種情境下,複製過程中拔掉主機AC電源線使其斷電」來確認容錯移轉時檔案一致性及是否有檔案遺漏。

結論是,在這樣的情境下,並未發生檔案一致性缺失或檔案遺漏的情況。

總結

因為收到「客戶對其他廠牌NAS的行為及規格有疑慮,想知道QNAP NAS的表現如何?」的詢問,所以確認了HA架構下發生容錯移轉時的行為。

本次分別針對「大容量檔案複製過程中發生容錯移轉」及「大量檔案複製過程中發生容錯移轉」兩種情境進行確認。

結果顯示,無論哪種情境,都未發生檔案一致性缺失或檔案遺漏等問題

「容錯移轉」本身通常是NAS故障所觸發,並非頻繁發生。正因為不常發生,事先掌握其行為,萬一真的發生時也能冷靜應對。

如果存在「可能發生檔案一致性缺失或檔案遺漏」的風險,容錯移轉時的操作就會變得非常複雜。

在這方面,若使用QNAP NAS構建HA架構,即使發生容錯移轉,也不會出現一致性缺失或檔案遺漏,能夠安心使用。

1個讚