オルタナティブ・ブログ > 仮想化&ストレージの基礎と最前線 >

サーバーに内蔵するフラッシュメモリーはどんな物が良い?

»

現在市場にはさまざまなタイプのフラッシュがあります。世の中に流通しているのは主にNANDフラッシュですが、技術改革の波やハードディスクとの世代交代のニーズにも乗って、新しいものが出てくれば、容量単価が徐々に下がってきていることも嬉しい話です。目新しいところで言えば、3D XPointなどは今後の期待ですね。かく言う私も、会社のPCにはIntel Optaneが搭載されたデスクトップPCをこの4月から使っています。これが速いかどうか?は個人的な感想を述べさせていただければ「速いときもある・・」といった感じでしょうか?

コンシューマー用途では、とりあえず安くて容量が多くて、簡単に接続できるものであれば、それで良いかと思いますが、これが企業内でのエンタープライズ用途ということになると、さてどれを選ぶのが良いか、結構悩まれるかもしれません。

フラッシュ選択の際の考慮点は:BadNews.png

  • 基礎となるストレージ技術(例えば、SLC、MLC、TLCなど)
  • 利用用途(例えばコンシューマー、データセンター、エンタープライズ、読み取り最適化、書き込み最適化など)
  • デバイスの接続方法(例えば、SATA、SAS、PCI-e、NVMe、DIMMソケットなど)
  • 形状(SSD、PCIカード、DDRメモリスロットなど)

かなり悩ましいですね。

ここで、Datrium DVXを例に取り、どのようなフラッシュメモリーを選択するのが良いのかをご紹介します。

コスト

  • 容量単価は日々着実に低下しています。「高い!」という印象を以前持っていたとしても、現在の価格を確認することが大事です。意外と手に届く価格になっている可能性があります。
  • 相当大きい容量を除けば、ある程度の容量までは多めの容量にしたほうが単価が安いことが多いです。例えば2倍の容量を2倍以下の価格で購入できます。
  • 多くのエンタープライズ製品、特にHCIや外部ストレージの場合、圧縮や重複排除の機能を備えていることが多くあります。例えばDatrium DVXは、2倍から6倍にデータを削減することができますし、フラッシュに保存する前段階(インラインといいます)でデータが減りますので、実際使える容量はかなり増えます。
  • Datrium DVXの場合、実際に書き込む際にはランダムデータをシーケンシャルにまとめて行います。また、ログ構造化ファイルシステムを採用していて、データの上書きを行わずに、追記してからあと作業でガベージコレクションによって不要なデータを掃除(削除)するような方法で、フラッシュの特性にあった読み書きをするようにしています。このように、フラッシュに適した読み書きをするSDSやアレイであれば、それほど高性能ではないフラッシュでなくても十分に性能が出ます。Datrium DVXの場合、端的にいえば量販店で売っているような安いSSDでも性能が出ます。またフラッシュに優しい読み書きをすれば耐久性も上がりますね。

パフォーマンス

  • 読み取りパフォーマンスは、フラッシュを使ってホスト側でキャッシュされると高速化します。読み取りの作業を高速なデバイス(CPUやDRAM)に近い場所で行うことも、ネットワークのオーバーヘッドや輻輳を避けることができ、ボトルネック無しのパフォーマンスを出すことができます。また、接続される形態(例えばSATAなど)によってフラッシュのパフォーマンスが変わってきますので、検討時の重要項目になります。例えば、コンシューマー向けのMLCドライブは読み込みスピード重視型で、エンタープライズ向けMLCドライブは書き込みスピード重視型ですが、上記でご説明したようにフラッシュの適正にあった読み書きをするSDSであればそれほどパフォーマンスに差が出ません。
  • 書き込みパフォーマンスもエンタープライズ用途では重要です。もちろん書き込み性能を重視したフラッシュは有利ですが、それとは別にDRAMとフラッシュの中間に高速な不揮発性メモリー、例えばVNRAMやNVDIMMなどを配置するアプローチを取ることでより高速になります。前述の3D XPointも、HDDの性能を補完する役割がありますね。
  • 複数のドライブを使用する方が高速になります。必要なキャッシュサイズにする際に、複数の小容量フラッシュを使用することが望ましいです。たとえば、2つの1 TBドライブは、(同じデバイスファミリの)1つの2 TBドライブとほぼ同じコストがかかります。しかしドライブが2つあれば2倍のデバイス・インターコネクト帯域幅になるからです。

容量

  • ホストのフラッシュ容量は、サーバーのメモリーとよく似た考え方になります。特にHCIではフラッシュをキャッシュとして機能させますので、多ければ多いほどパフォーマンスが上がります。高速なCPUと大量のメモリーを搭載してアプリケーションを高速化する際には、フラッシュの容量も増やすべきです。
  • 最近のフラッシュのコストは、1TB以上でもかなり熟れてきています。近い内に4TB以上のフラッシュもスイートスポットになってくるでしょう。
  • Datrium DVXの場合、各ホスト上で最大10個のSSDデバイスで16TBの容量をサポートできます。

耐久性(フラッシュの寿命)

  • これはよく知られていることですが、フラッシュデバイスは限られた数の書き込みしかサポートしていません。ドライブの耐久性検証は、小さな書き込みを重視するJEDECなどのワークロードを使用して行わます。細かい書き込みは、データがWindowsやLinuxなどの一般的なオペレーティングシステムから直接書き込まれるときの標準的なIO処理ではあります。小さな書込みが多いと書き込み耐久性につながるのが懸念です。
  • SDSや外部ストレージにおいては、小さな書き込み回数を減らすためにいくつかの工夫がされていることがあります。Datriumのログ構造化ファイルシステムでは、小さな書き込みをまとめて大きな書き込みとして処理をし、上書きされずに新しい領域に書き込まれます。 また、圧縮と重複排除を行えば実際のデータのより少ない書き込み回数になります。

タイプ/接続形態

  • 「コンシューマー」と「エンタープライズ」:この2つを明確に表記しているわけでありませんが、サーバー用はそれに見合ったサポートが受けられますので、サーバーベンダー(Cisco、Dell、HPなど)は、エンタープライズ向けSSDを選択することになります。それに対して、ホワイトボックスのサーバーなら曖昧ですが価格の安いコンシューマータイプのSSDも使えます。
  • インターコネクトのタイプ(6Gbps SATA、12Gbps SAS、または4/8レーンPCI-eなど)は、データがフラッシュからホストに転送される速度で選びます。もちろん高速なバスであればパフォーマンスが向上します。SATAドライブは、大部分のユースケースに対してオールマイティーに使えます。ただ、比較的に遅いバスになりますので、できればSSDを複数搭載したほうがバスの幅が増えますので性能が上がりますし、信頼性も向上します。
  • デバイスは、システムバス(PCI-e)、内部ストレージポート(AHCI)、またはより洗練されたコントローラ(HBA / RAID)に接続します。従来のストレージシステムでは、複数のSSDを集約するためRAIDコントローラーやソフトウェアのRAIDを使うことが一般的でした。ちなみにDatriumのソフトウェアアーキテクチャではこのようなオーバーヘッドは発生せず、ホストレベルのRAIDは必要なくJBODで高速に読み書きします。

推奨事項

  • パフォーマンスと可用性を考慮して、少なくとも2つのフラッシュデバイスを使いましょう。
  • SATA / SAS接続のフラッシュは、コストが安価で多くのユースケースで利用できます。
  • エンタープライズ用途のフラッシュの一般的な選択肢は
    • 新しいサーバーに最初から搭載されているか、サーバーベンダーから純正オプションとして入手
    • ハードウェア互換性リスト(HCL)でサポートされているもの

最後に、最近になってNVMe接続のフラッシュも徐々に使われるようになり、さらに選択肢が増えています。フラッシュデバイスを積極的に検討してみてください。何よりもHDDより障害頻度が少ないのが魅力です。なお、Datrium DVXの場合、全てのデータをキャッシュとしてフラッシュにてリードする手法を取っています。コスト、パフォーマンス、耐久性の点をバランスよく考えて、用途に見合ったフラッシュ選びをしてみましょう。

Comment(0)