はじめに
最近、SaaS、PaaS、IaaS、といった各レイヤをサービスとして受け取り、システムを構築していくというケースも増えてきているのではないかと思います。一方オンプレミスの環境を見てみると、相変わらずハードウェアやリソースの管理が大変・・・。便利そうだけどブラックボックス要素の多いパブリッククラウドと、全てを把握できるものの手間のかかるオンプレミス、どっちを選べばよいのか迷っている方、多いのではないかと思います。今回のBlogでは、大規模なオンプレミス環境で問題になりがちな、サーバリソースの管理負荷を劇的に削減する方法をご紹介します。今回ご紹介する機能は、私自身、3年以上VMwareのLAB環境の管理に利用しておりますが、とても便利です。この便利さを皆様にも是非体験いただければと思います。
オンプレミスは管理負荷が高い?
オンプレミスではハードウェアにまつわる何かしらの管理負荷が発生します。特にサーバ台数が多くなってくるとこの管理負荷は無視できなくなってきます。しかしながら、オンプレミスの管理負荷を自ら上げてしまっているケースも数多く見受けられます。その一つが、必要以上にサーバとシステム(仮想マシン)を紐づけて管理しているケースです。仮想環境の最大のメリットは、仮想マシンを物理サーバから自由にすること。この前提に立って、サーバと仮想マシンの紐付けを解き放てば、VMwareによる仮想化のメリットを沢山享受することが出来、かつ、オンプレミスのホスト管理の負荷を極限まで削減することが可能です。
例えば、
サーバリソースが足りなくなったら新しいサーバの電源をオンするだけ。
サーバが故障したらサーバごと入れ替えて電源オンするだけ、まるでRaid構成のDiskを交換するように。
そんな素敵な仕組みがあったら・・・。その仕組みを提供するのが、今回ご紹介する、vSphere Auto Deploy + ホストプロファイル + DRS です。
HypervisorがStatelessであるということ
何事でもそうだと思いますが、例えば、企業のデスクトップPCやノートPCに個別にOSをインストールして各従業員に配布すると、そのPCのライフサイクル管理(端末準備→配布→パッチ管理→障害対応→入れ替え)が非常に煩雑になります。これを劇的に改善する方法が、OSやアプリケーションをデータセンタ側で集中管理、配布する、仮想デスクトップやアプリケーションの配信の仕組みです。Hypervisorも同様で、多数のホストに対しESXiを個別インストールし管理すると、インストールやパッチ管理、構成管理など、とたんに管理負荷が増大します。この様な煩雑なHypervisorイメージの管理から管理者を解放するための仕組が、vSphere 5.0 以降で実装された、
”ESXiをインストールすることなく中央で集中管理し配布する仕組み”
です。その機能は Auto Deployとして提供されています。各ESXiはインストールレスで、ホスト側にはステート情報を一切持たないため、ESXiホストのイメージや構成情報を個別に管理する必要はありません。ESXiのイメージは中央集中管理となり、また、ホストプロファイルと連携することで構成情報も中央集中管理となりますので、コンプライアンスも中央集中で一括管理が可能となります。
例えば、こんな事が可能です。
Auto Deployの仕組み
Auto DeployはvSphere 5.0より提供されている革新的なHypervisorイメージ管理・展開の仕組みです。
・ESXiイメージはAuto Deploy 側に持つ
起動するホスト台数に関わらずビルド毎に1つのみ
・各ESXiホストはPXEでブート
起動に必要なESXiイメージはAuto Deployサーバからネットワーク越しに提供される
・構成情報はHost Profilesと連携し、自動適応される
<利点>
・ESXiのインストールは不要(インストール用のHDDも不要)
・ESXiイメージの一括管理と迅速な展開が可能
PXEブートするだけで構成の完了したESXiが次々に立ち上がる
多数のサーバへのパッチ当てもAuto Deployのルール1つを変更して再起動すればOK
・ホスト障害復旧も迅速かつ容易
サーバを入れ替えてPXEブートするのみ
Auto Deploy機能詳細
Auto Deployの中核の機能は、ルールエンジンとイメージ配信サーバの機能です。PXEブートしてきたホストに対し、ルールエンジンで指定されたESXiイメージやホストプロファイルを配信するというのが大まかな流れです。Auto Deployは、Windows版ではvCenter Serverのインストーラーの一部として提供され、vCenter Server Appliance版には機能があらかじめ包含されています。
・ルールエンジン
PXEブートしたホストに対して下記3つを定義する
イメージプロファイル、ホストプロファイル、ホストの登録場所(インベントリ情報)
・Auto Deploy サーバ (Webサーバ)
PXEブートしてきたホストに対して実際にイメージやホストプロファイルなど必要な情報を配信する機能を提供。
・Auto Deploy PowerCLI
ルールエンジンを操る手段をユーザに提供
実体はvSphere Power CLIのコマンドレット群。
Auto Deploy起動の流れ
Auto DeployはPXEブートを基本としているため、DHCPサーバ含めたいくつかのコンポーネントと連携して動作します。このため最初は難しく感じるかも知れませんが、慣れてしまえば大したことはありません。
・PXE ブートしたホストはDHCPサーバに接続し、以下の情報を取得
IP Address、TFTPサーバのアドレス、TFTPサーバ内のブートファイルに関する情報
・TFTP サーバに接続してブートファイルを取得すると同時に、Auto Deploy サーバの情報を取得
・Auto Deploy サーバは起動してきたホスト情報をルールエンジンの定義と照らし合わせ、以下を配信
ESXiイメージ(イメージプロファイル)、ホストプロファイル、インベントリ情報
・Auto DeployサーバからESXiイメージをNetwork越しに受け取りながら起動。
ホストプロファイルを適応し、vCenter Server上の指定されたインベントリにホストを登録。
・ホストの登録先がDRSクラスタの場合は、仮想マシンが自動的に新規ホストに分配
Auto Deploy構築方法
構築の流れは大まかに以下の通りです。
1. ESXiイメージ(オフラインバンドル)の入手
2. Auto Deployサーバのインストール
3. DHCPサーバのインストール及び設定
4. TFTPサーバのインストール及び設定
5. vSphere Power CLIを利用した起動ルールの作成
※今回はWindows版のインストールについて順を追って説明します。
1. ESXiイメージ(オフラインバンドル)の入手
VMwareの製品ダウンロードサイトからオフラインバンドルを入手します。
※通常のESXi のインストールでは、ISOイメージを利用しますが、Auto Deployではオフラインバンドルを利用します。
2. AutoDeployサーバのインストール (Windows版)
Windows版のvCenter ServerにはデフォルトではAuto Deployはインストールされていません。インストーラーはvCenter Serverのインストーラーに含まれますので、こちらからインストールを実行します。サポートするOSはvCenter ServerのサポートOSと同一で、vCenter Serverと同一ホスト上もしくは別ホスト上、いずれも可能です。インストールの途中、Auto Deployで利用するvCenter Serverの情報等入力しながらウィザードを進めます。インストール自体は極めて簡単ですぐに終わります。
3. DHCPサーバのインストール及び設定
DHCPサーバはVMwareからは提供されません。別途入手の上基本セットアップを実施します。下記は、WindowsServer標準のDHCPサーバの画面で、オプション値として、TFTPに関する以下の情報を定義します。
ブートサーバーホスト名:TFTPサーバを指定
ブートファイル名:undionly.kpxe.vmw-hardwired
4. TFTPサーバのインストール及び設定
TFTPサーバもVMwareからは提供されません。別途入手の上、セットアップをお願いいたします。まず、vCenter ServerからTFTPサーバに配置するファイルをダウンロードし、ZIPファイルを展開しておきます。
以下はtftpd32というフリーのTFTPサーバの場合の設定例です。TFTPサーバで指定されたホルダにダウンロード後、展開したファイルをコピーします。
5. vSphere PowerCLIを利用した起動ルールの作成
ここまで出来上がれば、あとは、Auto Deployのルールエンジンに対し、ルールを作成していくだけです。ルール作成にはvSphere Power CLIを利用します。
※vSphere Power CLIのインストール方法については、こちらをご確認お願いします。
5-1. ダウンロードしたオフラインバンドルをPower CLIに登録
> Add-EsxSoftwareDepot C:\<path>\<Download Depot.zip>
5-2. イメージプロファイルを操作するため、変数($ip)に代入しておく
> $ip = Get-EsxImageProfile
5-3. ルールを新規作成する。パラメータの意味は下記の通り。
> New-DeployRule -Name <RuleName> -Item <option> -Allhosts or -Pattern <Option>
-Name・・・作成するルールの名前を入力(必須)
-Item・・・以下の3種類のうち、最低一つを定義してルールを作成。(一つ以上必須)
・起動イメージ(イメージプロファイル)を指定
・ホストプロファイルを指定
・vCenter Server上のインベントリの場所を指定
-Allhosts・・・起動した全てのホストに対してルールを適応したい場合のオプション
-Pattern・・・起動したホスト毎に特定のルールを与えたい場合のオプション
※ホストプロファイルは事前にvCenter Serverで作成したものを利用します。
5-4. ルールセットを有効化する。
> Add-DeployRule -DeployRule <RuleName>
ここまで設定を行えば、Auto DeployサーバからESXiが起動します!
Auto Deploy環境では、リファレンスとなるESXiホストをセットアップした後、ホストプロファイルを取得。そのホストプロファイルを他のホストの起動に利用する、というのがベストプラクティスです。また、インベントリの場所をDRSクラスタに指定しておけば、クラスタのリソースが自動的に拡張され、仮想マシンの配置まで自動化されます。複数のサーバの起動をこの一つのルールで管理することが可能です。つまり、パッチ当て等の目的でイメージプロファイルを変更したい場合、ホストが何台あってもこのルールを変更すれば良いのです。
構築方法詳細については、こちらをご覧ください。
まとめ
Auto Deploy + ホストプロファイル + DRSを利用することにより以下のようなメリットが得られます。
・迅速・簡単・確実なサーバリソースの追加が可能
サーバの電源をオンするだけで構成の完了したESXiが次々に立ち上がり、自動的にDRSクラスタ(仮想サーバ)にリソースが追加される
・ESXiイメージの一括管理
多数のサーバへのパッチ当てもAuto Deployのルール1つを変更して再起動すればOK
・ホスト障害復旧も迅速かつ容易
サーバを入れ替えて電源オンするのみ
是非ご利用ください。