ASR で Hyper-V VM のディスクの除外を新たにサポート
執筆者: Nitin Soneji (Program Manager, Cloud + Enterprise)
このポストは、12 月 19 日に投稿された Announcing Exclude Disk Support for Hyper-V VMs with ASR の翻訳です。
Azure Site Recovery (ASR) のお客様から、「レプリケーションの対象から特定のディスクを除外して、そのディスクに使用されるレプリケーション帯域幅やレプリケート先のリソースを最適化したい」というご要望が数多く寄せられていました。それを受けてマイクロソフトは、今年に入ってすぐ、ASR で VMware から Azure へのレプリケーションを行う場合にそれができるようにしていましたが、今回ようやく、ASR で Hyper-V から Azure へのレプリケーションを行う場合にもこれをできるようにしました。
なぜレプリケーション対象からディスクを除外するのか
レプリケーション対象からディスクを除外する必要があるのは、多くの場合、次のような理由によります。
- 除外されたディスク上の変更されたデータが重要ではない、または、それをレプリケートする必要がない
- 変更をレプリケートしないことで、ストレージおよびネットワーク リソースを節約できる
では、“重要でない” データとはどのようなものでしょうか? レプリケートするデータの重要性は、フェールオーバー時の有用性によって決まります。レプリケートの対象から除外できるのは、フェールオーバー時にも不要なデータであり、このデータが存在しなくても目標復旧時点 (RPO) に影響しないデータです。
代表的なシナリオ
特定しやすいデータ変更の例はいくつかありますが、そのうち除外候補として適しているのは、ページ ファイルへの書き込みや Microsoft SQL Server の tempdb への書き込みなどです。ワークロードやストレージ サブシステムによっては、ページ ファイルに対して膨大な量の書き込みが発生します。しかし、このデータをプライマリ サイトから Azure にレプリケートしても、リソース消費量が増加するだけでまったく役には立ちません。したがって、単一の仮想ディスクに OS とページ ファイルの両方が含まれる VM のレプリケーションを行う場合は、以下の方法で最適化できます。
- 1 つの仮想ディスクを 2 つの仮想ディスクに分割する (一方のディスクは OS 用、もう一方はページ ファイル用)
- ページ ファイル用のディスクをレプリケーション対象から除外する
同様に、Microsoft SQL Server の単一のディスクに tempdb とシステム データベース ファイルが含まれる場合は、以下の方法で最適化できます。
- システム データベースと tempdb を 2 つの異なるディスクで保持する
- tempdb 用のディスクをレプリケーション対象から除外する
レプリケーション対象からディスクを除外するには
レプリケーションを有効化する通常の手順 (下図参照) に従って、ASR ポータルで VM を保護します。4 番目の手順には、[DISK TO REPLICATE] という名前の列が新たに追加されており、ここでディスクをレプリケーション対象から除外できます。既定では、すべてのディスクがレプリケーション対象として選択されています。除外する VHD の選択を解除して、レプリケーションを有効化する手順を完了します。詳細については、ドキュメント「Azure Portal を使用して VMM クラウド内の Hyper-V 仮想マシンを Azure にレプリケートする (英語)」または「Azure ポータルで Azure Site Recovery を使用して (VMM で管理されていない) Hyper-V 仮想マシンを Azure にレプリケートする (英語)」を参照してください。こちらの動画 (英語) では、実際の一連の手順をご確認いただけます。
SQL Server の tempdb 用ディスクの除外
SQL Server VM の tempdb を除外して Hyper-V から Azure へのレプリケーションを行うシナリオを考えてみます。
Hyper-V VM の名前は「SalesDB」とします。
レプリケート元の Hyper-V VM 上のディスクは以下のとおりとします。
VHD 名 | ゲスト OS ディスク番号 | ドライブ文字 | ディスク上のデータの種類 |
DB-Disk0-OS | Disk0 | C:\ | OS |
DB-Disk1 | Disk1 | D:\ | SQL システム データベースとユーザー データベース 1 |
DB-Disk2 (このディスクを保護対象から除外) | Disk2 | E:\ | 一時ファイル |
DB-Disk3 (このディスクを保護対象から除外) | Disk3 | F:\ | SQL tempdb データベース (フォルダー パス: F:\MSSQL\Data\ --> フェールオーバー前にフォルダー パスをメモしておく) |
DB-Disk4 | Disk4 | G:\ | ユーザー データベース 2 |
VM 上の 2 つのディスクのデータ変更は一時的なものであるため、SalesDB VM は保護しながら、Disk2 と Disk3 はレプリケーション対象から除外します。この 2 つのディスクは ASR によってレプリケートされず、フェールオーバー時には Azure のフェールオーバー先の VM に含まれることはありません。
フェールオーバー後の Azure VM 上のディスクは以下のようになります。
ゲスト OS ディスク番号 | ドライブ文字 | ディスク上のデータの種類 |
Disk0 | C:\ | OS |
Disk1 | E:\ | 一時ストレージ (このディスクは Azure によって追加され、使用可能な最初のドライブ文字が割り当てられる) |
Disk2 | D:\ | SQL システム データベースとユーザー データベース 1 |
Disk3 | G:\ | ユーザー データベース 2 |
SalesDB VM の Disk2 と Disk3 がレプリケーションの対象から除外されたため、使用可能な最初のドライブ文字は E: となり、それが Azure によって一時ストレージ ボリュームに割り当てられます。レプリケートされるディスクについては、どのドライブ文字も変更されません。
SQL tempdb 用のディスク (tempdb フォルダー パス: F:\MSSQL\Data\) であった Disk3 は、レプリケーション対象から除外されたため、フェールオーバーされた VM には含まれません。そのため、SQL サービスは停止状態になり、F:\MSSQL\Data のパスを割り当てる必要があります。
このパスを作成する方法は 2 つあります。
- 新しいディスクを追加し、tempdb のフォルダー パスを割り当てる
- 既存の一時ストレージ ディスクを tempdb フォルダーのパスとして使用する
新しいディスクを追加する
- フェールオーバーの前に SQL tempdb.mdf と tempdb.ldf のパスをメモします。
- Azure ポータルから、レプリケート元の SQL tempdb ディスク (Disk3) と同等かそれ以上のサイズの新しいディスクをフェールオーバーする VM に追加します。
- Azure VM にログインします。ディスク管理 (diskmgmt.msc) コンソールから、新しく追加したディスクの初期化とフォーマットを行います。
- SQL tempdb ディスクに使用されていたドライブ文字 (F:) を割り当てます。
- ボリューム F: (F:\MSSQL\Data) に tempdb フォルダーを作成します。
- サービス コンソールから SQL サービスを開始します。
既存の一時ストレージ ディスクを SQL tempdb フォルダーのパスとして使用する
- コマンド ライン コンソールを開きます。
- コマンド ライン コンソールから SQL Server を復旧モードで実行します。
Net start MSSQLSERVER /f / T3608
- 以下の sqlcmd を実行して、tempdb のパスを新しいパスに変更します。
sqlcmd -A -S <SQL server instance name>
sqlcmd -A -S SalesDB
USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = 'E:\MSSQL\tempdata\tempdb.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = 'E:\MSSQL\tempdata\templog.ldf');
GO
- Microsoft SQL サーバー サービスを停止します。
Net stop MSSQLSERVER
- Microsoft SQL サーバー サービスを開始します。
Net start SSQLSERVER
一時ストレージ ディスクについては、以下の Azure のガイドラインを参照してください。
- Azure VM で SSD を使用して SQL Server TempDB およびバッファー プール拡張域を格納する (英語)
- Azure Virtual Machines における SQL Server のパフォーマンスに関するベスト プラクティス
フェールバック (Azure からオンプレミスへ)
次に、Azure からオンプレミスの Hyper-V ホストにフェールバックする場合にレプリケートされるディスクについてご説明します。Azure で手動作成したディスクはレプリケートされません。たとえば、3 つのディスクをフェールオーバーし、Azure VM で 2 つのディスクを直接作成した場合、フェールオーバーした 3 つのディスクのみがフェールバックされます。手動で作成したディスクは、フェールバックやオンプレミスから Azure への再保護に含めることはできません。また、一時ストレージ ディスクもオンプレミスにレプリケートされません。
OLR へのフェールバック
元の場所へのフェールバックを行った場合、フェールバックされた VM のディスク構成は元の VM のディスク構成のままで変化はありません。つまり、Hyper-V サイトから Azure へのフェールオーバーから除外されたディスクは、フェールバックされた VM で使用できます。
前述の例では、Azure VM のディスク構成は以下のようになっています。
ゲスト OS ディスク番号 | ドライブ文字 | ディスク上のデータの種類 |
Disk0 | C:\ | OS |
Disk1 | E:\ | 一時ストレージ (このディスクは Azure によって追加され、使用可能な最初のドライブ文字が割り当てられている) |
Disk2 | D:\ | SQL システム データベースとユーザー データベース 1 |
Disk3 | G:\ | ユーザー データベース 2 |
Azure からオンプレミスの Hyper-V への計画されたフェールオーバー後、Hyper-V VM 上のディスクは以下のようになります (元の場所へのレプリケーション)。
VHD 名 | ゲスト OS ディスク番号 | ドライブ文字 | ディスク上のデータの種類 |
DB-Disk0-OS | Disk0 | C:\ | OS |
DB-Disk1 | Disk1 | D:\ | SQL システム データベースとユーザー データベース 1 |
DB-Disk2 (除外されたディスク) | Disk2 | E:\ | 一時ファイル |
DB-Disk3 (除外されたディスク) | Disk3 | F:\ | SQL tempdb データベース (フォルダー パス: F:\MSSQL\Data\) |
DB-Disk4 | Disk4 | G:\ | ユーザー データベース 2 |
ページ ファイル用ディスクの除外
VM のページ ファイル用ディスクを除外して Hyper-V から Azure へのレプリケーションを行うシナリオを考えてみます。
以下の 2 種類のケースがあります。
ケース 1: ページ ファイルが D: ドライブに構成されている場合
Hyper-V VM のディスク構成は以下のとおりとします。
VHD 名 | ゲスト OS ディスク番号 | ドライブ文字 | ディスク上のデータの種類 |
DB-Disk0-OS | Disk0 | C:\ | OS |
DB-Disk1(このディスクを保護対象から除外) | Disk1 | D:\ | pagefile.sys |
DB-Disk2 | Disk2 | E:\ | ユーザー データ 1 |
DB-Disk3 | Disk3 | F:\ | ユーザー データ 2 |
Hyper-V VM のページ ファイルの設定は以下のとおりです。
Hyper-V から Azure への VM のフェールオーバー後、Azure VM 上のディスクは以下のようになります。
VHD 名 | ゲスト OS ディスク番号 | ドライブ文字 | ディスク上のデータの種類 |
DB-Disk0-OS | Disk0 | C:\ | OS |
DB-Disk1 | Disk1 | D:\ | 一時ストレージ --> pagefile.sys |
DB-Disk2 | Disk2 | E:\ | ユーザー データ 1 |
DB-Disk3 | Disk3 | F:\ | ユーザー データ 2 |
Disk1 (D:) が除外されたため、使用可能な最初のドライブ文字は D: となり、それが Azure によって一時ストレージ ボリュームに割り当てられます。D: は Azure VM 上で使用可能なため、VM のページ ファイルの設定はそのままとなります。
Azure VM のページ ファイルの設定は以下のとおりです。
ケース 2: ページ ファイルが他のドライブ (D: ドライブ以外) に構成されている場合
Hyper-V VM のディスク構成は以下のとおりとします。
VHD 名 | ゲスト OS ディスク番号 | ドライブ文字 | ディスク上のデータの種類 |
DB-Disk0-OS | Disk0 | C:\ | OS |
DB-Disk1 (このディスクを保護対象から除外) | Disk1 | G:\ | pagefile.sys |
DB-Disk2 | Disk2 | E:\ | ユーザー データ 1 |
DB-Disk3 | Disk3 | F:\ | ユーザー データ 2 |
Hyper-V VM のページ ファイルの設定は以下のとおりです。
Hyper-V から Azure への VM のフェールオーバー後、Azure VM 上のディスクは以下のようになります。
VHD 名 | ゲスト OS ディスク番号 | ドライブ文字 | ディスク上のデータの種類 |
DB-Disk0-OS | Disk0 | C:\ | OS |
DB-Disk1 | Disk1 | D:\ | 一時ストレージ --> pagefile.sys |
DB-Disk2 | Disk2 | E:\ | ユーザー データ 1 |
DB-Disk3 | Disk3 | F:\ | ユーザー データ 2 |
使用可能な最初のドライブ文字は D: となるため、それが Azure によって一時ストレージ ボリュームに割り当てられます。レプリケートされたディスクについては、どのドライブ文字も変更されません。ディスク G: は存在しないため、ページ ファイル用に D: ドライブが使用されます。
Azure VM の Pagefile 設定は以下のようになります。
サービスに関する詳細情報をご確認のうえ、ぜひ今すぐ Azure Site Recovery を使用して Microsoft Azure へのワークロードのレプリケーションを開始してください。物理サーバーまたは VM を新たにレプリケートするたびに、Site Recovery の強力なレプリケーション機能を無償で 31 日間ご利用いただけます。その他の情報については、MSDN の Azure Site Recovery フォーラム (英語) をご覧ください。フォーラムでは、他のお客様との情報交換を行うこともできます。また、今後希望される機能がありましたら、ASR の UserVoice (英語) までご意見をお寄せください。
Microsoft Operations Management Suite に含まれる Azure Site Recovery は、コスト効率に優れたオールインワンのクラウド IT 管理ソリューションです。ワークロードを実行する場所 (Azure、AWS、Windows Server、Linux、VMware、OpenStack) に関係なく、すべてのワークロードを制御、管理することができます。既に System Center をご利用のお客様は、Operations Management Suite アドオンを利用することで、現在の投資を活用してさらに多くの作業を実行できるようになります。System Center をご利用のすべてのお客様向けの便利なステップアップ価格により、Operations Management Suite が提供するすべての新しいサービスにアクセスできます。また、必要な IT 管理サービスのみにアクセスし、短期間での導入と迅速な価値創出を実現しながら、使用する機能の分だけ料金をお支払いいただくということも可能です。