仮想マシンを作るとC:とD:の2つのドライブが作られますが、これはなぜ? 今回はAzure仮想マシンにおけるストレージ(ディスク)の扱いについて見てみましょう。
前回は、Azureの仮想マシンにおけるネットワークの仕組みや管理の実際について見てみました。今回は、仮想マシンに接続されている仮想ディスクの機能やディスクの追加方法などについて見ていきます。
まずは第1回で作成した仮想マシンにリモートデスクトップ接続して、ディスク構成について確認してみます。エクスプローラを起動してみると、次のよう---にC:とD:の2台のディスクがあることが分かります。WindowsをプリインストールしたPCを購入したときと変わらない、見慣れた状態ですね。
C:はWindows Server 2016をインストールしてあるシステムディスクで、サイズは128GBです。OSをインストールした直後だと、10GB程度消費しています。まだ100GB以上残っているわけで、余裕がありそうです。
プリインストールPCでC:とD:ドライブをどう使うかはユーザー次第ですが、普通C:はOSやアプリケーションのインストール先や仮想メモリのスワップファイル先として、D:はユーザーのデータなどを格納するのに使うのが一般的でしょう。「なぁんだ、Azureの仮想マシンもプリインストールPCみたいなもんか」と思いきや、実はそうではなかったのです……。今回はAzure仮想マシンのディスク構成について詳しく探検してまいりましょう。
AzureでWindowsの仮想マシンを作成すると、C:とD:の2台のディスクが用意されます。しかし「なんだプリインストールPCと同じか」と勘違いしないこと。Azure仮想マシンでは、各ドライブを独特の用途に使います。Azure流の流儀をきちんとわきまえて使いましょう(詳しくはこれから……)。
C:ドライブはひとまず置いておき、D:ドライブについて見てみます。ボリューム名を見ると、「Temporary Storage」となっていますね。名前からすると、一時的な用途に使うディスクのようです。
もう少し詳しく調べるために、ディスクの管理ツールでも確認してみましょう。
この画面から分かると思いますが、どうやらD:にはOSのページファイルが置かれているようです。通常、WindowsシステムのページファイルはC:ドライブのルートディレクトリに置かれることが多いと思いますが、Azureの仮想マシンでは、D:ドライブをページファイル用に使っているわけです。D:ドライブの容量は7GBですが、作成した仮想マシンのメモリサイズは3.5GBしかないので(第1回参照)、仮想記憶のためのページファイルを置くには、これでも十分です。しかし、D:ドライブをユーザーデータの保存先に使えるわけではなさそうです。
D:ドライブの中を見ると次のようになっています。
D:\>dir /a ……D:ドライブの内容を確認します
ドライブ D のボリューム ラベルは Temporary Storage です ……ボリューム名は「Temporary Storage(一時ストレージ)」
ボリューム シリアル番号は 8AC1-BD70 です
D:\ のディレクトリ
2017/05/23 05:38 <DIR> $RECYCLE.BIN
2017/01/24 01:23 650 DATALOSS_WARNING_README.txt ……注意喚起のためのテキストファイルが1つあります
2017/05/23 12:58 671,088,640 pagefile.sys ……Windows OSのページファイル
2017/05/22 19:48 <DIR> System Volume Information
2 個のファイル 671,089,290 バイト
2 個のディレクトリ 6,806,831,104 バイトの空き領域
D:\>type DATALOSS_WARNING_README.txt ……テキストファイルの内容を確認してみます
WARNING : THIS IS A TEMPORARY DISK. ……「これは一時的なディスクです」という警告文
Any data stored on this drive is SUBJECT TO LOSS and THERE IS NO WAY TO RECOVER IT. ……意訳すると「このドライブに保存したデータは消失の可能性があり、削除されたデータを復旧する方法はありません」と警告しています。
Please do not use this disk for storing any personal or application data. ……意訳「このドライブには個人的なデータやアプリケーションデータを保存しないでください」
For additional details please refer to the MSDN documentation at : http://msdn.microsoft.com/en-us/library/windowsazure/jj672979.aspx
……(以下省略)……
D:\>
「DATALOSS_WARNING_README.txt」というファイルには、「これは一時的なディスクであり、内容が消失する可能性があります」と記述されています。また「個人的なデータやアプリケーション用データは置くな」との注意も。つまりD:はページファイルを置くなど、一時的な用途でのみ使用せよとのことです(こういう大事なことはちゃんと日本語でも書いてほしいところですが、元が英語版しかないのだから無理ですか……)。
Azureに限ったことではありませんが、海外発のサービスでは、こんな大事なことが英語で書かれていることがあります(英語メニューのままの部分もたくさんあります)。英語が不得手だったとしても、「WARNING」などの文字を見掛けた場合は、しっかり確認を怠らないようにしましょう。
これはどういうことなのでしょうか? それを知るためには、Azureのディスク(ストレージ)アーキテクチャについて理解する必要があるようです。
C:とD:は、仮想マシンから見ると、同じディスクのように見えますが、実際にはそれが置かれている場所(管理・実現方法)が異なります。次のページも参照してください。
Azureでは、OSがインストールされているディスク(C:ドライブ)は「OSディスク」、データを保存するために後で追加するディスク(通常はE:ドライブ以降になる)は「データディスク」と呼びます。最初に見た通り、OSディスクには空きがあるので、ここにアプリケーションをインストールしたり、データを保存したりすることもできますが、C:が不足したからといって、最初からあるD:ドライブは使えません。この場合はC:ドライブの容量を拡張するか、別途データディスクを追加する必要があります。
Azureの仮想マシンで、C:ドライブは普通に使えますが、D:ドライブは通常用途には使えません。C:ドライブで不足する場合は、C:ドライブを拡張するか、新しくディスクを追加して、必要ものはそちらへ保存します。
これらは、Azureのストレージサービス(仮想ディスクやファイル共有機能などを提供するサービス。詳細は今後解説予定)が提供する機能を使って、仮想ディスク(VHDファイル)として作成されています。
これに対して、仮想マシンでD:ドライブとして利用しているディスクは、Azureでは「一時ディスク」と呼ばれます。一時ディスクは、実際にはHyper-Vのホストマシンに(直接)接続されているディスク上に作成されています(料金プランなどによって、HDDになったり、SSDになったりします)。また一時用途向けなので、容量はかなり制限されています。
一時ディスクの方がアクセス速度が速く、性能が高い(ことが多い)のですが、場合によっては内容が維持されない(以前の内容が消える)ことがあるので、一時的な用途での利用しか想定されていません。
例えば、仮想マシンをAzureポータル画面で一度停止してから再起動したり(リソースをいったん解放してから再割り当てする)、マイグレーションしたりすると(障害発生時などに、別のホスト上へ移動させてから再起動させることがある)、別のホスト上で仮想マシンが再起動することになります。
一時ディスクはHyper-Vのホストに接続されているディスクなので、マイグレーションやリソースの再割り当てによって別のホストへ仮想マシンが移動すると、元の一時ディスクへはアクセスできなくなります。これが、「場合によっては内容が維持されないことがある」という一時ディスクの挙動です。そのため、ページファイルを置く他、TMPフォルダや一時的なログファイルなどを置くための場所として利用するのがよいでしょう(OSのスタートメニューから呼び出す「再起動」では移動は起こらず、内容は維持されます)。
以下のページも参照してください。
Azureで作成されるWindowsの仮想マシンのD:は一時ディスクです。D:の内容はマイグレーションやリソースの再割り当て時には削除される可能性があります。ここにデータなどを置くと、消えてなくなる恐れがありますから注意しましょう。デフォルトではページファイルのみが置かれています。
Copyright© Digital Advantage Corp. All Rights Reserved.