セクタとOSの整合性

アライメントとは、並びや整列という意味です。HDDやSSDのセクタと、OSのクラスターサイズの並びや整合性を表す際に使われることがあります。

Windows 8.1や10などのOSを、ストレージにインストールして使う場合、このアライメントが問題になるということはありませんが、Windows 7以前のOS、ディスクのクローン作成などでは、アライメントにずれが生じ、その結果 読み書き速度がやや低下するということがあります。

このページでは、HDDやSSDに関連しているアライメント、物理セクタ、論理セクタ、パーティション開始オフセット、AFTなどについて解説しています。

物理セクタ

ハードディスクは、データを記録する最小の単位としてセクタという区画があります。またSSDも同様の概念があり ブロックということがあります。

このセクタのサイズは、主に 512バイトと4096バイトのものがあります。4096バイトは 4KBであるため、4Kセクタ、4Kハードディスクともいいます。

セクタあたり512バイトのハードディスク。

512バイト

セクタあたり4096バイトのハードディスク。

4096バイト

Windows XPの時期に使われていたハードディスクのセクタは ほとんど512バイトです。OSがVistaや7に移行する時期に、4Kセクタのハードディスクが多くなっています。

4Kのハードディスクが多くなった理由としては、ハードディスクの大容量化やエラー訂正の精度を高めることができるなどがあげられます。

このようなHDDやSSDのハードウェア側の物理的なセクタサイズのことを、物理セクターサイズ、物理セクターあたりのバイト数といいます。

論理セクタ

HDDやSSDには、OSをインストールして使います。例えば、Windows XPをストレージにインストールすると以下のようになります。

物理セクタ 512バイトのハードディスクに、Windows XPをインストール。

63番目

XPは512バイトをひとつのセクタとしてみます。このように OSがどのようにセクタをみるか、OS側から規定しているセクタサイズのことを 論理セクタといいます。

Windows XPでは、ハードディスク先頭から63番目を開始場所とするようになっています。厳密には 63という番号の振られたセクタと考えます。このような通し番号を LBA 論理ブロックアドレスといいます。

セクタは 0から始まります。先頭のセクタ0に 起動用のファイル、マスターブートレコード MBRがあります。つまりパーティションの開始する前には、0から62の63コのセクタ、512バイト×63=32256バイトの領域があることになります。これをパーティション開始オフセットといいます。

Windows Vista、7では、2048番目を開始場所とするようになっています。パーティション開始オフセットは、512バイト×2048=1048576バイトになります。

物理セクタ 512バイトのハードディスクに、Windows Vista、7をインストール。

2048番目

またWindowsでは、データをクラスターという単位で読み書きしています。アロケーションユニットサイズ、クラスターサイズといいます。パーティションの開始場所から始まり、サイズは4096バイトです。

512バイトのハードディスクでは、XP、Vista、7などいずれのOSでもハードディスクのセクタの境界とクラスターサイズがずれるということはなく、基本的にアライメントや読み書き速度に問題は生じないことになります。

Windows XPの時に問題となったのは、4Kのハードディスクが登場したときになります。

物理セクタ 4KのハードディスクにWindows XPをインストール。

4KハードディスクとXP

XPでは、ハードウェア側の4Kの物理セクタと、パーティション開始オフセットから始まる Windowsのクラスターサイズがずれることになります。これがアライメントがずれるという問題になります。

アライメントがずれると、データの読み込みではそれほど影響はありませんが、データを書き込む際に、やや速度が落ちることになります。

OSはデータを書き込む際に一度物理セクタの読み込みを行います。クラスターが4Kのセクタとずれていない場合は、1つのセクタのみ読み込みます。一方、クラスターが物理セクタの境界に有る場合は、2つの物理セクタを読み込んでから、書き込むという作業が行われます。

このように読み込みが2回行われるのが、書き込み速度が低下する原因です。

Windows Vistaや7、またそれ以降のOSでは、物理セクタと論理セクタ、クラスターサイズは以下のようになります。

物理セクタ 4Kのハードディスクに、Windows Vista、7をインストール。

4KハードディスクとVista・7

XPとはパーティション開始オフセットが異なるため、物理セクタとクラスターサイズの境界は一致するようになっています。

この4Kハードディスクというのは、一般的にAFTハードディスクというものになります。

AFT

ハードディスクメーカーは、OSの論理セクタである512バイトに対応するため、AFT アドバンスド・フォーマット・テクノロジーを採用したハードディスクを開発・製造しています。AFTを採用したハードディスクを AFTハードディスクともいいます。

AFTハードディスクは、物理セクタは4Kではあるものの、OSに対して 512バイトに疑似的に見せることができる、512バイトにエミュレートすることができます。そのためAFTハードディスクは、512eのように表記されることがあります。

またWestern DigitalやSeagateなどのハードディスクの仕様に、物理 4096・論理 512と表記されていることがあります。

AFTハードディスクAFTハードディスク。


AFTのハードディスクは、AFのマークが付いているのが特徴です。ただすべてのAFTハードディスクにマークが付いているというわけではありません。

AFTハードディスクとWindows Vista・7の組み合わせでは問題が起きることもあります。例えば、メーカー製パソコンでリカバリーができない、OS標準のイメージバックアップを行うことができないなどです。

Microsoftでは、Windows Vista、7、その他 Windows Sever 2008はアップデートを適用することで、対応可能としています。

アライメント調整

主にWindows XPでアライメントのずれを修正する作業を、アライメント調整といいます。パーティション開始オフセットをずらす作業です。

修正前。

修正前

修正後

修正後

例えば、XPではパーティション開始オフセットを、8の倍数にすれば 4KやAFTのハードディスクの物理セクタと合うことになります。

64、72、80など、アライメントを調整するソフトによって調整場所は異なってきますが、通常は 2048をとるソフトウェアが多いようです。Vistaや7と同じ場所になります。

このアライメントを調整するツールは、以前 Western Digitalが WD Align、HGSTが Hitachi Align Toolなどを提供していましたが、XPのサポートが終わったことに伴い現在は公開されていません。

8.1や10では、アライメントがずれるというということは、ほとんど起きないのですが、ディスクのクローン作成などで起きる可能性はあります。近年においても、ディスクのクローン作成、RAID構築などではやや注意が必要といえます。

何らかのかたちでアライメントがずれた場合は、アライメントの修正を行うことができるディスク管理やパーディション操作のソフトウェアを使うことになります。

パーティション開始オフセット

Windowsにおいては、パーティションの開始する場所から クラスターサイズ 4096バイトが始まります。そのため、パーティション開始場所と物理セクタの境界が一致する必要があります。

境界が一致するかどうか、アライメントがずれていないかどうかの確認は、パーティションが開始するまでの領域である パーティション開始オフセットが 4096で割り切れるかどうかになります。

msinfo32→コーポネント→記憶域、ディスク。

パーティション開始オフセット

Windows 10、EFIパーティション、システムパーティション、回復パーティションのあるディスクの例。それぞれのパーティションに、ディスク先頭からの領域、パーティション開始オフセットが表示されています。

基本的にそれぞれのパーティション開始オフセットが、4096で割り切れればアライメントはずれていないということになります。

他の内蔵・増設しているドライブでも確認することができます。

fsutil fsinfo ntfsinfo コマンド

コマンドプロンプトを管理者として実行し、コマンドを入力することで、現在使用しているハードディスクの物理セクタのサイズを調べることができます。

例えば、Cドライブなら fsutil fsinfo ntfsinfo c: と入力します。末尾の c:はハードディスクのドライブレター。EドライブやFドライブは、e: や f:になります。

物理セクターあたりのバイト数。

コマンドプロンプト

物理セクターあたりのバイト数の上の、セクターあたりのバイト数が論理セクタです。AFTハードディスクは、物理セクターあたりのバイト数が4096で、セクターあたりのバイト数が512になります。

物理 512・論理 512とあれば以前の512バイトのハードディスク(非AFTハードディスク)。またSSDは物理 4096、論理 512のものや、物理 512・論理512のものがあります。

近年のHDDやSSDは、物理 4096・論理 512が多くなっています。物理 4096・論理 4096となっているものが4Kネイティブといわれ、Windows 8.1や10が対応しています。