« Linuxデスクトップを改善する10 Tweaks | メイン | ブート30回毎のfsckを後回しにするAutoFsck »

Flashメモリストレージについて考えてみたこと

FhashストレージがノートPC及びブレードサーバへの採用が着々と進んでいるようす。ストレージ関係の仕事もしているのでつらつらと気になることを書いてみました。

Flashベースのハードディスクドライブ(HDD)というのも言葉的におかしい感じですが、まあHDD互換インターフェースのストレージということで気にしないことにして、稼動部がなく低消費電力で高速アクセスの可能なFlashメモリタイプのストレージは今後もどんどん普及しそうな感じです。

ストレージとしてFlashを採用する場合の問題は2つ。メモリの単価が高いこと、Flashメモリには書き込み回数の制限があり予測困難な寿命があること、ですね。

単価や容量はいずれ頭打ちはくるものの、まだまだヘッドルームはあります。価格は別として現在の1.8inchや2.5inchのHDDと肩を並べる容量になるのは時間の問題です。もう少し価格が下がると完全に普及モードに入るのは間違いありません。フラッシュストレージの特徴は特にノートPCに魅力ですね。

書き込み制限

しかしながら書き込み回数制限の方は深刻です。後述しますがフラッシュメモリというのは1ブロックあたり10万回程度の書き込み回数で消去・書き込みできなくります。現在のフラッシュストレージコントローラは書き込み分散を行っているため、書き込み回数=寿命(全体が使えなくなる)というわけではなく、もっと長い寿命を持ちますが、メーカの資料を見ても書き込み回数や寿命の保証はないと思います。使用状況次第で大きく変わるためです。徐々に容量が減る、もしくはリザーブを使い果たした時点で使えなくなってしまいます。

デスクトップやノートPCの書き込み回数は多いといってもたかが知れています。実用上十分な寿命となるでしょう。が、サーバの場合は別です。激しくアクセスされるようなもの、例えば仮想化されたSANのストレージの場合、常時書き込みが発生します。

書き込み回数の概算

そこでざっとフラッシュストレージの寿命を単純な目安で計算するとこんな感じです。まず前提としてフラッシュメモリは1ブロック2MBとか4MBに大きさで分割されており、壊れる単位はこのブロック単位です。そして一つのブロックあたり10万回程度の消去・書き込みサイクルで壊れてしまいます。 

これは1チップ単位の話で、ちょっと雑な言い方をすると、現在のストレージでは複数のチップを並列、直列に並べて使っているはずです。並列は性能、直列は寿命につながります。 Flashのチップ単体の書き込み性能は低いため並列数で性能が決まります。発売されているストレージの性能からして、ある程度の並列数で使っていると予想されます。また直列段数の倍数で寿命が延びます。

いずれにせよ、ブロック単位で計算すると考えやすいです。ここで毎秒一回書き込みをすると仮定すると一日86,400回。約1ブロック弱(1.7MBくらい)づつ壊れていく計算になります。製品寿命を3年と仮定すればざっと1GBほど。毎秒10回書き込みすれば10GBが壊れてしまいます。当然100回書き込めば100GBも使えなくなります。単純計算でも利用状況によってかなりの変動があることが想像できますね。

この数を少ないと見るか多いと見るかは用途によります。デスクトップやノートPCの場合通常ここまでの書き込み回数はありませんので、実用上十分な寿命といえるでしょう。しかしながらサーバの場合はそうはいえません。

サーバストレージへの採用は

現在発売されているストレージの容量は32GBや64GB,128GB程度です。IBMやシーゲートのFlashストレージの場合どれくらいの余裕を見ているのかわかりませんが、いずれにせよ寿命の予測が困難なため、いまだエンタープライズクラスのサーバへの採用は積極的には行われていません。小さなサーバで使う場合には電気代や熱など利点は多いのですが、ブロックが壊れた場合の代替容量がまだ少ないと予想されることと、代替処理の方法があまりオープンでないためどうするか迷うところですね。

現在Flashチップは音楽プレーヤ、携帯電話などあらゆる領域で大量に消費されています。大容量低価格化はどんどん進行することが予想されます。先の計算でわかるように一般使用で数GB、サーバ使用でも10GB~100GBの余裕があれば十分実用になりそうです。従って用途にもよりますがデスクトップ・ノートPCで32GB~。サーバで128GBか256GB以上の容量は必要そうです。バランス的にこなれたあたりで大量に採用が始まるかもしれません(後2年程度でしょうか)。

鬼が笑う予想?

現在コンピューティングの波は集中分散で分散の波。シンクライアント化の動きが活発ですから個人的にはデータベースやマルチメディアなどの大容量向けのHDDとメインストレージとしてのフラッシュストレージとの使い分けが進んで行くのではと思っています。

シーゲートのHDDのファームは100万行?

それにしてもHDDのコード、100万行ですか。 組み込みシステム、特に低クロックでリソースの限られたシステムにおいてはコードの総量が性能を決めることが少なくありません。でかいコードはキャッシュのミスヒットも多くなりがちです。モータ制御からバッファ管理、インターフェースまで含めると結構大きくなりそうですが、思ったより巨大ですねえ。そう速くて広いアドレッシングの可能なCPUは使っていないはずなので100万行のコードは走りきれないのでは。。。

トラックバック

このエントリーのトラックバックURL:
http://blog.browncat.org/cgi-bin/mt/mt-tb-abc.cgi/444


コメントを投稿

(お書きになったコメントはすぐには表示されません。ご了承ください。)


About

2007年08月26日 16:22に投稿されたエントリーのページです。

ひとつ前の投稿は「Linuxデスクトップを改善する10 Tweaks」です。

次の投稿は「ブート30回毎のfsckを後回しにするAutoFsck」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

           

カテゴリー

Powered by
Movable Type 3.36

Twitter


最近のエントリー

デル株式会社ads

注目エントリー