2010-10-05
■[SSD]東芝SSDの耐久テストとリードオンリーモードについての所感
BotchyWorldさんで行われていた東芝SSDの耐久テストの結果が出たようです。記事によると、884.8TBの書き込みでSSDに異常が発生したとのことです。
さて、ちょっと2chなどを覗いていたところ、この件に関してデータが壊れたことから「リードオンリーモードなんて存在しなかった」という勘違いをしていらっしゃる人が多いようなので、なぜこの記事にあるようにデータの破損が発生したのか(発生しうるのか)について解説をしておきます。
リードオンリーモードについて明記しているのは、DOS/V Power Reportのこの記事です。以下に該当部分を引用します。
寿命に関連して、実際に書き換え回数の限界に達したらどうなるのだろうか。「安全のために弊社のSSDは、あらかじめ準備された予備エリアがなくなり、実際に書き込める容量がドライブ公表値を下回る寸前になった場合には、リードオンリーモードに移行するようになっています」(白井氏)とのこと。これで、最悪の場合でもユーザーはそこまでのデータを失うことがない。
どうやら、「これで、最悪の場合でもユーザーはそこまでのデータを失うことがない」という文から、「リードオンリーモードになるから安心」という誤解を生んでしまったようです。
しかし、リードオンリーモードになったからといってデータが保全されるとは限りません。それどころかリードオンリーモードになって書き込みが行われなくなっても、データはどんどん壊れていくのです。これは以前の記事で書いた通り、NANDフラッシュに生じる「データ保持エラー」に起因するものです。NANDフラッシュは、書き込みからしばらく時間が経つとどんどんビットエラー(データ化け)が増えていきます。さらに、多数回の書き込みが行われたNANDでは、新品のNANDに比べ、非常に多くのデータ保持エラーが発生していきます。
上記のBotchyWorldさんの記事では、「$Bitmap」が壊れているというメッセージが表示されています。「$Bitmap」とは、ユーザーが作成するファイルではなく、NTFSのメタデータの一つです。$Bitmapとは何かについて、『インサイドWindows 第4版 (下)』より引用してみます。
NTFSは、ボリュームの割り当て状態を「ビットマップ」ファイル($Bitmap)に記録します。ビットマップファイルのデータ属性ビットそれぞれは、ボリュームのクラスタを記憶し、そのクラスタが空いているかファイルに割り当てられているかを示します。
要するに、BotchyWorldさんのSSDは、非常に重要な領域が壊れてしまったということですね。マイクロソフトのサポートページにあるように、たまたま$Bitmapだけに障害が発生した場合であれば、チェックディスクで直ることもあるようです。
というわけで、BotchyWorldさんのSSDは、リードオンリーモードになったにも関わらず(<-多分)データ保持エラーのためにファイルシステムが破損したのだと考えられます。そもそも「リードオンリーになるから安心」という理解が誤解であり、このような現象が発生することはNANDフラッシュの性質上仕方がありません。この実験で使われたSSDは、絶え間ない書き込みという非常に過酷な状況に置かれた個体です。より一般的な使用状況でリードオンリーモードになった個体からは、ほぼ完全にデータの救出ができる可能性はあります。ファイナルデータなどのファイル復旧ソフトを用いれば、その可能性はより高くなるでしょう。
というわけで、もし皆さんの手持ちのSSDがリードオンリーモードになってしまったら、1分1秒でも早く中のデータのバックアップを取りましょう。バックアップを開始するまでの時間が早ければ早いほど、データが失われる可能性は少なくなります。
余談
BotchyWorldさんの記事を見ていて僕もSSD耐久実験をしたくなってきてしまいました。以前の記事でNANDフラッシュのエラーモードを解析した論文を紹介しましたが、Barefoot搭載SSDであればエラービットの数がSMARTから取得できるので、この論文とほぼ同じテストを行うことができます。単に壊れたか壊れないかの二択ではなく、どれくらい壊れそうかが分かるということですね。
Barefoot搭載SSDといえばVertexの30GB版を持っていますが、これから2xnm世代に移行しようかという時期に50nmのNANDのテストをしても意味なさそうなのと、古いファームウェアのバグでMaximum Erase Countが異常に多くなっている状態なので、これを使うという手はありません。
となると新品で買うしかないですね。候補としては、Corsair Novaシリーズの32GB版(CSSD-V32GB2-BRKT)か、OCZ Onyxシリーズの32GB版(OCZSSD2-1ONX32G)あたりでしょうか。しかし、前者はファームウェアアップデートが公開されていない点が、後者はコントローラが"Indilinx Amigos"という別製品である点が気になります。OCZで公開されているOnyxのファームウェアのバージョンは他のBarefoot搭載製品と同じ1.6になっているので、おそらくBarefootとAmigosでSMARTの仕様は同じだと思うのですが、若干不安です。Onyxの方が値段が安いということもあり、できればOnyxを選びたいものです。
というわけで、もしOCZ OnyxシリーズのSSDをお持ちの方がいらっしゃったら、JSMonitorが動作するか、あるいはCrystalDiskInfoでどのような項目が表示されるかを教えていただければ幸いです。
- 2010-10-05 notepad 3/53 5%
kobagen 2010/10/06 06:50 ちょうど先日CDIで取得したSSがあります。>Onyx
http://www.exa5.jp/diary/img/img217_file.png
見た限り同じと言っていいかと思います。
(Amigos=IDX100M01、Barefoot ECO=IDX110M01で同一ファミリーっぽいですし)
一つ質問なのですが、JSmonitorのTECで表示される使用量の算出方法はAvarage Erase Countの変化からでしょうか?
余談:
リードオンリーだとして、気になるのはどういう風にHostに返してるかです。たとえば昔のHDDにあったWPジャンパの様に書き込みにエラー返しちゃうだけなのかどうか。それならばWindowsで見る・ブートするためには普通VoomやTableauなどの(主にフォレンジックに使われる)Write Blockブリッジを介してやらないと無理だったような記憶があります。
#ただ、あの状況だとデータリテンションエラーが発生してるのか個人的には判断しかねます。
kei100 2010/10/06 12:47 Lansen様、お久しぶりです
>たとえば昔のHDDにあったWPジャンパの様に書き込みにエラー返しちゃうだけなのかどうか。
Windowsの動きを見た限りコレっぽいですね
VPCでVHDをうっかり読み取り専用にした時の症状と全く一緒ですし