セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ メモ. Hyper-Vのもう1つの可用性オプション、Hyper-Vレプリカ
2024年10月25日配信
執筆者:山内 和朗
9月に行われたオンラインセミナー「セイテク・シス管道場 第2回オンプレの仮想化基盤をHyper-Vへ、格安乗り換えツアー(→アーカイブ)」の参加者からのアンケートの中に、Hyper-Vのフェールオーバークラスターの構成のノウハウが気になるという意見をいただきました。今回は、非クラスター構成にも簡単に実装可能な「Hyper-Vレプリカ」を紹介します。
「メモ. 必要な機能は標準装備で意外と簡単! Hyper-Vホストクラスターの構築」では、2台以上のHyper-Vホスト(ノード)で構築できるHyper-Vホストクラスターについて説明しました。今回は、Hyper-Vホストクラスターを必要とせず、そしてHyper-Vホストクラスターでも構成可能な、Hyper-Vの可用性オプション「Hyper-Vレプリカ」を紹介します。
Hyper-Vレプリカは、Windows Server 2012のHyper-Vで初めてサポートされたHyper-V標準の高可用性オプションです(画面1)。
画面1 Hyper-Vレプリカは、Active Directoryに依存しないHyper-V標準の高可用性オプション
Hyper-Vレプリカを構成すると、2台のHyper-Vホスト間(または2つのHyper-Vホストクラスター間)で仮想マシン(VM)のレプリケーションを有効化することができ、プライマリサーバーからレプリカサーバーに対して、VMの設定(実行状態は含まれません)と仮想ハードディスクのコピー(レプリカ)を作成し、プライマリサーバーからレプリカサーバーにコピーの差分を継続的(30秒、5分、15分毎)に同期させることができます(画面2)。
画面2 Hyper-Vホスト「hvhost03」のVM「vm01」のレプリケーションを有効化し、Hyper-Vホスト「hvhost04」にレプリカVM(VMの設定と仮想ハードディスクのコピー)を作成して、継続的に同期させる
プライマリサーバー側が障害などで利用できなくなった場合は、レプリカサーバー側でフェールオーバーを実行し、最新のチェックポイントを使用してレプリカサーバー上でVMを開始し、短時間で復旧させることができます。Windows Server 2012 R2からは、レプリカVMのさらに別のレプリカを別のHyper-Vホストに作成する「レプリケーションの拡張」もサポートされました(図1)。なお、Hyper-Vレプリカは同一サブネット上にあるHyper-VホストにVMをフェールオーバーすることもできますし、リモート拠点の別サブネット上にあるHyper-VホストにVMをフェールオーバーすることもできます。別サブネットへのフェールオーバーのために、Hyper-Vレプリカは「フェールオーバーTCP/IP」という、IPアドレスの自動変更機能をサポートしています(IPアドレスの書き換えは、ゲストOSの「データ交換」統合サービスにて実現)。
図1 Hyper-VレプリカによるVMのレプリケーションとフェールオーバーの動作イメージ
VMのレプリケーションが有効化され、初期同期が完了すると、レプリカサーバー側に仮想ハードディスクのコピーに紐づいたオフ状態のVMが作成されます(画面3)。
画面3 レプリカサーバー側にプライマリと同じVMがオフの状態で作成される。レプリカサーバー側のVMは、レプリカサーバーにレプリケーションされた仮想ハードディスクに紐づいている。VMは現在、プライマリ側で実行中
プライマリサーバーに障害が発生し、利用できなくなった場合、レプリカサーバー側でVMのフェールオーバーを実行して、最新のチェックポイントからVMを開始し、VMを短時間で復旧させることができます(画面4)。この障害発生時のフェールオーバーは、「計画外フェールオーバー」と呼ばれ、レプリカサーバー側から実行します。元のプライマリサーバーが復旧したら、レプリケーションを反転(レプリカをプライマリに、元のプライマリをレプリカに)させるように手動で再構成する必要があります。
画面4 フェールオーバー(計画外フェールオーバー)を実行し、最新のチェックポイントを使用してレプリカVMを起動する
レプリカサーバー側ではもう1つ「テストフェールオーバー」を実行できます。テストフェールオーバーはレプリカVMのコピーを一時的に作成して、そのコピーのVMをネットワークに接続せずに(または運用環境に影響しないネットワークへの接続を手動で割り当て)起動して、正常にレプリケーションされているかどうかをチェックするためのものです。
プライマリサーバー側では「計画フェールオーバー」を実行できます。計画フェールオーバーとは、プライマリサーバーのホストのメンテナンスのために、プライマリとレプリカの関係を反転させ、レプリカVMをプライマリVMとして起動する機能です(画面5、画面6)。
画面5 計画フェールオーバーは対象のVMをオフにした状態で、プライマリサーバー側から実行することができる
画面6 計画フェールオーバーが完了すると、レプリカ側でVMが起動し、プライマリとなり、レプリケーションの関係が反転する
Microsoft Azureの「Recovery Services」に含まれる「Azure Site Recovery」の機能に、オンプレミスのHyper-VホストのVMをクラウドにレプリケーションするオプションがあります。このAzure Site Recoveryのオンプレミス-クラウド間レプリケーションは、Hyper-Vレプリカの仕組みや機能とよく似ています。レプリカサーバーのレプリケーション先となるディスクが、Azureのクラウドストレージであり、フェールオーバーの際のレプリカサーバーのHyper-V機能を、Azure VM(IaaS)が担うとイメージすると分かりやすいでしょう。Azure Site Recoveryでは、フェールオーバー時にVMがAzure仮想ネットワークに接続されることになるので、フェールオーバーTCP/IPに対応しています。