さて、ついにアキバにSMR採用HDDの現物がでてきたが、そろそろSMR HDDについてつらつらと書いておきますか。
以下に目を通していただければ、個人的にSMRが「スジが悪い」と言い続けているのも納得していただけるのではないかと。
最初にネタばらしてしまうと、実は、SMR HDDとSSDとでは動作原理は結構似ていたりするんですな。
そしてそれこそが個人的にSSDをあまり信用していない理由でもあったりするのだが、まぁどの辺りが似ているかについては後で。
◇
まず、SMR HDDとは何ぞやということで。超粗っぽく言うと
「読み込みは4KB単位だが、書き換えが原則256MB単位でしか出来ないHDD」
ということで。さすがにこれだけ粗っぽ過ぎるんで、もう少し細かく言うと、以下のように。
・SMR HDDでは256MB=65,536セクタを1ブロックとして扱う。
・読み込みは従来と同じように1セクタ単位で可能。
・書き込む場合、書き込み対象のセクタだけでなく、それ以降の同一ブロック内最後のセクタまで全てにデータを書き込む必要がある。
ということで、書き込みに結構とんでもない制限が付いているHDD、という解釈がで良いかと。
何故こんな必要があるかというと、SMRではデータトラックを重ね書きしているため。
故に、一箇所にデータを書き込むと、書き換え対象ではない隣のトラックのデータも巻き添えになって壊れてしまうんですな。
仕方ないので、壊れたデータを修復する為に、ブロック終端まで書き込み直す必要があるというワケ。
#ちなみにブロックとブロックの間には間が空いていて、データ書き込みが次のブロックに影響を与えないようになっているんですな。
従って、1ブロックの終端までデータを書き込めばHDD上の全データは正常な状態になる、ということ。
◇
さてこの方法の何が問題かというと・・・その前に。
従来の、というか今現在のHDDには信頼性に関わる大きな特徴があることを、おさらいしておきましょ。
現在のHDDの大きな特徴は、
「データ書き換えが物理セクタ単位でアトミックである」
ということ。
これはどういう意味かというと、例えば急な停電等でデータ書き込みが途中で止まったとしても、データエラーを起こすのは物理1セクタの中に限られる、ということ。
書き換え予定だった領域には古いデータがエラーなく残っており、書き換え済みの領域もまたエラーなく保持されていることが保証されている、とも言い換えることが出来る。
何故こんなことが担保されるかというと、それはHDDのヘッドが1つだけで、且つ完全に独立した物理セクタ単位で書き換えているから。
要するにHDDの動作原理そのものが担保になるんですわ。
#ここで敢えて「物理セクタ」と書いたのは、現在のコンシューマー向けHDDはほぼ全てが512eで、論理セクタ8個分が物理セクタ1つに対応しているので。
ところがこれが、SSDやSMR HDDでは、「データ書き換えはブロック単位でアトミックである」となる。
即ち、「物理セクタ単位ではアトミックではない」んですな。
これどういう意味かというと、例えば急な停電等でデータ書き込みが途中で止まった場合、同一ブロックにあった他のデータが吹っ飛ぶ可能性があるということ。
SSDでは1ブロック1~数MB、SMR HDDでは最悪256MB分が危機に晒されるワケですよ。
どうしてこんなことが起こるかというと、前述したようにSMRではトラックが重ね書きされている為、旧データが新データで破壊されてしまうんですな。で、それを修復する作業が必要になるので、修復作業の途中で書き込みが止まってしまうと大問題、と。
#SSDでも、素子にはデータを追記するようなことは出来ないので、書き換え作業は「データ読み出し」と「別ブロックへのデータ書き込み」という2段階の作業の組み合わせになっているのがポイント。旧データが新データによって破壊されるという現象は一緒。
書き込み中のデータがエラーになるのは仕方ないけれど、既に書き込み済みのデータが巻き込まれて吹っ飛ぶ可能性があるなんて。
こんな特性を持つドライブって、普通に考えてスジが良いとは言えないと思いません?
#まぁ勿論、エンタープライズSSDでは対策としてSSD内に大容量キャパシタを積んだり、書き込み済みのデータが吹っ飛びにくい書き込み方法を駆使したりして、実際にデータが壊れる確率をかなり抑え込んでいるのが普通。
逆に言うと、ベンチで速いだけが命のコンシューマー向けSSDの信頼性なんてね・・・。
◇
まぁそんなアレな感じのSMR HDDなのだが、ドライブとしてはこの特性はどうしょうもないので、ある程度信頼性を持たせようとしたら、後はOS側でどうにかするしかないんですな。
幸い、HDDのセクタではなくセクタグループ=ブロック単位でボリュームを管理する、ブロックストレージ(この単語はこのblogでも以前何度か出てきましたな)という考え方は最近では広く採用されているし、その辺りでは後塵を拝しまくってきたWindowsにも、漸くReFSと記憶域ボリュームという形で(不十分な部分もあるが)実装がされてきている。
なので、個人的妄想としては、次のWindows Server 2015(?)には仮に間に合わなくとも、その次辺りのWindows ServerではReFS限定ででもSMR HDDがOSレベルでサポートされるのではないかと思ったり。
個人的な感想はともあれ、HDD業界に残された数少ない「容量増加の切り札」の一つなので、じわじわと広がっていくことは間違いないと思うんですよね。
・・・とはいえ、一般人にSMR HDDが広まるような時代は来るのか、ねぇ。
#もう一つの切り札である多プラッタ化は既にSeagateが6枚プラッタで使ってしまったし、残る最後の切り札である熱アシスト記録の方も製品化スケジュールが遅れているという話がね・・・。
>>一般人にSMR HDDが広まるような時代は来るのか、ねぇ。
むしろ来ないで欲しいですw
なにか書き込みがある度に256MB分のRead Modified Writeが起こるとか
扱い難い代物ってレベルじゃないですよ。
バックグラウンドで256MBの書き込み作業がいつも行われる状態とか想像しただけでイヤになります。
P.S.ところでskazさんはHGSTのヘリウム充填式プラッタ超積載HDDについてはどうお考えです?
私はこれプラッタ積み過ぎて振動にすごく弱くなっていそうで心配です…
どもです。コメント遅れて失礼します。
プラッタ超積載はある意味不可避というか、大容量化の為にHDDに残された道は数少ないので、7枚搭載も「嬉しくないけど仕方ない」とは思っています。
とはいえご指摘の通りプラッタ枚数が増える分確実に障害可能性は高まるワケで、今のHDDはSMRといいコレといい、容量の為に色々と犠牲にしている(せざるを得ない)という側面は間違いないかと。
♯そういう意味では1プラッタ大好きな人の発想も分からなくも無いです。