ハードディスク・ドライブ
512バイトから4,096バイトへの移行に関する利点と注意点
ハードディスク・ドライブ業界には変化が訪れています。ここ数年で記録密度が劇的に高くなっている一方、ハードディスク・ドライブ設計において最も重要な側面の1つである論理ブロック・フォーマットのサイズ、すなわちセクターは依然として従来のままです。
各ハードディスク・ドライブ・メーカーは、2010年ごろに従来の512バイトのセクター・サイズからより大容量で効率性の高い4,096バイトのセクター・サイズへの移行を開始しており、この4,096バイトのセクター・サイズは、一般的には4Kセクターと呼ばれ、現在はIDEMA(国際ディスクドライブ協会)によるアドバンスド・フォーマット (Advanced Format) として知られています。
本書では、この移行の背景を説明すると共に、512バイト・セクターから4Kバイト・セクターへの移行に伴うお客様にとっての長期的な利点と、回避すべき問題について考察していきます。
これまで30年以上もの間、ハードディスク・ドライブに保存されるデータは、セクターと呼ばれる小さな論理ブロックにフォーマットされてきました。現代のコンピュータ・システムの多くの側面は、未だにこのフォーマット規格に基づいて設計仮定しています。
この従来のセクター・フォーマットには、ギャップ・セクション、同期セクション、アドレス・マーク・セクション、データ・セクション、エラー修正コード (ECC) セクションが含まれています(図1)。
図1. ハード・ドライブ・メディアの従来のセクター配置
このセクター配置の構造は以下のとおり設計されています。
この低レベル・フォーマットは長年の間、業界で使用されてきました。しかし、ハードディスク・ドライブの容量の拡大に伴い、ハードディスク・ドライブの容量拡大とエラー修正の効率性の向上において、セクター・サイズが次第に設計を制限する要素となってきました。たとえば、初期のハードディスク・ドライブと最近のハードディスク・ドライブのセクター・サイズと総容量を比較してみると、セクターの解像度が極端に小さくなっていることが分かります。セクターの解像度(ストレージ全体に対するパーセントとしてのセクターの割合)が非常に細かくなり、効率がますます低くなっています(表1)。
容量 | セクター合計 | セクターの解像度 |
40MB | 80,000 | 0.001% |
400GB | 800,000,000 | 0.0000001% |
12TB | 24,000,000,000 | 0.000000004 |
小容量の分離したデータを処理する場合は、細かい解像度が役立ちます。しかし、現代のコンピューティング・システムにおける一般的なアプリケーションでは、従来の512バイトのセクター・サイズよりも遥かに大きなブロック・サイズのデータを処理します。
さらに重要な点として、面密度が高くなるに従い、小容量の512バイト・セクターが使用するハードディスク・ドライブ表面のスペースはますます狭くなってきているという点が挙げられます。これは、エラー修正とメディアの欠陥の点を考えた場合、問題となります。たとえば図2では、ハードディスク・ドライブ・セクター内のデータが狭いエリアを使用している場合、エラー修正がより困難になります。これは、同じサイズのメディア欠陥でも、データのペイロード全体に対する損傷の比率が高くなるため、より強力なエラー修正が必要となるためです。
図2. メディアの欠陥および面密度
512バイト・セクターは通常、最高で長さ50バイトの欠陥を修正することができます。現代のハードディスク・ドライブは、高い面密度によってこのエラー修正の限界を押し上げつつあります。その結果、ハードディスク・ドライブ業界では、エラー修正機能の改善とフォーマット効率の向上に関連して、より大容量のセクターへの移行が基本的なニーズとなってきました。
ストレージ業界は長年、より大容量のセクターのハードディスク・ドライブ・フォーマットへの移行に一丸となって取り組んできました。Seagateでは、ハードディスク・ドライブ業界の同業者と共に、2005年から重要な取組みを展開しています(図3)。2009年12月、IDEMAにおける組織的な取り組みを通して、アドバンスド・フォーマットが、4Kバイト・セクターの規格の名称として指定され、承認されました。また、すべてのハードディスク・ドライブ・メーカーが、2011年1月より、アドバンスド・フォーマット・セクターのフォーマットを搭載したデスクトップおよびノートブック製品向けの新しいハードディスク・ドライブ・プラットフォームを販売することに最大限の努力を投じています。それ以前から、アドバンスド・フォーマット・ドライブが市場に参入し始めました。Seagateは、OEM顧客とブランド小売製品にセクター・サイズが大容量のドライブを出荷しました。
図3. アドバンスド・フォーマット規格開発の主な流れ
すべてのハードディスク・ドライブ・メーカーが、2011年1月までにアドバンスド・フォーマット・セクター・デザインへの移行を実施することで合意に達しているため、業界は起こり得るマイナス影響を最小限に抑えるために、この変更に適応し、受け入れ態勢を整えてきました。容量を直ちに増大するという観点からは、エンド・ユーザに対する短期的な利点は劇的なものではない一方、4Kサイズのセクターへの移行が、面密度とハードディスク・ドライブの容量が増えるほか、エラー修正が安定するという迅速な道筋を示したことは確実です。
エラー修正コードに使用するスペースを抑えることによって得られるフォーマット効率の向上
図4は、従来の512バイト・セクターの配置を示しています。各512バイト・セクターでは、データとは関係のないECCのためのオーバーヘッドとして50バイトが、またギャップ、同期、アドレス・マークの各セクション用として15バイトが使用されます。すなわち、セクターの効率1 は、約88パーセントとなります (512÷(512 + 65))。
図4. 従来の512バイト・セクターの配置
新しいアドバンスド・フォーマット規格で定められている4Kバイト・セクターへの移行が実施されれば、基本的には8つの従来の512バイト・セクターが1つの4Kバイト・セクターに統合されることになります(図5)。
図5. アドバンスド・フォーマット:4Kバイト・セクターの配置
アドバンスド・フォーマット規格でも、ギャップ、同期、アドレス・マーク用として同じバイト数が使用されますが、ECCフィールドが100バイトに増えます。すなわち、セクターの効率1 は、約97パーセントとなり (4,096÷(4,096 + 115))、約10パーセント向上することになります。
このフォーマット効率の向上により、高容量が実現し、データの完全性が高まることで、今後徐々に長期的な利益が得られることになります。
信頼性とエラー修正
ハードディスク・ドライブ上のセクターの物理サイズは縮小され、必要となる容量はますます小さくなっているものの、メディアの欠陥はまだまだ未解決のままです。非常に小さな物体との比較を示した図6をご覧ください。ハードディスク・ドライブの読み書きヘッドのフライング・ハイトと比較してみると、これらの物体は非常に大きな物です。この図にある物体よりもさらに小さな微粒子でさえも、ハードディスク・ドライブではメディアの欠陥の原因となります。
図6. ハード・ドライブのフライング・ハイトのサイズ比較
アドバンスド・フォーマット規格における大容量の4Kセクターは、ECC ブロックのサイズを50バイトから100バイトへと2倍に拡大し2、エラー修正に求められる効率性の改善や、粒子やメディアの欠陥に対する耐久性を高めます。
フォーマット効率の向上と、より強力なエラー修正機能という2つの利点により、4Kセクターへの移行を価値あるものにします。マイナス影響を最小限に抑えながら長期的な利点が得られるよう、移行を適切に管理することが、ハードディスク・ドライブ業界の今後の重要な課題です。
先述のとおり、現代のコンピューティング・システムには、セクターは常に512バイトであると仮定して作られたものが数多くあります。そのため、一挙に業界全体を新しい4K規格へと移行させ、従来のセクターをすべて変更するという考えは、現実的ではありません。ネイティブ4Kセクターの導入は、ホストとハードディスク・ドライブの両方において4Kブロックのデータの交換を行いながら、時間を掛けて実施されていくものと思われます。それまでは、各ハードディスク・ドライブ・メーカーは、512バイト・セクター・エミュレーションと呼ばれる方法を用いて、4Kセクターへの移行を実施します。
512バイト・セクター・エミュレーション
4Kサイズのセクターの導入は、512バイト・セクター・エミュレーションに大きく依存することになりました。これは、アドバンスド・フォーマットで使用される4K物理セクターを、ホスト・コンピューティング・システムで使用される従来の512バイト・セクターに変換するプロセスを指します。
512バイト・エミュレーションは、従来のコンピューティング・システムに複雑な変更を行う必要がないという点では、歓迎すべきものです。しかし、この方法は特に、8つの変換されたレガシー・セクターに正確に対応していないデータを書き込む場合、パフォーマンスに悪影響を及ぼす結果となる可能性があります。512バイト・エミュレーションで必要とされる読み書きのプロセスを見れば、この点がよく分かります。
エミュレートされた読み書きプロセス
4Kセクターでフォーマットされたドライブから512エミュレーション・モードでデータを読み取る場合のプロセスは、図7が示す通り、とてもシンプルなものです。
図7. 512バイト・エミュレーションに対する潜在的読み込みシーケンス
4Kブロックのデータを読み取り、ホスト・コンピュータから要求された特定の512バイト仮想セクターを再フォーマットするプロセスは、ドライブのDRAMメモリ内で実行されるもので、パフォーマンスへの影響はほとんどありません。
一方、書き込みのプロセスはより複雑で、ホスト・コンピュータが書き込もうとしているデータが物理4Kセクターのサブセットである場合などは特に複雑になります。このような場合、ハードディスク・ドライブはまず、ホストの書き込み要求の対象となっている場所を含む4K全体を読み取り、新しいデータと既存データを統合し、それから4Kセクター全体を再書き込みします(図8)。
図8. 512バイト・エミュレーションに対する潜在的書き込みシーケンス
この例では、ハードディスク・ドライブは、4Kセクターを読み取り、その内容を修正し、データを書き込むという形で、余分な機械的手順を実行する必要があります。このプロセスは、読み出し・修正・書き込みサイクルと呼ばれるもので、ハードディスク・ドライブのパフォーマンスに悪影響を及ぼすため、好ましくありません。読み出し・修正・書き込みの発生する可能性と頻度を最小限に抑えることが、スムーズでマイナス影響のない4Kセクターへの移行を実現するにあたって最も重要な点となります。
読み出し・修正・書き込みの回避
アラインおよび非アラインのハード・ドライブ・パーティション
ここまでは、ホスト・システムとハード・ドライブの間で、メディア上のセクターの場所がどのように通信されるかについては触れていません。これから、論理ブロック・アドレス (LBA) について説明していきます。
各512バイト・セクターには、ゼロ (0) から一定の数字(ディスクのサイズに基づいて必要となる数字)までの固有のLBAが割り当てられます。ホストは、この割り当てられたLBAを用いて、特定のデータ・ブロックを要求します。ホストがデータの書き込みを要求すると、LBAアドレスが書き込みの最後に返され、ホストに対してデータが存在する場所を伝えます。ホストのLBAの開始位置には8つ異なる可能性があり、これは4Kセクターへの移行において非常に重要となります。
LBA 0が4K物理セクターの最初の512バイトの仮想ブロックに整列されている場合、512バイト・エミュレーションの論理セクターと物理セクター間のアライメントの状態をアライメント0と言います。また、別の可能性として、LBA 0が4K物理セクターの2番目の512バイトの仮想ブロックに整列されている場合があります。この状態をアライメント1と言います。図9は、この状態とアライメント0の状態を比較したものです。この他にも、アライメント1の状態と同様に、読み出し・修正・書き込みのイベントをもたらす可能性のある整列されていない状態のパーティションが6つあります。
図9. アライメントの状態
アライメント0の状態は、アドバンスド・フォーマット規格の新しい4Kセクターとは非常に上手く機能します。これはハードディスク・ドライブが、8つの連続する512バイト・セクターを1つの4Kセクターに簡単に配置することができるためです。これは、4Kセクターを形成するのに十分な連続する512バイトのブロックを受信するまで、ハードディスク・ドライブのキャッシュに512バイトの書き込み要求が保存されるためです。現代のコンピューティング・アプリケーションは、通常4Kよりも大きなサイズのデータを処理するため、ラントは極めて異例なものです。ただし、アライメント1の状態は別問題です。
図9が示すように、非アライン状態の原因となるハードディスク・ドライブのパーティションが作成されると、ハードディスク・ドライブのパフォーマンスを低下させる読み出し・修正・書き込みのサイクルが発生します。これは、アドバンスド・フォーマット・ハード・ドライブの実装において、回避しなければならない重要な状態です。これについては、後ほど更に詳しく説明します。
小容量の書き込み
現代のコンピューティング・アプリケーションでは、文書、写真、ビデオ・ストリームなどのデータは、512バイトよりも遥かに大きなサイズです。そのため、ハードディスク・ドライブは、4Kセクターを形成するために十分な連続する512バイトのブロックを受信するまで、これらの書き込み要求をキャッシュに保存しておくことができます。ハードディスク・ドライブはパーティションがアラインされていれば、パフォーマンスを低下させることなく、512バイト・セクターを4Kセクターに簡単に配置することが可能となります。ただし、一定の低レベルのプロセスによって、ハードディスク・ドライブが、整列されていない状態のパーティションとは関係のないラント状態の処理を余儀なくされる場合もあります。これは、ホストが実質的に4Kよりも小容量の分離した書き込み要求を作成した場合に、稀に発生します。主に、ファイル・システム、ジャーナル処理、または、同様の低レベルのアクティビティを処理するオペレーティング・システム・レベルのアクティビティを行う場合などです。通常は、小容量ながらも多数発生するため、全体的なパフォーマンスに重大な影響が及ぶことはありません。ただし、システム設計者には、4Kへの移行を実際に行うにあたり、パフォーマンスを最大限に高めるために、これらのプロセスに適切な変更を加えることを検討するようお勧めします。
4Kセクターへの移行の利点とパフォーマンスへの影響の可能性をご理解いただいたところで、ここからはどのようにすれば業界がこの移行を最適に管理することができるかについて考察していきます。ここでは、現代のコンピューティングで展開される最も一般的な2つのオペレーティング・システム、WindowsとLinuxについて見ていきます。
Windows 環境での4Kセクターの管理
4Kセクターへの移行を管理するにあたり最も重要となる点は、上記で説明したとおり、アライメントに関連する問題です。アドバンスド・フォーマット・ドライブは、物理から論理への開始地点が同じであるアライメント0の状態には上手く対応します。アライメントの状態は、ハードディスク・ドライブのパーティションが作成される時に、同時に作成されます。パーティションは、次の2つの一般的分類に当てはまるソフトウェアによって作成されます。
Windowsオペレーティング・システムを用いてパーティションを作成する場合、当然議論が必要となるのは、Windows XP、Windows Vista、Windows 7の3つのリリースとなります。Microsoft は、より大容量のセクターへの移行を計画するコミュニティに参加していました。その結果、同社はWindows Vista Service Pack 1以降に、4Kセクター対応ソフトウェアをリリースしました。アライメント0(アドバンスド・フォーマット規格との相性が良い)のパーティションを作成するソフトウェアは、「4K対応」と呼ばれています。表2は、Microsoft Windowsオペレーティング・システムの最近の各リリースに関連した状況を示しています。
オペレーティング・システム・リリース | 4Kへの対応 | 結果 |
Windows XP | 非対応 | アライメント1の状態でプライマリ・パーティションを作成(非アライン) |
Windows Vista ― Service Pack 1以前 | 非対応 | 大容量セクター対応ではあるが、不正なパーティションを作成(非アライン) |
Windows Vista—Service Pack 1以降 | 対応 | アライメント0の状態でパーティションを作成(アライン) |
Windows 7 | 対応 | アライメント0の状態でパーティションを作成(アライン) |
Windows 10 | 対応 | アライメント0の状態でパーティションを作成(アライン) |
最新版Windowsが搭載された新しいコンピュータ・システムが、アドバンスド・フォーマット・ハードディスク・ドライブの使用に関しては有利な状況にあることは明らかです。一方、Windows XPやWindows Vista、Service Pack 1以前のリリースを使用しているシステムについては、OSが作成するパーティションに関連して、パフォーマンスが大幅に低下するというリスクがあります。
Windows OSの旧バージョンでは整列されていない状態のパーティションが作成される可能性がある他に、システム・ビルダー、OEM、付加価値再販売業者、IT管理者などに広く利用されているソフトウェア・ユーティリティの中には、整列されていないパーティションが作成されるものが数多くあります。実際のところ、パーティションは、Windows OSよりも、こうした種類のユーティリティによって作成される場合が一般的です。そのため、整列されていないパーティションが作成され、その結果として4Kセクターを使用するドライブのハードディスク・ドライブ・パフォーマンスが低下する可能性は非常に高くなります。さらに厄介なのは、現代のシステムに搭載されるハードディスク・ドライブは、複数のハードディスク・ドライブ・パーティションで構成されているという点です。これは、適切なアライメントとパフォーマンスを確保するためには、ハードディスク・ドライブ上の各パーティションを4K対応のパーティショニング・ソフトウェアで作成しなければならないということを意味します。図10は、4K非対応のソフトウェアで複数のハードディスク・ドライブ・パーティションを作成した場合に起こり得る結果を示したものです。
図10. 複数のパーティションとアライメントの状態
ハードディスク・ドライブのパフォーマンスに影響を及ぼす可能性のある非アライン状態を回避および/または管理する方法は3つあります。
4K対応バージョンのWindowsを使用してハードディスク・ドライブ・パーティションを作成する方法が、非アライン状態を最もシンプルで簡単に回避するための方法です。4K対応バージョンが利用可能であるかどうかについては、ハードディスク・ドライブ・パーティションを作成するソフトウェア・ユーティリティのベンダーにお問い合わせください。利用可能な場合、問題を回避するために対応バージョンに移行してください。
一部のハードディスク・ドライブ・メーカーでは、既存のハードディスク・ドライブ・パーティションを分析した上で、必要に応じて再アラインを行うためのユーティリティを提供することで、この問題に対応しています。この方法を取ると、システム構築やアップグレードのプロセスに時間と手間が掛かることになります。
ハードディスク・ドライブ・メーカーにとっての最終的な目標は、パフォーマンスにマイナス影響を与えることなく、非アライン状態を管理するためのより高度な方法を開発することです。
アドバンスド・フォーマット・ドライブへの移行の動きが高まる中、これらの方法はそれぞれ、パフォーマンスへの影響の可能性を抑えながら、業界の利益を最大化するために役割を果たすこととなります。
Windows環境での4Kセクターへの移行管理における重要な戦略は、Linuxにも当てはまります。Linuxシステムの大半のユーザーが、それぞれのニーズを満たすためにOSをカスタマイズするためのソース・コードにアクセスすることができます。これによって、アドバンスド・フォーマット・ハードディスク・ドライブを適切に管理するために、Linuxシステムを積極的にアップデートすることが可能になります。
Linuxシステムに変更を加えることで、アドバンスド・フォーマット・ドライブに上手く整列されたディスク・パーティションを適切に作成し、アライメントの問題に関連したラントの原因となる小容量のシステム・レベルの書き込みをできるだけ最小限に抑えるための手間を大幅に省くことができます。
Linuxは、カーネルとユーティリティの両方に対して、アドバンスド・フォーマット・ドライブをサポートするための変更を加えています。これらの変更により、アドバンスド・フォーマット・ドライブ上のすべてのパーティションを4Kセクター境界に適切に整列させることができます。アドバンスド・フォーマット・ドライブへのサポートは、バージョン2.6.31以降のカーネルで利用可能です。アドバンスド・フォーマット・ドライブの分割とフォーマットへのサポートは、以下のLinuxユーティリティで利用可能になります。
Fdisk:GNU Fdiskは、ハードディスク・ドライブの分割を行うコマンド・ライン・ユーティリティです。バージョン1.2.3以降が、アドバンスド・フォーマット・ドライブをサポートしています。
Parted:GNU Partedは、ハードディスク・ドライブ分割のためのグラフィック・ユーティリティです。バージョン2.1以降が、アドバンスド・フォーマット・ドライブをサポートしています。
今後、業界全体が従来の512バイト・セクターから移行していくことは確実です。ハードディスク・ドライブ・メーカーが、2011年1月までに、ノートPCおよびデスクトップ市場区分に向けて出荷する新モデルに、アドバンスド・フォーマット規格を導入することで合意に達しています。
ハードディスク・ドライブのエンジニアは、引き続き面密度の向上とより安定したエラー修正に取り組みます。ハードディスク・ドライブがさらに高容量になり、ギガバイトあたりのコストが軽減され、ハードディスク・ドライブ技術に求められる水準が上げれば、消費者にとってもメリットが生まれることになります。
スムーズな移行への鍵は、パフォーマンス低下の可能性を回避するために、ストレージ・コミュニティの知識を高めることにあります。アドバンスド・フォーマットで使用される4Kセクターへのスムーズな移行を成功させる上で、4K対応ハードディスク・ドライブ・パーティショニング・ツールの使用を促進することが最も重要になります。システム・ビルダー、OEM、インテグレータ、IT専門家、そしてコンピュータの構築や設定を行うエンド・ユーザの方々は、以下の点に注意してください。
同業者ならびに顧客の皆様が一丸となることで、ストレージ業界全体にとっての長期的な利益を高めながら、スムーズで効率的なアドバンスド・フォーマット4Kセクターへの移行を実現することが可能になります。
1 ここで言うセクターのフォーマットとは、データ・セクターのみを指すものであり、サーボ・データやその他のセクターの配置の非能率に関連するオーバーヘッドは考慮されません。
2 512バイトから4Kセクターへ移行する場合、4Kセクターの実施によって必ずしもECCバイトが2倍になるわけではありません。