分散ストレージソフトウェアの新顔 Hedvig Distributed Storage Platform

Gluster、Ceph のような分散ストレージソフトウエアは花盛のようで StorPool など新しい分散ストレージソフトウェアがぽこぽこ開発されているが、新たに Hedvig というのが加わった。

新顔の割りに注目されているのは Hedvig の創始者の Avinash Lakshman という Facebook 在籍中に Cassandra を開発、AmazonDynamo の共同開発をした人物だかららしい。

以下に特徴をあげると、

  • Hediving のマシンは Storage Proxy (クライアントとなるマシンに) と Storage Service (ディスクノード) の 2 種類に分かれている。他に管理ノードがあるかもしれない。
  • コモディティx86 か ARM サーバまたはクラウドインスタンスに Hediving Storage Service をインストールすることでストレージ・ノードとする。ストレージ・ノードを束ねてクラスタ化する。複数のデータセンターを跨ってストレージ・クラスターを構成できるようだ。
  • Hedvig Distributed Storage にアクセスするクライアントマシンには Storage Proxy をインストールする。Storage Proxy は仮想マシン、Docker コンテナとして配備し、クライアントに iSCSINFSプロトコルで Hedvig Distributed Storage にアクセス手段を提供するようだ。他に Amazon S3 や OpenStack Swift 互換のオブジェクトストレージのインターフェイスで Hedvig Distributed Storage にアクセスできるが、この場合は Storage Proxy のインストールは不要らしい。
  • Hedvig Distributed Storage は Virtual Disk という論理的なボリュームを持ち、サイズ、ブロックサイズ(512B〜64KB)、レプリケーションポリシー、重複度などのパラメータを設定する。Storage Proxy は Virtual Disk に対してアクセスし、Virtual Disk の実体はストレージ・クラスタ上にアクセスできる。この操作を行っている管理ノードがあるのかないのか判然としないが、デモを観る限り管理ノードはありそう。
  • どういうアルゴリズムでストレージ・クラスタにデータを配置しているかは不明。ただし以下の機能があるようだ。
    • 最大 6 多重・4データセンター間でのレプリケーション
    • インライン重複除去・圧縮
    • オート・バランシング、オート・ティアリング
    • Thin-provisioning、snapshot & clone
  • Storage Proxy を使った client-side caching が可能。

デモを見ていて特徴的だと思ったのは、Storage Proxy を使うことで Distributed Storage Network にアクセスしてくるクライアントの管理ができていること。Hedvig は現在接続に来ているクライアントのリストを出して、新規に作成した Virtual Disk をどのクライアントにアクセスさせるかをリアルタイムで設定できるようだ。Ceph や Gluster が接続に来ているクライアント・ノードは直接管理しておらず野放しと対照的だ。

あと管理の簡単さを売りにしている。分散ストレージソフトはインストールまでの手順・設定が多いが、Hedvig は仮想マシンイメージ/ISO イメージ/Docker コンテナを配備するだけで動作を開始できるという手軽さを売りにしているようだ。実際、どの差別化できているのかは分からないが。

Technical paper やホームページ内には Erasure code に関する記述は見つからない。どうするんだろう?

x86 に Persistent Memory 用の命令が追加予定

将来の Intel x86 CPU に追加される機能を先出しで解説する Intel Architecture Instruction Set Extensions Programming Reference が Oct. 2014 に改定され -022 になったようだ。前回は -019 の日記を書いている(id:nminoru:20140703:intelcpu)。

https://software.intel.com/sites/default/files/managed/0d/53/319433-022.pdf

またリビジョンを取りこぼしてしまったため -022 で入ったのかそれ以前に入ったのか定かではないが、MRAM や PCM のような byte-addressable な persistent memory のための新命令とメモリアクセス規定の追加が行われる予定。

CLWB(Cache Line Write Back) 命令

x86 にはキャッシュをフラッシュする命令がすでにいくつかあるが、CLWB 命令は指定したキャッシュラインが dirty つまりメインメモリへの書き込み待ちの場合にメモリに反映する。ただしキャッシュラインをフラッシュはせずキャッシュ内に留めておく。

PCOMMIT(Persistent Commit) 命令

x86 にはメモリアクセス命令の順序付けのために SFENCE や MFENCE 命令が用意されていが、これらの命令はあくまでも MOB(Memory Order Buffer)内で順序付けを制御していただけで、実際にメモリバスへデータを書き出すことを保証していなかった。このため persistent memory へ STORE を発行した後に MFENCE 命令を実行しても CPU 内のストアバッファ(MOB)に留まっている時間は実際の書き込みは行われない。

PCOMMIT 命令は SFENCE 命令と似たセマンティクスの命令だが、PCOMMIT 命令の実行が完了した時には persistent memory range 領域に対する先行するストアが全てメモリ上に書き出されたことが保証される。Persistent memory range 領域をどのようにして与えるかは今のところかかれていないが、特別なレジスタで領域を指定するか、ページテーブルエントリあたりにフラグを追加するか、問答無用で全メモリアドレス空間で PCOMMIT 命令が利くようにするのだろう。

Linux カーネルの GPL ライセンス違反で VMware が提訴される

  1. Software Freedom Conservancy | VMware sued in Hamburg, Germany court for failure to comply with the GPL on Linux
  2. Software Freedom Conservancy | Frequently Asked Questions about Christoph Hellwig's VMware Lawsuit

3月5日に Linux の主要な開発者 Christoph Hellwig と Software Freedom Conservancy が、VMwareGPL ライセンス違反で独ハンブルグ地裁に提訴したとのこと。VMware の ESXi 製品の中に Linux カーネルソースコードが流用され、それが GPL に基づき公開されていないのが GPLv2 違反だという。ドイツで提訴したのは Christoph Hellwig の家の近くだから。
訴訟の目的は 1. を読む限り to convince VMware to comply properly with the terms of the GPLv2 らしく、具体的に何を要求しているのか不明。おそらくソースコードの公開 or 製品の出荷停止になるんだろうと予想。
ESXi のどこにソースコードの流用があったかは 2. のリンクに記載されている。

x86 アーキテクチャ版 HP Integrity Superdome と HP Integerity NonStop サーバが発表

前(id:nminoru:20111124:odyssey、id:nminoru:20131109:goodbyeitanium)から噂されていた、x86-64 版 Superdome と 86-64 版 NonStop Server が発表された。それぞれ HP Integrity Superdome XHP Integrity NonStop X と最後に X がつく型番になった。

Superdome も NonStop Server も元は Itanium を CPU として動作していたマシンで、Superdome は HP-UX を、NonStop Server は NonStop OS を走らせていた。今回 NonStop OS が x86-64 へ移植され、既存のユーザーは NonStopX 上 で自分のアプリをそのまま持って移動できると思われる。
一方、HP-UX on x86-64 はまだ完成していないようで、Superdome X は普通の x86 サーバよりも高信頼な LinuxWindows Server が動く x86 機という位置づけになりそう。HP-UX for x86-64 が仮に完成してもバイナリ互換性はないし、big-endian/little-endian やページサイズの違い等でソースコードも修正なしでは動かなかったりするだろうし、商品価値があるかどうかは謎だ。

NVM Express Revision 1.2 の仕様が公開されるも肝心の NVMe over Fabrics は含まれず

NVM Express のページで Revision 1.2 の仕様書が公開された。しかし NVM Express over Fabrics の仕様は含まれてない(涙)。
NVMe over Fabrics は、NVMe デバイスを装着したノードを InfiniBand や Ethernet(iWrap) のようなネットワークで接続し、RDMA でリモートのメモリに触るようにリモートの NVMe デバイスにアクセス可能になり極低レイテンシーのネットワークストレージ環境が構築できる、と謳われている。ただし音は聞こえど姿は見えぬ謎の規格だった。今回の Revision 1.2 仕様書の公開で明らかになると思われたのだが。とりあえず NVM Express over Fabrics の仕様は 2015 年の第二四半期に公開に延長された。

  1. Storage Reviews | NVM Express Initiates NVM Express Over Fabrics
  2. Chelsio 社 | High Performance SSD Interconnect with NVMe over Chelsio iWARP RDMA
  3. 公式 | NVM Express over Fabrics and 1.2 Press Release

SK Hynix が 16GB DDR4 DRAM と 32 GB NADN フラッシュの混在 DIMM を発表

SK Hynix が 1 枚の DIMM の上に 16GB の DDR4 DRAM と 32GB の NAND フラッシュを載せたモジュールを発表した。Viking Technology の NVDIMM に近く、DRAM : NAND フラッシュの容量が 1 : 2 というところも同じ。ただし Viking Techonlogy がスーパーキャパシタでシステム電源遮断に備えたのに対して、SK Hynix のはどのようにしてバッテリーを保持するのかが不明。

似たようなテクノロジーとしては Diablo technology 社の Memory Channel Storage(MCS) 技術を使った SanDisk の ULLtraDIMM id:nminoru:20140122:mcs) があるが、こちらは DRAM : NAND フラッシュ比がもっと大きい製品になる。

Haswell の TSX 機能にエラッタが発見される

  1. The Tech Report | Errata prompts Intel to disable TSX in Haswell, early Broadwell CPUs
  2. Slashdot | Errata Prompts Intel To Disable TSX In Haswell, Early Broadwell CPUs
  3. AnandTech | Intel Disables TSX Instructions: Erratum Found in Haswell, Haswell-E/EP, Broadwell-Y
  4. Intel | Intel Xeon Processor E3-1200 v3 Product Family Specification Update

Haswell の hardware transaction memory 機能である Transactional Synchronization Extensions(TSX) にエラッタが発見されたそうだ。今のところどういう症状がでるエラッタなのかは公開されていない。

影響範囲は (TSX 機能付き) Haswell、Haswell-EP、出荷を控えた Broadwell-Y。このエラッタはマイクロコードによって直すことができず、今後は TSX 機能を無効化して出荷するそうだ。シリコンレベルで修正を行う必要があるので TSX 機能が使えるようになるのは Haswell-EX 以降になるらしい。

既存の TSX 機能付き CPU に対しては、IntelTSX 機能を無効化するマイクロコードを配るといっている。一般ユーザは BIOS アップデートなどで対応できる。今後 Intel がパッケージで買ったユーザの返金に応じるのか、パソコンベンダーがどう対応するのかは不明。

追記

4. にある HSW136. Software Using Intel TSX May Result in Unpredictable System Behavior が今回のエラッタらしい。

HSW136. Software Using Intel® TSX May Result in Unpredictable System Behavior
Problem: Under a complex set of internal timing conditions and system events, software using the Intel TSX (Transactional Synchronization Extensions) instructions may result in unpredictable system behavior.
Implication: This erratum may result in unpredictable system behavior.
Workaround: It is possible for the BIOS to contain a workaround for this erratum.
Status: For the steppings affected, see the Summary Table of Changes.