WesternDigital製HDD友の会 Vol.119

このエントリーをはてなブックマークに追加
12Socket774
■AFT問題発生条件
 対象    NGバージョン  OKバージョン
 Windows  XP以前      Vista以降
 Ubuntu   9.x        10.04以降
 GParted  0.5.x        0.6.x以降
 MacOS X            多分全て
 TrueImage  右以外     WD版TrueImageの最新版(ver.14010)

■AFT問題の症状
□アライメントズレの場合
・Random Write 4KB ≒ Random Read 4KB
・複数同時書き込みをすると物理セクタ未満のアクセスに分解されて無駄な回転待ちが発生しやすくなる。

□Windowsの場合
 WDのEARSをWindowsで使う場合、ディスクアクセスが512バイト セクタ単位となるため、
 ディレクトリエントリ、ファイル末尾への書き込みでは1回転の回転待ちが発生する。
 この問題はEARSについてはXP、Vista、7の全てで起こるが、平均ファイルサイズが1MBを超えるならば影響は小さいだろう。
 また、ファイルアクセス日時を記録しないようにすることでファイルアクセス性能が向上するだろう。

■AFT対策-確認方法
1.AFT問題が出ると Random Write 4KB ≒ Random Read 4KB となるので、それをベンチマークで測定する。
  測定に使用するパーティションはクイックフォーマットでよい。

2.1が確実だが、開始セクタが8で割り切れればよいので、GParted LiveCD等でブートしてプロパティを開き、
  物理パーティション、論理パーティションの開始セクタを調べ、8の倍数となっていることを確認しても良い。
  拡張領域は関係ない。

  ※ただし、ジャンパスイッチの有無は必ず確認すること。

  Windowsアクセサリの「システム情報」はパーティションの種類(物理/拡張)の区別がつかず、
  論理パーティションの開始セクタを見れないのでNG。
13Socket774:2010/07/26(月) 09:41:22 ID:Z1REMDAN
■それぞれのOSでフォーマットしたときの開始セクタ。
┏アライメント一致?
┃┏ジャンパによる対策可能? 
−− LBA  OS
×△ 63   Windows XP 以前
×△ 63   古いLinux(開始セクタは指定可能だが、デフォルトの場合)
×× 126  最新の GParted LiveCDでシリンダ境界に合わせた先頭論理パーティション
×△ 1071 一部の機種の場合、XP以前のOSの先頭論理パーティションがここに来ることもある。
○× 2048 Vista、Windows7で先頭の基本パーティション
○× 2048 Ubuntu 10.04 LTS以降、gparted-live-0.6.0-4.iso以降で先頭基本パーティション
○× 4096 Vista、Windows7で先頭論理パーティション
△× 16128 Windows XP 以前で先頭論理パーティション(一部機種では1071となる。)

○は問題なし。
×は不一致。
△は先頭パーティションについては問題ないが、後方パーティションでズレる。

■AFT対策-確実な方から
1.Windows Vista以降、Ubuntu10.04以降でパーティション作成。
2.パーティション作成後、WD Align Utilityを使う。複数パテ可能。(HDDを認識しない場合使えない)
3.全体を拡張領域とする。論理パテのサイズを16065MBの倍数で切れば複数パテも可能。(不一致になる条件あり)
4.Linuxコマンドラインでセクタ指定でfdisk。(よくわからないでやると壊れるかも。)

■AFT対策-Windows XP のみで使う場合に手軽(すばやく簡単)な方から
1.パーティション作成後、WD Align Utilityを使う。複数パテ可能。(HDDを認識しない場合使えない)
2.全体を拡張領域とする。論理パテのサイズを16065MBの倍数で切れば複数パテも可能。(不一致になる条件あり)
3.Windows Vista以降のセットアップDVDを使ってパーティション作成。
  (セットアップ手前でパテ割。先頭100MBの領域ができる。XPをセットアップする場合はブートパーティションの変更が必要。)
4.GParted LiveCD 0.6.x以降でパーティション作成。(Windowsからは壊れていると認識されるのでチェックディスクが必要。)
  ※GParted LiveCD 0.6.xは正式版ではないのでリスクあり。
5.Linuxコマンドラインでセクタ指定でfdisk。(よくわからないでやると壊れるかも。)
14■AAで理解するAFT問題■:2010/07/26(月) 09:44:51 ID:Z1REMDAN
◇WindowsXPのC:ドライブ(古いLinux含む)
 ↓第一パーティションの先頭(CHS:0,1,1 = LBAで63セクタ = 8 x 8 - 1)
┏━━━━━━━┳━━━━━━━┳━━━━━━━┳  ←アロケーションユニット(4kB)
┣┳┳┳┳┳┳┳╋┳┳┳┳┳┳┳╋┳┳┳┳┳┳┳╋  ←OSから見た物理セクタ(512B)
  ╋┻┻┻┻┻┻┻╋┻┻┻┻┻┻┻╋┻┻┻┻┻┻┻╋ ←EARSが申告する物理セクタ(512B)
  ┻━━━━━━━┻━━━━━━━┻━━━━━━━┻ ←ディスク上の物理セクタ(4kB)

◇WD Align Utility実行後
  ┳━━━━━━━┳━━━━━━━┳━━━━━━━┳ ←アロケーションユニット(4kB)
  ╋┳┳┳┳┳┳┳╋┳┳┳┳┳┳┳╋┳┳┳┳┳┳┳╋ ←OSから見た物理セクタ(512B)
  ╋┻┻┻┻┻┻┻╋┻┻┻┻┻┻┻╋┻┻┻┻┻┻┻╋ ←EARSが申告する物理セクタ(512B)
  ┻━━━━━━━┻━━━━━━━┻━━━━━━━┻ ←ディスク上の物理セクタ(4kB)

◇書き込み時の動作
  ┳━━━━━━━┳━━━━━━━┳━━━━━━━┳ ←OS側
  ╋┳┳┳┳┳┳┳╋┳┳┳┳┳┳┳╋┳┳┳┳┳┳┳╋ ←読み書きはセクタ単位
1↓■■■        ←書き込むデータ
2↑□□□□□□□□ ←読み出したデータ
3↓■■■□□□□□ ←実際に書き込むデータ
  ╋┻┻┻┻┻┻┻╋┻┻┻┻┻┻┻╋┻┻┻┻┻┻┻╋ 
  ┻━━━━━━━┻━━━━━━━┻━━━━━━━┻ ←HDD側
  半端なセクタは一旦読み出してキャッシュで編集。
  そうしないと物理セクタの後方にある論理セクタのデータが消える。

◇問題の起きない、物理4kB申告でWindows7+対策パッチの場合
  もしくはLinuxで4kBクラスタ
  ┳━━━━━━━┳━━━━━━━┳━━━━━━━┳ ←OS側
  ╋━━━━━━━╋━━━━━━━╋━━━━━━━╋ ←セクタサイズを正しく認識
↓ ■■■□□□□□ ←書き込むデータ
  ╋━━━━━━━╋━━━━━━━╋━━━━━━━╋ ←物理サイズ4kBと申告
  ┻━━━━━━━┻━━━━━━━┻━━━━━━━┻ ←HDD側
  ■書き込みたいデータ
  □ギャップを埋めるデータ
  OSが物理セクタと同じサイズのデータを用意するので、上書きするだけでよい。