先月、Puppet LabsとEMCは、オープンソースのクラウドプロビジョニングツールであるRazorのリリースを発表した。Razorを使用すると、仮想マシンはもちろんベアメタルマシンのプロビジョニングやインベントリもユーザ定義のタグ付けルールに基づいて自動化できる。このツールは、現時点ではPuppetモジュールとしてデプロイされ、Apache 2.0のライセンスにて公開されている。
このツールが「次世代型プロビジョニングソリューション」と呼ばれている理由はその機能にある。このツールは新しいハードウェアや仮想マシンを動的に検知し、検知したマシンをその特性(Puppet Labの検出ツールであるFacterによって収集されるCPUバージョン、ベンダ、メモリ、ストレージなどのデータの組み合わせ)に応じてすぐに使用できるように設定した上でPuppetなどのインフラストラクチャ管理ツールに制御を引き継ぐ。このツールで最終的に目指していることは、ベアメタルとクラウド間でのノードプロビジョニングの自動化とそれを利用したサービスの開発だ。
新しいサーバを起動するとインメモリのLinuxマイクロカーネルがインストールされる。するとこのサーバがFacterを使用してサーバ構成のインベントリを収集する。さらに収集された情報をもとにユーザ定義のルールとマッチングが行われ、新しいサーバのタグが決定される。
Copyright Nicholas Weaver
ここでマッチしたタグのルールによって、新しいマシンにインストールするプロビジョニングモデル(オペレーティングシステムのバージョン、ハイパーバイザ)や、物理的、論理的に類似する他のマシンとこのマシンをグループ化する方法が決定される。
Copyright Nicholas Weaver
この段階でRazorは新しいサーバノードの制御をインフラストラクチャ管理ツールに引き継ぐ。これを受けた管理ツールは固有のルールに基づいてインストール対象のサービスやアプリケーションを決定する。一連の引き継ぎはブローカ(Puppetは追加設定なしでそのまま使えるが、類似ツールの場合は独自のブローカプラグインを実装し、Razorと統合する必要がある)を介して行われ、Razorが収集したメタデータやタグ情報はすべてブローカに渡される。
上位レベルのインフラストラクチャ管理ツールとの透過的統合に加えて、拡張が容易な点もRazorの設計理念の一つだ。EMCのvSpecialistの一人であり、Razorの主要開発者でもあるNick Weaver氏は次のような点を挙げている。
Razorでは全く新しいオペレーティングシステムを1つのファイルで追加することができます。このファイルの数行を変更するだけで様々なバージョンのオペレーティングシステムモデルを作成することができます。またRazorの最初のリリースでもある今回のリリースでは、VMwareのESXi 5、Centos 6、openSUSE 12、Ubuntu Oneiric & Precise、およびDebian Wheezyを完全にサポートしています。
Razorに対するEMCの関心をめぐってビジネス上の観点から多少の憶測が飛びかったが、EMCの社員、Brian Gracely氏は、これについて次のようにコメントしている。
Razorのロードマップに関して、EMC World 2012では明らかにされませんでしたが、ストレージプラットフォームをx86 Intelプラットフォームに移行する件について公の場で議論を重ねてきました。また、演算サーバとストレージを1つのハイブリッドエンクロージャに統合するための手掛かりもいくつか手に入れています。このような点を踏まえ、RazorはいずれEMCで採用されることになるかもしれません。あるいはRazorの新しい採用モデルを推進していくためのコミュニティが必要になるかもしれません。