Exchange Server 2016 CU1 の時間差データベース コピー機能の機能強化
(この記事は 2016 年 3 月 3 日に Exchange Team Blog に投稿された記事 Lagged Database Copy Enhancements in Exchange Server 2016 CU1 の翻訳です。最新情報については、翻訳元の記事をご参照ください。)
近日中にリリースが予定されている Exchange 2016 の累積更新プログラム 1 (CU1) では、時間差データベース コピーの高可用性機能が強化されます。
ReplayLagManager
以前にもご説明したとおり、時間差コピーでは、以下の特定の状況において、自動ログ再生を呼び出してログ ファイルを自動的に再生します。
ディスク領域不足のしきい値 (10,000 MB) に達した場合
時間差コピーに物理的な損傷が生じ、ページを修正する必要がある場合
利用可能である正常な HA コピーが 3 つ未満である状態が 24 時間以上継続した場合
コピーの正常性のステータスに応じて再生を行うには、ReplayLagManager を有効化する必要があります。Exchange 2016 CU1 以降では、ReplayLagManager が既定で有効になります。この機能は次のコマンドで無効化できます。
Set-DatabaseAvailabilityGroup <DAGName> -ReplayLagManagerEnabled $false |
時間差コピーの遅延再生
上記の条件のいずれかを満たす場合、レプリケーション サービスが時間差データベース コピーの再生イベントを開始します。しかし、これは必ずしも望ましい処理ではありません。たとえば、1 台のディスク上にパッシブ コピーが 1 つ、時間差コピーが 1 つ、アクティブ コピーが 2 つという 4 つのデータベース コピーがあるとします。時間差コピーで再生イベントを開始すると、同じディスクのアクティブ コピーに影響を及ぼす可能性があります。ログ ファイルを再生するとディスク IO が発生し、ディスク ヘッドが移動してディスク レイテンシが発生するため、ユーザーがアクティブ コピーのデータにアクセスするときに影響します。
この問題を解決するために、Exchange 2016 CU1 以降では、ディスクの正常性に基づいて時間差コピーの再生イベントが実行されます。再生イベントが開始されると、ディスク IO のレイテンシが以下のように評価されます。
- ディスク IO の読み取りレイテンシが 25 ミリ秒以上の場合、再生イベントは遅延されます。ディスク領域不足が懸念される場合は、ディスク レイテンシによる遅延は無視され、時間差コピーが再生されます。
- ディスク IO の読み取りレイテンシが 25 ミリ秒未満の場合、再生イベントの実行が許可されます。
時間差コピーの再生を遅延することで、再生イベントによる IO の急上昇を抑制し、時間差コピーと同じローカル ディスクに存在するアクティブ コピーへの影響を防止できます。この機能では時間差データベース コピーの IO サイズは変更されません (アクティブ コピーの IO サイズに影響することもありません)。それでも、時間差コピーが有効化された場合に備えて利用可能なディスク IO のヘッドルームを確保する必要があります。
次の例を考えてみましょう。
Y 軸はディスク レイテンシ (ミリ秒)、X 軸は時刻 (24 時間) を表します。
グラフで示されているように、午前 1 時から午前 9 時まではディスク IO のレイテンシは 25 ミリ秒未満のため、時間差コピーの再生が許可されます。午前 10 時から午後 2 時まではレイテンシが 25 ミリ秒を超えているので、この時間帯は時間差コピーの再生が遅延されます。午後 2 時にレイテンシが 25 ミリ秒を下回り、時間差コピーの再生が再開されます。午後 3 時にレイテンシが再び上昇するため、再生が再び遅延されます。
既定では、再生イベントの遅延は最大 24 時間に設定されています。この値は次のコマンドで変更できます。
Set-MailboxDatabaseCopy <database name\server> -ReplayLagMaxDelay:<value in the format of 00:00:00> |
遅延再生を無効化する場合は、ReplayLagMaxDelay の値を 00:00:00 に設定します。
次に示すイベントは、ログの再生が遅延および再開された場合に、Microsoft-Exchange-HighAvailability/Monitoring クリムゾン チャネルに記録されるものです。
- Event 750 – Replay Lag Manager requested activating replay lag delay (suspending log replay) for database copy '%1\%2' after a suppression interval of %4. Delay Reason: %6" (イベント 750 – ReplayLagManager が抑制時間 %4 経過後データベース コピー '%1\%2' の再生遅延の有効化 (ログ再生の中断) を要求しました。遅延理由: %6")
- Event 751 – Replay Lag Manager successfully activated replay lag delay (suspended log replay) for database copy '%1\%2'. (イベント 751 – ReplayLagManager がデータベース コピー '%1\%2' の再生遅延の有効化 (ログ再生の中断) に成功しました。遅延理由: %4")
- Event 752 – Replay Lag Manager failed to activate replay lag delay (suspend log replay) for database copy '%1\%2'. Error: %4" (イベント 752 – ReplayLagManager がデータベース コピー '%1\%2' の再生遅延の有効化 (ログ再生の中断) に失敗しました。エラー: %4")
- Event 753 – Replay Lag Manager requested deactivating replay lag (resuming log replay) for database copy '%1\%2' after a suppression interval of %4. Reason: %5" (イベント 753 – ReplayLagManager が抑制時間 %4 経過後データベース コピー '%1\%2' の再生遅延の無効化 (ログ再生の再開) を要求しました。理由: %5")
- Event 754 – Replay Lag Manager successfully deactivated replay lag (resumed log replay) for database copy '%1\%2'. Reason: %4" (イベント 754 – ReplayLagManager がデータベース コピー '%1\%2' の再生遅延の無効化 (ログ再生の再開) に成功しました。理由: %4")
- Event 755 – Replay Lag Manager failed to activate replay lag delay (suspend log replay) for database copy '%1\%2'. Error: %4" (イベント 755 – ReplayLagManager がデータベース コピー '%1\%2' の再生遅延の無効化 (ログ再生の再開) に失敗しました。エラー: %4")
- Event 756 - Replay Lag Manager will attempt to deactivate replay lag (resume log replay) for database copy '%1\%2' because it has reached the maximum allowed lag duration. Detailed Reason: %5" (イベント 756 – 遅延時間の最大許容値に達したため、ReplayLagManager がデータベース コピー '%1\%2' の再生遅延の無効化 (ログ再生の再開) を試行します。詳細な理由: %5")
次に示すイベントは、ログの再生が遅延および再開された場合に、Microsoft-Exchange-HighAvailability/Operational クリムゾン チャネルに記録されるものです。
- Event 748 – Log Replay suspend/resume state for database '%1' has changed. (LastSuspendReason=%3, CurrentSuspendReason=%4, CurrentSuspendReasonMessage=%5) (イベント 748 – データベース '%1' のログ再生の中断/再開ステータスが変更されました。(前回中断された理由=%3、今回中断された理由=%4、今回中断された理由のメッセージ=%5))
- Event 2050 – Suspend log replay requested for database guid=%1, reason='%2'. (イベント 2050 – データベース GUID=%1 のログ再生の中断が要求されました。理由='%2'。)
- Event 2051 – Suspend log replay for database guid=%1 succeeded. (イベント 2051 – データベース GUID=%1 のログ再生の中断に成功しました。)
- Event 2052 – Suspend log replay for database guid=%1 failed: %2. (イベント 2052 – データベース GUID=%1 のログ再生の中断に失敗しました: %2。)
- Event 2053 – Resume log replay requested for database guid=%1. (イベント 2053 – データベース GUID=%1 のログ再生の再開が要求されました。)
- Event 2054 – Resume log replay for database guid=%1 succeeded. (イベント 2054 – データベース GUID=%1 のログ再生の再開に成功しました。)
- Event 2055 – Resume log replay for database guid=%1 failed: %2. (イベント 2055 – データベース GUID=%1 のログ再生の再開に失敗しました: %2。)
まとめ
上記の変更は、推奨アーキテクチャを改善し、Exchange プラットフォームで可能な限り優れたエクスペリエンスをお届けするための取り組みの一環です。
いつものお願いではありますが、皆様からのフィードバックをお待ちしています。
プリンシパル プログラム マネージャー
Office 365 カスタマー エクスペリエンス担当
※ 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。