VMM での記憶域レプリカの管理

記憶域レプリカを使用すると、記憶域に依存しないブロック レベルの同期レプリケーションをクラスターまたはサーバー間で行い、障害の準備と復旧、およびサイト間でのフェールオーバー クラスターの拡張を実現し、高可用性を実現できます。 同期レプリケーションでは、クラッシュ前後の整合性が維持されるボリュームを使用して物理サイト内のデータのミラーリングを実現し、ファイル システム レベルでデータがまったく失われないようにします。 非同期レプリケーションでは、データが失われる可能性はありますが、大都市圏の範囲を超えてサイトを拡張できます。

詳しくはFAQをご覧ください。

この記事では、記憶域レプリカを 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 で実行されている必要があります。
  • 同期レプリケーションのみがサポートされています。 非同期はサポートされていません。
  • ボリューム ストレージまたはファイル ストレージの 2 つのストレージ セットが必要です。 ソースと宛先の両方の場所に同じ種類のストレージ (ファイルまたはボリューム) が必要ですが、実際のストレージは混在させることができます。 たとえば、一方の端にファイバー チャネル SAN を、もう一方の端にスペース ダイレクト (ハイパーコンバージド モードまたは非集約モード) を設定できます。
  • 各ストレージ セットは、各クラスターで使用できる必要があります。 クラスター ストレージを共有することはできません。
  • ソース ボリュームとコピー先ボリューム (ログ ボリュームを含む) は、サイズとブロック サイズが同じである必要があります。 これは、記憶域レプリカでブロック レプリケーションが使用されるためです。
  • 各ストレージ サーバーに少なくとも 1 つの 1 GbE 接続 (できれば 10 GbE、iWARP、または InfiniBand) が必要です。
  • 各ファイル サーバーまたはクラスター ノードには、すべてのノード間で ICMP、SMB (ポート 445、SMB ダイレクトの場合は 5445)、WS-MAN (ポート 5985) の双方向トラフィックを許可するファイアウォール規則が必要です。
  • 各クラスター ノードの管理者グループのメンバーである必要があります。
  • 記憶域レプリカは、現時点では Windows PowerShell を使用してのみ設定できます。
  • 移行元と移行先の記憶域は、同じ VMM サーバーで管理する必要があります。
  • VMM と Azure Site Recovery の統合はサポートされていません。
  • 書き込み順序と整合性グループの設定はサポートされていません。

デプロイメントの手順

  1. ストレージの識別: 使用するソースストレージと宛先ストレージを特定します。

  2. 検出と分類: 記憶域が現在 VMM ファブリックにない場合は、VMM で検出する必要があります。 移行元と移行先の両方の記憶域は、同じ VMM サーバーで管理する必要があります。 検出後、記憶域プールとその記憶域の分類を作成します。 詳細情報。

  3. ペア: ソースストレージアレイと宛先ストレージアレイをペアリングします。

  4. プロビジョニング: ストレージがペアになった後、それぞれのストレージ アレイに作成されたソース 記憶域プールと移行先記憶域プールから同じデータ ボリュームとログ ボリュームをプロビジョニングする必要があります。 レプリケートされるデータのボリュームをプロビジョニングするだけでなく、レプリケーション トランザクション ログ用のボリュームもプロビジョニングする必要があります。 ソース ストレージでデータが更新されると、トランザクション ログが追加され、差分変更が同期先ストレージと同期されます (同期レプリケーションを使用)。

  5. レプリケーション グループの作成: ボリュームが配置されたら、レプリケーション グループを作成します。 レプリケーション グループは、複数のボリュームを含む論理グループです。 レプリケーション グループは、ソース サイトと移行先サイトのデータ ボリュームとログ ボリュームをそれぞれ含む同一である必要があります。

  6. レプリケーションを有効にする: ソース レプリケーション グループとレプリケーション先レプリケーション グループ間のレプリケーションを有効にできるようになりました。

  7. 更新: レプリケーション グループの作成を完了し、初期データ レプリケーションをトリガーするには、プライマリ ストレージ プロバイダーとセカンダリ ストレージ プロバイダーを更新する必要があります。 データは宛先ストレージにレプリケートされます。

  8. 状態の確認: プライマリ レプリケーション グループの状態を確認できるようになりました。 レプリケート中の状態である必要があります。

  9. VM の追加: 差分レプリケーションが稼働しているときに、レプリケーション グループに含まれるストレージを使用する VM を追加できます。 VM を追加すると、VM が検出され、自動的にレプリケートが開始されます。

  10. フェールオーバーの実行: レプリケーションが同期状態になると、フェールオーバーを実行して、想定どおりに動作しているかどうかを確認できます。 テスト フェールオーバー メカニズムがないため、計画的または計画外の停止に対応して手動フェールオーバーを実行します。 フェールオーバー後は、ソース サイト上の VM を削除し (まだ存在する場合)、レプリケートされたデータを使用して移行先サイトに VM を作成できます。

  11. フェールバックの実行: フェールオーバーが完了し、レプリカ VM が稼働したら、必要に応じてフェールバックできます。 次のことを確認してください。

    • un計画フェールオーバー を実行し、ソースの場所を使用できない場合は、フェールオーバーを実行してセカンダリからプライマリの場所にフェールバックし、プライマリの場所に VM を作成します。
    • 計画フェールオーバーを実行してもソース VM を使用できる場合は、レプリケーションを停止し、ソース VM を削除し、セカンダリ の場所に VM を作成してから、レプリケーションを再起動する必要があります。 その後、プライマリ サイトで、元の VM と同じ設定で VM を作成できます。

PowerShell オブジェクトを取得する

  1. 開始する前に、使用する PowerShell オブジェクトの名前を取得します。

  2. プライマリ ストレージ アレイの名前を取得し、変数に割り当てます。

        $PriArray = Get-SCStorageArray -Name $PriArrayName
    
  3. セカンダリ ストレージ アレイの名前を取得し、変数に割り当てます。

        RecArray = Get-SCStorageArray -Name $RecArrayName
    
  4. プライマリ 記憶域プールの名前を取得し、変数に割り当てます。

        $ $ PriPoolName $RecPool = Get-SCStoragePool -Name $
    
  5. セカンダリ 記憶域プールの名前を取得し、変数に割り当てます。

        $ $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 をプロビジョニングします。 次に、レプリケーション グループを作成します。

  1. ソースでプロビジョニングと作成を行います。

        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
    
  2. 移行先でプロビジョニングして作成します。

        $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

ストレージ プロバイダーを更新する

  1. VMM コンソールを開きます。
  2. 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

次のステップ