PR:「さくらのクラウド」のアーキテクチャは、意外なほどシンプルだった
国内ベンダ発のIaaS型クラウドサービスとして期待されている、さくらインターネットの「さくらのクラウド」が、9月5日に行われた同社のユーザー会「さくらの夕べ」にて11月に正式サービス開始予定と発表されました。
さくらのクラウドは「開発者指向のシンプルクラウド」をコンセプトに、高性能な仮想サーバや拡張性の高いネットワークなどを明朗会計型の料金体系で提供するというもの。まだ料金体系は発表されていませんが、「圧倒的なコストパフォーマンスで提供する」と田中邦裕社長は明言しており、機能や性能だけでなく価格競争力にも大きな自信を持っていることがうかがえます。
しかし低価格なクラウドサービスで、高性能、高機能なサービスを提供できるのでしょうか?
一般にクラウドベンダはこれまで、クラウド内部のほとんどをブラックボックス化してきました。私たちがクラウドの内部で何が起きているのかを知りたくても、その振る舞いから想像するしかなかったのです。
しかし、さくらインターネットは、さくらのクラウドで投入しようとしている最新のインフラ技術を、勉強会やセミナーを通してオープンにしつつあります。
クラウドを構成する主な要素は、サーバ、ネットワーク、ストレージの3つです。このうち、同社のサーバや仮想サーバの性能、そこでどのような技術が使われているかについては、すでにレンタルサーバやVPS(仮想専用サーバ)などの実績や情報公開を通して比較的知られていることです。
そこで本記事では、さくらのクラウドが提供しようとしているネットワークやストレージの機能の一部、そしてそこで使われている技術やアーキテクチャについて、さくらのクラウドの開発に関わっているスタッフに説明していただいた内容を紹介しましょう。
ダイナミックにネットワークを構成できる仮想スイッチの仕組みとは
お話をうかがったのは、さくらインターネット研究所 所長 鷲北賢氏(写真左)、さくらインターネット研究所 上級研究員 大久保修一氏(写真右)のおふたり。聞き手はPublickey 新野淳一です。
新野 さくらのクラウドの特徴の1つ「仮想スイッチ」機能で、サーバやルータなどを接続するネットワーク構成が柔軟に組めるようになっていますね。さくらの夕べでのデモで拝見したコンソール画面が非常に分かりやすいのが印象的でした。
大久保 あらためてコンソール画面で機能を紹介して、その上で仕組みを説明したいと思います。例えば、インターネットに接続されたルータを経由し、ファイアウォール、Webサーバ、データベースサーバがつながる構成を作ってみましょう。
コンソールから仮想スイッチを作成し、サーバの仮想NICに接続先の仮想スイッチを設定していくだけで、このような論理ネットワークを作ることができます。
新野 ラックにスイッチを設置してサーバとケーブルをつないで、といった物理的なネットワーク構築の作業と比べると、笑っちゃうほど簡単ですね。内部の仕組みはどうなっているのでしょう?
大久保 実は、あらかじめデータセンター内のコアスイッチやエッジスイッチなどの物理スイッチでVLANをスタティックにデプロイしてあります。
大久保 そのVLANに対して、コンソールからの設定に応じて物理サーバ内で動作している仮想スイッチソフトウェア「Open vSwitch」に命令を出し、仮想サーバの仮想NICの接続先をVLANに割り当てているのです。
大久保 仮想スイッチの実体はVLANで、そのVLANに仮想マシンを接続することで、仮想的なネットワークが構築されるわけです。
新野 なるほど。ダイナミックに仮想的なネットワークを構築しているのではなく、あらかじめ作っておいたVLANに仮想サーバを割り当てる、という方法ですね。意外にシンプルな方法で実現していて驚きました。
大久保 物理ネットワークの方は最初に設定してしまえばそれ以後の設定変更はほとんどない状態にしています。運用をシンプルにするための工夫です。
新野 ただ、VLANの上限はたしか4096でしたよね。クラウドにとってこれはかなり少ないのではないですか?
鷲北 かなり少ないですね。ですから、VLANの上限ごとに「ゾーン」という領域を作り、データセンター内に複数のゾーンを設けています。ゾーンとゾーンのあいだは「ブリッジ」で通信できる仕組みを作り、VLANの上限を乗り越えています。
実は4000ものVLANをちゃんと運用できるネットワーク機器は意外と少なくて、ここが装置の選定の大事なポイントでした(笑)。
大久保 私たちはそれぞれのレイヤで最適な装置を選んでいます。そうするとマルチベンダになるので、使える技術は最大公約数的なものになります。実際、このネットワークでも使っているのはタグVLANとリンクアグリゲーションくらいです。しかしそうしているからこそ、よりよい装置や安い装置がでたときにはすぐにそれを取り入れられるのです。
ストレージはInfiniBandで接続。10Gbpsのコストで40Gbpsに
新野 続いてストレージまわりの仕組みについておうかがいします。
鷲北 データセンター内のサーバにストレージをどうつなぎましょうか、というときに、通常でしたらイーサネット上にストレージもつないで共有する方法があります。
ただ、サーバとストレージのあいだでは膨大なトラフィックが発生しますから通常の通信に影響があります。やはりイーサネットと分離する必要があると思います。するとサーバにはストレージ用のネットワークと通常のイーサネットの2つがつながるわけです。
そしてストレージ用のネットワークは非常にトラフィックが多いので、より高速の10Gbpsのイーサネットにしようとするとけっこうコストが高くなるんです。そこで昨年InfiniBandの価格を調べたところ、40GbpsのQDR(Quad Data Rate)規格のポート単価がだいたい10Gbpsのイーサネットと同じくらいだったんです。
InfiniBandはスーパーコンピュータなどに使われている高速ネットワークの仕組みなのですが、これが面白そうだということでそのままInfiniBandで組むことにしました(笑)。
新野 InfiniBandでLANも組んでしまうというのはすごいですね。ところで、InfiniBandではどんなプロトコルが使えるのですか?
鷲北 IP over InfiniBnadでTCP/IPが使えるようになっているので、仮想サーバからは普通にTCP/IPでネットワークが見えます。ストレージにはNFSでマウントしています。
いまは物理サーバ間の接続は1Gbpsのイーサネットなのですが、ここにも一部InfiniBnadを採用して40Gbpsにできないか実験しているところです。うまくいけば、ホスト間も非常に大きな帯域幅が提供できるようになるかもしれません。
新野 なるほど。それは楽しみですね。
高速なサーバ作成の秘密は「スナップショット」と「クローン」
新野 仮想サーバを新規に作成するときに、CentOSやVyattaなどあらかじめ用意されたインストールイメージのテンプレートから非常に素早くサーバが作成できますね。
鷲北 インストールイメージをコピーしていたのでは、20Gバイト程度あるイメージですから数分かかってしまいます。コピーではなくて、「クローン」と「スナップショット」という技術を使っています。
スナップショットは本来バックアップ用途なのですが、素早くコピーを作る技術です。これはいってみればファイルの差分を管理して論理的にコピーを作り出します。ただしスナップショットで作られた論理的なコピーはリードオンリーです。
ここでスナップショットに対して「クローン」という技術を用いると、読み書き可能なファイルになります。
新野 これはストレージ側のシステムが持っている機能ということですね。
鷲北 そうです。この2つの機能を「テンプレート」という機能として実装することで、高速なサーバの作成を実現しています。
新野 クラウドの裏側にある仕組み、非常に面白く勉強になりました。ありがとうございました。
関連記事
(本記事はさくらインターネット株式会社提供のタイアップ記事です)
あわせて読みたい
グーグルから「JavaScriptは根本的な問題を抱えている」とのメモがリークか
≪前の記事
オラクル、Solaris 11、T4チップ搭載のSPARC SuperCluster新バージョンを発表