Azure仮想マシンのOSディスク容量を拡張する

#はじめに
Azure仮想マシンは追加したデータディスクについては自由にサイズを決めることができますが(1ディスクあたりの最大は1TBですが)、OSディスクの初期サイズはデプロイ時にMarketplaceで選んだOSと構成に依存します。
例えばWindows Server 2012 R2 Datacenter Editionを選ぶと、Cドライブは127GBになります。
こちらは仮想マシンのデプロイ後に変更することができるので、その手順についてまとめました。
(CentOS 7版のOSディスク容量拡張手順は[こちら](http://qiita.com/yotan/items/30c973814537ea45f452)を参照下さい)

#仮想マシンをデプロイ
今回はOSディスクはPremiumディスクを使用します。
仮想マシンのサイズはDS,Fs,GSシリーズの何れかを選択します。最近筆者はF(Fs)シリーズがコスパ的にも優れていてお気に入りです。

Azureポータルにログイン後、「＋追加」→「Compute」→「Windows Server 2012 R2 Datacenter」を選びます。
デプロイモデルが「リソースマネージャー」になっていることを確認してから「作成」を押します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/68e2bbad-ac58-e552-a739-fd7ff9b506b3.png)

「1.基本」の項目
VM Disk Typeは「Premium (SSD)」を選択します。
その他項目は画面例を参考に適当に入力します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/960330ca-338b-e968-9f99-58a7df0f37e3.png)

「2.サイズ」の項目
今回はF2S(2Core/4GB)を選びました。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/cf9f03ee-5db2-30d2-baae-642145b83635.png)

「3.設定」の項目
こちらは全てデフォルトで進めました。
ストレージアカウントはVHDファイル格納用のPremiumストレージと、診断情報格納用のStandardストレージの2つが自動作成されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/dd8a254a-9b40-1032-d3a4-55fc01b80b6a.png)

「4.概要」の項目
表示内容を確認して「OK」を押すとデプロイ開始です。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/f12a4183-f0ca-1dea-f7a5-bec2fe8beee5.png)

しばらく待つと、無事仮想マシンのデプロイが完了して状態が「実行中」になりました。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/ffdbd38c-a1df-e9c6-27c0-9ba812579b18.png)


#Windows側からの確認

Azureポータルから「接続」を押してリモートデスクトップ接続で仮想マシンに接続します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/fdf5c6ba-2361-ea5f-a845-8863828b5ccc.png)

スタートメニューを右クリックして、ポップアップメニューから「Disk Management」を選択します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/31a01cb7-d735-b1ed-6bdd-8afea7c62f0a.png)

Disk 0(Cドライブ)はデプロイ直後は127GB確保されていることを確認します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/57804be4-e65a-85ea-07d9-c3c2b6c17c1d.png)

#OSディスクのサイズ変更

OS起動中はディスクのサイズ変更ができないため、一度仮想マシンを停止します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/f51aed9a-d33f-70d0-7bc6-c5ef0ae43009.png)

仮想マシン停止後、ディスクメニューからOSディスクを選択し、サイズを1023GiBに設定して保存します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/11642a23-686b-03e6-3d9c-7b42dc2a0a69.png)

サイズ変更後、仮想マシンを再び起動します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/2db30177-70c4-07df-608b-280f5e797719.png)

#Windows側のサイズ拡張
Azure側にてOSディスクのサイズを拡張しても、仮想マシン内のWindows側は自動で領域拡張はしてくれません。
以下の手順で拡張します。

Disk ManagementにてDisk 0(Cドライブ)に未割当(Unallocated)の領域があることを(増えていること)を確認します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/b8f40ed4-90db-16be-195d-e1fe3adcde00.png)

Cドライブに割り当て済みの部分を右クリックして、表示されたプルダウンメニューから「Extend Volume」を選択します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/19749a99-9667-1946-a565-661d4ac3bf48.png)

「Next」を選択します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/110aebbc-a04d-72f7-f3e7-de518ecfcb59.png)

増やす領域のサイズ指定画面が出ます。デフォルトで最大値が入っているので、このまま「Next」を選択します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/d10c29b4-29f8-14d1-aab8-bfee6079d0d0.png)

無事領域の拡張がOS上でも行われました・
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/2846198d-83c0-92c9-abae-57b9efe7f626.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/137436/5fbebcfa-1bee-059f-f2f4-01a6a5dfef10.png)

#おわりに
今回のエントリではOSディスクにPremiumストレージを使いましたが、Azureプレミアムストレージは確保したサイズによってディスク性能が異なります。
以下に性能表を示しますが。OSディスクをデプロイ直後の127GB(P10)から1023GB(P30)に上げる事により、容量アップ＋性能アップにもなります。

|Premium Storage|P10|P20|P30|
|:--------------+--------------+---+---+--:|
|ディスク サイズ|128 GiB|512 GiB|1,024 GiB (1TB)|
|ディスクあたりの IOPS|500|2,300|5,000|
|ディスクあたりのスループット|100 MB/秒|150 MB/秒|200 MB/秒|

無論P10よりもP30の方が利用料金はお高くなるため、全ての場面で必要ではないと思いますがご参考まで。

#おまけ
実はOSディスクもデータディスクも、仮想マシンが起動中でもホストキャッシュの設定を変更することができます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/9d61bef2-ec5e-fdb0-d8f8-4caf63983b5d.png)

ただし、OSディスクのホストキャッシュはデフォルトでRead/Writeキャッシュが設定されるのですが、こちらをOS起動中に変更するとキャッシュ上に残っている書き込みキャッシュがWritebackされずに消えてしまう可能性があるようです。
[Japan Azure Technical Support Engineers' Blog](https://blogs.technet.microsoft.com/jpaztech/2016/08/30/hostcache/)でも情報が公開されていますので、こちらも参考にすると宜しいかと。