※本記事は『Mac Fan』2023年10月号に掲載されたものです。
– 読む前に覚えておきたい用語-
TLC | ウェアレベリング | ECC |
---|---|---|
NANDフラッシュメモリ内の1つの記録セルに格納可能な情報量を指し、SLCは1ビット、MLCは2ビット、TLCは3ビット、QLCは4ビットを記録できる。多値化することで記録密度が上がる反面、ビットエラーが増加してより強力なECCを必要とする。 | NANDフラッシュメモリのような書き換え寿命が存在する記録媒体に対し、書き換え回数の平均化を行うことで全体の“見かけ上の寿命”を延ばす技術。「摩耗平均化」とも呼ぶ。SSDやUSBメモリ、メモリカードなどでは必要不可欠な延命技術となっている。 | ECC(誤り訂正符号)とは記録や伝送などの課程で発生したデータの欠落や改変を検出し、訂正することを可能にするための符号(情報)のこと。元となるデータから決められたルールで算出され、データとともに記録または伝送される。 |
「書き換え寿命」というデメリットを持つSSD
SSD(半導体ストレージ)の大容量化と低価格化によって、MacのストレージはすべてHDD(ハードディスク)からSSDに置き換わった。SSDは小型・軽量で振動や衝撃に強く、HDDに比べて極めて高速なアクセス速度など多くのメリットを持つ反面、データの更新にともなって記録媒体の劣化が進む「書き換え寿命」という宿命を背負ったストレージデバイスだ。
SSDの記録媒体であるNANDフラッシュメモリは、書き換え(消去と再書き込み)によって劣化が進行する。ちなみに、現在のSSDの多くに採用されているTLC(Triple Level Cell)の書き換え寿命は、およそ数千回程度だ。
SSDは、Macなどのホストデバイスから指定される論理ブロックアドレス(LBA:Logical Block Address)と、NANDフラッシュメモリの物理ブロックアドレス(PBA:Physical Block Address)を分離し、両者を「アドレス変換テーブル」で紐づけている。そのうえで各物理ブロックの書き換え回数を管理し、全ブロックの書き換え回数が平均化されるよう、アドレス変換テーブルを再配置することでSSD全体の寿命を延ばす。これをWear Levelingと呼ぶ。NANDフラッシュメモリを記録媒体とする、あらゆるストレージに採用されている延命技術だ。
NANDフラッシュメモリの各ブロックには、実際のデータ領域以外に記録セルのエラーに対応するためのECC(Error-Correcting Code)などが格納された冗長領域(OOB:Out Of Band)が存在する。つまり、ブロック内に正常なデータが読み出せないセルが発生しても、OOBに記録されたECC情報を使ってエラー補正を行うことでSSD全体の信頼性を向上させている。
このため、実際には記録セルにエラーが発生してもECCの補正限界以内であれば、何もなかったかのように正しいデータが読み出せる。さらに一定(閾値)以上のレベルのエラーが発生した場合には、ブロック内のデータを丸ごと別のブロックにコピーすることで、データの消失を防ぐ処理が自動的に行われる。その閾値はECCによるエラー補正が有効な範囲内に設定されているため、通常であればデータが失われるリスクは極めて低い。それでもNANDフラッシュメモリ全体の劣化が進行してECCの補正限界を超えた場合、そのブロックは寿命を迎えてデータは失われてしまう。これは長期間電源を入れずに放置されていたSSD内のブロックや、電源が入っていても長期間アクセスが行われなかったブロックで発生する。
SSDには、寿命を迎えたブロックと置き換えるための予備ブロックが必ず存在する。これはスペア領域(Spare Capacity)あるいはオーバープロピジョニング(OP:Over Provisioning)領域と呼ばれ、一般的にはSSD全容量の数%程度が割り当てられている。スペア領域はユーザデータ領域外のため、あらかじめ消去しておくことで次回の書き込みを高速化するほか、SSD全体の寿命を延ばしたり、消費電力を低減したりするなどの機能を備える。そしてこのスペア領域が寿命の尽きたブロックで埋め尽くされたとき、SSD全体が寿命を迎える。
SSDの寿命を把握するには「S.M.A.R.T.情報」をチェックしよう
このような記録セルの劣化にともなう寿命を把握するには、S.M.A.R.T.情報を確認するのがおすすめだ。最近のMacで使用されているNVMe SSDの場合、寿命指標となる情報として「Available Spare」と「Percentage Used」の2項目がある。
「Available Spare」は前述のスペア領域の使用率がパーセントで示され、初期値が100%で残容量を使い果たすと0%になる。ただしその変化は必ずしもリニア(直線的)ではなく、エラーブロックが発生してはじめてカウントダウンが開始されることから、この値が100%を割り込んでからの減少速度には注意が必要だ。
いずれにせよこの値が減り始めたら、SSD内部に回復不可能なエラーブロックが増加していることを示しているので、その値がゼロになる前に記録データの退避(バックアップ)を完了するべきである。この値が尽きてなお使い続けると、その後発生したエラーブロックは正常ブロックに置き換えることができなくなり、データが失われる、SSDが認識されない、といった現象が発生してしまう。
一方の「Percentage Used」は各SSDメーカー独自の寿命推定値で、主に書き換え(消去と再書き込み)回数や環境温度などをベースに寿命使用率が算出される。「どの程度寿命を消費したか」をパーセント表示で示しており、新品時は0%でスタートし、メーカー推定寿命に達すると100%になる。こちらは100%を超えても実際には使えるケースが多いが、メーカーの推定寿命が尽きていることを示していることから「いつ壊れてもおかしくない」と認識すべきだろう。以上のことから、おおよその寿命消費は「Percentage Used」で把握でき、「Available Spare」の値に変化が出始めたら寿命が近づいている、と判断できる。
バックアップをこまめにとってSSDの突発的な故障に備えよう
ここまでSSDの寿命について解説したが、実際には記録セルが寿命を迎える前に突発的に故障するケースもある。SSDには有寿命部品であるNANDフラッシュメモリを除くと、経時的に劣化する部品はほとんど使われていないが、高温や静電気などのストレスによってダメージを受けかねない。また、SSDコントローラのファームウェアやその管理情報はNANDフラッシュメモリ上に記録されているため、記録セルのエラーの影響を受けて動作異常(故障)が発生する可能性もある。
故障の予兆はある場合もあれば、ない場合もある。予兆としては、アクセス速度が極端に遅くなる、フリーズしたように反応が悪くなる、といったものが多い。そのような場合は、機能回復をはかる前にまず必要なデータのバックアップをすることが優先だ。SSDの不慮の故障から大切なデータを守るには、バックアップ以外の方法はない。Macには優秀なバックアップシステム「Time Machine」が標準搭載されているので、いつか必ず訪れるであろうSSDの寿命や突発的な故障に前もって備えておきたいところだ。