巨大HPCシステムを作る際に、巨大なデータを複数に分割してサーバに投げるのではなく、そのまま処理できるようなシステムとして、Linuxベースの「ScaleMP」というシステムがある。
2005年から製品をリリースしており、2010年にはXen/KVMに対応し始め、仮想化機能もだいぶ進んでいる。
それに似たようなものとして、最近、TidalScaleという製品が登場してきた。
こちらはFreeBSD 10.3Rベースで、ハイパーバイザー層はbhyveを使っているというもの。
これについて調べて見た・・・
といっても、最近全部公開された公式マニュアルを見ただけですが・・・
管理サーバ(admin node)とworker nodeに分かれている。

admin nodeには全体の管理機能と、ストレージを提供する役割がある
worker nodeはCPUコアとメインメモリを提供する役割がある。
現状、Intel CPUのみサポート
worker nodeは使われていない時は電源がoffとされており、使用する際に自動的にonとする
OS用ディスクは不要で、admin node上のNFSストレージからネットワークブートする。
この起動したOSを「TidalScale HyperKernel」といっている。
ストレージはadmin node上のzfsストレージか、外部のiSCSIストレージを使用することができる
zfsの機能を使ってSSDを使ったアクセスの高速化を使うことも出来る。
FCストレージは今後のバージョンでサポートするらしい 。
複数の物理サーバを使って1台の仮想マシンを作ることができる
この仮想マシンを「TidalPod virtual machine」といっている。
CPU 12コア/RAM 128GBの物理サーバを2台使って、CPU 24コア/RAM 256GBの仮想マシンを作る。
1台の物理サーバを複数の仮想マシンで使うことはできない
物理サーバ1台に仮想マシンを集約する、ということにはつかえない。
また、物理サーバを3台用意して、1.5台分を使った仮想マシンを2つつくる、といった物理マシン1台を分割することもできない。
サーバ間接続(Interconnect)は現状10Gb NICのみ
InfinibandではなくEthernet。
コストが高いInfinibandを使わなくても汎用の10Gb NICで十分であり遅延も少ないという主張をしている。
仮想マシンを構成する物理サーバが壊れた場合、仮想マシンが止まる
現状、HAや予防交換の機能は無い。
2019年対応したバージョンが出る予定となっている。
ネットワークは4系統必要
Guest subnet: 仮想マシンが外にでる為のネットワーク
Storage subnet: ストレージ用ネットワーク(iSCSIベース)
Control subnet: サーバ間の管理通信用 BMC/iLOなどの管理アクセス用
Interconnect: IPアドレスを必要としないサーバ間管理通信用


NIC冗長化機能が無い
現バージョンは、trunking(bonding)機能が未サポート。
RedHat/SuSE/Ubuntuなどをサポートで、Windowsはサポートをうたっていない
ScaleMPと同じような感じですね。
ScaleMPとの違い
・Interconnectが ScaleMPはInfiniband(HCA) / TidalScaleは10Gb Ethernet NIC(今後他のEthernet NICにも対応予定)
・用途が ScaleMPがHPC向けのデータ処理を主眼 / TidalScaleはでっかい仮想マシンをデータセンタ事業者向けに
・ScaleMPは1つの仮想マシンを立てる / TidalScaleは複数の仮想マシンを立てることができる(ただし物理サーバは別であること)
ScaleMPだと仮想マシンを複数立てられないので、TidalScaleがある、といった感じですかねぇ・・・
ここまで似てて大丈夫かな?と調べて見るれば、ScaleMPから2018年3月頃に訴えられているようです。
「ScaleMP, Inc. v. TidalScale, Inc. et al 3:18-cv-04716」にScaleMPが提出した書類が載っていますが下記の様な感じです。(超意訳)
・ScaleMPの持ってる3件の特許を侵害している
・2010年8月にScaleMPがSAPおよびいまはTidalScale CTOになっているNessiに対してScaleMPのプレゼンをした
・2010年10月にScaleMP上にSAP HANAを載せる話をした
・2010年12月にNessiがScaleMPの評価を開始した
・2011年1月にdeep-diveセッションとして技術的にかなり深いミーティングをNessiとした
・2011年2月にNessiがイベントでScaleMPと似たような感じのものを発表した
・2011月9月にNessiがSAPをやめると発表
・2011年10月にNessiにScaleMPにCTOかアドバイザーとしてこない?と誘ったけど断られた
・2012年3月、TidalScale公開。Nessi CTOに
・2013年1月、SAPでScaleMPの評価をしてた人がScaleMPの価格情報とかいろいろ聞いたあとSAPを退社し、8月にTidalScaleに入社
・というわけで、うちのScaleMPを解析してソース公開しなくてもいいライセンスのFreeBSD/bhyveで再実装したんでしょ!?
TidalScale側の主張が書かれた資料が入手できていないので、上記が正しいのかはわかりません。
果たして、この後、どう決着がつくのかな、と
2019/11/06追記
7月にScaleMPとTidalScaleの間で和解が成立していた模様。
TidalScaleが、ScaleMPが保有する特許を使わせてもらうことになったと。
2019/07/03「ScaleMP and TidalScale Reach Patent Licensing Agreement and Settle Patent Dispute」
ScaleMP™ and TidalScale announced today that the two companies have settled all litigation between them.
As part of the settlement, TidalScale has taken a paid-up five-year license to ScaleMP’s patent portfolio, and all trade-secret claims asserted against TidalScale, Dr. Ike Nassi and Dr. David Reed have been resolved without payment or admission of liability.
2019/07/03 ScaleMP「TidalScale has taken a paid-up five-year license to ScaleMP’s patent portfolio」(内容は上記と同じ)
2020/03/10追記
そういえば新バージョンって出たのかな?と調べて見たら2019/09/12付けでversion 3.0が出ていたらしい「TidalScale Announces Breakthrough Flexibility and Performance for In-Memory Applications with Third Generation Software-Defined Server Technology」
いままで外部ストレージはiSCSIのみ対応だったのが、FCストレージにも対応した。
という点以外は、めぼしい機能改善はない感じ・・・冗長性関連の問題ってちゃんと対応されてるのかな?
特に巨大データベース運用時にノードが死んだとかの場合の対応策とか、どうなったんだろうか・・・
Machine Learningが・・・とか言ってるのは以前から掲げているもので、複数のサーバで分割処理する際、RAM上のデータとCPUリソースが同じサーバ上に存在するように調整を行う、というのにMLを活用する、って話だと思われる。