OSSのクラウド基盤「Eucalyptus」を使う(3)--EBSの実装方式

箕浦真(VA Linux Systems Japan)
2009-06-25 11:51:01
  • このエントリーをはてなブックマークに追加
最新特集【一覧】

 この連載では、Amazon EC2互換のクラウド基盤であるOSS「Eucalyptus」を利用し、「自分たち専用」のクラウド環境を構築することを目標にしています。前回は、Eucalyptusにおける仮想ネットワークの実装方式について見てみました。今回は、データの中長期保存に使える「Amazon Elastic Block Store(EBS)」と同等の機能を、Eucalyptusに実装する方式について解説します。

 なお、記事中に登場する用語や略語、概念などで分からないものが出てきた場合には、この連載の過去記事を参照しながら読み進めてください。

4. EBSの実装方式

 Amazon EBSは、EC2と組み合わせて利用できるブロックデバイスです。インスタンスストレージの内容が、インスタンスを終了すると消えてしまうのに対し、EBSのライフサイクルは明示的に破棄するまで続きます。また、スナップショットを取ることや、インスタンスに対して動的に割り当てたり、解除したりすることが可能です。

 Eucalyptusでは、EBSの実体はフロントエンドノード(正確にはCLCの動作しているノード)に置かれるディスクイメージファイルです。スナップショット機能を実現するため、LinuxのLVMの機能を使っています。これを、ATA over Ethernet(AoE)を使って外部にエクスポートし、これを計算ノードがイニシエータとなって利用するようになっています(3-図1)。

【3-図1】EBSの実装 【3-図1】EBSの実装(画像クリックで拡大表示)

 AoEは、その名の通りイーサネットフレーム上にATAコマンドを(カプセル化して)流すプロトコルで、安価なSANを実現するために開発されました。イーサネットですから、イニシエータ(クライアント)とターゲット(サーバ)は同一のセグメントになければいけません。

 ネットワーク上のAoEターゲットの識別は、「スロット番号」と呼ばれる番号によって行います。スロット番号は16bitのメジャー番号と、8bitのマイナー番号からなるため、単一ネットワークセグメントに「2^(16+8)=1677万7216台」のターゲットが接続できます。なお、暗号化や認証などの機能はなく、アクセス制御もMACアドレスを用いた簡単なものしかありませんので、ネットワーク上に信頼できない機器が繋がっている場合は事実上使えません。

 Eucalyptusに当てはめてみましょう。まず計算ノードとフロントエンドノード(正確には、CLCの動作するノード)は、同一セグメントのイーサネットに接続しなければなりません。セキュリティに関してEucalyptusは何もしません。つまり、MACアドレスベースのアクセス制御という最低限の機能も基本的にはナシです。盗聴に対しては、インスタンス内で暗号化などをすれば対策できます。

 ネットワーク上のどの機器からでも書き込みができてしまうことへの対策は、仮想ネットワークにMANAGEDモードを使ってインスタンスの通信を隔離し、さらに「前々回の記事の図2」でいう「専用ネットワーク」に誰もアクセスできないようにするしかないでしょう。

  • 新着記事
  • 特集
  • ブログ