Azure 上の Hyper-V ネスト型仮想化を使用したレプリケーション、復元、およびフェイルオーバーの方法
災害復旧には、少なくとも1か所の”災害復旧サイト”と呼ばれるセカンダリサイトが存在することが前提となります。遠隔地のデータセンターは、災害復旧サイト(DRサイト)と見なすことができます。しかし、ホットDRサイトにはそれ相応の高コストが伴います。DRサイトとして遠隔地のデータセンターを持たないものの、極めて短時間で環境を復旧させる必要が生じる可能性がある場合は、どうすればよいでしょうか?
現在では、主要ベンダーのクラウド環境を災害復旧サイトとして利用し、そこにバックアップやVMレプリカを保存しておき、災害発生時にはクラウド上で仮想マシン(VM)を実行することができます。 短期間でVMのフェイルオーバーを実行し、障害発生時にプライマリサイトのワークロードをDRサイトへ移行するには、VMレプリカを用意する必要があります。Hyper-V仮想マシンも例外ではありません。
このブログ記事では、NBRを使用してHyper-V VMをAzureへフェイルオーバーする方法について解説しています。
Azure と Hyper-V について
Hyper-V は、仮想マシンを実行するために Microsoft が開発したハイパーバイザーの一種です。Hyper-V ロールは Windows マシンにのみ展開可能であり、 VMware および VirtualBox のハードウェア仮想化ソリューションに代わるものとして位置付けられています。また、Hyper-V Server のスタンドアロン版も存在します。
Azureは、マイクロソフトが構築したパブリッククラウドです。Azureは、Azure仮想マシン、Azure Active Directory、コンテナサービス、データベース、ストレージサービス、Webサービスなど、多様なサービスを提供しています。マイクロソフトは、Azureクラウド内でAzure仮想マシンを実行するために、Hyper-V仮想化プラットフォームを使用しています。Azure仮想マシンは、仮想ハードウェアや仮想ディスク形式など、Hyper-V仮想マシンの多くの機能を継承しています。
ただし、Hyper-V仮想マシンとAzure仮想マシンには、VMの形式に関して違いがあります。 Azure VMには、適切なパフォーマンス(プロセッサ、メモリ、ストレージ、入出力値)を提供するプリセットと見なせる特定のVMサイズがあります。Azure VMに接続できる仮想ディスクの最大サイズは1 TBです。Azure VMではVHD形式の仮想ディスクのみがサポートされており、AzureではGeneration 1 VMのみを展開できます。
Hyper-V VM を Azure にレプリケートする方法
Hyper-V VM と Azure VM には違いがあるため、Hyper-V VM を単に Azure にレプリケートし、そのレプリカとして Azure 仮想マシンを実行することはできません。幸いなことに、この問題を解決できる方法があります。Microsoft は Windows Server 2016 のリリースに伴い、この状況に対応できる新しい”Hyper-V ネスト型仮想化”機能を発表しました。 Azureの ネスト型仮想化 機能を使用すると、VM内でVMを実行できます。つまり、AzureにWindows Server仮想マシンを展開し、Hyper-V形式のネストされたVMを実行することが可能です。この環境により、ローカルのHyper-V VMをAzureにレプリケートできます。
AzureへのHyper-V VMフェイルオーバーの手順は以下の通りです:
- Azureクラウドに、Windows Server 2016またはWindows Server 2019を実行するAzure VMを展開します。
- Azureで実行されているそのWindows Server VMにHyper-Vロールをインストールします。
- Azure内の仮想Hyper-Vホスト上で実行されているネストされたVMのネットワークを設定します。
- 物理(オンプレミス)のHyper-Vホストから、Azure内でVMとして実行されている仮想Hyper-VホストへVMをレプリケートします。
- 災害発生時には、Azure内のHyper-Vホスト上で実行されているネストされたVMのレプリカへフェイルオーバーします。
本日のブログ記事では、その方法について解説します。 Azure に Hyper-V レプリカを作成し、Azure に存在する Hyper-V 形式のネストされた VM へのフェイルオーバーを実行する方法について説明します。スクリーンショットを含む詳細な手順が、ワークフローの理解に役立つことを願っています。
デモ環境
このブログ記事で紹介する例には、1 つのローカルサイト( Office 1 にあるデータセンター)と、1 つのディザスタリカバリサイト(Azure クラウドにデプロイされた仮想 Hyper-V 環境)があります。
The environment of Office 1
- スイッチを内蔵した物理ルーターが 1 台あります。このルーターにはファイアウォールが搭載されています。このルーターの WAN IP アドレスは 77.88.196.86 で、LAN IP アドレスは 192.168.17.1 です。LAN(ローカルエリアネットワーク)のアドレスは 192.168.17.0/24 です。
- NAKIVO Backup & Replication(ディレクターとトランスポーターで構成される完全なソリューション)がインストールされたマシン(物理または仮想)があります。IP アドレスは 192.168.17.63 です。
- 物理サーバー上で稼働する Hyper-V ホストがあります。IP アドレスは 192.168.17.23 です。Hyper-V ホストと NAKIVO Backup & Replication が稼働するマシンは、同じネットワーク(192.168.17.0/24)に接続されています。この Hyper-V ホストは NAKIVO Backup & Replication のインベントリに追加され、保護されています。
- Hyper-V ホストには、仮想スイッチ(192.168.117.0/24)に接続された仮想ネットワークアダプターがあります。Hyper-V サーバー上のこの仮想ネットワークアダプターの IP アドレスは 192.168.117.1 です。
- Hyper-V ホスト(192.168.17.23)上で稼働する VM は仮想スイッチに接続され、ネットワーク(192.168.117.0/24)にも接続されています。WinServer2016blog という Hyper-V VM がこの Hyper-V ホスト上で稼働しており、Azure にレプリケートされます。この VM には Windows Server 2016 がインストールされています。
Azure Cloud environment
- Windows Server 2016 が稼働する Azure VM があります。このマシンでは Hyper-V ロールが有効になっています。Azure で稼働するこの Hyper-V サーバーの外部 IP アドレスは 55.105.221.43 です。この IP アドレスは、インターネットから Hyper-V ホストに接続するために使用されます。Azure ファイアウォールは、 Office 1 の外部 IP アドレスからの接続のみを許可するように設定されています。また、Azure で Hyper-V を実行する Windows Server 2016 の Windows ファイアウォールも同様に設定され、Hyper-V ホストからネストされた VM への接続と、その逆方向の接続を許可しています。
- Hyper-V ホスト上の仮想スイッチは、仮想 NAT デバイスの背後にあるネットワークにネストされた VM を接続するように構成されています。このネットワークの名前は NAT Network で、仮想スイッチの名前は InternalSwitchNAT です。 このバーチャルスイッチに接続されている仮想NATデバイスのIPアドレスは192.168.217.1であり、ネットワークアドレスは192.168.217.0/24です。
- 入れ子になったVMはNATネットワーク(192.168.217.0/24)に接続され、インターネットにアクセスできます。AzureのHyper-Vホスト上に2つのテストVMが作成され、その後、 WinServer2016blog VMのレプリカが、 Office 1 のHyper-Vホストで実行されている状態で、Azureクラウドで実行されているHyper-Vホスト上に作成されます。
- AzureでHyper-Vを実行しているWindows Server 2016 VMは、Azure VM同士の接続に使用される仮想ローカルエリアネットワークにも接続されています。このネットワークのアドレスは10.0.4.0/24です。
- Office 1 からAzureへ、Azureクラウドに展開されたHyper-V環境を含めて接続するには、インターネット接続が必要です。
以下の図で、上述したすべての要素を確認できます。
Azureの入れ子になったHyper-V VMへのフェイルオーバーのワークフロー
上記の図に従って、 Office 1 のローカル環境とAzureクラウドのリモート環境を含む環境の構成方法を確認します。プライマリデータセンター( Office 1 )にHyper-Vサーバーが既にインストールされ、構成されているものとします。また、NBRが物理マシンまたは仮想マシン上でインストール済みされており、プライマリデータセンター( Office 1 )で少なくとも1台のHyper-V VMが実行されているものとします。この例では、元のHyper-V VMの名前は WinServer2016blog です。
新しいAzure VMの作成
AzureでWindows Server 2016を実行するVMを作成します。このVMは、Hyper-Vサーバーをインストールし、入れ子になったHyper-V VMを実行するために使用します。Webブラウザーを開き、Microsoft Azure Webサイトにアクセスします。アカウントを使用してMicrosoft Azureにサインインします。Azureクラウドサービスを使用するには、適切なサブスクリプションが必要です。https://portal.azure.com/ページで、WebインターフェイスのVirtual machinesを選択します。
仮想マシン ページ(Home > Virtual Machine)で、Addをクリックして仮想マシンを作成します。
VMの作成ページには複数のタブがあり、各タブにはいくつかのセクションがあります。
基本
ウィザードの 基本 タブで、次のパラメーターを設定します。
Project details
サブスクリプション :従量課金制(利用可能なサブスクリプションを選択します)。
リソースグループ 。既存のリソースグループを選択するか、新しいリソースグループを作成します。この例では、 testnbr がリソースグループの名前です。 Instance details
仮想マシンの名前 : Server2016Azure。
リージョン : (ヨーロッパ) 西ヨーロッパ。必要なリージョン(たとえば、お住まいの地域に最も近いリージョンなど)を選択してください。
可用性オプション : インフラストラクチャの冗長性は不要(このデフォルト設定のままにしておいて構いません)。
イメージ : Windows Server 2016 Datacenter(Windows Server 2012 R2 Datacenter よりも多くの Hyper-V 機能をサポートしているため、Windows Server 2016 が推奨されます)。
Azure Spot インスタンス : いいえ。
サイズ : D2s_v3 がこの例で使用されています。Hyper-V Server の実行をサポートする別の VM サイズを選択することもできます。すべての v3 シリーズの Azure VM は、ネストされた仮想化をサポートしています。 Azure上で実行されているHyper-Vホストへのフェイルオーバー後、必要なすべてのHyper-V VMを実行するのに十分なVMパフォーマンスが確保されている必要がある点に留意してください。
Administrator account
ユーザー名 : nakivo(任意のユーザー名を入力できます)
パスワード : *************(コードパスワードを設定してください)
パスワードの確認 : *************
Inbound port rules
パブリックインターネットからAzure仮想マシンにアクセスするために、開く必要がある着信ポートを選択できます。このVMをリモートで管理する際は、RDPポートを開いたままにしておきましょう。RDPは、着信接続にTCPポート3389を使用します。VMの設定が完了したら、RDP(リモートデスクトッププロトコル)経由のネットワークアクセスを無効にできます。 後で、Azure のファイアウォールをさらに詳細に構成し、特定の IP アドレスやネットワークからのカスタム ポートへの受信接続を許可することもできます。
パブリック受信ポート : 選択したポートを許可
受信ポートの選択 : RDP (3389)
Save money
コスト削減につながる可能性があるため、Windows Server ライセンスをすでに所有しているかどうかを選択してください。
No がデフォルトで選択されています。
これらの設定は、以下のスクリーンショットで確認できます。
VM サイズを選択すると、VM の名前、仮想プロセッサ数 (vCPU)、メモリ容量 (RAM)、最大 IOPS 値 (1 秒あたりの入出力操作数)、一時ストレージのサイズ、プレミアム ディスクのサポート、および月額費用が表示されます。
準備が整い、ウィザードの次のステップに進むには、” “”Next” をクリックします。
“Disks”
このタブでは、作成したい仮想ディスクの構成を選択する必要があります。
Disk options
“OS disk type” :Premium SSD。先に選択したVMサイズはPremium SSDディスクに対応しているため、このオプションはそのままにしておくのが最も実用的です。 その他の利用可能なオプションは、Standard HDD と Standard SSD です。
Azure 仮想マシンの作成時に、Azure 仮想マシン用の追加ディスクを作成できます。VM が現在実行中であっても作成できます。
次へ をクリックして、ネットワークを構成します。
ネットワーク
ネットワーク タブで、次のパラメーターを選択します。
Network interface
仮想ネットワーク : 既存の仮想ネットワークを選択するか、新しい仮想ネットワークを作成します。この例では、 testnbr-vnet が仮想ネットワークの名前です。
サブネット : 既定値 (10.0.4.0/24) です。Azure クラウド内の仮想 LAN(ローカル エリア ネットワーク)で Azure 仮想マシン同士を通信させるために使用するサブネットを選択します。新しいサブネットを作成することもできます。
パブリック IP : 既定値のままにできます。
NIC ネットワーク セキュリティ グループ : Basic
パブリック受信ポート : 選択したポートを許可
受信ポートを選択 : RDP (3389) です。これは、VM 作成ウィザードの最初の画面で表示された設定です。
高速ネットワーク : オフ
Load balancing
この仮想マシンを既存の負荷分散ソリューションの背後に配置する : いいえ
これで、管理設定の構成に進むことができます。
管理
このタブでは、Azure 仮想マシンの監視および管理オプションを構成できます。既定の管理パラメーターを使用できます。診断ストレージ アカウントがまだ作成されていない場合は、作成します。このタブで構成するオプションが不明な場合は、既定のパラメーターを使用します。
詳細
このタブでは、既定の設定を使用し、仮想マシンの世代 (第1世代または第2世代) を選択できます。この例では、Generation 1 VM を作成中です。
タグ
必要に応じてカスタム タグを追加できます。
これで、Review + create をクリックして、新しい VM の構成を確認できます。
検証に合格 と表示されれば、すべて問題なく、新しい VM を作成できます。
同様の新しい Azure VM を複数デプロイする必要がある場合は、自動化用のテンプレートをダウンロードできます。
最後に、青色の Create ボタンをクリックして、仮想マシンの作成プロセスを開始します。
VM が作成されるまでお待ちください。
VM が正常にデプロイされると、次の画面が表示されます。
Hyper-V Server ロールをインストール中です
Windows Server 2016 を実行する新しい Azure VM をデプロイすると、Hyper-V ロールをインストールできます。 Azureで作成したVMは、作成後に自動的に起動します。必要に応じて、VMを手動で起動することもできます。AzureのWebインターフェースでVMを起動するには、Home > Virtual machinesに移動し、デプロイしたVMを選択して(チェックボックスをオンにして)、Startをクリックしてください。
VMをクリックすると、オプションメニューとVMの情報が表示されます。このVMの外部IPアドレスを確認してください。このIPアドレスを使用して、Azureで実行されているWindows Server 2016 VMにリモートデスクトップ経由で接続してください。この例では、Azure VMの外部IPアドレスは51.105.221.43です。
ローカルのWindowsマシンで、リモートデスクトップクライアントを開き、Azureで実行されているWindows Server 2016に接続してください。Windowsのスタートメニュー(スタート>Windowsアクセサリ>リモートデスクトップ接続)で適切なショートカットを確認するか、CMDを開いて、次のコマンドを実行してください:
mstsc -v: 51.105.221.43
Azure VMの作成中に設定したWindowsの管理者資格情報を入力してください。
ポップアップ確認ウィンドウが表示された場合は、はいをクリックしてください。
Hyper-Vのインストールを準備中です
Azureで実行されているリモートWindows Server 2016 VMに接続し、リモートデスクトップセッションを確立すると、画面の右側に青いポップアップウィンドウが表示されます。この画面は、ネットワークアダプターが初めてネットワークに接続されたときに表示されます。この青いウィンドウに、次の質問が表示されます:
このネットワーク上の他のPCやデバイスから、お使いのPCを検出できるようにしますか?
Yesをクリックしてください。
その後、ネットワークアダプターがプライベートネットワークプロファイルを使用していることを確認してください。または、プロファイルをパブリックからプライベートに手動で変更できます。
既定のネットワークアダプター名はEthernetです。
PowerShellでネットワークプロファイルをプライベートに変更できます:
$Profile = Get-NetConnectionProfile -InterfaceAlias Ethernet
$Profile.NetworkCategory = "Private"
Set-NetConnectionProfile -InputObject $Profile
ネットワークと共有センターを開きます。タスクバー(時計の近く)のネットワークアイコンを右クリックし、ネットワークと共有センターを開くを選択してください。開いたネットワークと共有センターウィンドウで、ネットワークプロファイルを確認できます(プライベートネットワークである必要があります)。ウィンドウのコントロールパネル ホームセクションで、アダプターの設定の変更をクリックしてください。 
高度な共有設定 ウィンドウで、 プライベート プロファイル(現在のプロファイルである必要があります)を選択し、turn on network discovery、次に turn on file and printer sharing を選択します(以下のスクリーンショットをご覧ください)。
Save Changes を押して、ウィンドウを閉じます。
Hyper-V のインストール
PowerShell を管理者として実行し、Azure 上の Windows Server 2016 で Hyper-V ロールをインストールする コマンドを実行します。
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
Windows Server 2016 を実行している Azure VM は、Hyper-V のインストールを完了するために自動的に再起動します。リモート デスクトップ セッションは切断されます。マシンの再起動後、リモート デスクトップ クライアントを使用して Azure VM に手動で接続します。
RDP 経由で Azure 上で実行中の Windows Server 2016 VM に接続したら、Hyper-V サーバーを設定します。Windows Server 2016 の起動時に自動的に開かれる サーバー マネージャー ウィンドウでは、 Hyper-V オプションを確認できます。Hyper-V マネージャーを開くには、Tools > Hyper-V Manager に移動します。スクリーンショットで確認できるように、ホスト名は仮想マシンの作成時に定義した Azure VM 名と同じです。
Hyper-V 仮想ネットワークの準備
既定では Hyper-V に仮想スイッチが作成されていませんので、新しい仮想スイッチを手動で作成および構成する必要があります。
Hyper-V マネージャーで Hyper-V サーバー名を右クリックし、コンテキスト メニューで 仮想スイッチ マネージャー を選択します。仮想スイッチ マネージャーのグラフィカル ユーザー インターフェイスでは、3 種類の仮想スイッチを作成できます: 外部 、 内部 、および プライベート です。
Hyper-V 仮想スイッチ に関するブログ記事を読み、ニーズに合った 3 種類の仮想スイッチのいずれかを作成します。ただし、NAT ネットワークを作成できるのは PowerShell のコマンド ライン インターフェイスだけであることにご注意ください。
このブログ記事では、 NAT 仮想スイッチ と NAT の背後にあるネットワークを作成します。これにより、独自の隔離されたネットワークで実行され、インターネットおよび Hyper-V ホストにアクセスできるネストされた Hyper-V VM を作成できます。Hyper-V ホストからネストされた Hyper-V VM に接続できます。
NAT モードで新しい仮想スイッチを作成および構成するために、PowerShell を開きます:
New-VMSwitch -Name "InternalSwitchNAT" -SwitchType Internal
ここで、 InternalSwitchNAT は仮想スイッチの名前で、 内部 は仮想スイッチの種類です。
ネットワーク インターフェイスのインデックスを確認します。 Get-NetAdapter
ご覧のように、Azure で Hyper-V ホストとして実行されている Windows Server 2016 に、 vEthernet (InternalSwitchNAT) 仮想ネットワーク アダプターが作成されています。
この例では、必要なアダプターのインターフェイス インデックスは 20 です。
以前に作成した vEthernet (InternalSwitchNAT) 仮想ネットワーク インターフェイスに IP アドレスを設定します。
New-NetIPAddress -IPAddress 192.168.217.1 -PrefixLength 24 -InterfaceIndex 20
この例では、このインターフェイスの IP アドレスは 192.168.217.1 です。
24 はネットワーク マスクの長さであり、255.255.255.0 と等しくなります。
新しい仮想ネットワークを作成し、作成したネットワークのネットワーク アドレスを設定します。
New-NetNat -Name "InternalNATnet" -InternalIPInterfaceAddressPrefix 192.168.217.0/24
仮想スイッチ マネージャーの GUI を開くと、新しい仮想スイッチが作成されたことを確認できます。
最後に、仮想ネットワーク インターフェイス vEthernet (InternalSwitchNAT ) の構成は次のとおりです。
IP アドレス: 192.168.217.1
ネットマスク: 255.255.255.0
NAT ネットワークのファイアウォールを構成します
ネットワーク接続を許可し、入れ子になった仮想マシンから Hyper-V ホストへのアクセスを許可するには、Windows ファイアウォールを構成する必要があります。
Hyper-V ホストの Windows ファイアウォールで新しい Inbound 規則を作成します(以前に作成した内部 NAT ネットワークからの受信接続を許可します)。
規則名 : Allow217net
操作 : 接続を許可します
プロトコルとポート : 任意
プログラムおよびサービス : 任意
スコープ : 192.168.217.0/24
プロファイル : ドメイン、プライベート、パブリック(上記の構成で使用するプライベート プロファイルのみを選択できます)
PowerShell コマンドを 1 つ使用して、この規則を作成できます。
New-NetFirewallRule -RemoteAddress 192.168.217.0/24 -DisplayName "Allow217net" -Profile Any -Action Allow
Windows ファイアウォールの GUI を開いて、規則が作成されていることを確認できます。
PowerShell コマンドレットを使用して、Windows ファイアウォールで使用できるすべての規則を一覧表示できます。
Get-NetFirewallRule
テスト用の入れ子になった仮想マシンを作成します
入れ子になった仮想マシン間、Hyper-V ホストと入れ子になった仮想マシン間のネットワーク接続をテストし、さらに入れ子になった仮想マシンからインターネットにアクセスできることをテストするために、2 台の入れ子になった Hyper-V 仮想マシンを作成することをお勧めします。
ここで、Windows Server 2016 のインストール ISO イメージを Azure で実行されている Hyper-V ホストにコピーし、Windows Server 2016 を実行する 2 台の入れ子になった Hyper-V 仮想マシンを作成します(Windows Server 2016 のインストール イメージがない場合は、イメージをダウンロードするか、手動で作成します)。 次に、これら2台のネストされたVMを仮想Hyper-V NATネットワークに接続し、Hyper-Vネットワークが適切に構成されているかどうかを確認します。
この例では、ISOイメージを一時ディレクトリ( C:temp )にコピーします(2台のテスト用Hyper-VネストVMを作成した後にISOファイルを削除するためです)。Azure仮想マシンの一時ストレージ(この場合はディスク D:)に重要なデータをコピーしないでください。一時ストレージからデータが自動的に削除される可能性があります。
推奨プラクティスに従い、Azure VM用に2台目の永続的な仮想ディスクを作成し、そのディスクにVMレプリカ(Hyper-Vレプリカ)を含むネストされたHyper-V VMを保存できます(例: E:)。前述のとおり、Azure VMの実行中に新しい仮想ディスクをHot Addできます。このブログ記事では、学習目的のため、すべてのVMをディスク C:に保存します。
もう1つの推奨事項は、グローバルHyper-V設定でVMファイルおよび仮想ディスクを保存するディレクトリを指定することです。例えば、VMファイルを保存するディレクトリとして E:VMsHyper-V を設定し、仮想ディスクを保存するディレクトリとして E:VMsHyper-VVirtualHardDisks を設定できます。
Hyper-Vで新しいWindows VMを作成する方法については、このブログ記事で確認できます。
ネストされたHyper-V VMを作成するときは、そのVM用に大容量の仮想ディスクを作成しないでください。Windows Server 2016をインストールするには、20 GBの動的仮想ディスクで十分です。テスト後は、これらのVMを削除し、AzureクラウドでHyper-V VMのフェイルオーバーに備えてリモートサイトを準備するための環境構成に進みます。最近作成したNATネットワーク( InternalSwitchNAT )に、ネストされたHyper-V VMの仮想ネットワークアダプターを接続することを忘れないでください。このNATネットワークをこれからテストします。
その他のVMパラメーターは次のとおりです。
RAM:2 GB
CPU:1プロセッサー
世代:1
ネストされたVMの仮想ネットワークアダプターのIPアドレスは手動で設定されています。
NestedWinTest
IPアドレス:192.168.217.21
マスク:255.255.255.0
既定のゲートウェイ:192.168.217.1
DNSサーバー1:8.8.8.8
DNSサーバー2:192.168.217.1
NestedWinTest2
IPアドレス:192.168.17.22
マスク:255.255.255.0
既定のゲートウェイ:192.168.217.1
DNSサーバー1:8.8.8.8
DNSサーバー2:192.168.217.1
必要に応じて、Azureで実行中のHyper-VホストまたはネストされたHyper-V VM上でDHCPサーバーを構成できます。 2つの入れ子になったHyper-V VMを内部スイッチNATネットワークに接続し、すべてのプロトコルとポートを許可するようにWindowsファイアウォールを設定すると、入れ子になったVMおよびHyper-Vホストから各ホストにpingを実行できます。以下のスクリーンショットに示すように、NATの背後にある仮想ネットワークは、Azure VMとして実行されているHyper-Vサーバー上で正しく構成されています。
これにより、Hyper-Vレプリカを作成し、ローカルサイトからレプリカへのHyper-V VMのフェイルオーバーを実行する際に、Azure環境をリモートサイトとして使用するように構成できます。NBRコンポーネントの構成を開始する前に、Azure VMとして実行されているHyper-V上で、インバウンド接続およびICMP接続に適切なTCPポートを許可する必要があります。ファイアウォールの構成後、Azureで実行されているHyper-VホストにNAKIVOトランスポーターをインストールします。
NBRのファイアウォールの構成
NBRネットワーク要件に従って、ディレクターとトランスポーター間のネットワーク接続を確立するには、次のポートをインバウンドトラフィック用に開く必要があります。
TCP: 9445、9446、9448~10000、445、137~139、5986。
ネットワーク上でNBRが正常に機能するように、ICMPトラフィックを許可する必要があります。
NAKIVO Directorは、完全なソリューションをインストールするときに、指定したマシンにインストールされる集中管理インターフェースです。ディレクターは、トランスポーター、バックアップリポジトリ、インベントリ、VMware環境、Hyper-V環境などの管理に使用します。NBRを展開するときは、ディレクターを1つだけインストールできます。
NAKIVO Transporterは、圧縮、暗号化、重複排除などのデータ転送操作を担当し、バックアップ、レプリケーション、復旧を実行するコンポーネントです。ディレクターがインストールされているマシンには、オンボードトランスポーターがデフォルトで1つインストールされ、このオンボードトランスポーターは製品から削除できません。必要に応じて、他のマシンに複数のトランスポーターを展開できます。これにより、データの暗号化、圧縮、リモートネットワークへのデータ転送の簡略化、およびワークロードの分散が可能になります。
Azureでファイアウォールを構成するとともに、Azure VMとして実行されているHyper-Vホスト上のWindowsファイアウォールも構成する必要があります。
Azureでのファイアウォールの構成
AzureのWebインターフェースでHome > Virtual machinesに移動し、VM(この場合はServer2016Azure)を選択して、そのVM名をクリックし、VMの設定を開きます。次に、左ペインでNetworkingをクリックして、ネットワーク設定を開きます。 Add inbound port rule をクリックして、新しいファイアウォール規則を作成します。
画面の右側に、新しいファイアウォール規則のパラメータを設定するためのウィンドウが表示されます。この例では、NBRが正常に動作するために作成する最初のファイアウォール規則のパラメータを以下に示します。
送信元 : IPアドレス
送信元IPアドレス : 77.88.196.86, 77.88.196.87(Office 1、Office 2などのルーターで使用する外部IPアドレスを選択します)
送信元ポート範囲 : *
宛先 : 任意
宛先ポート範囲 : 9445,9446,9448-10000,445,137-139,5986
プロトコル : TCP
アクション : 許可
優先度 : 310(既定値)
名前 : Allow_NAKIVO_ports
Add ボタンをクリックして設定を保存し、新しいファイアウォール規則を追加します。
ICMP接続を許可するために、もう一度 Add inbound port rule をクリックします。2番目の規則には、以下に示すパラメータを設定します。
送信元 : IPアドレス
送信元IPアドレス : 77.88.196.86, 77.88.196.87( Office 1 のルーターで使用する信頼できる外部IPアドレスを選択します)
送信元ポート範囲 : *
宛先 : 任意
宛先ポート範囲 : *
プロトコル : ICMP
アクション : 許可
優先度 : 320(既定値)
名前 : Allow_ICMP_NAKIVO
これで、AzureクラウドでAzure VMとして実行されているHyper-Vホスト用の必要な規則がAzureに作成されました。
これでAzureのファイアウォールの設定は完了しました。Azure VMで実行されているWindowsでも、別のファイアウォールを設定する必要があります。
AzureのHyper-VホストでWindowsファイアウォールを設定します
Azureで実行されているHyper-Vホストを管理するRDPセッションに戻ります。そのセッションを閉じた場合は、RDPを使用してAzureで実行されているHyper-Vホストにもう一度接続します。Windowsファイアウォールを開き、Windows Server 2016に同様の2つの規則を追加します。
Rule 1 には、次のパラメータを指定します。
名前 : Allow_NAKIVO_ports
送信元 : IPアドレス
送信元IPアドレス/CIDR範囲 : 77.88.196.86, 77.88.196.87
送信元ポート範囲 : *
宛先 : 任意
宛先ポート範囲 : TCP 9445, 9446, 445, 5986, 9448-10000, 137-139
プロトコル: TCP
アクション: 許可
優先度: 310(既定値)
規則は、WindowsファイアウォールのGUIまたはPowerShellで作成できます。ここでは、PowerShellで規則を作成します。 PowerShellを管理者として実行し、次のコマンドを実行します。
New-NetFirewallRule -DisplayName 'Allow_Nakivo_ports' -Profile @('Domain', 'Private', 'Public') -Direction Inbound -Action Allow -Protocol TCP -LocalPort @('9445', '9446', '445', '5986', '9448-10000', '137-139') -RemoteAddress @('77.88.196.86', '77.88.196.87')
同様に、受信ICMP接続を許可する2つ目の規則を作成します。Windows Server 2016で受信ICMPv4接続と受信ICMPv6接続を許可するには、2つのコマンドを使用します。
New-NetFirewallRule -DisplayName "Allow_ping_NAKIVO4" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -RemoteAddress @('77.88.196.86', '77.88.196.87')
New-NetFirewallRule -DisplayName "Allow _ping_NAKIVO6" -Direction Inbound -Protocol ICMPv6 -IcmpType 8 -RemoteAddress @('77.88.196.86', '77.88.196.87')
これで、Azureに配置されたHyper-VホストのWindowsファイアウォールに必要なすべての規則が追加されました。WindowsファイアウォールのGUIで、規則が正常に作成されていることを確認できます。
AzureのWindows Server 2016 VMを再起動し、NBRの設定に進みます。
NBRの設定
これで、Azure VMとして実行されているHyper-VホストをNBRのインベントリに追加する準備が整いました。この例では、NBRは Office 1 という名前のプライマリサイト(オンプレミス)で実行されているマシンに配置されています。NBRの完全なソリューションをまだインストールしていない場合は、Linuxマシン、Windowsマシン、NASデバイスに製品をインストールするか、VMware ESXiホストに仮想アプライアンスを配置することで、手動でインストールできます。NBRのインストール方法について詳しくは、ヘルプセンターをご覧ください。
Hyper-Vホストをインベントリに追加します
NBRのインベントリにHyper-Vホストを追加すると、そのHyper-Vホストにトランスポーターが自動的にインストールされます。そのため、Azureで実行されているリモートHyper-Vホストにトランスポーターを手動で配置する必要はありません。Hyper-Vを実行しているAzure VMの外部IPアドレスを確認します。この目的には、AzureのWebインターフェイスを使用できます。
物理環境で実行されているHyper-Vホストは、Azureクラウドで実行されているリモートHyper-Vホストを追加する前に、インベントリに追加しておく必要があります。この例では、ローカルHyper-Vホストはすでに在庫に追加されましたです。それでは、Azureに配置されたリモートHyper-Vホストをインベントリに追加します。
製品がインストールされているマシンのIPアドレスをブラウザーに入力して、NBRのWebインターフェイスを開きます。この場合は、次のアドレスを使用します。 https://192.168.17.63:4443
Configuration > Inventoryに移動し、Add Newをクリックします。表示されたメニューで、Microsoft Hyper-V host or clusterを選択します。
Azureで実行されているHyper-Vホストに、次の情報を追加します。
表示名 :Hyper-V in Azure
種類 :スタンドアロンHyper-Vホスト
ホスト名またはIPアドレス :55.105.221.43(Azureで実行されているHyper-VホストのIPアドレスを入力します)
ユーザー名 :nakivo(AzureでWindows Server 2016およびHyper-Vを実行する仮想マシンを配置したときに設定したユーザー名を入力します)
パスワード : ************* (AzureのHyper-Vホスト上のWindowsユーザーのパスワードを入力します)
WS-MANポート: 5986(デフォルト値をそのまま使用できます)。
注意: ファイアウォールは、上記の説明に従って正しく設定する必要があります。Hyper-Vホストをインベントリに追加できず、” “55.105221.43C$”ネットワーク共有に接続できません。このホスト上のネットワーク共有にアクセスできることを確認してください。”のようなエラーメッセージが表示された場合は、 ファイアウォール設定を確認してください。
NBRマシンのシステムコンソールにログインして、AzureのHyper-Vホストの外部IPアドレスにpingを実行できます。また、ISP(インターネットサービスプロバイダー)から取得したルーターの外部IPアドレスも必ず確認してください。NBRがLinuxにインストールされている場合は、次のコマンドを使用してWAN IPアドレスを確認できます。
dig +short myip.opendns.com @resolver1.opendns.com
次に、このコマンドの実行後にコンソールに表示されたIPアドレスが、インバウンド接続で許可されるIPアドレスとしてAzure側のファイアウォールルールに追加されていることを確認してください。
Hyper-Vホストを追加すると、インベントリは以下のスクリーンショットのインベントリのようになります。
トランスポーターは、Azureで実行中のリモートHyper-Vホストにインストールされています。これにより、プライマリサイト(データセンター)で実行中のプライマリ(オンプレミス)Hyper-Vホスト上のソースVMのHyper-Vレプリカを作成できます。この例では、そのプライマリサイトは Office 1 と呼ばれています。以下のスクリーンショットには、ローカルHyper-Vホスト上にあるソースVMの一覧が表示されています(この例では 192.168.17.63 です)。同様に、ネットワークテスト用に作成され、AzureのHyper-Vホスト上にある2つのネストされたVMも確認できます。 WinServer2016blog VMは、このブログ記事の次のセクションでレプリケートされます。
Hyper-V VMのレプリカを作成します
NBRのWebインターフェースで ホームページ に移動します。Createをクリックして、Microsoft Hyper-V replication jobを選択します。
Microsoft Hyper-V用の新規レプリケーションジョブウィザードが開きます。
1. Source。レプリケートする仮想マシンを選択します。この例では、 WinServer2016blog がAzureにレプリケートされるVMの名前です。テスト用にAzureのHyper-Vホスト上に作成された2つのネストされたVMを確認できます。
各手順で 次へ をクリックして続行します。
2. Destination。送信先コンテナとして AzureのHyper-V を選択します。 C:NakivoReplicas は、Hyper-Vホスト上でVMレプリカを保存する送信先ディレクトリとして使用されます。 仮想マシンを保存するために追加の仮想ディスクを追加している場合は、そのディスク上のディレクトリ(例:ディスク E:NakivoReplicas )を選択することをお勧めします。
仮想マシン名をクリックして詳細設定を展開し、仮想マシンの仮想ネットワークアダプターを接続するネットワークを選択します。この例では、VMレプリカは InternalSwitchNAT 仮想ネットワーク(AzureでHyper-Vホストをデプロイした後に手動で作成されたネットワーク)に接続されます。
3. Networks。この手順でネットワークマッピングを設定できます。
ネットワークマッピングは、レプリケーションジョブの完了後にVMレプリカの仮想ネットワークアダプターを接続する仮想ネットワーク(仮想スイッチ)を定義するための機能です。この機能により、宛先のHyper-Vホスト上でVMレプリカのネットワーク設定を手動で構成する必要がなくなります。
この例では、ソースのHyper-V VMが Broadcom NetXtreme ネットワークに接続されています。このVMのレプリカは、 InternalSwitchNAT ネットワーク(上記のPowerShellで作成されたネットワーク)に接続する必要があります。
4. Re-IP。ネットワークマッピングを設定すると、VMレプリカが必要な仮想ネットワークに接続されます。次に、VMレプリカに対して選択したネットワークで有効なIPアドレスを定義します。Re-IP機能では、複数のVMに適用できるルールを作成し、どのソースIPアドレスをどの宛先IPアドレスに変更するかを設定できます。
Create new rule をクリックして、新しいRe-IPルールを作成します。
この例での source settings は次のとおりです。
IPアドレス : 192.168.117.*(この場合、アスタリスクは1~254の任意の値を意味します)
サブネットマスク : 255.255.255.0
Target settings は次のとおりです。
IPアドレス : 192.168.217.*
サブネットマスク : 255.255.255.0
デフォルトゲートウェイ : 192.168.217.1
プライマリDNSサーバー : 8.8.8.8
セカンダリDNSサーバー : 192.168.217.1
したがって、ソースVMのIPアドレス192.168.117.7は192.168.217.7に変更されます。
ルールを適用するVMを選択することを忘れないでください(Select VMs をクリックします)。
5. Schedule。スケジュールオプションを設定します。
6. Retention。必要に応じて保持設定を構成します。
7. Options。必要なVMオプションを選択します。以下では、最も重要なオプションについて説明します。
ジョブ名 : Hyper-VからAzureへのレプリケーション
アプリケーション認識モード 。有効にし、設定をクリックしてユーザー名とパスワードを指定します。
変更追跡 : ソースホストでWindows Server 2016以降が実行されている場合は、 Hyper-V RCT を使用してください。Windows Server 2012 R2以前でHyper-Vが実行されている場合は、独自の方法を使用してください。
その他の設定はデフォルトのままにできます。
Hyper-V複製ジョブの設定をセーブしてジョブを実行するには、Finish & Runを押してください。
VMがAzureのHyper-Vホストに複製されるまでお待ちください。ジョブの完了に必要な時間は、インターネットの帯域幅と仮想ディスクのサイズによって異なります。
注意: エラーメッセージ[Replication of the “WinServer2016blog” VM cannot be started. There is no connection between all possible source and target transporters for this VM in job “Hyper-V replication to Azure”]が表示された場合は、ネットワーク構成を確認してください。詳細を表示するには、Learn Moreをクリックしてください。
ローカル側とAzure側のファイアウォール設定を確認してください。ネットワークプロパティで、ソースHyper-Vホストの高度な共有設定を確認してください。NBRウェブインターフェースの設定ページにある適切なタブで、インベントリとトランスポーターを更新してください。
すべてが正しく構成されていることを確認してください。その後、AzureへのHyper-V複製ジョブをもう一度開始してください。これで、Hyper-V複製ジョブが正しく実行されるはずです。
複製ジョブが完了すると、AzureのHyper-VホストにVMレプリカ( WinServer2016blog-replica )が表示されます。このHyper-Vレプリカは、Azure内のネストされたVMです。
VMのAzureへのフェイルオーバー
VMレプリカが作成されたため、NBRでVMのフェイルオーバーを実行する準備が整っています。
ホームページでRecoverをクリックし、表示されたメニューでVMレプリカのフェイルオーバーを選択してください。
新しい Microsoft Hyper-V用フェイルオーバージョブウィザードが開きます。
1. Source フェイルオーバーに使用するVMレプリカを選択してください。この場合、 WinServer2016blog-replica はAzure内のネストされたVMレプリカの名前です。
2. Networks ネットワークマッピングを有効にすると、複製ジョブの場合と同様に、必要な仮想Hyper-VネットワークへVMレプリカを手動で再接続せずに済みます。
3. Re-IP. フェイルオーバー後にVMレプリカのIPアドレスを手動で再構成せずに済むよう、Re-IPを有効にできます。Select VMsをクリックし、Re-IPルールを適用するVMレプリカを選択してください。
4. Options ジョブ名を入力してください(例: Hyper-VのAzureへのフェイルオーバー)。
競合を避け、すべての変更がソースVMではなくVMレプリカに加えられるように、ソースVMを電源オフにしてください。
Finish & Runをクリックして、フェイルオーバージョブをセーブして実行してください。
Hyper-Vフェイルオーバージョブが完了するまで、しばらくお待ちください。 ジョブが完了すると、VMレプリカが実行中であり、ソースVMの電源がオフになっていることを確認できます。
Hyper-Vを実行中のAzure VMにRDPで接続し、ネストされたVMレプリカの電源がオンになっていることを確認できます。すべての変更は、現在ネストされたVMレプリカに書き込まれています。
プライマリサイトのインフラストラクチャが復旧すると、VMフェイルバック操作を実行し、リモート復旧サイトとして使用されているAzureからプライマリサイト(この場合は Office 1 )にワークロードを戻すことができます。VMフェイルバックを実行すると、VMレプリカで行われた変更が元のVMに転送されます。この操作はフェイルバックと呼ばれます。
VMフェイルバック
フェイルバックを実行するには、NAKIVO Backup & Replication WebインターフェースのホームページでRecover > VM replica failbackに移動します。
フェイルバックジョブウィザード が開きます。
1. Source. VMフェイルオーバーに使用したVMレプリカを選択します(この例では WinServer2016blog-replica です)。フェイルバックジョブを開始する前に、VMレプリカをシャットダウンすることをお勧めします。
2. Destination。ドロップダウンメニューでOriginal Locationを選択します。必要に応じて 新しい所在地 を選択できます。
3. Networks. フェイルオーバージョブを設定したときの前のルールと逆の順序で、逆方向のネットワークマッピングルールを作成します。この場合、ソースネットワークは InternalSwitchNAT で、ターゲットネットワークは Broadcom NetXtreme です。
4. Re-IP。IPアドレスを逆の順序で変更します。この例では、Re-IPルールの設定を以下に示します。
Source Settings
IPアドレス : 192.168.217.*
サブネットマスク : 255.255.255.0
Target Settings
IPアドレス : 192.168.117.*
サブネットマスク : 255.255.255.0
デフォルトゲートウェイ : 192.168.117.1
プライマリDNSサーバー : 192.168.117.1
セカンダリDNSサーバー : 8.8.8.8
Select VMs をクリックし、VMレプリカ(この場合は WinServer2016blog-replica です)を選択します。
5. Options。VM名、事前アクション、事後アクションなどのフェイルバックジョブオプションを定義します。
ジョブ名を入力します: Hyper-VのAzureからのフェイルバック。
チェックボックスをオンにします: レプリカVMの電源をオフにします。
Finish and Run をクリックして設定をセーブし、フェイルバックジョブを実行します。変更がソースVMと同期されるまでお待ちください。その後、プライマリサイトでVMを引き続き使用できます。 注: このブログ記事で Office 1 と呼ばれているプライマリサイトのファイアウォールは、NAKIVO Backup & Replication のコンポーネント間のネットワーク通信とデータ転送を許可するように正しく構成する必要があります。そうしない場合、次のようなエラーメッセージが表示される可能性があります。
VM”winServer2016blog-replica”のレプリケーションに失敗しました。”WinServer2016blog-replica”VM の 1 つ以上の仮想ディスクのレプリケーション中にエラーが発生しました 。
この場合は、プライマリサイトのルーターと Hyper-V サーバーのファイアウォール設定を確認してください。Azure で作成したものと同様のファイアウォールルールをいくつか作成する必要がある場合があります。
動作原理を説明するために、このブログ記事ではネットワーク構成の簡単な例を説明しています。代替手段としてサイト間 VPN 接続を構成することもできます。これにより、ネットワーク接続に関して、より柔軟で高度なオプションを利用できます。
結論
リモートサイトに VM レプリカを保持することは、ディザスタリカバリ計画で推奨されるオプションです。ディザスタリカバリ用の独自のリモートサイトを展開できない場合は、パブリッククラウドサービスをディザスタリカバリサイトとして使用できます。仮想マシンの実行に Hyper-V エンジンを使用する Microsoft Azure は、クラウドで VM を実行するための優れたソリューションです。ただし、Azure VM と Hyper-V VM の形式には複数の違いがあるため、Hyper-V VM を Azure に直接レプリケーションすることはできません。Hyper-V の入れ子になった仮想化は、VM 内で VM を実行できる便利な機能です。この機能を使用して、Hyper-V VM を Azure にレプリケーションできます。
このブログ記事では、Azure で Hyper-V の入れ子になった仮想化を利用し、複製する Hyper-V 仮想マシンを Microsoft Azure クラウドに移行して、災害から保護する方法について説明しました。NAKIVO Backup & Replication は Hyper-V VM をクラウド内の Azure VM として実行されている Hyper-V ホストにレプリケーションし、ディザスタリカバリシナリオの一環として VM のフェイルオーバーとフェイルバックを実行できます。
これで、ディザスタリカバリプロセスを迅速かつ簡単に実行できるように、Azure 環境、Hyper-V 環境、ファイアウォール、および NAKIVO Backup & Replication を構成する方法を理解できたはずです。





























































