故障したNAS(LS210D)の復活をしてみよう:交換用HDDの機種選定までの検討でふれたSMR(Shingled Magnetic Recording)とCMR(Conventional Magnetic Recording)の話です
HDDの選択は、この2つの違いを理解したうえで、用途に合わせてHDDを選択するべきですね。ところが、SMRなのか、CMRなのか情報がほとんど公開されてないですよね。さらにそれは、外付けHDDとなった時点で、さらに分かりにくい状態になっていると思います。NAS用途では特にその問題が顕著です。これは多くのユーザーやNAS運用者が感じている共通の問題だと思います。
SMRとCMRの違いって、一般利用者には理解しがたい仕組みだと思います。よく瓦型という表現で説明されますが、それが何を意味しているのかを、分かるように解説してくれる人はほとんどいないんじゃないでしょうか?動画とかで、動的に解説しないと理解するのは難しいでしょう? 分かりやすい動画があったので紹介しておきます。
参照元:https://ytscribe.com/pt/v/wtdnatmVdIg
13分頃から、CMRとSMRについて解説されています。
それから、 過去からの記録密度を上げてきた歴史がかなり端折って紹介されています。別途その歴史の話をまとめてみましょうか…ね。
動画では瓦状に磁気記録されているかのように見せていますが、実質は上書きされるので上書きされた部分は消えるということです。つまり、ディスク面の内から外、もしくは外から内と隣のトラックが使われていないことを前提に順番に書き込む必要があります。従来使われているかどうかの管理は、OSレベルのNTFSや、ext4などのディスクシステム管理で行うだけでした。これを、SMRでは、HDD内部で書き込み順の管理を行い、TPI(Tracks Per Inch トラック密度)を上げることで、面記録密度を上げる工夫をしています。
SMR HDDの内部で起きていること
書き込み順管理・電源断時処理・コンセント抜きのリスク
SMRでは、後から書いたトラックが前のトラックの端を部分的に上書きします。そのため途中のトラックだけを書き換えると隣も壊れるという性質があります。そのためSMRではトラック単位の部分書き込みができません。更新が必要な場合、内部でデータを別の場所へ書き直す処理が発生します。
SMRで行われる実際の処理
SMR HDDでは内部で次のように書き込み順管理の処理を行います。Drive Managed SMR(DM-SMR)ではOSはSMRを知らないためHDD内部で管理します。管理要素は主に「LBA → 物理位置、ゾーン書き込みポインタ、無効ブロック」があります。HDDにより、どこに永続的に保持するかは変わりますが、磁気記録領域などから読みだしてHDD内のDRAM上に置いて管理します。DRAMは電源を切ると消えるので、管理情報は定期的にディスク側へ書き戻されます。多くのSMRではログ構造で管理され、電源投入時に整合性チェックを行って復旧します。これにより何が起こるのかというと、CMRの場合の電源断時はDRAM上のキャッシュを磁気記録するのを待つだけです。それに対して、SMRの場合は、書き込み順番を調整・管理しながらキャッシュを書き込んで、さらに管理情報を磁気記録し終わるのを待つ必要があります。このため、NASの電源スイッチを切ってもすぐにはディスクへの書き込みは終わらずかなりの時間待たされることがあります。
補足:
なおSMRには
Drive Managed(DM-SMR)
Host Managed(HM-SMR)
Host Aware(HA-SMR)
の3種類があります。一般に市販されているHDDの多くはDM-SMRです。
6. コンセントを突然抜くと何が起きるか
ここが重要なポイントです。SMRでは通常HDD(CMR)より影響が大きい可能性があります。
①DRAMキャッシュ消失
未書き込みデータが消えます。これは通常HDDでも同じです。
②マッピング更新途中で停止
例えば
旧データ
↓
新データ
↓
マッピング更新
の途中で電源断すると
参照先が失われる
可能性があります。
多くのSMRでは
ログ構造
で復旧するよう設計されていますが
最悪の場合
ゾーン単位破損
が起きる可能性があります。
③ガーベジコレクション途中停止
SMRでは
ゾーン再配置(ゾーン内のデータ整理(ガーベジコレクション))
が頻繁に行われます。
途中で停止すると
未完了状態
になります。
再起動後
復旧処理
が走ります。
④ゾーン整合性修復
起動時に
SMR内部チェック
が行われます。
これが
電源投入後の長い待ち時間
になる場合があります。
7. なぜNASで問題が起きやすいのか
NAS用途では
ランダム書き込み
大量のファイル更新
RAID rebuild
が発生します。
SMRは
順次書き込み向け
なので
内部GC
↓
書き込み遅延
↓
RAIDタイムアウト
が起きることがあります。
まとめ
SMR HDDは
トラックを瓦状に重ねる
↓
部分書き込み不可
↓
内部ログ構造
↓
マッピング管理
という HDD内部にSSD的な管理構造を持つストレージ です。
そのため
電源断
内部GC
メタデータ更新
などの影響を受けやすく特にNAS用途では CMRより挙動が複雑 になります。
SMR は「昔で言うところの 磁気テープの高速版と思って使え」って感じですかね
昔、コンピューターを使っていることを端的に表現したある作品に磁気テープの映像が使われていました。テープが巻き取られたり、戻ったりしながら動いているものです。テープでもランダムアクセスができていました。それにかなり近いイメージですね。その映像はこちら。
26秒あたりなど複数個所で登場します。コンピュータ周りでメカニカルに動くものといえば、この辺の機器だったのでしょう。
そして、いまだに、HDDはメカニカルに動く数少ないコンピュータ関連機器として存続しています。この先も当面この状態は続きそうです。少なくとも、スピントロニクスなど次世代記録技術が安価に普及する時代が来るまでは。