硬碟機

先進格式 4K 磁區硬碟機轉換

從 512 位元組轉換成 4,096 位元組的利與弊

目錄

總覽

硬碟機產業已產生變化。邏輯區塊格式大小是硬碟機設計中最基本的層面之一,即眾所週知的磁區,雖然這些年來儲存密度已大幅提升,但磁區卻沒有變化。

大約在 2010 年,開始有硬碟機公司從舊有 512 位元組磁區大小轉換成更大、效率更高的 4,096 位元組磁區大小 (即一般所說的 4K 磁區標準,亦即現在 IDEMA (國際磁碟機驅動器、設備與材料協會) 所稱的先進格式)。

本報告提供了此項轉換作業的來龍去脈,並點出客戶可從 512 位元組轉換成 4K 磁區中獲得的長期好處及應避免的可能問題。

背景資料

過去 30 多年來,硬碟機中儲存的資料皆會格式化成稱為磁區的小型邏輯區塊,舊有磁區大小為 512 位元組。現代電腦系統仍有許多層面在設計上仍預設採用此格式標準。

舊有磁區格式分為間隙 (Gap) 部分、同步 (Sync) 部分、位址標記 (Address Mark) 部分、資料 (Data) 部分以及錯誤修正碼 (ECC) 部分 (圖 1)。


圖 1:硬碟機媒體上的舊磁區劃分

此磁區劃分結構設計如下:

  • 間隙 (Gap) 部分:間隙可分隔磁區。
  • 同步 (Sync) 部分:同步標記可表示磁區起點,並提供定時校準。
  • 位址標記 (Address Mark) 部分:位址標記含有識別磁區數量及位置的資料。另外它也會提供磁區本身的狀態。
  • 資料 (Data) 部分:資料部分含有使用者所有資料。
  • ECC 部分:ECC 部分含有錯誤更正碼,能用來修復及復原可能在讀取或寫入程序期間損壞的資料。

此低階格式在業界已行之有年。但隨著硬碟機的容量增加,磁區大小就逐漸成為提升硬碟機容量及錯誤修正效率的設計窒礙元素。例如,拿新舊款硬碟機的磁區大小與總容量來作比較,就能發現磁區解析度已變得非常精細。磁區的解析度 (總儲存容量百分比的磁區比例) 已變得非常精細,而效率逐漸下降 (表 1)。

容量 總磁區 磁區解析度
40MB 80,000 .001%
400GB 800,000,000 .0000001%
12TB 24,000,000,000 0.000000004

處理小型、分散的資料量時,高精細的解析度非常好用。但現代運算系統中常見的應用是處理大型區塊的資料、其實際上會遠大於舊有 512 位元組磁區大小。

更重要的是,因為磁錄密度增加,小型 512 位元組磁區在硬碟機表面所佔的空間已越來越小。這對錯誤更正環境定義而言是一項問題,並有發生媒體錯誤的風險。以圖 2 為例,硬碟機磁區中的資料會佔用更小的區域,導致更難執行錯誤更正,因為相同大小的媒體錯誤可能會損壞更高百分比的的總資料負載量,因此就需要更佳的錯誤更正強度。


圖 2:媒體錯誤與磁錄密度

512 位元組磁區一般可修正長度達 50 位元組的錯誤。時下內建領先業界之磁錄密度的硬碟機,都瀕臨著錯誤修正功能的極限。最終結果就是硬碟機產業為獲得更佳的錯誤修正功能及格式效率,勢必得轉換成更大磁區。

轉換成 4K 磁區標準 (先進格式)

儲存業界規劃轉換更大磁區的硬碟機格式已有數年之久,Seagate 與硬碟機業界同儕有重要的合作可追溯至 2005 年 (圖 3)。在 IDEMA 成員的同心協力下,於 2009 年 12 月提案通過以先進格式作為 4K 位元組磁區標準的名稱。此外,所有硬碟機製造商皆承諾自 2011 年 1 月起,販售使用先進格式磁區格式的新款桌上型電腦及筆記型電腦產品硬碟機平台。即使在該日期之前,先進格式硬碟機也會開始上市。Seagate 首先向 OEM 客戶及品牌零售產品提供大型磁區硬碟機。


圖 3:先進格式標準開發的重大事紀

4K 磁區的長遠優勢

既然所有硬碟機製造商皆同意在 2011 年 1 月前轉換成先進格式磁區設計,業界就必須採用並面對此一變更,盡量減少可能帶來的不良副作用。 雖然對一般使用者而言,容量立即增加在短期內沒有很明顯的優勢,但轉換成 4K 大小的磁區幾乎可說是邁向更高磁錄密度、硬碟機容量及更完善錯誤修正功能的捷徑。

透過減少錯誤修正碼所佔用的空間量,提升格式效率

如圖 4 中所示的舊有 512 位元組磁區劃分,每個 512 位元組磁區皆有非資料相關的經常性資料,其中 ECC 佔 50 位元組,間隙 (Gap)、同步 (Sync) 及位址標記 (Address Mark) 等部分則另佔 15 位元組。如此則能有約 88% 的磁區化1格式效率 (512/(512 + 65))。


圖 4:舊型 512 位元組磁區劃分

新的先進格式標準會採取的 4K 位元組磁區動作,實際上是將 8 軌 512 位元組磁區結合成單一 4K 位元組磁區 (圖 5)。


圖 5:先進格式:4K 位元組磁區劃分

先進格式標準會為間隙 (Gap)、同步 (Sync) 及位址標記 (Address Mark) 使用相同數量的位元組,但會將 ECC 欄位加到 100 位元組。如此則能有 97% 的磁區化1格式效率 (4,096/(4,096 + 115)),提升了將近 10% 之多。

這些格式效率的效果會逐漸發揮效用,不僅有助於獲得更高的容量規格,還能改善資料完整性。

可靠度及錯誤更正

雖然硬碟機磁區的實體大小縮減 (即佔用越來越少空間),媒體錯誤卻沒有減少。請見圖 6 上所顯示的影像,這些是我們會覺得非常小的物體影像。但與硬碟機讀/寫的磁頭飛行高度放在一起,這些物體相形之下就變大了。而遠比此表中物體更小的顯微粒子,就能在硬碟機中造成媒體錯誤。


圖 6:硬碟機磁頭飛行高度的小型比例尺

採用先進格式標準的較大 4K 磁區幾乎可讓 ECC 區塊大小從 50 位元組倍增2 為 100 位元組,提升粒子及媒體錯誤更需要的錯誤更正效率及完善性。

提升的格式效率以及更完善的錯誤更正等好處,即為轉換 4K 磁區所付努力的回報。妥善地進行此轉換,以在副作用最低的前提下享受長遠優勢,便是硬碟機產業關注的焦點。

瞭解轉換 4K 的影響

如先前所述,現代運算系統有許多層面仍預設磁區一律為 512 位元組。要在短時間讓整個業界都轉換成新的 4K 標準,並期望改變舊系統的預設情況,無疑是緣木求魚。原生 4K 磁區 (主機與硬碟機兩者交換 4K 區塊資料的位置) 會隨著時間普及。屆時硬碟機製造商便會搭載稱為 512 位元組磁區模擬的技術來導入 4K 磁區轉換作業。

512 位元組磁區模擬

4K 大小磁區的導入作業將大量倚重 512 位元組磁區模擬。此名詞指的是由先進格式所使用的 4K 實體磁區轉換至主機運算系統所需的舊型 512 位元組磁區的程序。

512 位元組模擬可為系統所接受,且不會強制為舊型運算系統執行繁複的變更。但它可能會為效能帶來負面影響,尤其是寫入未精準對應 8 軌轉換舊型磁區的資料時。端詳 512 位元組模擬的讀取及寫入程序便能瞭解此點。

模擬的讀取及寫入程序

若要透過 512 模擬模式從 4K 磁區格式的硬碟機讀取資料,程序非常簡單,如圖 7 所示。


圖 7:512 位元組模擬的可能讀取順序

主機電腦要求的 4K 資料區塊讀取及指定 512 位元組虛擬磁區重新格式化作業,會在硬碟機的 DRAM 記憶體中執行,不會對效能產生明顯的影響。

寫入程序就複雜得多,尤其是主機嘗試寫入的資料為實體 4K 磁區的子集時。在此情況下,硬碟機必須先讀取包含主機寫入要求目標位置的整個 4K 磁區、將現有資料與新資料合併,然後再重新寫入整個 4K 磁區 (圖 8)。


圖 8:512 位元組模擬的可能寫入順序

在此例中,硬碟機必須執行其他機制步驟,即讀取 4K 磁區、修改內容,然後寫入資料。此程序稱為讀取-修改-寫入 (Read-Modify-Write) 週期,但因為其對硬碟機效能有負面影響所以並不受歡迎。若要順利無礙地轉換成 4K 磁區,首重的議題是盡量減少發生讀取-修改-寫入事件的可能性及頻率。

預防讀取-修改-寫入

  1. 因為邏輯至實體磁碟分割區的校準不當,所以寫入要求校準不當
  2. 寫入要求大小小於 4K

已校準及未校準的磁碟分割區比較

截至目前為止,我們仍尚未探討過主機系統與硬碟機是如何傳送磁區在媒體上的位置。現在該向您介紹一下邏輯區塊位址 (LBA)。

系統會為每個 512 位元組磁區都指派一個專屬的 LBA,範圍從零 (0) 到依磁碟大小所需的數字。主機會要使用指派的 LBA 來要求指定的資料區塊。當主機要求寫入資料,則寫入作業結束時會傳回一個 LBA 位址,將資料位置告知主機。這對於轉換成 4K 磁區而言很重要,因為 LBA 有 8 個不同的可能起點。

當 LBA 0 依 4K 實體磁區中的第一個虛擬 512 位元組區塊校準時,512 位元組模擬的邏輯至實體校準情況即稱為「校準 0」。另一種可能的校準情況為 LBA 0 依 4K 實體磁區中的第二個虛擬 512 位元組區塊校準。此種情況稱為「校準 1」,如同圖 9 中與「校準 0」的比較所示。校準不當的磁碟分割區還有其他 6 種可能情況,會導致類似「校準1」的讀取-修改-寫入事件。


圖 9:校準情況

「校準 0」情況可完美地與採用先進格式標準的 4K 磁區搭配使用。這是因為硬碟機可輕鬆將 8 軌連續的 512 位元組磁區對應到單一 4K 磁區標準。方法是將 512 位元組寫入要求儲存到硬碟機的快取記憶體中,直到從 4K 磁區接收到足夠的連續 512 位元組區塊。因為現代運算應用系統會處理大量通常超過 4K 的資料,矮波較為少見。但「校準 1」情況又是另一個問題。

當建立的磁碟分割區導致如圖 9 中所示的校準不當情況時,所產生的讀取-修改-寫入週期會讓硬碟機的效能變慢。這是導入先進格式硬碟機時應極力避免的首要情況,會在往後章節中探討。

小型寫入

在現代運算應用系統中,文件、相片及視訊串流等資料皆遠大於 512 位元組。因此,硬碟機可以將這些寫入要求儲存到快取記憶體中,直到有足夠的連續 512 位元組區塊可建立 4K 磁區。只要校準好磁碟分割區,硬碟機即可輕鬆將 512 位元組對應至 4K 磁區,且不會影響效能。不過,有些低階程序會強制硬碟機處理與校準不當之磁碟分割區無關的矮波情況。但只有主機提出確實小於 4K 之分散寫入要求的少數情況下才會發生。通常是處理檔案系統的作業系統層級活動、日誌或類似低階活動。一般而言出現次數很少,所以對整體效能不會有明顯的影響。不過仍然建議系統設計商斟酌修適當地修改這些程序,以便在 4K 轉換完成後發揮最高效能。

準備轉換 4K 及加以對應

現在我們瞭解轉換至 4K 磁區的好處以及可能對效能造成的影響,該是時候看看業界進行此轉換的最佳方式。此主題常以現代運算中最常部署的兩種作業系統進行探討:Windows 和 Linux

在 Windows 環境中管理 4K 磁區標準

管理 4K 磁區轉換作業最重要的一個方向與前述的校準問題有關。先進格式硬碟機可適用實際至邏輯起點一致的「校準 0」情況。建立磁碟分割區時會產生校準情況。磁碟分割區是由兩大類的軟體所建立。

  1. Windows 作業系統版本
  2. 硬碟機磁碟分割公用程式

若是使用 Windows 作業系統建立的磁碟分割區,則有 3 種 Windows 版本可供探討:Windows XP、Windows Vista 及 Windows 7。Microsoft 也有參與規劃轉移成更大磁區。之後,便從 Windows Vista Service Pack 1 開始發行可相容於 4K 磁區的軟體。可建立「校準 0」(此情況可適用於先進格式標準) 的軟體稱為「支援 4K」表 2 說明與現行 Microsoft Windows 作業系統有關的情況。

作業系統版本 是否支援 4K? 結果
Windows XP 會建立含「校準 1」情況的主磁碟分割區 (校準不當)
Windows Vista-Pre Service Pack 1 磁區有變大但無法正確建立磁碟分割區 (校準不當)
Windows Vista-Service Pack 1 或更新版本 會建立含「校準 0」情況的磁碟分割區 (已校準)
Windows 7 會建立含「校準 0」情況的磁碟分割區 (已校準)
Windows 10 會建立含「校準 0」情況的磁碟分割區 (已校準)

不難發現隨附 Windows 最新版本的新款電腦系統,與使用先進格式硬碟機無關。但若為仍在使用 Windows XP 或 Windows Vista、pre-Service Pack 1 的系統,作業系統建立的磁碟分割區就可能會有效能下降的重大風險。

除了使用舊版 Windows 作業系統可能會建立未校準的磁碟分割區,還有多項廣泛用於系統建置商、OEM 廠商、加值經銷商及 IT 管理人員的軟體公用程式,也會導致未校準的磁碟分割區。事實上,使用這類公用程式來建立磁碟分割區的情況還比使用 Windows 作業系統本身更常見。因此建立未校準磁碟分割區的風險很大,讓環境可能會導致使用 4K 磁區的硬碟機效能下降。讓問題更加惡化的是,現今系統中所附的硬碟機多半是含有多重磁碟分割區。這表示說,必須以支援 4K 分割的軟體來建立各磁碟分割區,才能確保校準無誤並保持效能。圖 10 說明使用不支援 4K 的軟體來建立多個硬碟機磁碟分割區的可能結果。


圖 10:多磁碟分割區及校準情況

處理未校準情況

避免及/或因應可能影響硬碟機效能的可行方法有三種。

  1. 使用新版 Windows 作業系統或向您的分割公用程式供應商索取支援 4K 的軟體版本。
  2. 使用硬碟機公用程式來重新校準磁碟分割區。
  3. 無論校準情況為何,皆將效能管理交由您的硬碟機供應商來負責。

要避免未校準情況,使用支援 4K 的 Windows 版本來建立磁碟分割區是簡單又直接的方法。建立磁碟分割區的軟體公用程式廠商應可以告訴您是否有提供支援 4K 的版本。如果有,請轉換至該版本以避免日後出現問題。

部分硬碟機製造商現在有提供可檢驗目前磁碟分割區並視需要重新校準的公用程式,來解決此一問題。這個替代方案會花費額外的時間,而且會讓系統建置或升級程序的步驟更加繁雜。

最後,硬碟機製造商會開發出更精密的方法來因應未校準情況,同時避免對效能帶來負面影響。

隨著轉換至先進格式的浪潮越來越洶湧,前述各種方法都將扮演為產業帶來最大優勢、同時避免為效能帶來各種可能影響的角色。

在 Linux 環境中管理 4K 磁區標準

在 Windows 境中管理 4K 磁區轉換作業的首要策略也適用於 Linux。 多數 Linux 系統使用者都有原始碼的存取權,因此可以將作業系統客製以符合其特殊需求。這讓使用者有機會主動更新他們的 Linux 系統,以適當地採用先進格式硬碟機。

正確建立依先進格式硬碟機校準的磁碟分割區,以及盡量減少可能導致與校準問題無關的矮波之小型系統層級寫入等工作,大半可透過修改 Linux 系統省去。

Linux 的核心及公用程式兩者已有變更,可支援先進格式硬碟機。這些變更可確保先進格式硬碟機上所有磁碟分割區都有正確依 4K 磁區標準限制校準。核心 2.6.31 以上版本的核心已可支援先進格式硬碟機。以下 Linux 公用程式已可支援分割及格式化先進格式硬碟機。

Fdisk:GNU Fdisk 為可分割硬碟機的指令行公用程式。1.2.3 以上版本可支援先進格式硬碟機。

Parted:GNU Parted 為可分割硬碟機的圖形化公用程式。2.1 以上版本可支援先進格式硬碟機。

結論

業界對汰換舊型 512 位元組磁區已實現。硬碟機製造商皆同意在 2011 年 1 月前,為販售到筆記型電腦及桌上型電腦市場的新機種採用先進格式標準。

硬碟機工程師可繼續提供更佳的磁錄密度以及更完善的錯誤修正功能。客戶也因硬碟機容量越來越大、單位 GB 成本越來越低,及持續提供符合硬碟機技術期望的可靠度而受惠。

具備充分知識的儲存社群是順利轉換的關鍵,如此才能避免可能發生的效能問題。宣導使用支援 4K 的硬碟機磁碟分割工具,是順利且成功地轉換成先進格式所用之 4K 磁區的關鍵方向。若為系統建置商、OEM 廠商、整合商、IT 專業人員,或甚至是建置或組裝電腦的一般使用者,請務必:

  • 使用 Windows Vista (Service Pack 1 以上版本)、Windows 7 或更新版本建立硬碟機的磁碟分割區。
  • 使用協力廠商軟體或公用程式建立磁碟分割區時,請向廠商確認已有更新且確定可支援 4K。
  • 如果您的客戶時常重新製作系統映像檔,可建議他們確認其映像檔製作公用程式是否支援 4K。
  • 如果您使用的是 Linux,請向您的 Linux 廠商或工程組織確認系統已採用變更,可支援 4K。
  • 向您的硬碟機廠商諮詢在系統中使用先進格式硬碟機的相關建議或指示。

與業界同道及客戶同心協力,我們就能順利、有效率地轉換成先進格式 4K 磁區、讓整個儲存產業都能享受到可能的長遠優勢。

補充說明

1 磁區化格式專指資料磁區,且不會考量與伺服資料及其他無效磁區劃分相關的經常性資料。

2 並非每次導入 4K 磁區都能在從 512 位元組轉換成 4K 位元組磁區時讓 ECC 位元組加倍。