きゃびあぐりーん

2016年9月19日

巷でウワサのWestern Digital製HDD Caviar Greenについて調べてみた。
現行最新のWD製HDDには2TBが4種類あり
古いものから
WD20EADS、WD2001FASS、WD20EARS(500GB)、WD20EARS(667GB)
ってな型番になっています。
このうち後者2種類は型番が一緒ですが
内蔵されているプラッタ(中のディスク1枚辺りの容量)容量に違いがあり
500GBの方は、プラッタ4枚を内蔵して500GBx4で2TBを実現し
667GBはプラッタ3枚で667GBx3で2001GB≒2TBを実現しています。
また、後者2種類は他にも物理フォーマットの仕様が異なっており
今までは512バイトセクタでフォーマットされていたのですが
そこを4096バイトに変更されています。
今回はそこを詳しく調べてみた。
久しぶりに長くなったので追記に↓
しかも文章ばっか。得た知識を無い頭なりに解釈したので読み辛いかも。
6/20 3:26 いきなり追記。
検証:アドバンスト・フォーマット・テクノロジー
こちらのサイトにてAFTの検証が詳しく行われており
サイト内にあるツールMimicXPSにて論理セクタサイズをエミュレーションして
XP環境下でもWD20EARSのパフォーマンスをフルに発揮できる模様。
続きに書いた私の記事は何の意味無いらしいwwwww


まず、4096バイトセクタのフォーマットはAFTと呼ばれ
(Advanced Format Technology)
512→4096にした事によって、2TBの上限突破と、エラー訂正の強化を狙った変更。
なんじゃらほいといった所ですが
パソコンはデータを書き込む時にHDDをセクタで分割してデータを書き込んでいきます。
今まではその1セクタが512バイトだったので
例えば1.3KBのデータの場合、3セクタ(512×3)消費して書き込んでいました。
AFT対応になったHDDでは4096バイトですから1セクタ消費だけで済みます。
ただ、どんなに小さいデータでも4096バイト使ってしまうので
今までの512よりは効率は良くないと思われてしまいます。
ですが、HDDにはECCというエラー訂正領域というのを1セクタに含んでおり
これが分割数が多ければ多いほどその数だけ領域を確保されてしまうので
HDD総容量自体が増えると4096バイトの方が分割数が減ってるので
その領域に使用される容量が減り、結果的に512バイトより10%前後節約できるとの事。
しかも浮いた部分にECC領域を増やしたので、エラー訂正の信頼度も上がってるという仕組み。
まさに2TB以上の大容量の世代に向けた仕様変更といえる。
更に現在ではFAT32が使われずほとんどの場合NTFSの為に
デフォルトのNTFSのクラスタサイズが4096の為に、
物理的、論理的に見ても消費効率が良いのである。
今までだと512バイトセクタx8=1クラスタだったのが
これからは4096セクタ=1クラスタとなる為である。
だが、現状でこのAFTを採用したのはWD緑シリーズだけで
他はまだ512バイトセクタの従来フォーマット形式である。
何でこうなってるのかというと、OS側の問題であり
具体的にはWindowsXPまでのOSは4096バイトのAFTを知らないからである。
この為に他のメーカー等は従来フォーマットを使って
問題が発生しないようにしているけど、WD緑2TBシリーズだけは
このAFTの為に、Vista以前で使う場合に不具合が出るのである。
実際どんな問題が出るのかと言うと
WindowsXP(おそらく2000も)は、HDDのパーティション確保の時に
開始セクタ(HDDのディスク位置のどこから書き込みを始めるかの位置番号)が
63セクタ目から開始する仕様の為に
512バイトのHDDの時は合っていた書き込み開始セクタの位置が
4096バイトのHDDではズレてしまい、書き込み不整合が出てしまっています。
具体的に4096バイトのAFT HDDでは物理セクタの開始セクタは知りませんが
スタート位置がズレてる為にOS側、ECCの訂正が頻繁に発生し
結果、物凄い速度低下を招く結果に。
Windowsに搭載されるHDDや、それを扱うドライバには
エラーが頻発する場合は、速度を遅くして安全な状態にしてアクセスし
システムが停止するのを防ぐという仕様があり
これがPIO病と呼ばれています。
この問題を解決しない限りは、再起動してもすぐにPIO病を発症するので
AFT問題でぐぐるとすぐ分かるように、現状では既にデータが入っている場合では
ツールを用いた解決方法しか手段がありません。
このツールを使うと何が起こるかというと
ふつーにズレてる開始セクタの位置を直すといったもので
WindowsVistaや、Windows7と同じく開始セクタを2048セクタ目に直します。
もちろん、データが入っていたらその分もある程度ずらすので
フォーマット直後と比べたら作業時間が膨大に増えますが・・・。
因みにジャンパをつける事でもセクタをズラす事が出来るとの事ですが
これはXP等で使う場合のみであってVista以降で使うと
今度は手前ではなく先の方にズレるので、やっぱりズレでPIO病になります。
これが発生してからジャンパを外しても、既にクラスタが構築されている以上は
意味が無いので、その場合はフォーマットし直すしかないのかも知れません。
これだけやって、やっと普通のHDDとして使えるかと思いきや
ところがどっこい、まだ問題を抱えていました。
物理セクタは4096バイトになりましたが、
HDDとマザボのホストコントローラー間の転送は512のままらしく
Windowsもそれを信じて512バイトでやり取りする為に、非常に効率が悪く
実際はVista/7でもWD20EARS自体の本来の速度が出ません。
Windows7では物理セクタ4096バイトに対応したパッチも作ったのですが
AFT対応HDD側が512バイトと偽っているので、このパッチも意味がありません。
ちゃんとした性能を出すには、HDD側が4096と言わないと無理なんですが
HDDに搭載されてるコントローラーがこういう仕様なので
ファームウェアかなんかで対策しないと
今後もベンチマークでしか本来の性能を出せないブツとなりそうです。
あと、巷で言われている低速病(≠PIO病)はAFTとは関係なく
WD20EADSのみで発生する謎の病気です。
一度発病すると、OSを変えても、PC変えても症状が現れ
酷いと1ヶ月持たずにお亡くなりになるそうです。
それ、ただの欠陥品じゃねぇか。