CIで変わるサーバー調達(下)
さて前号では、導入した計算機資源を有効活用し投資を無駄にしないようにする新技術「コンポーザブル・インフラストラクチャー(CI)」の登場について触れて終わりました。今号ではこのCIについてご紹介を進めていきます。
サーバー調達をするときには単台でも動作し、かつ将来必要に応じて複数台接続して計算性能を倍加できればと願いながら単台の構成仕様を策定します。サーバー同士を接続するわけですからネットワーク接続のインタフェースを用意する必要があります。ストレージ容量やストレージ共有の要件がある場合は、ストレージ部分をいわゆるSAN/NASなどでネットワーク化してサーバーの外部に出すということはあるかもしれません。
サーバー同士あるいはサーバーとストレージを接続する最も一般的な方法はEthernet, FC, SASなどのネットワーク接続です。これらの接続は必ず物理的かつ論理的なプロトコル変換が必要になり、これは性能上大きなペナルティです。昨今、HDDに代わってSSDが台頭しておりレスポンス性能は確かに向上しました。それでも初期のSSDは同じSAS/SATAプロトコルを使っていたために、例えドライブの性能が上がっても依然として伝送オーバーヘッドが大きいためトータルスループットは思ったほど改善しなかったわけです。この課題を解決すべく登場したのがNVMe SSDです。機会があれば詳細にご紹介しますが、一言で言えば、PCIeをそのまま用いてストレージ入出力を行う標準で、これにより旧来の伝送オーバーヘッドのペナルティは激減しました。そしてこのNVMe SSDの登場はCIを現実のものにする一つの大きなきっかけになっています。
さてここで、少しサーバーの内部を覗きます。処理すべきデータを入力するためのデバイス、データを計算処理するCPU、計算作業域或いはデータの一時保管域として用いられるメモリー、メモリー上のデータをDMA転送して外部に送出するためのネットワークデバイス、処理結果を半恒久的に保存するストレージデバイスなどがあります。メモリーとCPU間の接続は別にすると、モダンなサーバーであれば、これらはすべてPCIeバスによって接続されているのが一般的です。
もしこのPCIeバスをサーバー筐体から隣のサーバー筐体にまで延伸させて結合することができたらどうなるでしょうか?
物理的には両方のサーバーの内部デバイスはすべて同一のPCIeバスに接続されることになります。しかしだからと言ってこれは論理的な結合を意味するには至りません。
サーバーAにあるNVMe SSDをサーバーBのOSがいきなり使えるようになるとはならないからです。ですが、これがCIによるブレークスルーを発想する要素原理になりました。
インプリメンテーション(具体的実装)は一旦横において、CIの実現コンセプトをご紹介します。
- ラック内の複数台のサーバーをPCIe拡張バスにより接続し、各サーバー内蔵のPCIe接続デバイスをすべて透過的に一つのファブリックに結合する。
- PCIeファブリックに結合された各デバイスを個別化し(disaggregation)同じキャラクターのデバイスでまとめプール化する。例えば、CPU(含むメモリー)であれば「CPUプール」、NVMe SSDであれば「ストレージプール」、ネットワークカードであれば「ネットワークプール」、GPUであれば「GPUプール」などである
- 仮想サーバーを作る。自分の欲する計算機仕様に基づいて、各プールから必要な資源を必要な数だけ選定し、リザーブし、構成し、実際に利用する。
- 仮想サーバーの利用が終了したら、リザーブして使用していた各資源をリリースしプールに戻す。
では、一旦横に置いたインプリメンテーションはどうするのか?
各社各様の考え方がありますが、弊社が代理店を務めるLIQID社は二つの要素技術製品を提供することで、ユーザーニーズを個々に解決する方針です。
一つは上のコンセプトにも登場したラック内のサーバーをPCIe拡張バスでファブリック接続するためのインテリジェントスイッチ、もう一つはラック内に存するPCIeデバイスを資源プールに登録し、仮想サーバーとして構成し、透過的に利用できるようにするためのミドルウェアです。
これらについては、弊社の製品ご紹介ページをご覧いただければ幸いです。
現時点では、ユーザーニーズを個別にお伺いし、マッチするサーバー製品あるいはストレージ製品とこのインテリジェントスイッチとミドルウェアを組み合わせてソリューションとしてご提供いたします。
(代表 古田 雅一)