~Windows Server 2008 R2 Beta版 移行・導入・運用の豆情報~
仮想集約した環境では、1台の物理サーバ障害が、複数のシステム停止を招くリスクを抱えています。このようなリスクへの対策として、クラスタやホットスタンバイ構成などシステムの可用性を上げる方法があります。一方、待機系への切り替え時間が長く可用性は若干劣るものの、簡単に可用性を上げる方法として、コールドスタンバイ構成があります。今回は、Hyper-V2.0で仮想集約した環境をコールドスタンバイ構成で構築し、物理サーバ障害時にスクリプトを使って待機系へ切り替える方法をご紹介します。
図のようなコールドスタンバイ構成を構築します(図1)。構成のポイントは以下です。
()シングルパス環境で検証を行っています。実運用する際はマルチパス環境を推奨しています。
図1 コールドスタンバイ構成
物理サーバ障害時は、システムを主系から待機系へ切り替えることで復旧を図ります。切り替えは、事前にエクスポートしておいた主系の仮想マシンを待機系へインポートすることで実現します。
エクスポート/インポートはHyper-Vマネージャーから実施できますが、エクスポート時に仮想ハードディスクのコピーを伴うため、ストレージ容量が圧迫されてしまいます。また、エクスポート時間がかかります。
しかし、マイクロソフトが公開しているサンプルスクリプトを使用すれば、仮想ハードディスクのコピーを伴わずに仮想マシンをエクスポート/インポートできるため、これらの課題を回避できます。以下では、サンプルスクリプトを利用した仮想マシンのエクスポート/インポートを行って、システムを切り替える方法についてご紹介します。
システム切り替えの流れについて示します(図2)。
図2 運用の流れ
初回構築時に、仮想マシン未作成の状態(OSインストール、OSパッチ適用、Hyper-V2.0インストール、仮想ネットワーク設定)でシステムバックアップを各サーバで実施します。障害が発生した主系サーバを復旧後、新たに待機系として構築するときに、ここで取得したバックアップデータをリストアすることで、すばやく待機系サーバを構築・設定できます。
2-1. エクスポート用サンプルスクリプトの入手
マイクロソフトのWebサイト(Script Center)からエクスポート用サンプルスクリプト(ExportVM.vbs)を入手します。
エクスポート用サンプルスクリプト(ExportVM.vbs)
Microsoft TechNet(2009年9月22日公開のスクリプトで検証済)
サンプルスクリプトは仮想ハードディスクをエクスポート(コピー)しないように設定されています。別途カスタマイズする必要はありません(図3)。
図3 仮想ハードディスクのコピー有無を示すフラグ
2-2. インポート用サンプルスクリプトの入手
マイクロソフトのWebサイト(Script Center)からインポート用サンプルスクリプト(ImportVM.vbs)を入手します。
インポート用サンプルスクリプト(ImportVM.vbs)
Microsoft TechNet(2009年9月22日公開のスクリプトで検証済)
「2-1.エクスポート用サンプルスクリプトの入手」で入手したサンプルスクリプトを使用して、仮想マシンをエクスポートします。なお、エクスポートデータを最新のものにするため、構成変更などのタイミングでエクスポートしておくことをお勧めします。
主系サーバのコマンドプロンプトからサンプルスクリプトを実行します。ただし、起動中の仮想マシンはエクスポートできないため、仮想マシンを停止する必要があります。複数の仮想マシンをエクスポートする際は、コマンドを繰り返し実行するスクリプトを作成すると作業を効率化できます。 実行コマンドの書式は以下になります。
> cscript <入手したサンプルスクリプト名> /VMName:<仮想マシン名> /ExportDirectory:<エクスポート先フォルダ>
サンプルスクリプト名:ExportVM.vbs
エクスポート対象の仮想マシン名:VM1
エクスポート先フォルダ:G:\ExportVM\VM1_20100427
> cscript ExportVM.vbs /VMName:VM1 /ExportDirectory:G:\ExportVM\VM1_20100427
外部ストレージに接続するサーバを待機系へ切り替えます。 アフィニティグループ(サーバがアクセスするLUNのグループ)を再設定して、インポートする仮想マシンが使用しているLUNへの接続を、主系サーバから待機系サーバに変更します。
待機系のHyper-Vホストを起動します。
「2-2. インポート用サンプルスクリプトの入手」で入手したサンプルスクリプトを使用して、エクスポートした主系の仮想マシンを待機系へインポートします。
待機系サーバのコマンドプロンプトからサンプルスクリプトを実行します。複数の仮想マシンをインポートする際は、コマンドを繰り返し実行するスクリプトを作成すると作業を効率化できます。 実行コマンドの書式は以下になります。
> cscript <入手したサンプルスクリプト名> /ImportDirectory:<インポート元フォルダ> /ResourcePaths:<仮想ハードディスク格納先>
インポート元フォルダは、「3. 仮想マシンのエクスポート」でエクスポートしたデータが格納されているフォルダを指定します。ここで指定したインポート元フォルダは仮想マシンがそのまま使用しますので、インポート後に削除や移動を行うと仮想マシンが正常に起動できなくなります。
サンプルスクリプト名:ImportVM.vbs
インポート元フォルダ:G:\ExportVM\VM1_20100427\VM1
仮想ハードディスク格納先:G:\Hyper-V\VM1\Virtual Hard Disks
> cscript ImportVM.vbs /ImportDirectory:G:\ExportVM\VM1_20100427\VM1 /ResourcePaths: "G:\Hyper-V\VM1\Virtual Hard Disks"
仮想マシンをインポートした待機系サーバを主系サーバとして運用します。障害発生に備えて「3. 仮想マシンのエクスポート」に従い仮想マシンをエクスポートしておきます。
また、障害が発生した主系サーバは、復旧後に待機系サーバとして構築します。「1. システムバックアップ」で取得しておいたバックアップデータをリストアし、すばやく待機系サーバとして構築・設定できます。
なお、現状はエクスポートしたデータを使用して仮想マシンを運用しており、障害発生前の仮想マシンのデータは使用せずに外部ストレージに残っているため、必要に応じて削除します。
マイクロソフトが公開しているサンプルスクリプトを使用して仮想マシンのエクスポート/インポートを実施し、コールドスタンバイ構成でシステムを切り替える方法についてご紹介しました。
ご紹介した運用方法では、手動で待機系サーバの起動やストレージのパスを切り替える手間がかかりますが、このような作業を自動化できる製品にServerView Resource Coordinator VE(RCVE)があります。RCVEを導入することで、物理サーバおよび仮想マシンの統合運用や、故障したサーバを予備機へ自動的に切り替えてダウンタイムを短縮するなど、よりシステムの運用性および可用性の向上を実現できます。
富士通仮想化ソリューションセンターでは、こうしたお客様の様々な運用シーンを想定した検証を行い、仮想化に関するノウハウを蓄積することで、お客様の仮想化に対する不安の払拭に努めています。また、富士通では、Hyper-V、VMwareなどの様々な仮想プラットフォームソリューションをご提供しています。
【ご注意】
動作確認したWindows Server 2008 R2は開発段階にあるため仕様変更の可能性があります。