2011年7月26日火曜日

SSDがヤバい その3 SSDあれこれ

■ SSDの速度の秘密
別に秘密でも何でもありませんが、SSDの中には NANDフラッシュメモリだけが入っているわけではありません。

□ コントローラーチップ
SSDの性能と寿命を制御する、一番大切な部品と言って良いでしょう。コントローラーの進化が MLCフラッシュメモリの進化を支えています。
ウェアレベリングや読込、書込みの並列化、書き込み回数の上限の管理などを行っています。
Marvell社(Crucial, Intel)や SandForce社(Vertex)などが有名です。
尚、Crucialは Micron Technology社の SSD製造販売の子会社ですが、Micron Technologyと Intelが共同で設立した IM Technology社で製造された NANDフラッシュメモリを使用しています。つまり、Crucialと Intelが使っている技術は、コントローラーチップもNANDフラッシュメモリも同じものとなります。
※ Intelは以前は自前のコントローラーを使っていましたが、最新の510シリーズではMarvell社のコントローラーを使用しています。

□ キャッシュメモリ
16~64MB程度のDRAMを搭載して、読み書き性能を上げるために使っています。後のSSDの特性のところで述べますが、書込みをするために必須のパーツです。IO性能のパフォーマンスアップにも効いてきます。

□ NANDフラッシュメモリ
フラッシュメモリそのものです。最近は 25nmプロセスを使った製品も出ており、高速化、大容量化に寄与しています。


■ フラッシュメモリ SSDの特性を理解する

□ 消費電力
フラッシュメモリは消費電力が桁違いに小さくできています。容量辺りの消費電力を考えると MLCが有利です。
通常の 3.5" HDDが10w前後ですが、SSDの場合アイドル時 1W以下、リード値2W程度です。

□ 書込みがだんだん遅くなるのは何故?
フラッシュメモリの特性として、メモリにデータが書き込まれていると上書きでの書込みは出来ません。従って使い始めのデータが空っぽの時は良いのですが、だんだんデータが書き込まれてくると、データの消去+データの書込みの2つの動作を行う必要があるため、だんだん書込みに時間がかかるようになることになります。ちなみにデータの消去には書き込み処理の100倍くらいの時間がかかります。またデータの読み書きの単位は2~4KB程度ですが、データを消去する場合は例えば 128KB単位で行われます。ですので 1バイトの書き換えでも 128KBの消去と書込みが必要になります。そのために SSDには DRAMのキャッシュメモリが積まれており、上記1バイトの書き換えは次のようなステップで行われます。
128KBのフラッシュメモリ上のデータを DRAMにコピー (読込が 32~64回)
フラッシュメモリ上のデータの消去
DRAM上の1バイトの書き換え
128KBのデータの書き戻し (書込みが 32~64回)

これらの動作を改善するために TRIM機能が使われます。最近は TRIM機能をサポートするSSDが多く出てきています。

□ MLCの寿命は?
SLCの10分の1から 20分の1と書きましたが、実際はどれくらいあるのでしょうか。
Crucialの c300を例にとると書込み上限は 72TBでした。これは毎日 40GBの書込みをして上限に達するまで 5年間かかる大きさなのですが、DBの OLTP部分など更新の激しいデータを格納するとなると、かなり足りないかな というサイズです。

□ MLCのMTBFは?
Crucialの c300で MTBFは 200万時間でした。
HDDよりもかなり良い値なのではないでしょうか。(可動部が無いので当たり前ですが)


--
ここまで SSDの種類や特性などについて見てきましたが、結論としては MLCを使用した安価なSSDでもコントローラー機能の向上により、性能・寿命が著しく伸びています。使い方をきちんと考えて使う分にはエンタープライズ用途でも十分使えるレベルになってきていると言えます。

例えばDWHで使用するデータは、SSDに向いていると言えます。
  • データ書込みは追記書込みが主で、後は読み出しだけ。
  • 過去数年の巨大なデータを使用するが、分析するときは大量のデータに高速にアクセスが必要。
ここまで見てきたように、SSDの容量と価格は急激なスピードで進化しています。今1,000万円を出して必要な容量を確保するより、今は 500万円で直近必要な分のSSD容量をそろえ、来年もう500万円出してSSDだけを追加するとなると、同じ金額でも高速・大容量のストレージを手に入れることが出来ます。

p.s.
SSDは HDDと同じくコントローラーのファームウェアアップデートがあります。不具合修正はもちろん、性能アップしたり省電力になったりするので、時々ホームページをチェックしましょう。

2011年7月23日土曜日

SSDがヤバい その2 フラッシュメモリベースSSD

前回に引き続き、今回はフラッシュメモリベースのSSDについて


■ SLCフラッシュメモリベース 企業向けSSD

NANDフラッシュメモリは DRAMと違い電源が供給されていなくてもデータを保持できる不揮発性メモリであるため、より通常のディスクドライブと同じように扱えるといえます。そのなかでも SLC(Single Level Cell)型は、後で説明する MLC(Multi Level Cell)型と比較して
  • 書込み速度が早い
  • 書き換え可能な上限回数が多い (MLCの10~20倍とか)
  • データ保持期間が長い (寿命が長い)
  • しかし容量が少なく、単位容量あたりの価格が高い
という特徴があります。ですので速度や寿命を重視し、値段は気にしない場合は MLCではなく SLCを選択します。
(現在では SSD内部のコントローラーも性能が良くなってきているので、SSDとしての速度差は昔ほどではありません。寿命が一番の差別化ポイントとなりつつあります)

2008年11月には、インテルから SLCを使った X25-Eシリーズ、MLCを使った X25-Mシリーズが、同じ時期に発売されていますので、それらを比較してみましょう。
尚、この製品は SATA2接続ですが 2011年の第一4半期まで売られていた、バリバリ現役です。



ReadWrite価格発売時期
X25-E(SLC) 32GB250MB/s170MB/s8.0万円2008.11 (2009.1には 4.3万円)
X25-E(SLC) 64GB250MB/s170MB/s8.0万円2009.2
X25-M(MLC) 80GB240MB/s 70MB/s8.0万円2008.9 (2009.1には 4.0万円)
X25-M(MLC) 160GB240MB/s 70MB/s8.0万円2009.1


同じ値段だと容量に2.5倍ほどの差があります。SLCは価格がどうしても高くなってしまうため、寿命を重視する企業向けとなります。

また、今年の第3四半期には容量 200/400GB、PCIe接続でなんと Read 2200MB/s Write 1800MB/sの SLC使用 Intel 720シリーズ(コードネーム Ramsdale)が発売される予定です。速度の秘密は 512MBの DRAMキャッシュ。すごく高そう。


■ MLCフラッシュメモリベース コンシューマー向け? SSD

SSDが現在のように一般化したのは MLCフラッシュメモリを使用した低価格の SSDが、コントローラーの向上により耐久性、パフォーマンス、容量共に進化したことが大きいといえます。
エポックメイキングな MLCベース SSD達を列挙すると、



ReadWrite価格発売時期
Intel X25-M(MLC)
80GB
240MB/s 70MB/s8.0万円2008.9 (2009.1には 4.0万円)
Intel X25-M(MLC)
160GB
240MB/s 70MB/s8.0万円2009.1
Crucial ReadSSD C300
120GB
355MB/s215MB/s4.0万円2010.3 (現在は 1.8万円) SATA3接続
Crucial ReadSSD C300
256GB
355MB/s215MB/s8.0万円2010.3 (現在は 3.7万円) SATA3接続
OCZ Vertex3
120GB
530MB/s450MB/s3.0万円2011.3 (現在は 2.4万円) SATA3接続



これら以外にも読み書き 500MB/sを越える SSDが続々発売されています。SATA3のバス幅は 600MB/sですので、既にバス幅の限界に近い性能が出ています。ベンチマークをするとほぼスペック通りの性能が出ています。

このSSDはコンシューマー向けと書きましたが、上記に触れたとおり MLCの弱点を補う機能を持つ SSDが増えており、使い方を間違えなければ、業務でも十分使用に耐える製品に変わりました。

実は今、これらの MLC SSDを業務あるいはエンタープライズ向けに使うためのリサーチをしています。近々成果は発表できると思いますので、お楽しみに。


次回は SSDの使い方に関する注意についてまとめてみます。

2011年7月15日金曜日

SSDがヤバい

普通の人が SSD(Solid State Drive)を使い始めたのは、本当につい最近、ここ1~2年前位からではないでしょうか。一昔前までは早いけれど高価なストレージで、一般人には手が出せないシロモノでした。
それが、この1~2年での、速度の向上価格の下落大容量化半端ではないスピードで進んでおり、かつそのスピードはまだ加速していると言えます。

半導体を記憶媒体として使うという SSDの概念自体はコンピューターの黎明期からあるのだけれども (というか、きっと HDDより古いと思う。コアメモリとか言っても最近の人は知らないと思いますけど… 僕も本物を触っていた人は知ってますが、実物は見たことが無い (^^; )、実際に SSDというものがあると知ったのは10年程前でしょうか。
そこから数年を経て、実際の現場にSSDが現れ始めます。
SSDの歴史と特性についておさらいしてみましょう。


■ DRAMベース エンタープライズ向けSSD

うちの会社のOracle検証メールマガジンでも、2007年に富士ゼロックスの GigaExpressという DRAMベースのSSDを借りて、Oracleを高速化する検証を行っています。

GigaExpressは 1Uサイズの筐体に容量は 8GB~32GB、PCIe1.0 x 4レーンの外部インターフェースで接続されます。スペック上は 650MB/sの読み取り性能を持っていますが、実測値は318MB/sでした。(マシン性能に依存するので、実測値はあくまで社内で計測した値です)
検証時の結論は、以下のようでした。
1. IOネックのデータベースの性能向上にはかなり有効である。
2. ただし容量の問題があるので REDOや UNDOに使用するなど構成を考える必要がある。
3. DRAMベースなので電源瞬断や機器故障に対する対策が必須。

この時の販売定価は 200万円 ~ 500万円で、10GBあたりの価格に直すと 155万円 ~ 250万円です。


また、最近でも売っているのが Texs Memory Systemsの Ramsanシリーズです。
Ramsanシリーズの DRAMベースの Ramsan-440という製品は、4.5GB/sの外部帯域幅(あくまでI/Fのスペック。実測値は不明)を持ちますが、256MBの最小構成で 2,720万円とのこと。10GBあたりの価格は 106万 !!! (2年前の記事の価格なので、今はもっと安くなっているのかしら…)
また消費電力もかなり強烈で 650W !! でした。

この製品の場合、GigaExpressと異なり、電源遮断に対応するために内蔵バッテリーや DRAM上のデータをバックアップするHDDやフラッシュメモリを備えているのが価格を押し上げている要因となっているでしょう。
(※ Ramsanにはフラッシュメモリを使用したモデルもあります)

ここまでをまとめると、DRAMベースのSSDは、アクセスは確かに早いのですが、容量が限られていることからデータ特性に応じたきちんとした物理設計が必須であること、価格がバカ高いので簡単には購入できないこと、容量に応じて消費電力が非常に大きくなることなどが言えます。なので、あえてエンタープライズ向け と位置づけました。

2720万 というと、そんなものかと感じるかもしれませんが、10GBあたり 100万円を越えているわけですから、だったらメモリが沢山載るサーバーにしてRAMディスクとして使ったり、Oracleのバッファとして使ったほうがよっぽど良いのではと思ってしまいます。アキバのメモリだったら 10GBで 5000円位です。さすがにメーカー製は高いと思いますが、20倍としても 10万円です。

今日はここまで。
次回はアキバでも買える SLCフラッシュベースの SSDについて書きます。

ご 無 沙 汰 し て お り ま し た

ご無沙汰しておりました。

かなり間が空いてしまいましたが、その間は、会社のブログを投稿したり(このブログの焼き直しですが)、新しい事業を立ち上げるべく奔走したり、髪型を変えたりしておりました。

書きかけの TPC-Hシリーズは、会社のブログで続けることにして、こちらのブログには日々調べたり、考えたりしたことをほぼリアルタイムで書いていくことにします。

とりあえずは Commodity HW Innovation シリーズと題して、コンシューマー向けPCパーツが、今大変なことになっていることを、使い方さえ間違わなければエンタープライズンズでも使えるようになっていることを、書いていこうかと。