Advanced Formatと4Kセクタ
ディスクのベンチマークが遅い場合など、開始オフセットを調べて4096で割り切れない数値の場合にはアライメント調整が必要だということは良く聞きます。
書き込む大きさが4096バイトごとなのでずれているとパフォーマンスが低下するという理由もよく聞く。
そして、
Windows XPではインストール前にdiskparコマンドを使ってオフセットを調整した後にクイックフォーマットをしなくてはいけないとか、クローンソフトでアライメント調整ができるソフトがあるというのも調べればすぐに出てくる。
色々調べていると512バイトだとかAFTだとか63、2048と色んな数値が出てきてそれは何なのか良く分からないのでもう一回調べてみた。
ディスクへの読み書き
ディスクはセクタと呼ばれ領域で区画されていて、セクタが最少記録単になる。
ハードディスクはずっと1セクタに512バイトの容量でしたが、512バイトから4KBへ拡張する動向がみられ2009年に4Kセクタ(4KB)が規格認証されました。
2011年頃から多くのハードディスクメーカからAdvanced Format(AFT)ハードディスクが販売されるようになります。
このAFTハードディスクが1セクタで4096バイトの容量になります。(「物理では4Kセクタであるがエミュレーションを行うことで論理上512セクタとして使える」ということらしいです。)
1セクタが512バイトから4096バイト(512バイトの8倍)になったバードディスクが販売されたことがアライメント調整が必要になるきっかけだったようです。
スポンサードリンク
Windowsとクラスター
Windwosはデータをクラスターという単位で読み書きし、1つのクラスターが最小単位で(512バイトx8=)4096バイトになります。
Windows XPは512バイトを一つの論理セクタとして、63番目を開始位置として書き込みます。よってWindows XPの開始オフセットは512バイトx63で32256バイトとなります。
1セクタが512バイトのハードディスクにWindowsXPをインストールした場合は63番目から8セクタ使用して1クラスター書き込みので特に問題はありません。
しかし、AFTハードディスクにWindowsXPをインストールした場合、開始オフセットが32256バイトな為、4096バイトを1セクタとする区画からずれてしまいます。
よってクラスターから物理セクタにデータが書き込まれる際、物理セクタの境界があったら次の物理セクタも一度読み込んでから書き込みという作業になるので書き込みパフォーマンスが悪くなります。
なので、物理セクタとクラスターがずれない様に開始オフセット位置を調整することでパフォーマンスアップにつながるというわけです。
Windwos Vista以降のOSでは2048番目を開始場所とするようになっているので、開始オフセットは512バイトx2048=1048576バイトになります。
1048576バイトは256x4096ですので物理セクタの境界と一致し、アライメントの調整が必要ないというわけです。
開始オフセットはずれることがある
通常Windows Vista以降のOSでは開始オフセットのズレはないのですが、ハードディスクからSSDへクローンしたり、パーティションの自動調整縮小機能を利用したり理由は様々?良く分からない?ですが開始オフセットがずれてしまう場合もあります。
アライメント調整しないと絶対にダメというわけではないですが、ベンチマークの数値が気になるとか体感も遅いという場合にはアライメント調整できるソフトを利用するか、それでもダメならフォーマット(クイックフォーマットではダメ)しなおしてOSのインストールからするしかないでしょう。
アライメント調整できるアプリケーション
- AOMEI Partition Assistant Standard Edition 6.0
- EaseUS Partition Master11.9 (4Kアライメント)
- EaseUS Todo Backupで復元(SSDの場合は復元時にする際に「Optimize for SSD」にチェックを入れる。)
開始オフセットの確認方法
「ファイル名を指定して実行」(ウィンドウズキー+R)で「msinfo32」と入力してシステム情報を起動します。
「コンポーネント」 - 「記憶域」 - 「ディスク」と選びます。
接続されているディスクが全て表示されていますので、調べたいディスクを「モデル」を元に探します。「パーティション開始オフセット」がパーティションの数だけありますのでその数値を確認してください。
この「パーティション開始オフセット」の数値が「4096」で割り切れる数値の場合は、1セクタ=1クラスターとしてズレが無く書き込む事が出来るのでアライメント調整は必要ないというわけです。
ということであっているはずです…たぶん。
スポンサードリンク