2014年3月2日日曜日

CloudStack/CloudPlatform と Cisco UCS 連携

CloudStack Blog コンテストに参加ということで
CloudStack の商用版である Citrix CloudPlatform と Cisco UCS 連携についてまとめてみたいと思います。









  • はじめに

Cisco UCS との連携は CloudPlatform 4.2 から追加された機能です。CloudStack の方にも入ってますが、このエントリでは CloudPlatform の方でお話をします。
https://cwiki.apache.org/confluence/display/CLOUDSTACK/4.2+Design+Documents

というのも、セットアップ手順を含めた詳細が以下のホワイトペーパーにまとめられておりまして、このエントリもこのホワイトペーパを参考にしています。
FlexPod Data Center with VMware vSphere 5.1, and Citrix CloudPlatform 4.2.1

FlexPod ということで、Cisco Nexus, UCS と NetApp さんのストレージという組み合わせで、物理構成や初期設定から細かく解説してくれています。が、残念ながら英語です。日本語訳も準備中ですのでお待ちください。。でも設定の所はほとんど絵なので勇気を出して開いてみてください。


  • 概要: 結局何ができるの? → 物理サーバリソースの追加を楽にします
CloudPlatform は様々な製品と連携しますが、基本的に仮想マシンをプロビジョニングするツールかと思います。(ざっくりすぎて、コアなCloudStack ユーザ会の人に刺されそうで怖い)仮想マシンはどんどん追加していけますが、やはりどこかでその仮想マシンを起動させる物理リソースの追加作業が発生します。そこは CloudPlatform ではなく人の手や他のツールでの作業が必要です。

イメージ的にはこんな感じ。CloudPlatformは主に青い部分を頑張りますが、緑色の部分の設定変更はあんまり得意ではありません。 



CloudPlatform + UCS の連携では、この緑色の部分を楽にします。具体的には UCS の管理ツールである UCS Manager と CloudPlatform がAPI経由で連携して、CloudPlatform からUCS(物理サーバリソース)の設定が実施できます。同じくCloudStack Blog コンテストに参加されている@intertoさんの記事がストレージ編だとすると、本エントリはサーバ編と言えるかと思います。


  • CloudPlatform からの見え方: 誰と会話すればいいのか登録

では、どう見えるのか?どう設定するのか?を見ていきましょう。
GUI で見ると、なんと皆さんがよく見ているページにしれっとUCSが!ここをクリックし、UCS Managerの IPアドレスと認証情報を入れれば、UCS Manager との連携ができるようになります。


試してみたいけどUCS 持ってないし。。という方にはUCS Platform Emulator があります。実際にやってみたい方はこちらのGet the Emulatorへどうぞ! OVA 形式で配布されてます。


  • UCS Manager での準備: HTTP/HTTPS で会話できるように

↑でUCS Manager のIPアドレス等を入れる前に、実はやっておくことがあります。

UCS Manager で‘Admin -> Communication Management -> Communication Services でHTTPをenableに。"Redirect HTTP to HTTPS" をdisableにします。

これは、前述のホワイトペーパにも記載されていますが、CloudPlatform と UCS Manager のやり取りではHTTPとHTTPS の両方が使われるためです。



  • で、結局できることは?: 物理サーバの初期設定を自動化

こういったAPI連携の場合にありがちですが、何でもできる魔法のツールではありませんので、CloudPlatformからUCS設定を隅から隅まで行えるわけではありません。できるのは、UCSに設定されている Service Profile Template を選択し、物理サーバに割り当てることです。つまり、Service Profile Templateの作成はあらかじめ UCS Manager で設定しておく必要があります。

割り当て画面はこんな感じ。割り当て解除も可能です。どの物理サーバが現在未使用なのかもわかります。



ここで肝となるService Profile とは、UCSの機能でして、物理サーバのBIOS, firmware, RAID, ネットワーク(NIC, HBA) 等々の設定のかたまりです。Service Profileを物理サーバに割り当てることで、各種設定やパラメータを自動化・抽象化できます。その設定をテンプレートにしたものがService Profile Templateです。

CloudPlatformの物理インフラのように同一の属性を持つ物理サーバが並ぶような環境において、このような物理サーバの設定、バージョン合わせといった構築の手間を省き、物理リソースの拡張を容易にすることができます。

また、ハードウェアの固有情報(MAC, WWN, UUID 等)もService Profile で設定された値になります。物理サーバのもともとの値は使われません。つまり、物理サーバ故障時に、新規サーバの設定、物理サーバのWWN変更にともなった外部ストレージ側の設定修正をする必要はなく、新規サーバにService Profile を割り当てなおすだけですぐにこれまでと同じように使うことができます。SAN bootやPXE boot をしているときはなおさら便利です。


  • まとめ
物理インフラ部分と連携することで、CloudPlatform はこれまで手が出せていなかった物理リソースの設定にも手をのばすことができます。UCSと連携することで、物理サーバのリソース追加にかかる手間を軽くすることが可能です。もちろん故障時の交換の時にも活用できます。

他にも、Service Profile のこの機能と組み合わせて使うと、BIOSやfirmware、ネットワークの設定等も簡単に統一できて便利!というネタが前述のホワイトペーパーには書かれていますので参考にしてみてください。Nexus1000Vが入っている環境ですので、Nexus1000Vが稼働しているESXiをホストとして登録するときのTipsも書かれています。