VMM での記憶域レプリカの管理
記憶域レプリカは Windows Server 2016 で導入されました。 これにより、クラスターまたはサーバー間のストレージに依存しないブロック レベルの同期レプリケーションが可能になり、高可用性を実現するために、障害の準備と復旧、およびサイト間でのフェールオーバー クラスターの拡張が可能になります。 同期レプリケーションでは、クラッシュ前後の整合性が維持されるボリュームを使用して物理サイト内のデータのミラーリングを実現し、ファイル システム レベルでデータがまったく失われないようにします。 非同期レプリケーションでは、データが失われる可能性はありますが、大都市圏の範囲を超えてサイトを拡張できます。
記憶域レプリカを使用すると、記憶域に依存しないブロック レベルの同期レプリケーションをクラスターまたはサーバー間で行い、障害の準備と復旧、およびサイト間でのフェールオーバー クラスターの拡張を実現し、高可用性を実現できます。 同期レプリケーションでは、クラッシュ前後の整合性が維持されるボリュームを使用して物理サイト内のデータのミラーリングを実現し、ファイル システム レベルでデータがまったく失われないようにします。 非同期レプリケーションでは、データが失われる可能性はありますが、大都市圏の範囲を超えてサイトを拡張できます。
この記事では、記憶域レプリカを System Center Virtual Machine Manager (VMM) と統合する方法と、PowerShell を使用して VMM ファブリック内の記憶域をレプリケートするように記憶域レプリカを設定する方法について説明します。
VMM の記憶域レプリカ
記憶域レプリカを使用して、Hyper-V クラスターのデータまたはファイル データをレプリケートできます。 VMM で記憶域レプリカを使用すると、多くのビジネス上の利点があります。
- SAN などの同期レプリケーション ソリューションに関連するコストと複雑さを排除します。
- 同期レプリケーションにより、ダウンタイムとデータ損失が最小限に抑えられます。 RPO は 0 (データ損失なし) を提供します。 RTO (データ利用不可) は、プライマリ サイトが失敗し、セカンダリ サイトが起動する間にのみ発生します。
- 移行元と移行先のストレージ ハードウェアは同一である必要はありません。
開始する前に
- VMM は、Windows Server 2016 以降の Datacenter Edition で実行されている必要があります。
- Hyper-V は、Windows Server 2016 以降の Datacenter、Server Core、または Nano で実行されている必要があります。
- VMM は Windows Server 2025 以降の Datacenter Edition で実行されている必要があります。
- Hyper-V は、Windows Server 2019 以降の Datacenter、Server Core、または Nano で実行されている必要があります。
- 同期レプリケーションのみがサポートされています。 非同期はサポートされていません。
- ボリューム ストレージまたはファイル ストレージの 2 つのストレージ セットが必要です。 ソースと宛先の両方の場所に同じ種類のストレージ (ファイルまたはボリューム) が必要ですが、実際のストレージは混在させることができます。 たとえば、一方の端にファイバー チャネル SAN を、もう一方の端にスペース ダイレクト (ハイパーコンバージド モードまたは非集約モード) を設定できます。
- 各ストレージ セットは、各クラスターで使用できる必要があります。 クラスター ストレージを共有することはできません。
- ソース ボリュームとコピー先ボリューム (ログ ボリュームを含む) は、サイズとブロック サイズが同じである必要があります。 これは、記憶域レプリカでブロック レプリケーションが使用されるためです。
- 各ストレージ サーバーに少なくとも 1 つの 1 GbE 接続 (できれば 10 GbE、iWARP、または InfiniBand) が必要です。
- 各ファイル サーバーまたはクラスター ノードには、すべてのノード間で ICMP、SMB (ポート 445、SMB ダイレクトの場合は 5445)、WS-MAN (ポート 5985) の双方向トラフィックを許可するファイアウォール規則が必要です。
- 各クラスター ノードの管理者グループのメンバーである必要があります。
- 記憶域レプリカは、現時点では Windows PowerShell を使用してのみ設定できます。
- 移行元と移行先の記憶域は、同じ VMM サーバーで管理する必要があります。
- VMM と Azure Site Recovery の統合はサポートされていません。
- 書き込み順序と整合性グループの設定はサポートされていません。
デプロイメントの手順
ストレージの識別: 使用するソースストレージと宛先ストレージを特定します。
検出と分類: 記憶域が現在 VMM ファブリックにない場合は、VMM で検出する必要があります。 移行元と移行先の両方の記憶域は、同じ VMM サーバーで管理する必要があります。 検出後、記憶域プールとその記憶域の分類を作成します。 詳細情報。
ペア: ソースストレージアレイと宛先ストレージアレイをペアリングします。
プロビジョニング: ストレージがペアになった後、それぞれのストレージ アレイに作成されたソース 記憶域プールと移行先記憶域プールから同じデータ ボリュームとログ ボリュームをプロビジョニングする必要があります。 レプリケートされるデータのボリュームをプロビジョニングするだけでなく、レプリケーション トランザクション ログ用のボリュームもプロビジョニングする必要があります。 ソース ストレージでデータが更新されると、トランザクション ログが追加され、差分変更が同期先ストレージと同期されます (同期レプリケーションを使用)。
レプリケーション グループの作成: ボリュームが配置されたら、レプリケーション グループを作成します。 レプリケーション グループは、複数のボリュームを含む論理グループです。 レプリケーション グループは、ソース サイトと移行先サイトのデータ ボリュームとログ ボリュームをそれぞれ含む同一である必要があります。
レプリケーションを有効にする: ソース レプリケーション グループとレプリケーション先レプリケーション グループ間のレプリケーションを有効にできるようになりました。
更新: レプリケーション グループの作成を完了し、初期データ レプリケーションをトリガーするには、プライマリ ストレージ プロバイダーとセカンダリ ストレージ プロバイダーを更新する必要があります。 データは宛先ストレージにレプリケートされます。
状態の確認: プライマリ レプリケーション グループの状態を確認できるようになりました。 レプリケート中の状態である必要があります。
VM の追加: 差分レプリケーションが稼働しているときに、レプリケーション グループに含まれるストレージを使用する VM を追加できます。 VM を追加すると、VM が検出され、自動的にレプリケートが開始されます。
フェールオーバーの実行: レプリケーションが同期状態になると、フェールオーバーを実行して、想定どおりに動作しているかどうかを確認できます。 テスト フェールオーバー メカニズムがないため、計画的または計画外の停止に対応して手動フェールオーバーを実行します。 フェールオーバー後は、ソース サイト上の VM を削除し (まだ存在する場合)、レプリケートされたデータを使用して移行先サイトに VM を作成できます。
フェールバックの実行: フェールオーバーが完了し、レプリカ VM が稼働したら、必要に応じてフェールバックできます。 次のことを確認してください。
- un計画フェールオーバー を実行し、ソースの場所を使用できない場合は、フェールオーバーを実行してセカンダリからプライマリの場所にフェールバックし、プライマリの場所に VM を作成します。
- 計画フェールオーバーを実行してもソース VM を使用できる場合は、レプリケーションを停止し、ソース VM を削除し、セカンダリ の場所に VM を作成してから、レプリケーションを再起動する必要があります。 その後、プライマリ サイトで、元の VM と同じ設定で VM を作成できます。
PowerShell オブジェクトを取得する
開始する前に、使用する PowerShell オブジェクトの名前を取得します。
プライマリ ストレージ アレイの名前を取得し、変数に割り当てます。
$PriArray = Get-SCStorageArray -Name $PriArrayName
セカンダリ ストレージ アレイの名前を取得し、変数に割り当てます。
RecArray = Get-SCStorageArray -Name $RecArrayName
プライマリ 記憶域プールの名前を取得し、変数に割り当てます。
$ $ PriPoolName $RecPool = Get-SCStoragePool -Name $
セカンダリ 記憶域プールの名前を取得し、変数に割り当てます。
$ $PriPoolName $RecPool = Get-SCStoragePool -Name $
ストレージ アレイをペアリングする
ストレージ・アレイ名の変数を使用して、1 次ストレージ・アレイと 2 次ストレージ・アレイをペアにします。
Note
配列名はクラスター名と同じである必要があります。
Set-SCStorageArray -StorageArray $PriArray -PeerStorageArrayName $RecArray.name
VMM の外部でクラスターを作成し、クラスター名と一致するように配列名の名前を変更する必要がある場合は、次のコマンドを使用します。
Get-SCStorageArray -Name "existing-name" | Set-SCStorageArray -Name "new-name"
LUN をプロビジョニングしてストレージ グループを作成する
データとログ用に、記憶域プールから LUN をプロビジョニングします。 次に、レプリケーション グループを作成します。
ソースでプロビジョニングと作成を行います。
Set-SCStorageArray -StorageArray $PriArray -PeerStorageArrayName $RecArray.name $PrimaryVol = New-SCStorageVolume -StorageArray $PriArray -StoragePool $PriPool -Name PrimaryVol -SizeInBytes $VolSize -RunAsynchronously -PhysicalDiskRedundancy "1" -FileSystem "CSVFS_NTFS" -DedupMode "Disabled" $PrimaryLogVol = New-SCStorageVolume -StorageArray $PriArray -StoragePool $PriPool -Name PrimaryLogVol -SizeInBytes $LogVolSize -GuidPartitionTable -RunAsynchronously -FileSystem "NTFS" $PriRG = New-SCReplicationGroup -Name PriRG -StorageVolume $PrimaryVol -LogStorageVolume $PrimaryLogVol
移行先でプロビジョニングして作成します。
$RecoveryVol = New-SCStorageVolume -StorageArray $RecArray -StoragePool $RecPool -Name RecoveryVol -SizeInBytes $VolSize -RunAsynchronously -PhysicalDiskRedundancy "1" -FileSystem "CSVFS_NTFS" -DedupMode "Disabled" $RecoveryLogVol = New-SCStorageVolume -StorageArray $RecArray -StoragePool $RecPool -Name RecoveryLogVol -SizeInBytes $LogVolSize -GuidPartitionTable -RunAsynchronously -FileSystem "NTFS" $RecRG = New-SCReplicationGroup -Name RecRG -CreateOnArray -ProtectionMode Synchronous -StorageVolume $RecoveryVol -LogStorageVolume $RecoveryLogVol
レプリケーションを有効にする
移行元と移行先のレプリケーション グループ間の同期レプリケーションを有効にします。
Set-SCReplicationGroup -ReplicationGroup $PriRG -Operation EnableProtection -TargetReplicationGroup $RecRG -EnableProtectionMode Synchronous
ストレージ プロバイダーを更新する
- VMM コンソールを開きます。
- Fabric リソース>Providers を選択します。 プロバイダーを右クリックし、[更新] をクリックします。
レプリケーションの状態を確認する
レプリケーションが想定どおりに動作していることを確認するために、ソース レプリケーション グループのレプリケーションの状態を取得します。
Get replication status Get-SCReplicationGroup | where {($_.Name.EndsWith("PriRG")) -or ($_.Name.EndsWith("RecRG"))} | fl Name, IsPrimary, ReplicationState, ReplicationHealth
VM を作成する
ソース レプリケーション グループ内の LUN を使用して VM を作成します。 または、VMM コンソールで VM を作成することもできます。
New-SCVirtualMachine -Name "DemoVM" -VMHost <HostName> -Path $PrimaryVol -VMTemplate <VMTemplate>
フェールオーバーの実行
フェールオーバーを実行します。
Set-SCReplicationGroup -ReplicationGroup $PriRG -Operation PrepareForFailover
Set-SCReplicationGroup -ReplicationGroup SRecRG -Operation Failover
フェールバックを実行する
フェールバックする前に、VMM コンソールで、ソース VM がまだ使用可能な場合は削除します。 同じ VM にフェールバックすることはできません。
フェールバックを実行します。
Set-SCReplicationGroup -ReplicationGroup $PriRG -Operation ReverseRoles -EnableProtectionMode Synchronous -TargetReplicationGroup $RecRG
フェールバックを実行した後、フェールバックされた VHD/構成ファイルを使用して、ソース サイトに VM を作成できます。
レプリケーションの停止
レプリケーションを停止する場合は、ソースと宛先でこのコマンドレットを実行する必要があります。
Set-SCReplicationGroup -ReplicationGroup $RecRG -Operation TearDown Tear down need to be done on both RGs
次のステップ
- 記憶域レプリカの詳細を確認する。
- 記憶域を Hyper-V ホストとクラスターに割り当てについて説明します。
- Migrate storageの詳細を確認します。