PerfectDisk と SSD

PerfectDisk と SSD (Solid State Drive) ドライブの最適化
(株)ネットジャパン
2010 年 6 月
ストレージ技術は、常に進化し続けています。最新のストレージ デバイスの1つに SSD (Solid
State Drive) がありますが、これは、従来のエレクトロメカニカルなコンポーネント (すなわち、
回転するディスクプラッターと読み取り/書き込みヘッド) に代えて、フラッシュメモリを用いた
ドライブ装置です。SSD の利点として以下のことが挙げられます。

エレクトロメカニカルな低速コンポーネントを使用しないため、ランダムアクセス時間が高速

ディスクのシーク時間が不要になったため、読み取りの待ち時間を短縮

データの物理的な位置は問題ではなくなったため(従来のディスクドライブのように「最速」の
位置というものが存在しなくなった)読み取りのパフォーマンスが安定化

(読み取り/書き込み操作に)エレクトロメカニカルなコンポーネントを使用しないため、ファイ
ルの断片化はほとんど影響を及ぼさない
フラッシュメモリは、その性質上、また、データの書き込み方法が異なるため、SSD の書き込み
パフォーマンスは時間の経過とともに低下します。ハードディスクドライブとは異なり、SSD へ
の書き込み操作は、データを一旦消去してから書き込むという2つの動作が必要です。SSD のパ
フォーマンスは、次の要因に依存します。
書き込み耐久性(書き込み可能回数)1
フラッシュメモリでは、ブロックへの書き込み可能回数に上限があります。書き込み可能回数
(耐久性)は、フラッシュメモリの種類(MLC 型や SLC 型)にもよりますが、古いタイプの
SSD ドライブで1万回、最新の SSD ドライブで 100 万回程度が限度です。
書き込みアンプリフィケーション(書き込みによる空き容量の消費)2
書き込みアンプリフィケーションは、NAND 型フラッシュ メモリに特有の問題です。従来のディ
スクドライブ同様、NAND 型フラッシュ メモリでもデータをブロック単位で保存します。しかし、
ブロックサイズは固定であるため、例えば 4KB の小さいデータの書き込みでも、NAND 型フラッ
シュ メモリの種類によっては、512KB のブロックを必要とします。ドライブ上のデータの一部が
変更されると、新しいデータを書き込む(読み込み/修正/書き込み)ために、まず消去するブロッ
クを特定します。1 回の書き込みで必要となる容量は一定ではありません。書き込みアンプリフィ
ケーションにより、通常のコンシューマー向け SSD では書き込むデータの 15 倍から 20 倍の容量
を必要とします。すなわち、SSD ドライブに 1MB のデータを書き込むと、実際には、15MB から
20MB の容量が必要です3。例えば、フラッシュメモリコントローラーの読み込み/修正/書き込みア
1
http://en.wikipedia.org/wiki/Flash_memory#Write_Endurance
http://en.wikipedia.org/wiki/Write_amplification
3
Knut Grimsrud 氏 インテル株式会社研究開発部ストレージ アーキテクチャ担当ディレクター
2
RAXCO SOFTWARE | www.perfectdisk.com
2
ルゴリズムでは、書き込み先のブロックを特定し、既にそのブロックに保存されている古いデー
タをすべて取り出し、そのブロックを消去対象にします。そして、古いデータを別の場所に移動
させてから、そのブロックに新しいデータを保存します。
SSD の書き込みパフォーマンスを維持するため、SSD のメーカーは、次のように対処しています。
ウェアレベリング4(書き込み分散化)
フラッシュメモリコントローラーは、フラッシュメモリのブロックごとに消去を行った回数を追
跡し、随時、論理ブロックから物理ブロックへマッピングし直し、ドライブ上の書き込み操作を
すべてのブロックに均等に割り振るようにします。これは、SSD の寿命を延ばすため、ドライブ
のすべてのブロックに消耗を分散させるという意味があります。
容量のオーバー プロビジョニング
オーバー プロビジョニングによりメモリ容量が追加され(ただし、ユーザーはアクセスできませ
ん)、フラッシュメモリコントローラーが、この追加の容量を使って消去済みブロックを作成し
ます。この消去済みブロックはプールされ、書き込み用に準備されます。
TRIM5
TRIM を使うことで、フラッシュメモリコントローラーは、削除されたブロックからデータを消去
しておくので、次回データを書き込む前に、データを移動、消去する必要がなくなります。これ
により、SSD の書き込みパフォーマンスを長期間維持することができます。TRIM を効果的に使
用するには、Windows のオペレーティングシステムと SSD 自体に実装する必要があります。現
在のところ、TRIM は、Windows 7 と Windows Server 2008 R2 に組み込まれています。
PerfectDisk を使って SSD を最適化する利点
SSD では、ファイルが断片化しても読み取りパフォーマンスの低下は無視できる程度なので、従
来のファイルのデフラグを実行しても読み取りパフォーマンスを飛躍的に向上させることは期待
できません。SSD の書き込み可能回数の消費を最小限に抑えて、書き込みパフォーマンスを向上
させるためには、空き領域を結合して断片化をなくし、不完全なデータブロックを結合すること
が重要です。空き領域の断片化が進むと、TRIM を使うことができず、完全でないデータブロック
がそのまま存在することになります。なお、空き領域の結合は書き込みパフォーマンスの向上に
つながりますが、頻繁に実行する必要はありません。
4
5
http://en.wikipedia.org/wiki/Wear_leveling
http://en.wikipedia.org/wiki/TRIM_(SSD_command)
RAXCO SOFTWARE | www.perfectdisk.com
3
PerfectDisk 11 は、自動的に SSD ドライブを検出し、デフラグ方法として空き領域の結合を選択
しますが、SSD ドライブに対して自動的に空き領域の結合を実行するわけではありません。
PerfectDisk では、手動もしくはスケジュール設定により空き領域の結合を行うことができます。
そのためには、ユーザーはまず SSD ドライブの最適化を許可するよう PerfectDisk に設定する必
要があります。また、空き領域の断片化が、予め指定したしきい値を超えた場合にのみ、SSD ド
ライブを最適化するよう PerfectDisk を設定することもできます。
RAXCO SOFTWARE | www.perfectdisk.com
4