SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

差分 HD を使用した VM Role のイメージ更新

leave a comment

Windows Azure Platform Training Kit – December Update の [Exercise 3: Updating and Servicing a Virtual Machine Role] を試してみたいと思います。

この Exercise は差分 VHD を使用して VM Role 上のイメージの更新を行うものになります。

 

 

■差分 VHD の設定


VM Role にイメージをアップした OS で差分 VHD を作成します。

  1. アップロードしたイメージのゲスト OS のプロパティを開きます。
  2. [ハード ドライブ] → [新規] をクリックします。
    image
  3. [次へ] をクリックします。
    image
  4. [差分] を選択して、[次へ] をクリックします。
    image
  5. VHD の保存先を指定して、[次へ] をクリックします。
    image
  6. 差分 VHD の親となる  VHD (VM Role にアップした VHD) を選択して、[次へ] をクリックします。
    image
  7. [完了] をクリックします。
    image
  8. 仮想ハードディスクに差分 VHD が指定されていることを確認して [OK] をクリックします。
    image

この手順は通常の差分 VHD を作成するときと同じですね。
設定が終わったらゲスト OS を起動します。

Sysprep 後の VHD に対して、差分 VHD を作成していますので初回起動時には Sysprep が実行されます。
image

起動後の Administrator のパスワードは VM Role 用の統合コンポーネントをインストールした際に設定したパスワードになります。
image

注意点としましては、Sysprep が実行されるため認証クロックが一つ減るということです。
image

応答ファイルの段階で [SkipRearm] を入れておけばよいのですが、VM Role へ展開した後は KMS による認証をしないといけませんので、この辺はどうするか少し考える必要がありそうですね。
VM Role 展開後に [slmgr.vbs /ato] で KMS 認証されるような手順を確立すればよいのかもしれないですね。

 

■差分 VHD の動作確認用に HTML を修正


Traning Kit に書かれているように以下のディレクトリに記載されているファイルを変更します。
[C:inetpubwwwrootWelcome.png]

画像を編集して、差分 VHD が動作するかを確認できるようにします。
# [Windows Azure VM Role] という文字を追加しています。
image

■Sysprep の実行


VM Role のイメージ展開用に [C:WindowsSystem32SysprepSysprep.exe] を実行します。
image

[Generalize] を有効にして、[Shutdown Options] から [Shutdown] を選択して、[OK] をクリックします。
image

 

■差分 VHD のアップロード

Windows Azure SDK 1.3 をインストールしている環境に差分 VHD を保存して、[csupload] を使用して VM Role のイメージとしてアップします。

[Windows Azure SDK Command Prompt] を実行して、[csupload] で差分 VHD をアップします。
image

csupload の構文はベース VHD をアップロードした時と同じです。

csupload Add-VMImage -Connection "SubscriptionId=[サブスクリプション ID]; CertificateThumbprint=[証明書拇印]" -Description "Differencing image with updated logo" -LiteralPath "E:diffimage.vhd" -Name "diffimage.vhd" -Location "East Asia"

実行後、以下のダイアログが表示されたら、[OK] をクリックします。
image

 

アップロードの際ですが、差分ハードディスクチェーンは確認しているようで、チェーンが壊れていると以下のようなエラーになります。
アップする際に差分 VHD の親 VHD を、同一のドライブに格納しておくとエラーは発生しませんでした。
# Azure の [VM Images] に親ディスクがあればよいというのではなく、csupload を実行する側にも必要という感じでしょうか。

An error occured trying to attach to the VHD.
Details: 仮想ハード ディスクのチェーンが壊れています。差分ディスクの親の仮想ハード ディスクが見つかりません。.
Detached E:DiffDisk.vhd.
Cannot find the VM Role Agent.
Failed the verification tests.
Cannot prepare VHD E:DiffDisk.vhd.

image

アップロードが完了した際のログは以下のような内容が表示されます。

Windows(R) Azure(TM) Upload Tool 1.3.0.0
for Microsoft(R) .NET Framework 3.5
Copyright (c) Microsoft Corporation. All rights reserved.

Using temporary directory E:…
Preparing VHD E:diffimage.vhd…

Windows(R) Azure(TM) VHD Verification Tool 1.3.0.0
for Microsoft(R) .NET Framework 3.5
Copyright (c) Microsoft Corporation. All rights reserved.

Attached E:diffimage.vhd.
Getting volume information for E:diffimage.vhd…
Found Windows Azure VM Role Agent version 1.3.11122.0038
on volume 5. Make sure volume 5 is the boot volume of E:diffimage.vhd.
Detached E:diffimage.vhd.
Successfully passed the verification tests.
The mounted size of the VM image is 15 GB. This image can be used with the follo
wing Windows Azure VM sizes: ExtraSmall, Small, Medium, Large, ExtraLarge

Windows(R) Azure(TM) VHD Preparation Tool. 1.3.0.0
for Microsoft(R) .NET Framework 3.5
Copyright (c) Microsoft Corporation. All rights reserved.

Created new VM image diffimage.vhd in location East Asia.
Creating new page blob of size 139685376…
Elapsed time for upload: 00:00:34
Successfully uploaded and committed the VM image.
Name                  : diffimage.vhd
Label                 : diffimage.vhd
Description           : Differencing image with updated logo
Location              : East Asia
Status                : Committed
Parent                : <not set>
Uuid                  : f898efee-e5b8-4e07-97fe-e568e36b5e33
Timestamp             : 2011-01-04T04:06:14Z
MountSizeInBytes      : 16106127360
CompressedSizeInBytes : 139684864
ParentUuid            : 423b4fcb-173c-11e0-8150-1c6f65704e1f
ParentTimestamp       : 2011-01-03T13:20:40Z
The VM image ‘diffimage.vhd’ must be associated with a parent VM image by callin
g ‘csupload Set-Parent -child diffimage.vhd -parent <parent-image-name>’.

image

アップロード前の Management Portal の VM Images は以下の状態となっています。
image

アップロードが終了すると以下のように VHD が追加されます。
image

 

■差分 VHD 化


アップロード後の状態では [Type] は [VM role image] となっており、この状態では差分 VHD とはなっていません。
ログのメッセージにも表示されているように、アップロード後に [csupload] を [Set-Parent] を指定して実行し、差分 VHD 化を行います。
# ここで Azure の VM Images の、どの VHD を親ディスクとするかを定義します。

差分 VHD 化は以下のコマンドで実行します。

csupload Set-Parent -Connection "SubscriptionId=[サブスクリプション ID]; CertificateThumbprint[証明書拇印]" -Child diffimage.vhd -Parent baseimage.vhd

Set-Parent を実行してもログは特に表示されないようですね。
image

Set-Parent 実行後に Management Portal を確認すると差分 VHD 化されているのが確認できます。
image

■OS イメージの定義変更


VM Images では差分 VHD が認識されていますが、VM Role で使用している OS イメージは引き続きベース VHD (親 VHD) が使用される設定になっています。

Management Portal から OS イメージで使用するディスクを差分 VHD に変更します。

Management Portal から、[Hosted Services, Storege Accounts & CDN] → [Hosted Services] を選択します。
その後、Hosted Services で Deployemt したサービスモデルを選択して、[Configure] をクリックします。
image

[Edit current configuration] を選択して、[<Os Image>] をベース VHD から差分 VHD に変更します。
image

変更をしたら [OK] をクリックします。
image

警告が表示されたら [Yes] をクリックします。
image
これも 1 インスタンスで実行しているために発生している警告のようですね。
image

構成を変更すると [Status] が [Updating] となり、
image

[Waiting for host] になり、
image

[Stopping host] になり、
image

再度、[Waiting for host] になってから [Starting host] になり、
image

もう一度、[Waiting for host] になって、[Sysprep] による初期化がされ、
image

VM Role の OS が起動 (Ready) します。(Start Traffic や Updating が途中入っていました。)
# そんなにステップないのかな~と思っていて最初は画像ペタペタ張っていたのですが結構ステップあるんですね。
image

 

ベース VHD を使用しているときに HTTP で VM Role の OS の IIS にアクセスをすると以下の画面となっています。
image

差分 VHD を使用して Ready になった状態の IIS にアクセスをすると、差分 VHD で変更したものになっていますね。
image

差分 VHD の運用についても VM Role を使用する際には考慮する必要がありそうですね。
# 差分 VHD はオーバーヘッドがあるはずですので、実運用で使用する機会があるか微妙ですが。

Written by masayuki.ozawa

1月 4th, 2011 at 2:15 pm

Posted in Windows Azure

Tagged with ,

No Responses to '差分 HD を使用した VM Role のイメージ更新'

Subscribe to comments with RSS or TrackBack to '差分 HD を使用した VM Role のイメージ更新'.

  1. […] This post was mentioned on Twitter by Keiji Kamebuchi. Keiji Kamebuchi said: RT @Masayuki_Ozawa: 差分 HD を使用した VM Role のイメージ更新 を投稿しました。Sysprep 時のライセンス認証クロックは考慮しておく必要があるかもしれないですね。 http://tinyurl.com/2fkx55x #jazug […]

Leave a Reply

*