デイトリウムが語るINSANEな次世代のハイパーコンバージド
次世代のハイパーコンバージド
ハイパーコンバージドインフラストラクチャーは、サーバーとストレージが融合した新しいコンピュータシステムであり、管理と拡張の容易さから人気を博している。しかしワークロードによって、CPUパワーが必要な割合とストレージ容量が必要な割合は、比例して増減するわけではない。つまりCPUインテンシブなアプリケーションが必ずしも大量のストレージを必要とするということにはならず、CPUパワーとストレージのバランスは分けて考えることが現実的だ。そのためには、コンピュートノードとストレージノードを分けて運用できるシステムが必要となる。そしてそれを高い次元で実現したのが、「次世代のハイパーコンバージドインフラストラクチャー」と自称するDatrium(デイトリウム)のシステムだ。
このたびシリコンバレーにあるDatrium本社を訪問し、創業者であり、チーフサイエンティストというタイトルを持つHugo Patterson氏にレクチャーをうける機会を得た。今回はその内容を紹介する。
Datrium自体については、過去の記事を参照してほしい。
参考:次世代のコンバージドインフラストラクチャー、デイトリウムの「いいとこ取り」とは?
また今回のレクチャーには、VP of MarketingのCraig Nunes氏、Director of Technical MarketingのMike McLaughlin氏にも参加していただき、従来のハイパーコンバージドインフラストラクチャーとの違い、コンピュートノードとデータノードの働きの詳細などについて解説を受けた。
最初にサーバー、ストレージアレイ、バックアップなどの要素からなる従来のエンタープライズ向けコンピュータが、Googleなどのハイパースケールなクラウドコンピューティングを実現する企業などにおいて、スケールアウトすることを主な目的として再構成された背景を紹介した。
かつては企業内のワークロード、ERPによる会計や生産管理などのアプリケーションが、サーバーとストレージそしてデータ保護のためのバックアップという構成要素の上で稼働していた。それが瞬間的な負荷の変化や大量のデータに対応するため、ハイパーコンバージドとしてCPUとストレージが一体化されたシステムに進化したことを説明した。
ここでのポイントは、Googleなどはすでにハイパーコンバージドシステムから、CPUとメモリによる超高速ストレージを近傍に配置したコンピュートノードと、より安価なHDDとSSDを組み合わせたx86ベースのストレージノードの組み合わせに移行しているという部分だろう。NutanixなどがGoogle由来のスケールアウトシステムと標榜するのは、この辺にあるCPUとストレージを一体化したサーバーを使っていたという部分だろうが、Datriumによればそれはすでに古いシステムという位置付けとなる。
重要なポイントは、実際にシステムを稼働させてみるとCPUを必要とするワークロードとストレージを主に要求するワークロードを上手にバランスさせるのは難しいということだ。つまりCPUとストレージが一体化されたハイパーコンバージドインフラストラクチャーでは、CPUパワーが余る、もしくはストレージが足らなくなるという状態を解消できないというのがDatriumの主張である。そのために演算を担当するコンピュートノードとストレージを担当するデータノードを分けて構成し、必要に応じてどちらかを追加するというのがDatriumのアーキテクチャーである。その際コンピュートノードとデータノードを通常のイーサネットで接続するところが、過去のストレージアレイと大きく異なる部分である。またどちらのノードもx86ベースのサーバーである部分については、ハイパーコンバージドインフラストラクチャーのよい部分を継承していると言える。
そしてもう一つの特徴が、バックアップに関する機能が後付けではなくアーキテクチャーとして組み込まれていることだろう。これはHugo Patterson氏がData Domainの創業者であり、NetAppでSnapVaultを開発したエンジニアであったことが大きく関係している。Patterson氏によれば「エンタープライズが必要とする高速なデータアクセスと安価で大容量のストレージ、そしてバックアップを一つのシステムで実現するのに20年かかった。NetAppでは、エンタープライズが抱える問題点が判明しただけで解決はできなかった。Data Domainではバックアップに関してなんとか解決できたが、ストレージとコンピュートを両立できなかった。Datriumで初めてそれらの問題点を解決できた」と語ったことからも分かるように、柔軟なシステムを構成しながらも高速で安価なクラスターを提供するということを目標に開発されたことがわかる。
特に分散処理で問題となる複数のサーバー間でのRead/Writeをどう処理するのか? これに関してはPatterson氏が解説を行った。分散されたサーバー間でどこにデータを書き込むのか? という問題に関しては、通常の発想であればどのサーバーのどのストレージに当該ブロックが存在するのかを管理するデーモン(このスライドではBlock Allocation Managerと称されている)が複数のサーバーで実行され、そこに問い合わせを行うことで必要なアドレスを得ることになる。しかしこの手法は遅延が発生すること、拡張と耐障害性を実現することが困難という問題を発生する。そこでDatriumは、全てのノードにおいてKey-Valueのペアを使って必要なブロックのアドレスを保持することで、管理デーモンを使わずにデータの分散と冗長性を確保しているという。
この部分は、Datriumの扱うデータがどのように処理されているのかに関して深い理解が必要となるが、大雑把に言えば、DatriumはアプリケーションからのWrite命令を受けると、まず「フィンガープリント」と呼ばれるハッシュ値を生成し、その後、重複排除、暗号化などを行ってまずサーバーの持つキャッシュであるRAMに書き込む。同時に、ネットワーク越しにデータノードのNVRAM(SSD)に書き込むことで、書き込み動作が完了する。逆にReadの場合は、そのブロックのフィンガープリントを生成し、キャッシュにあればそこから読み込みを行い完了、なければデータノードのストレージから読み込み、同時にキャッシュにも保存する。
実際の読み書きに際しては、コンピュートノードのCPUを使って暗号化や重複排除、イレイジャーコーディング、書き込むデータのクラスター化などをインライン処理することで、高速化とデータの圧縮などを行っている。その根幹にあるのは「Log Structured File System」であるという。
この辺りは「普通のプレス向けにはここまで解説しない」ということであったが、より詳細に理解を深めたい場合には、以下のホワイトペーパーを参照されたい。
参考:Datrium Split Provisioning(PDF)
ここではコンピュートノードとデータノードでの処理がどのように行われているのかについて、詳細に解説されている。
また管理という側面では、既存のVMware環境においても管理機能が統合されていることを、McLaughlin氏によるデモで確認できた。
VMwareだけではなくRHEL Virtualization、KVMなどの仮想化基盤にも対応するということで、すでに仮想化が進んでいる企業においても従来の仮想マシンベースの管理体系とうまく馴染むようにできている。これについては、「ハイパーコンバージドインフラストラクチャーを導入すると、全てを捨てて新しい運用管理システムに移行する必要があるというのはDatriumにおいては正しくない」とPatterson氏も強調していた。
細かい話だが、管理画面において「コンピュートノードのモードに『Fast』と『Insane』という表記があるが、これは何?」と質問したところ、「通常のモードであればコンピュートノードのワークロードを優先するためにフィンガープリントから重複排除、暗号化、圧縮、イレイジャーコーディングなど、Datriumの処理にCPUの20%を割り当てる。それがFASTモード。しかしより高速に処理を行うために、40%まで使っても良いというモードがINSANEモード。ちょっと尋常じゃないという意味合いでINSANEと名付けた」と答えてくれた。
6月には再度、来日する予定があるというDatriumのエグゼクティブたちだったが、その際には再度インタビューを行う予定だ。バックアップやストレージのベンダーで経験を積んだベテランたちが、過去からの問題に真剣に取り組んでシンプルにすることを念頭に作り上げたというDatriumの進化を注視していきたい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Datriumの創業者が語った「次世代ハイパーコンバージド」とは?
- 次世代のコンバージドインフラストラクチャー、デイトリウムの「いいとこ取り」とは?
- MySQL Clusterのバックアップ/リストアの仕組み
- ハイパーコンバージドのNutanix、最新のソフトウェアスタックを紹介
- システム構築におけるLPARのメリット
- DellEMCのソフトウェアデファインドストレージのチームが来日、SDSの強化を解説
- フラッシュストレージが注目される理由と4つのソリューション
- Oracle ExadataによるDWH高速化
- INFINIDATのストレージを使ったクラウドサービス、Neutrix Cloudとは?
- OpenStackのセミナーでコントリビューターたちが語ったOpenStackの未来