2016年6月5日日曜日

Azure仮想マシンのMACアドレス

先の記事「Azure仮想マシンの一時ディスク: サイトリカバリの場合」もあわせてお読みください。

Microsoft Azureの仮想マシンは、必ずDHCPクライアントとして構成します。ただし、IPアドレスが変化するのは何かと不便なので、多くの場合は静的なIPアドレスを割り当てます。

これは、DHCPの「予約」に近いもので、PowerShellまたは新管理ポータルを操作することで構成できます。

DHCPクライアントとして構成するのは、物理マシンを移動するとき、仮想マシンが再作成され、NICが新規に割り当てられるためとされています。

そうすると、当然MACアドレスも変化することになりますね。

マイクロソフトのドキュメント「Virtual Network FAQ」にも、はっきりと書かれています(2016年3月15日付)。

  • VMに静的なMACアドレスを構成できますか。
  • いいえ。MACアドレスを静的に構成することはできません。

ただし、以下の記述もありました。

  • MACアドレスは、一度作成されると、VMで同じものとして残りますか。
  • いいえ、ただし変化するのは停止済み(割り当て解除済み)状態になった場合だけです。ユーザーがVMのサイズを変更したり再起動した場合、またはサービス復旧やホスト サーバーの計画的なメンテナンスの場合は、MACアドレスは維持されます。

すみません。ホストの計画的なメンテナンスでも変化するものだと思っていましたが、これは変わらないそうです。

Hyper-Vの仮想マシン構成ファイルにはMACアドレスを記述できるので、それを使っているのでしょうか。

なお、静的なMACアドレスを使う計画はあるようです。Azureの要望リストに「Static MAC address」というのがあり、こんな回答が出ていました(2016年5月3日付)。

The deployment of static MAC address has been started. You will see that MAC addresses for VMs will be static through resize and maintenance operations currently. The work to maintain a static MAC address through a stop (deallocated) and restart operation is rolling out currently.

静的MACアドレスの展開のサポートをはじめます。現在でも、仮想マシンのMACアドレスはサイズ変更やメンテナンスがあっても変更されません。しかし、仮想マシンを「停止(割り当て解除)」してから再起動すると変化します。

DSC00409S
写真は本文とは関係ありません

2016年6月4日土曜日

Azure仮想マシンの一時ディスク: サイトリカバリの場合

Microsoft Azureには「Site Recovery」という機能があり、オンプレミスの仮想マシンまたは物理マシンをAzure上に複製できます。もちろん、システムディスクだけではなく、データディスクも複製できます。

ただし、Azureの仮想マシンにはいくつかの制約があり、完全に同じ構成にはなりません。Azure上の仮想マシンはMicrosoft Azureの制約を受けるためです。

まず、サイズはAzureで決められたものになります。既定では、オリジナルの仮想マシンに最も近いものが選ばれるようですが、選択できる範囲で変更もできます。なお、接続可能なデータディスクの台数はサイズに依存するので注意してください。

次に、Azureの仮想マシンには揮発性の一時ディスクが追加されます。Azureの仮想ディスクが配置されるBLOBはあまり高速ではないため、ページファイルを高速な一時ディスクに配置することで全体の速度を稼ぎます。

一時ディスクは、仮想マシンを配置した物理マシンに接続されており、仮想マシンが別の物理マシンに配置された場合は新しく作り直されてしまいます(図)。

この時、ネットワークカードも新たに作成されます。Azureの仮想マシンがDHCPクライアントなのはこれが理由です。

Azure-4
図「ひと目でわかるAzure 基本から学ぶサーバー&ネットワーク構築」より

通常、一時ディスクはDドライブが割り当てられますが、「利用可能なディスクの内、最後のドライブ文字」を使うのが基本です。ドライブ文字の変更は、Azureチームのブログ記事「Windows 仮想マシンのデータ ドライブとしての D ドライブの使用」等を参照してください。

Site Recoveryを使う場合で、オリジナルの仮想マシンに複数のドライブが接続されている場合は、以下のようになります。

  • システムディスクを管理者が指定
  • 一時ディスクは最後のドライブ文字を使って追加

Site Recoveryをを構成すると、管理ポータルでは「どのVHDファイルがシステムディスクを指定しろ」と言ってきました。表示されるのはVHDのファイル名です(システムパーティションとブートパーティションが異なるドライブだった場合、どちらを指定するででしょうね? システムパーティションでしょうか)。

Azure上の仮想マシンにある一時ディスクは、データディスクの次のドライブ文字を使っていました。たとえばCがシステムディスク、Dがデータディスクの場合、Eが一時ディスクになります。

さて、この一時ディスク「ページファイル以外の使い途がありますか?」とよく聞かれます。さあ、なんでしょうね。

主記憶が小さく、仮想記憶もなかった時代は、ファイルの中身をソートするために一時ファイルを作ることがありました。また、MS-DOSのパイプは、コマンドの実行結果を環境変数TEMPの示すフォルダーにいったん保存していました。たとえば、以下のコマンド

DIR |  SORT /+30

DIR > %TEMP%\1234567.tmp

SORT /+30 < %TEMP%\1234567.tmp

と同じ意味でした。

一時ディスクは、このような計算の途中結果を保存するのに適していますが、今はあまり使うことはないと思います。