というワケで続きネタになってしまったので第二弾。
SSDの欠点も押さえつつ正しく活用した方が幸せだと思いますよ、という話。
◇
前回は寿命ネタだが、今回はデータ信頼性ということで。
「SSDは動作中停電で保存済データが崩壊または消滅する可能性がある」
これ意外と知られていない気がするが事実だし、個人的には(寿命より重い)最大の欠点だと思っている。
♯この話をすると必ず「フラッシュメモリの信頼性は・・・」ということを言い出す輩が出てくるのだが、メモリチップレベルの話なんかどうでも良くて。ここではSSDという製品の話をしているのですよ、念のため。
で、何でこんなことが起こるのかといいますと。
大雑把に言うと、SSDってPCからアクセスしていない間にも内部で勝手にデータを書き換えてたりするのですよ。
この書換中に電源断を喰らうとデータが吹っ飛ぶ危険性があります。
では何でそんなことしているのかって?
そうしないとあっという間に性能がガタ落ちしてしまうから。
物理的移動距離に制約されるHDDと違い、SSDではメモリチップ内にデータが綺麗に並んでいないと原理的に性能が落ちてしまう。
読出はあまり気にならないのレベルなのだが、書込ではその構造上かなりトンでもないことになってしまう。
で、何の工夫もなく書込で固まっていた=プチフリしていたのがいわゆる「第一世代」SSD。
最近のSSDではファームウェアの工夫とDRAMキャッシュ搭載で、外部から書き込んでいる時でも急激に性能が落ちないようになっているワケです。
その「ファームウェアの工夫」の一つが、PCからアクセスされていない間に内部でデータを整理=書き換えること。
最近のSSDでは「使い込んでも性能が落ちない」という売り文句が良く見られるが、これはつまりそういうこと。
これ逆に言うと、いつ書き込みしているのか外部から分からない、いつ電源OFFしていいのか分からない、ということです、はい。
♯ついでに言うとどの製品が実際にコレ(バックグラウンドメンテナンス)をやっているかも分からないという。
勿論通常の使い方をしていれば、実際に電源が切れる前にOSからSSDにキャッシュフラッシュやスピンダウンのコマンドが飛んでくるので、これを見たSSDが動作を停止して、その後に実際に電源が切れるので、データ壊れることはない。
が、HDDと同じノリで電プチをやってしまうと、運が悪けりゃデータを吹っ飛ばしかねないということ。
♯緊急時には電源OFFでなく再起動で。
ちなみにエンタープライズ製品ではこの辺りどうなっているかというと。
SSDの中に大きなキャパシタが入っていて、書換中に電源が吹っ飛んでも「その書き換えだけは最後まで完了する」だけの電力を確保しているのが普通。
また、データ整理にしても、パフォーマンスやフラッシュメモリの寿命を犠牲にする代わりに「突然電源が落ちてもデータ不整合を起こさない」処理になっているのが普通。
この2つの組み合わせ技で、
・普通にホストから書込中の停電なら書込完了までは何とかキャパシタの電力で持たせる
・データ整理中に停電してもフラッシュメモリ書込中でなければデータ不整合にならないのでセーフ
・運悪くデータ整理でフラッシュメモリに書込中でも書込完了まではキャパシタの電力で持たせる
こんな風にデータを保護する構造になっている。
で、最近ちらほら見かける「エンタープライズ品質を名乗って価格が高いクセにベンチマークでは書込が遅いSSD」の理由もこれ。
結局このデータ保護の仕組みを作り込むのにカネがかかるし、パフォーマンスを上げようとすると更にデータ保護部分にカネがかかってしまうので、価格を抑えるためにパフォーマンスを妥協しているんですな。
#Intel DC S3500なんて分かり易い例だと思う。
◇
・・・当方はECCメモリ信者でもあるぐらい「データそのものの信頼性」を重視しているので、多少表現がオーバーになっている(そして一般的にはコンシューマでは過剰レベルである)ことは重々承知ですが、でも実際そういう可能性があるからこそエンタープライズ品は対策がされているんですよ、と。
さて、次は最終ネタ、性能の不安定性です。