FreeBSD+bhyveベースのハイパーバイザーTidalScaleについて調べて見た


巨大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を活用する、って話だと思われる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください