分析:ストレージクラスメモリ(SCM)はOptaneという形で既に登場しており、SamsungのZ-SSDと組み合わせることでサーバーでも利用できるようになる予定です。これは何を意味し、いつ実現するのでしょうか?
SCM(パーシステントメモリ、別名PMEM)は、Intel/Micronの3D XPointメディアまたはSamsungのZ-SSD(改良型LLC(1ビット/セル)NAND)を使用して構築された、不揮発性メモリの高速版です。フラッシュメモリよりも高速ですが高価で、DRAMよりも低速ですが安価です。
SCM は DRAM の補助として使用でき、アプリケーションやシステム ソフトウェアによってメモリとしてアドレス指定/使用できるほど高速ですが、永続的でもあるため、アプリは SCM との間でデータの読み取りや書き込みを行うために従来の IO スタック コードを必要としません。
OK: しかし、これはサーバーとストレージにどのような影響を与えるでしょうか?
図で土地のレイアウトを示すことができます。
サーバー内の SCM (Dave Hitz 氏に感謝)
このボックス群を見ると、図の上部にアプリケーション(App)と仮想マシン(App/VM)内のアプリケーション群が示されています。Appはオペレーティングシステムを搭載した物理サーバー上で実行されます。App/VMはハイパーバイザーを搭載した仮想サーバー上で実行されます。
この図にはコンテナは含まれていません。ここでは、コンテナをサーバー仮想化の別の形態として考えます。現在、アプリケーションとアプリケーション/VMはDRAMを使用し、ローカルの直接接続ストレージまたは外部ストレージ(赤い矢印)へのIO操作を実行しています。
SCMがインストールされている場合、この図では概念的にDRAMと並んで配置されます。DRAM + SCMを単一のメモリアドレス空間/エンティティとしてアプリおよびアプリ/VM(青い矢印)に表示するには、何らかのソフトウェアが必要です。
図では、OSとハイパーバイザーボックスとアプリケーションの間にソフトウェアシムとして配置されています。これは実行中のコードにとってはメモリのように見え、DRAMの容量を増やし、アプリケーションやアプリケーション/VMがIOバウンドである場合(多くの場合そうであるように)、それらの実行速度を大幅に向上させます。
インテルがOptane SSDを発表:375GBから、驚きの速度を実現
続きを読む
これを、キャッシュ管理ソフトウェア (shim) を備えた透過的なキャッシュと考えてください。
これはホットデータ用であり、最初にデータをロードし、新しく作成されたデータを長期ストレージに移行する必要があります。青い矢印は、サーバー内の直接接続ストレージ、またはネットワーク経由で外部ストレージに接続していることを示しています。
キャッシュ管理ソフトウェア(Shim)は、NetAppのPlexistorのようなシステムレベルのアプリケーションである場合もあれば、サーバーのOSやハイパーバイザーの一部である場合もあります。この場合、まずWindows、Unix、Linuxなどの物理サーバーOSはSCMをどのようにサポートするのかという疑問が生じます。
次に、vSphere、XEN、VM などのハイパーバイザーは SCM をどのようにサポートするのでしょうか。
ハードウェアの角度
しかし、もっと基本的な疑問があります。SCMメディアはサーバー内に取り付けられているのでしょうか?どのように取り付けられているのでしょうか?標準ドライブベイまたはPCIeスロットにPCIeインターフェースドライブとして取り付けられているのでしょうか?それとも、NV-DIMMフォームファクタを使用してメモリバスに直接取り付けられているのでしょうか?
後者は最も高速な接続ですが、業界標準のX86サーバー、あるいはあらゆるサーバーで使用できるように、NV-DIMM規格が確立される必要があります。具体的には、IBM POWER、富士通/Oracle SPARC、ARMプロセッサなどが考えられます。
この分野におけるもう一つの疑問は、「誰が適合するのか」ということです。明白な答えはサーバーベンダーです。つまり、1Uブレードサーバー、または2U x 24スロットのワークホースモデルを採用するということです。筐体内にはSSDなどの他のコンポーネントを搭載できるスペースが少なくなります。DRAM、SCM、ローカルストレージの容量の適切なバランスはどうすれば良いのでしょうか?
これは、Cisco、Dell、富士通、HPE、Huawei、Lenovo、SuperMicro、Vantara などのサーバーベンダーにとって解決が難しい問題です。
SCM DIMMは誰が製造するのでしょうか? Diablo Technologiesなどの独立系NV-DIMMサプライヤーはこれまで苦戦を強いられており、SCMメディアメーカー、つまりIntel/MicronとSamsungが製造権を握るのは明らかです。MicronとSamsungはどちらもNANDだけでなくDRAMも製造しているため、DIMMにも対応しており、サーバーベンダーとの良好な関係を築いています。
物理的なサプライチェーンがSCMメディアメーカーとサーバーベンダーに有利に働いていることがわかります。このエコシステム外の企業は、2.5インチドライブ、アドインカード、NV-DIMMなど、どのような形態であってもSCMメディアドライブを販売するのが困難になるでしょう。
ソフトウェアの角度
この家のソフトウェア側では、OS およびハイパーバイザ ベンダーが必要な SCM ソフトウェアを提供するのか、それとも NetApp の Plexistor などの独立系企業、Hazelcast のようなインメモリの企業、あるいは Memcached などをベースにしたまだ知られていないオープン ソース イニシアチブが別のシムを提供するのかという疑問が生じます。
結果がどうであれ、SCM の導入を迅速に進めるためには、アプリケーションに変更を加える必要はありません。
ハイパーコンバージドプレイ
ここで少し意外な点として、ハイパーコンバージドインフラストラクチャ(HCI)アプライアンスのサプライヤーがSCMの導入にどう反応するかを考えてみましょう。おそらく、(a) パフォーマンス面で後れを取らないためにSCMを利用したい、(b) HCIノード間でSCMを集約したい、という理由が考えられます。
これは、Cisco、Dell EMC (VxRack/Rail)、HPE、NetApp (現在)、Nutanix、Pivot3、Scale、および DataCore、Maxta などのソフトウェア HCIA サプライヤーにとって問題です。
Nutanixは、ハイパーバイザーレベルのキャッシュ技術を提供するPernixdataを買収したため、この点で有利な立場にあるように思われます。SCMを複数のサーバー(またはHCIノード)に集約して、単一の論理SCMリソースプールを提供することは可能でしょうか?また、そうすべきでしょうか?
これらの質問に対する答えは私たちにはありません。
ネットワーク角度
SCMバックエンドを見てみると、NVMe over Fabrics(RDMA)リンクを使用しない限り、不要なデータをより長期的なストレージデバイスに排出する必要があります。これは、従来のIOスタックにおけるIOの意味で、つまりNVMe over Fabrics(RDMA)リンクを使用しない限り、必要なデータを取り出すことを意味します。そのため、shimの一部として、これを実現するためのコードが必要になる可能性があります。ターゲットデバイスは、サーバーのローカルデバイス、またはリモートデバイス(ファイラー、SAN、あるいはパブリッククラウドなど)のいずれかになります。
この図はHCIとクラスタノードを含むネットワークリストを示していますが、これはHCIとクラスタのサプライヤーが担当すべき事項だと考えます。しかし、ストレージアレイへのネットワークリンクは、ストレージアレイ業界と、Ethernet/iSCSI/NFS、ファイバチャネル、InfiniBandのサプライヤーを含むストレージアレイ相互接続エコシステムに関わる事項です。
ネットワーク相互接続担当者は、フロントエンドのサーバーとバックエンドのアレイがリンクの両端で標準のNVMe over Fabrics HBAまたはアダプタを使用できるように、成熟したNVMe over Fabrics標準を策定する必要があります。BrocadeやMellanoxなどのサプライヤーがSCMのために特別なことをする必要はないようです。NVMeoFは必要なネットワーク配線として機能します。
ストレージアレイ角度
ストレージアレイの担当者は、何か特別な対策が必要だと考え、SCMキャッシュをホットデータで最適な状態に保つことに積極的に貢献するかもしれません。しかし、サーバーとアレイの間にエンドツーエンドのNVMeリンクを敷設しないという選択肢もあります。なぜなら、そうするとデータトラフィックがコントローラーを迂回することになり、コントローラーは制御不能になったドライブの状態を把握できなくなり、サーバー内のアプリケーションから指示がない限り、それらのドライブ内のデータにデータサービスを適切に適用できなくなるからです。
Datrium や Excelero などの企業はサーバーを保有しており、原則としてこれを実行できることに注目します。
アレイ サプライヤーが実行できるのは、コントローラ キャッシュから NVMe ファブリック全体の着信要求を処理し、アレイを純粋なコントローラ バイパスのエンドツーエンド NVMe が行うような有効なフラッシュ JBOD に変換することなく、NVMeoF クラスの速度を実現することです。
実際、アレイ コントローラはこのようなキャッシュに SCM を使用することができ、NetApp はこれを検討しています。
SAN とファイラーが SCM やオブジェクト ストレージに反応して使用する方法には違いがあるかもしれませんが、ここでは詳しく説明しません。
涅槃は来る ― ただまだだ
SCMを搭載し、NVMe経由で長期ストレージに接続する多数のサーバーは、現在のサーバーよりもはるかに生産性が向上します。サーバーに保持され、リアルタイムで処理できるデータ量の増加によって、機械学習、データベースの応答性、そして分析技術は文字通り革命的な変化を遂げるでしょう。
しかし、SCMメディアの導入だけでは、この理想形には至りません。これを実現するには、様々な技術分野と技術サプライヤーが連携し、協力して取り組む必要があります。
SCM を利用したサーバーはもはや遠い未来の話ではなく、確実に実現可能になりつつあるようですが、おそらく数年待たなければならないでしょう。SCM ニルヴァーナ 1.0 は2019年以降に実現するかもしれません。®