HOME > ソフテックだより > 第299号(2018年2月7日発行) 技術レポート「Hyper-Vレプリカを用いた環境構築」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第299号(2018年2月7日発行)
技術レポート

「Hyper-Vレプリカを用いた環境構築」

1. はじめに

Microsoft社の提供するサーバー仮想化技術 Hyper-Vには、自身の複製をするレプリカ機能があります。
Hyper-Vのレプリカ機能を用いて環境を構築する機会がありましたので、その際の設定等をご紹介させていただきます。

2. Hyper-Vについて

Hyper-Vとは、仮想マシンの作成および管理を行うことができるWindowsの機能です。また、仮想マシンは物理的なPC上で動作する仮想的なOSのことです。Hyper-Vを使用することで、物理マシンとしてはPCが1台あるだけでも、仮想的なOSを複数台使用できる状態になります。
Hyper-Vを使用する目的として、PCを置くスペースの削減や様々な開発環境の確保、後述するレプリカ機能での事業継続性の向上などがあります。1台のPCで複数の仮想マシンを扱うことができるのはメリットが多いように感じますが、性能的にはそうではありません。物理マシンとしてはPCが1台あるだけですので、仮想マシンのメモリやハードディスク容量などもそこから分割して使用されることになりますので、PCのスペックに注意が必要です。

3. Hyper-Vレプリカについて

Hyper-Vには、別のマシンに対して、ネットワーク経由で仮想マシンの複製を行うレプリカ機能があります。レプリカ機能を有効にすると対象の物理マシン上に同一の仮想マシンが作成され、その後も仮想マシン上で行った変更を反映していきます。レプリカされた仮想マシンは、障害発生時などにフェールオーバーという手順を実行することで復旧することが出来ます。

3.1 構成

実際に構築した環境の構成を簡単に紹介させていただきます。
本番環境が動いている物理マシンがプライマリサイト、その仮想マシンがプライマリサーバーと呼ばれ、仮想マシンをレプリカしているのがレプリカサーバー、その物理マシンがレプリカサイトと呼ばれます。
この時は、プライマリサーバー上でIISとSQL Serverが動いており、何か問題があった場合には、レプリカサーバーからすぐに復旧することが出来る状態になっていました。

構成
図1. 構成

3.2 レプリカ設定

3.2.1 レプリカの種類

レプリカの種類には大きく分けて2種類あり、初期レプリケーションと差分レプリケーションと呼ばれています。
初期レプリケーションはレプリカの設定後に最初に行うレプリケーションで、プライマリサイトからレプリカサイトに仮想マシン全体をコピーします。
初期レプリケーション完了後のレプリカは差分レプリケーションとなります。仮想マシン全体をコピーするのではなく、変更のあった差分のみをコピーしていきます。差分レプリケーションの設定は「30秒」「5分」「15分」から設定できるようになっています。
この差分レプリケーションについてですが、初期設定では最新のレプリカのみ保存となっていますが、「追加の時間単位の回復ポイントを作成する」を設定することで、過去のレプリカも保持しておき、過去のレプリカから復旧させることも可能となっています。
また、ボリュームシャドウコピーサービスのスナップショットを有効にすると、設定した頻度で編集中のファイルの変更なども保存するようになります。

差分レプリケーション設定
図2. 差分レプリケーション設定

3.2.2 サーバー認証

Hyper-Vレプリカでは「HTTP」と「HTTPS」の2種類の接続モードがサポートされていますが、通信相手の身元を確認するためにサーバー認証の設定が必要になります。「HTTP」での接続には「Kerberos認証」が必要となり、「HTTPS」での接続には「証明書ベースの認証」が必要になります。「Kerberos認証」の方がHyper-Vでの設定は容易にできますが、プライマリサーバーとレプリカサーバーが同じドメインに所属している必要があり、暗号化もされないため、環境を構築した際は「証明書ベースの認証」を使用しました。

「証明書ベースの認証」では、証明書を発行する手順が必要になります。証明書の発行にはWindows SDK(※1)に入っている「makecert.exe」を使用します。「makecert.exe」によってプライマリサイトとレプリカサイトそれぞれで「ルート証明書」と「ルート証明書で署名された証明書」(※2)を発行し、「ルート証明書」をそれぞれの通信相手にコピーすることで「証明書ベースの認証」が設定可能になります。

3.3 フェールオーバー

フェールオーバーとは、レプリカ側に環境を切り替えることを指します。フェールオーバーには3種類ありますので、紹介させていただきます。

3.3.1 フェールオーバー

通常のフェールオーバーは障害等が発生した場合に、レプリカサーバー側で仮想マシンを立ち上げる機能です。ただ、この状態ではレプリカが停止していますので、再度レプリカが可能なマシンを用意し、レプリケーションの反転を実行することで、レプリカが再開されます。

3.3.2 計画フェールオーバー

プライマリサイトから操作し、プライマリサーバーとレプリカサーバーの役割を反転させる機能です。フェールオーバー→レプリケーションの反転後にレプリケーションの方向を元に戻したい場合等に有効です。

3.3.3 テストフェールオーバー

レプリカサイトから操作し、一時的にレプリカサーバー上で仮想マシンを立ち上げる機能です。別に仮想マシンを作成するため、進行中のレプリケーションを中断することなく、レプリカの正常性を確認することが出来ます。作成された仮想マシンはテストフェールオーバーを中止することで削除されます。

4. おわりに

東日本大震災以降、企業のDR(災害対策)への関心は高まっているかと思いますが、今回紹介させていただいたHyper-Vのレプリカ機能は非常に有効な手段となります。 Hyper-Vのレプリカ機能を用いた環境構築や、そもそもどのような環境を構築するか検討する際などの参考になれば幸いです。

(Y.O.)

[参考]
・Hyper-Vの概要 ・レプリケーションと計画フェールオーバーのデモンストレーション ・※1 Windows SDK ・※2 手順1:Hyper-Vレプリカの展開の準備
⇒ https://technet.microsoft.com/ja-jp/library/jj134153(v=ws.11).aspx

関連ページへのリンク

関連するソフテックだより

ページTOPへ