ストレージ レプリカでは、クラスター間でボリュームをレプリケートできます。このレプリケーションには、記憶域スペース ダイレクトを使用します。 管理と構成は、サーバー間のレプリケーションに似ています。
これらのコンピューターと記憶域はクラスター間構成で構成します。クラスター間の構成では、1 つのクラスターが独自のストレージ セットを別のクラスターとそのストレージ セットと共にレプリケートします。 これらのノードとそのストレージは、別の物理サイトに配置する必要がありますが、必須ではありません。
Important
このテストでは、4 台のサーバーは一例です。 各クラスターでは、Microsoft によってサポートされる任意の数のサーバーを使用することができます。現在、記憶域スペース ダイレクト クラスターの場合は 8 台、共有記憶域クラスターの場合は 64 台のサーバーがサポートされています。
このガイドでは、記憶域スペース ダイレクトの構成については説明しません。 記憶域スペース ダイレクトを構成する方法の詳細については、「記憶域スペース ダイレクトの概要」を参照してください。
このチュートリアルでは、例として次の環境を使用します。
Two member servers, named SR-SRV01 and SR-SRV02 that are later formed into a cluster named SR-SRVCLUSA.
Two member servers named SR-SRV03 and SR-SRV04 that are later formed into a cluster named SR-SRVCLUSB.
A pair of logical "sites" that represent two different data centers, with one called Redmond and one called Bellevue.
図 1: クラスター間のレプリケーション
Prerequisites
- Active Directory Domain Services フォレスト (Windows Server 2016 を実行する必要はありません)。
- Windows Server 2019 または Windows Server 2016 Datacenter Edition を実行している 4 ~ 128 台のサーバー (2 ~ 64 台のサーバーの 2 つのクラスター)。 Windows Server 2019 を実行している場合は、Standard Edition を使用することもできます。その場合、最大 2 TB の 1 つのボリュームのみをレプリケートした方が問題ありません。
- SAS JBOD、ファイバー チャネル SAN、共有 VHDX、記憶域スペース ダイレクト、または iSCSI ターゲットを使う 2 セットのストレージ。 記憶域では HDD メディアと SSD メディアを混在させる必要があります。 各ストレージ セットは、クラスター間の共有アクセスなしで、各クラスターでのみ使用できるようにします。
- 記憶域の各セットでは、2 つ以上 (1 つはレプリケートされたデータ用、1 つはログ用) の仮想ディスクの作成が許可される必要があります。 物理記憶域のセクター サイズは、すべてのデータ ディスクで同じである必要があります。 物理記憶域のセクター サイズは、すべてのログ ディスクで同じである必要があります。
- 同期レプリケーションのために各サーバーで少なくとも 1 つのイーサネット/TCP 接続 (可能であれば RDMA)。
- すべてのノード間で ICMP、SMB (ポート 445、SMB ダイレクト用に 5445)、WS-MAN (ポート 5985) の双方向トラフィックを許可する適切なファイアウォールおよびルーター ルール。
- 書き込みの IO 負荷に十分対応できる帯域幅を持ちラウンド トリップ遅延時間が平均 5 ミリ秒である、同期レプリケーション用のサーバー間ネットワーク。 非同期レプリケーションには待機時間に関する推奨事項はありません。
- レプリケートされたストレージは、Windows オペレーティング システム フォルダーを含むドライブに配置できません。
- 記憶域スペース ダイレクト レプリケーションには重要な考慮事項と制限事項があります。
これらの要件の多くは、Test-SRTopology
コマンドレットを使用して判別できます。 記憶域レプリカまたは記憶域レプリカ管理ツール機能を 1 つ以上のサーバーにインストールすると、このツールにアクセスできるようになります。 このツールを使用するように記憶域レプリカを構成する必要はなく、コマンドレットをインストールする必要があります。 詳細は、以下の手順に記載されています。
手順 1: オペレーティング システム、機能、役割、記憶域、およびネットワークのプロビジョニング
Install Windows Server on all four server nodes with an installation type of Windows Server (Desktop Experience).
ネットワークの情報を追加し、ドメインに参加させてから再起動します。
Important
この時点から、すべてのサーバーの組み込み管理者グループのメンバーであるドメイン ユーザーとして常にサインインします。 今後、グラフィカルなサーバーのインストールまたは Windows 10 コンピューターで実行するとき、Windows PowerShell および CMD プロンプトを昇格してください。
Connect first set of JBOD storage enclosure, iSCSI target, FC SAN, or local fixed disk (DAS) storage to the server in site Redmond.
Connect second set of storage to the server in site Bellevue.
必要に応じて、4 つのすべてのノードに、ベンダー ストレージとエンクロージャの最新のファームウェアとドライバー、最新のベンダー HBA ドライバー、最新のベンダー BIOS および UEFI ファームウェア、最新のベンダー ネットワーク ドライバー、およびマザーボード チップセットの最新のドライバーをインストールします。 必要に応じてノードを再起動します。
Note
共有記憶域およびネットワーク ハードウェアの構成については、ハードウェア ベンダーのドキュメントを参照してください。
サーバーの BIOS および UEFI の設定が、C 状態の無効化、QPI 速度の設定、NUMA の有効化、最大メモリ動作周波数の設定など、高パフォーマンスを有効にする設定であることを確認します。 Windows Server での電源管理が高パフォーマンスに設定されていることを確認します。 必要に応じて再起動します。
役割を次のように構成します。
Graphical method
Run ServerManager.exe and create a server group, adding all server nodes.
Install the File Server and Storage Replica roles and features on each of the nodes and restart them.
Windows PowerShell による方法
SR-SRV04 またはリモート管理コンピューター上で、Windows PowerShell コンソール内で次のコマンドを実行して、4 つのノード上でストレッチ クラスター用に必要な機能と役割をインストールし、ノードを再起動します。
$Servers = 'SR-SRV01','SR-SRV02','SR-SRV03','SR-SRV04' $Servers | ForEach { Install-WindowsFeature -ComputerName $_ -Name Storage-Replica,Failover-Clustering,FS-FileServer -IncludeManagementTools -restart }
詳細については、「役割、役割サービス、または機能のインストールまたはアンインストール」を参照してください。
記憶域を次のように構成します。
Important
- 各格納装置で、データ用に 1 つとログ用に 1 つの 2 つのボリュームを作成する必要があります。
- Log and data disks must be initialized as GPT, not MBR.
- 2 つのデータ ボリュームのサイズは同じでなければなりません。
- 2 つのログ ボリュームのサイズは同じでなければなりません。
- すべてのレプリケートされたデータ ディスクには、同一のセクター サイズが必要です。
- すべてのログ ディスクのセクター サイズは、同じである必要があります。
- ログ ボリュームには、SSD など、フラッシュ ベースのストレージを使用する必要があります。 ログ ストレージには、データ ストレージよりも大きな速度を確保することをお勧めします。 ログ ボリュームは、絶対に他のワークロードに使用しないでください。
- データ ディスクには、HDD、SSD、または階層型の組み合わせを使用でき、ミラーまたはパリティ スペースか、RAID 1 または 10 もしくは RAID 5 または RAID 50 のいずれかを使用できます。
- 指定しない場合、ログ サイズは既定で 8 GB に設定されます。 ログボリュームは、ログの要件と組織のニーズに基づいて、少なくとも 10 GB 以上である必要があります。
- NVME または SSD キャッシュで記憶域スペース ダイレクト (記憶域スペース ダイレクト) を使用すると、記憶域スペース ダイレクト クラスター間でストレージ レプリカ レプリケーションを構成するときに、予想よりも長い待機時間が発生します。 待機時間の変更は、パフォーマンス + 容量構成で NVME と SSD を使用する場合に見るよりもはるかに高く、HDD 層も容量レベルもありません。
この問題は、SR のログ メカニズム内のアーキテクチャの制限と、低速メディアと比較した場合の NVME の待機時間が非常に短いことにより発生します。 記憶域スペース ダイレクト記憶域スペース ダイレクト キャッシュを使用する場合、SR ログのすべての IO と、アプリケーションのすべての最近の読み取り/書き込み IO はキャッシュに格納され、パフォーマンスレベルまたは容量レベルでは発生しません。 これは、すべての SR アクティビティが同じ速度メディアで行われることを意味します。この構成は推奨されません (ログの推奨事項については、 https://aka.ms/srfaq を参照してください)。
HDD で記憶域スペース ダイレクトを使用する場合、キャッシュを無効にしたり回避したりすることはできません。 回避策として、SSD と NVME を使用する場合は、パフォーマンス レベルと容量レベルを構成できます。 その構成を使用し、SR ログをパフォーマンス レベルに配置し、サービス対象のデータ ボリュームが容量レベルのみに設定されている場合は、上記の待機時間の長い問題を回避できます。 同じことを、より高速な SSD と低速な SSD および NVME なしを組み合わせて実行できます。
この回避策は理想的ではなく、一部のお客様はそれを利用できない場合があります。 SR チームは、このような人為的ボトルネックが発生する原因を減らすために、将来の最適化と更新されたログ メカニズムに取り組み中です。
- JBOD エンクロージャの場合:
各クラスターがそのサイトの記憶域エンクロージャのみを参照できることと、SAS 接続が正しく構成されていることを確認します。
Provision the storage using Storage Spaces by following Steps 1-3 provided in the Deploy Storage Spaces on a Stand-Alone Server using Windows PowerShell or Server Manager.
- iSCSI ターゲット記憶域の場合:
各クラスターがそのサイトのストレージ格納装置のみを参照できることを確認します。 iSCSI を使用する場合は、複数の単一ネットワーク アダプターを使用する必要があります。
ベンダーのドキュメントを参照して記憶域をプロビジョニングします。 Windows ベースの iSCSI ターゲットを使用する場合は、「iSCSI ターゲット ブロック記憶域: 操作方法」を参照してください。
- FC SAN ストレージの場合:
各クラスターがそのサイトのストレージ格納装置のみを参照できることと、ホストのゾーンが正しく設定されていることを確認します。
ベンダーのドキュメントを参照して記憶域をプロビジョニングします。
- 記憶域スペース ダイレクトの場合:
記憶域スペース ダイレクトを展開することで、各クラスターがそのサイトのストレージ格納装置のみを参照できるようにします。
SR ログ ボリュームが常に最も高速なフラッシュ ストレージに配置され、データ ボリュームが低速な大容量ストレージに配置されることを確認します。
Windows PowerShell を起動し、
Test-SRTopology
コマンドレットを使用して、記憶域レプリカのすべての要件を満たしているかどうかを判別します。 このコマンドレットを要件専用モードで使用すると、クイック テストと実行時間の長いパフォーマンス評価モードを実現できます。 For example,MD c:\temp Test-SRTopology -SourceComputerName SR-SRV01 -SourceVolumeName f: -SourceLogVolumeName g: -DestinationComputerName SR-SRV03 -DestinationVolumeName f: -DestinationLogVolumeName g: -DurationInMinutes 30 -ResultPath c:\temp
Important
評価期間中に指定したソース ボリュームに対する書き込み IO 負荷のないテスト サーバーを使用している場合は、ワークロードの追加を検討してください。負荷がない場合、有用なレポートは生成されません。 実際の数値および推奨されるログのサイズを確認するには、実稼働環境と同様のワークロードでテストする必要があります。 Alternatively, copy some files into the source volume during the test or download and run DISKSPD to generate write IOs. たとえば、D: ボリュームに対する 5 分間の低書き込み IO ワークロードによる一例を次に示します:
Diskspd.exe -c1g -d300 -W5 -C5 -b8k -t2 -o2 -r -w5 -h d:\test.dat
Examine the TestSrTopologyReport.html report to ensure that you meet the Storage Replica requirements.
手順 2: 2 つのスケールアウト ファイル サーバー フェールオーバー クラスターを構成する
次に、2 つの通常のフェールオーバー クラスターを作成します。 構成、検証、テストが完了したら、記憶域レプリカを使用してレプリケートします。 次のすべての手順は、クラスター ノード上で直接実行することも、Windows Server Remote Server Administration ツールをインストール済みのリモート管理コンピューターから実行することもできます。
Graphical method
Run cluadmin.msc against a node in each site.
提案されたクラスターを検証し、結果を分析して、続行できることを確認します。 The example used below are SR-SRVCLUSA and SR-SRVCLUSB.
2 つのクラスターを作成します。 クラスター名が 15 文字以下であることを確認します。
ファイル共有監視またはクラウド監視を構成します。
Note
Windows Server には、クラウド (Azure) ベースの監視のオプションが含まれるようになりました。 ファイル共有監視に代えてこのクォーラム オプションを選択できます。
Warning
クォーラム監視の構成の詳細については、「 クォーラム監視の展開」を参照してください。 For more information on the
Set-ClusterQuorum
cmdlet, see Set-ClusterQuorum.Add one disk in the Redmond site to the cluster CSV. To do so, right click a source disk in the Disks node of the Storage section, and then click Add to Cluster Shared Volumes.
スケールアウト ファイル サーバーの構成の手順に従って、両方のクラスターにクラスター化されたスケールアウト ファイル サーバーを作成します。
Windows PowerShell による方法
提案されたクラスターをテストし、結果を分析して、続行できることを確認します。
Test-Cluster SR-SRV01,SR-SRV02 Test-Cluster SR-SRV03,SR-SRV04
クラスターを作成します (クラスターには独自の静的 IP アドレスを指定する必要があります)。 各クラスター名が 15 文字以下であることを確認します。
New-Cluster -Name SR-SRVCLUSA -Node SR-SRV01,SR-SRV02 -StaticAddress <your IP here> New-Cluster -Name SR-SRVCLUSB -Node SR-SRV03,SR-SRV04 -StaticAddress <your IP here>
ドメイン コントローラーまたはその他のなんらかの独立したサーバーでホストされている共有を指す各クラスター内でファイル共有監視またはクラウド (Azure) 監視を構成します。 For example:
Set-ClusterQuorum -FileShareWitness \\someserver\someshare
Note
Windows Server には、クラウド (Azure) ベースの監視のオプションが含まれるようになりました。 ファイル共有監視に代えてこのクォーラム オプションを選択できます。
スケールアウト ファイル サーバーの構成の手順に従って、両方のクラスターにクラスター化されたスケールアウト ファイル サーバーを作成します。
手順 3: Windows PowerShell を使用してクラスター間のレプリケーションを設定する
次に、Windows PowerShell を使用してクラスター間レプリケーションを設定します。 次のすべての手順は、ノード上で直接実行することも、Windows Server Remote Server Administration ツールをインストール済みのリモート管理コンピューターから実行することもできます
Grant the first cluster full access to the other cluster by running the Grant-SRAccess cmdlet on any node in the first cluster, or remotely. Windows Server のリモート サーバー管理ツール
Grant-SRAccess -ComputerName SR-SRV01 -Cluster SR-SRVCLUSB
Grant the second cluster full access to the other cluster by running the Grant-SRAccess cmdlet on any node in the second cluster, or remotely.
Grant-SRAccess -ComputerName SR-SRV03 -Cluster SR-SRVCLUSA
ソースと宛先のディスク、ソースと宛先のログ、ソースと宛先のクラスター名、およびログのサイズを指定して、クラスター間のレプリケーションを構成します。 このコマンドは、サーバー上でローカルで実行するか、リモート管理コンピューターを使用して実行できます。
New-SRPartnership -SourceComputerName SR-SRVCLUSA -SourceRGName rg01 -SourceVolumeName c:\ClusterStorage\Volume2 -SourceLogVolumeName f: -DestinationComputerName SR-SRVCLUSB -DestinationRGName rg02 -DestinationVolumeName c:\ClusterStorage\Volume2 -DestinationLogVolumeName f: -LogType Raw
Warning
既定のログのサイズは 8 GB です。 Depending on the results of the Test-SRTopology cmdlet, you may decide to use -LogSizeInBytes with a higher or lower value.
To get replication source and destination state, use Get-SRGroup and Get-SRPartnership as follows:
Get-SRGroup Get-SRPartnership (Get-SRGroup).replicas
次のようにレプリケーションの進行状況を確認します。
ソースサーバーで、次のコマンドを実行し、イベント 5015、5002、5004、1237、5001、および 2200 を確認します。
Get-WinEvent -ProviderName Microsoft-Windows-StorageReplica -max 20
レプリケーション先サーバーで、次のコマンドを実行して、パートナーシップの作成を示す記憶域レプリカ イベントを参照します。 このイベントでは、コピーされたバイト数と所要時間が示されます。 Example:
Get-WinEvent -ProviderName Microsoft-Windows-StorageReplica | Where-Object {$_.ID -eq "1215"} | Format-List
この場合の出力例を以下に示します。
TimeCreated : 4/8/2016 4:12:37 PM ProviderName : Microsoft-Windows-StorageReplica Id : 1215 Message : Block copy completed for replica. ReplicationGroupName: rg02 ReplicationGroupId: {616F1E00-5A68-4447-830F-B0B0EFBD359C} ReplicaName: f:\ ReplicaId: {00000000-0000-0000-0000-000000000000} End LSN in bitmap: LogGeneration: {00000000-0000-0000-0000-000000000000} LogFileId: 0 CLSFLsn: 0xFFFFFFFF Number of Bytes Recovered: 68583161856 Elapsed Time (seconds): 117
または、レプリカのレプリケーション先サーバー グループでは、コピーの残りのバイト数が常時示されており、PowerShell を使って照会できます。 For example:
(Get-SRGroup).Replicas | Select-Object numofbytesremaining
進行状況サンプル (終了しません):
while($true) { $v = (Get-SRGroup -Name "Replication 2").replicas | Select-Object numofbytesremaining [System.Console]::Write("Number of bytes remaining: {0}`n", $v.numofbytesremaining) Start-Sleep -s 5 }
宛先クラスターの宛先サーバーで、次のコマンドを実行し、イベント 5009、1237、5001、5015、5005、2200 を調べて、処理の進行状況を把握します。 このシーケンスでは、エラーの警告は発生しないはずです。 イベント 1237 が多くあります。これは進行状況を示します。
Get-WinEvent -ProviderName Microsoft-Windows-StorageReplica | FL
Note
宛先クラスター ディスクは、レプリケート中は常に [Online (No Access) (オンライン (アクセスなし))] と表示されます。
手順 4: レプリケーションを管理する
次に、クラスター間レプリケーションを管理し、運用します。 次のすべての手順は、クラスター ノード上で直接実行することも、Windows Server Remote Server Administration ツールをインストール済みのリモート管理コンピューターから実行することもできます。
Use Get-ClusterGroup or Failover Cluster Manager to determine the current source and destination of replication and their status. Windows Server のリモート サーバー管理ツール
To measure replication performance, use the Get-Counter cmdlet on both the source and destination nodes. カウンター名は次のとおりです。
\Storage レプリカ パーティション I/O 統計情報(*)\フラッシュの一時停止回数
\ストレージ レプリカ パーティション I/O 統計(*)\保留中のフラッシュ I/O 数
\ストレージ レプリカ パーティション I/O 統計(*)\最終ログ書き込み要求数
\Storage Replica Partition I/O Statistics(*)\Avg.Flush Queue Length
\ストレージ レプリカ パーティション I/O 統計情報(*)\現在のフラッシュ キュー長
\ストレージ レプリカ パーティション I/O 統計(*)\アプリケーション書き込み要求の数
\Storage Replica Partition I/O 統計(*)\ログ書き込みごとの平均リクエスト数
\Storage Replica Partition I/O Statistics(*)\Avg.App Write Latency
\Storage Replica Partition I/O Statistics(*)\平均アプリケーション読み取り遅延
\ストレージ レプリカの統計データ(*)\ターゲット回復ポイント目標
\ストレージレプリカ統計(*)\現在のRPO
\Storage Replica Statistics(*)\平均ログキュー長さ
\ストレージ レプリカ統計(*)\現在のログ キューの長さ
\ストレージ レプリカ統計(*)\総受信バイト数
\ストレージ レプリカ 統計(*)\総送信バイト数
\ストレージ レプリカ統計(*)\平均ネットワーク送信レイテンシー
\ストレージ レプリカ 統計(*)\レプリケーション状態
\Storage Replica Statistics(*)\Avg.Message Round Trip Latency
\ストレージレプリカ統計(*)\最終復旧経過時間
\ストレージ レプリカ統計(*)\フラッシュされたリカバリトランザクションの数
\ストレージレプリカ統計(*)\リカバリー取引数
\ストレージ レプリカ統計(*)\フラッシュ済みレプリケーショントランザクション数
\Storage Replica Statistics(*)\レプリケーショントランザクション数
\ストレージ レプリカ統計(*)\最大ログ連番
\Storage Replica Statistics(*)\受信メッセージ数
\Storage Replica Statistics(*)\送信されたメッセージ数
For more information on performance counters in Windows PowerShell, see Get-Counter.
To move the replication direction from one site, use the Set-SRPartnership cmdlet.
Set-SRPartnership -NewSourceComputerName SR-SRVCLUSB -SourceRGName rg02 -DestinationComputerName SR-SRVCLUSA -DestinationRGName rg01
Note
Windows Server では、初期同期の進行中に役割の切り替えを行うことができません。このため、初期レプリケーションが完了する前に役割を切り替えようとするとデータの損失につながります。 最初の同期が完了するまで、方向を強制的に切り替えないでください。
イベント ログを調べてレプリケーションの方向の変更と回復モードが発生しているかどうかを確認し、調整してください。 調整後、書き込み IO で、新しいレプリケーション元サーバーの所有する記憶域に書き込むことができます。 レプリケーションの方向を変更すると、前のソース コンピューターでの書き込み IO がブロックされます。
Note
宛先クラスター ディスクは、レプリケート中は常に [Online (No Access) (オンライン (アクセスなし))] と表示されます。
To change the log size from the default 8GB, use Set-SRGroup on both the source and destination Storage Replica groups.
Important
既定のログのサイズは 8 GB です。 Depending on the results of the Test-SRTopology cmdlet, you may decide to use -LogSizeInBytes with a higher or lower value.
To remove replication, use Get-SRGroup, Get-SRPartnership, Remove-SRGroup, and Remove-SRPartnership on each cluster.
Get-SRPartnership | Remove-SRPartnership Get-SRGroup | Remove-SRGroup
Note
記憶域レプリカは、宛先ボリュームをマウント解除します。 これは仕様です。