自分もTLCのSSDを2つ持っていて片方手放す際に調べていたら
片方のTLCはデータが消えると書かれておりびっくりしたことがあります。
なぜ消えるのかという話がdb tech showcaseにあったので推測を交えレポートします。
常識となっているSLC/MLC/TLCの比較については省略します。
なぜ書き換え回数というのがあるか
NANDは0と1を電子の移動で決めている
移動する際にフローティングゲートを通るが
何度も移動すると徐々にフローティングゲートが消耗していく
書き換え回数を減らすには
ウェアレベリングという技術を使う
消耗したフローティングゲートのセルを別のセルに置き換える
ではコンシューマではなぜデータが消えるのか
4つの要因がある
- コントローラーが未熟
- オーバープロビジョニングが少ない
- 通電しないで放置
- 高温下に置く
コントローラーが未熟
それなりに昔のコントローラーではフローティングゲートの損耗を考慮してないことがある
消耗による書き込み禁止や最悪データが読み取れなくなる
オーバープロビジョニングが少ない
オーバープロビジョニングがそもそも少ないと消耗してもウェアレベリングができず
書き込み禁止や最悪データが読み取れなくなる
業務用ではないメモリカードやSSDの256Gを例に話す。
いかにメモリカードが危険かわかるだろう。
256Gのメモリカード
NANDは256GiBで提供されるが容量は256GBである
25610241024*1024/256/1000/1000/1000で
7.4%の確保
250GのSSD
NANDは256GiBで提供されるが容量は250GBである
25610241024*1024/250/1000/1000/1000で
10%の確保
240GのSSD
NANDは256GiBで提供されるが容量は250GBである
25610241024*1024/240/1000/1000/1000で
14.5%の確保
通電しないで放置
その昔DELLはSSDを半年放置するとデータが消えるリスクがあると資料で出していたようである
通電しないことにはウェアレベリングをコントローラーが行えない
電子は何もしなくても移動するため最悪データが読み取れなくなる
業務用であればこの放置しても問題ない期間がきちんと書かれている
一般用であるなら通電しててもスキャンディスクを3ヶ月くらいの間隔でした方がいい
高温下に置く
電子は高温なほど活発で動く
NVMeのような高温なコントローラー、CPU/VGAの発熱からは遠ざけ
高温にはならないようにするべきである
まとめ1
コントローラーは新しいほど色々考慮されているので古いものは使わない(具体的には2014年より前の業務用を作ってないメーカー)
たまにメモリカードやNANDを通電する、スキャンディスクも行うとベスト
40℃を超える環境に置かれるなら冷却を考慮する
まとめ2
ウェアレベリングは寿命に直結する
なるべくウェアレベリングの割合が高い物を選ぼう
フォーマットの容量を自分で指定できる物は最大容量でフォーマットしなければ
予備領域はウェアレベリングとして使われるケースもあるようだ
15~25%程度あれば問題はそうそう起きないであろう。