最も基本的でありながら、よく理解されていないところを解説。
「ウェアレベリング」や「トリム」はよく耳にするけど、「オーバプロビジョニング」ってなに?
DD-RESCUEより
SSDとHDDの違いについてよく出てくる「ウェアレベリング」と「トリム(TRIM)」については既に解説もしたが、「オーバプロビジョニング」については、見たことも・聞いたことも無い人の方が多いのではないだろうか。
SSDは新品を買って使い始めは高速だが、使っているうちに段々遅くなってしまう。その対策方法として、「SSD用のツールを使って初期化すると元に戻る」とか、そのツールとして「Secure Erase」を使う等の情報がネット上にあふれている。
そもそも、SSDが使っているうちに低速化する原因は、「SSDはHDDと違い、上書きが出来ないので、書き込む前にそのセクタ(ブロック)が完全消去されていることが必要である」ことにある。つまり、データの一部だけを書き換える場合でも、古いデータが書き込まれているセクタに、新しいデータを上書することは出来ないので、別のセクタに新しいデータを書き込んで、そのセクタのアドレスを古いデータの書き込まれていたアドレスに変更する作業をして、見掛けではHDDと同じ上書をしたように見せ掛けて、その古いデータは「不要なセクタ」として、他に書込みできる完全消去されたセクタが無くなってしまうまで放置されていてるので、「SSDを使っているうちに、完全消去されているセクタは、実際に存在するファイルの容量で使われるよりも何倍も多く消費され、書換え動作に必要とされる完全消去された空きセクタがどんどん減って低速化する。」と理解すればわかり易いだろう。(この現象を軽減するために、TRIMやガベージコレクション等の機能が開発され導入されているが、まだまだ完全とはいえない。)
そのために、一番簡単な解決策として用意されているのが、「オーバプロビジョニング(過剰容量)」と呼ばれる方法で、特にサーバ用途のエンタープライズ向けのSSDでは、実際に製品に表示されている公称容量他に、その30%近い作業用のシステム(ファームウェア)が管理している容量を持っていることを公表しているメーカもあるのだ。この巨大な容量を使って書換えなどの作業を行い、セクタIDを書き換えることで、「削除ファイル」が書き込まれているセクタのIDが、そのシステムが管理している範囲(システムエリア)のIDに書き換えられてしまったら、その瞬間から、クローンを作ろうが、どんなソフトを使おうとデータ復旧することなど(現時点では)出来るはずが無いことが理解できるだろう。SSDはデータ復旧業者にとって「恐怖の箱」なのだ。