Categories
最新消息

成本導向也能讓資料很安全穩定:使用 In-Band ECC 的 NAS

QNAP 最近推出的 TS-h765eU,支援了 In-Band ECC 機能。In-Band ECC 是什麼?這個有點眼熟的技術字眼,好像在哪裡常見到它。它是什麼?為什麼要特別拿出來講?使用了 In-Band ECC 技術的 NAS,會有什麼不同嗎?

先說結論:In-Band ECC 可以讓資料及 NAS 的運作保持高可靠度,同時又能控制成本。在「非極端效能取向」的應用場域裡,會非常吃香。

ECC 是什麼?

ECC 的概念早在電腦發展初期就出現了,主要是防止數位化的資料運算錯誤而誕生的一種除錯及檢查概念,故事很遙遠,不是我們今天要講的重點。

想像一下,如果你沒有電腦,想要寫一封很重要的信,比如給老闆的報告,或者是祝房東女兒生日快樂(是的,選擇比努力重要)。然後在寫完之後給印刷廠,請它們幫忙輸出成漂亮的印刷品。

你寫完之後,特別怕紙上有錯字,因為要是漏字或寫錯,或是手汗把字弄糊,意思可能就變了。所以你在信件角落寫下一些備註,像是「這頁應該有 50 個字,第三行有個快樂」,這樣就算紙被弄髒了,別人也能靠這些線索檢查出哪裡不對,甚至把錯的地方修正。這個備註的動作,就是 ECC 的核心概念。

聽起來好像很蠢對吧?這麼做不是很浪費時間嗎?是的,如果真的是手寫的信件,漏個字就算有傷大雅,也不致於詞不達意。但是到了數位領域,就完全不一樣了。

你的一封信,會先被儲存成不同的文字編碼,或者是轉換成二進位資料,總之最後進入到記憶體的,就是只會有 0 跟 1。如果少了一個 0 或一個 1,或是 1 變成 0、0 變成 1,造成的後果可不只是漏字那麼簡單,輕則信件漏掉一整段,重則整封信無法被讀取,更嚴重還可能造成系統崩潰。

ECC 全名叫 Error Correction Code,中文是「錯誤校正碼」。它其實是電腦裡的一種保護機制,專門用來應付記憶體或儲存裝置裡的資料出錯。ECC 的做法很簡單,就是在正常的資料旁邊多塞一些「檢查碼」。這些檢查碼就像剛說的備註,幫忙記錄資料應該長什麼樣。當電腦讀寫資料的時候,它會拿著這些檢查碼去比對,看看資料有沒有變。如果只是小錯,比如一個位元翻掉,ECC 能直接算出哪裡壞了,然後修好。如果錯得太多,它可能修不了,但至少能提醒你「這資料有問題」。

比方你的 NAS 裡存了一張照片,照片的資料是一串 0 和 1。沒 ECC 的話,一個位元錯了,照片可能變成亂七八糟的色塊。但如果有 ECC,它會在存照片的時候多加一串檢查碼,讀寫照片時,要是發現哪個 0 變成 1 了,ECC 就跳出來說:「等等,這不對,我來修!」然後照片就還是完好的。如果修不好,至少還會提醒你錯誤,而不是默不吭聲。

關於 ECC 的故事,礙於篇幅不能說太多。大家只要知道,電腦不是完全精準的,運作的穩定性取決於軟硬體的體質以及除錯的完整性及精確度,ECC,就是要用來除錯的。

In-Band ECC 很稀有嗎?

接下來談 In-Band ECC。既然 ECC 那麼重要,為何它不是每一台電腦或 NAS 的「標配」?

IT 界有位資深前輩曾經說過一句話:「任何科技的發展,脫離不了政治、商業及技術的三方角力」,簡單的說,ECC 會提高運作成本,所以要看應用值不值得付出這成本。

前面有提過,寫在紙上的除錯備註會增加墨水、紙張及腦力成本,電腦裡的 ECC 也是。因為需要額外的資料及算力處理這些除錯資訊,這些資訊最後都還是要用記憶體來儲存。

伺服器等級的電腦,通常有比較緊要的任務,而且是處理眾人的事。一般個人電腦,記憶體出錯頂多重開機就好了,所以在過去幾十年,ECC 大部份會用在伺服器或較高階的工作站上,來應付商業價值高或至關緊要的應用,甚至是軍事、股票、氣象、太空領域等等。

時至今日,個人電腦的除錯機制已經很完善了,而且目前主流的 DDR5 記憶體也大部份帶有 On-die ECC 機能,所以一般人可能感受不到除錯有多麼重要,那是因為電腦已經幫你完成了這個任務。

On-die ECC 又是啥?是的,ECC 也有分很多種。但是我們在這裡不必全盤了解,只需要知道 ECC 可以在記憶體裡頭自己做,也可以交由電腦處理器 (CPU) 的記憶體控制器來做,兩種方式的架構不同、目的也不盡相同。

如圖,左邊使用 In-Band ECC 架構,CPU 裡的記憶體控制器來負責與記憶體模組溝通除錯,要馬兒跑就要讓牠吃草,會耗上額外的算力、時間及頻寬。右邊的 On-die ECC 在模組上會有獨立元件,除錯可以自個兒來,節省頻寬與資源,但是羊毛出在羊身上,記憶體的硬體成本會較高。

假設 NAS 用的是最新的、帶有 On-die ECC 的 DDR5 記憶體,這種記憶體就像一個聰明的守門員,住在記憶體晶片裡面。這個守門員有自己的小房間,裡面藏著錯誤校正碼,可以完全靠自己工作。當資料進出時,他會自己檢查每一筆資料並除錯。這一切都發生在記憶體晶片的小宇宙裡,NAS 的 CPU 或記憶體控制器根本不需要知道它在幹嘛。這種守門員的好處是,他動作很快,而且完全不佔用外面的大通道,所以 NAS 的系統可以專心處理其他任務,像是在多個設備間快速傳輸檔案。

那麼,In-Band ECC 呢?如果記憶體本身沒有 ECC 功能,但 NAS 的處理器裡有一個很聰明的記憶體控制器,這個守門員沒有自己的小房間,所以他把錯誤校正碼直接塞進了記憶體的資料區,跟你的照片和文件混在一起。每次讀寫資料時,他都要親自跑去看一看,檢查有沒有錯誤,如果有,就當場修好。因為他把 ECC 碼跟資料放在一起,記憶體的空間會被分走一小塊,但這也意味著不需要額外的硬體來幫他做事,成本自然就低了一些。

這兩個守門員有什麼不同?簡單來說,On-die ECC 像是個獨立作業的隱形英雄,住在記憶體晶片裡,默默守護資料,對 NAS 的系統來說幾乎沒什麼負擔。而 In-band ECC 則像個勤勞的管家,住在處理器裡,跟記憶體密切合作,但需要犧牲一點空間和速度來完成任務。

依應用來選擇 NAS,同時也選擇記憶體類型

假設 NAS 每天要處理高頻寬的資料傳輸,還得跑 ZFS 這種需要高度資料完整性的檔案系統,或者是進行高強度的運算及講求即時反饋。自帶 ECC 的記憶體可讓系統保持流暢,對頻寬和延遲的影響幾乎可以忽略。這種穩定性在商用環境裡特別值錢,當然了,成本也會相對提高。

但是,如果可以用「時間」換取「效能」跟「成本」,那麼 In-Band ECC 也很有優勢。比如只求穩定而不求絕對快速,該台 NAS 甚至不必負擔第一線的熱儲存或熱運算,那麼確實不需要徒增成本。

事實上,不管是使用哪種解決方案,都不可能在 QNAP 的 NAS 上出現嚴重錯誤,最終的考量就是效能與成本的取捨。

那麼,究竟該選哪個?QNAP 在機器型號的規格選擇上非常多元,其實根本不必傷腦筋。

我們只是要讓您知道,最新的 TS-h765eU 也支援 In-Band ECC,您的選擇又更多了。支援 In-Band ECC 的機器,仍然可以使用帶 ECC 的記憶體,所以仍拿不定主意的話,先佈署也不遲。

記憶體除錯類型In-Band ECCOn-die ECC
效能影響稍高
系統及資料穩定性
整體成本稍高

By プロダクトマーケティング部 アソシエイト

Leave a comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *