Windows Azure

私のアカウントは、まだまだ絶賛VM RoleがPending中なのですが、ローカル環境でできるところまでは、のんびりとやってみました。 以下の投稿は、正直VM Roleを使用するのに必要が無い雑学な話です。
Windows Azure VM Roleを使用する手順には、次の2つがあります。

  1. Windows Azure VM Role統合コンポーネントのインストール
  2. sysprepの実行

Windows Azure 統合コンポーネント

Windows Azure統合コンポーネントは何をするものでしょうか?

Windows Server 2008 R2に規定でインストールされているHyper-V統合コンポーネントをWindows Azure用に置き換えている(っと思う)。
Hyper-Vコンポーネントは、Hyperバイザーとの接続などに使用するドライバーなどの集合体です。Hyper-Vコンポーネントを入れないとハイパーバイザー型の仮想化にならないのでパフォーマンス劣化します。
Windwos Azure統合コンポーネントも各種ドライバーが入って、Azure上でパフォーマンスが出るようにチューニングされる(と思います)。

他には、Windows Azure Integration Componentsが配置される

Windows Azure統合コンポーネントのインストール時に、「C:\Program Files\Windows Azure Integration Components\v1.3」配下に各種ファイルが配置されます。
「Agent」、「Azure Storage」、「Diagnostics」、「Powershell」、「ref」、「RemoteAccess」、「RemoteForwader」が作成されます。名前的に、普通のWindows Server 2008 R2をAzure OSっぽくする為のコンポーネントがどーんと入ります。

ドライバーとかアセンブリキャッシュの登録

各種ドライバーとアセンブリキャッシュに幾つかのファイルの登録が行われます。
例えば、「Microsoft.WindowsAzure.Firewall.Interop」、「Microsoft.WindowsAzure.RoleContainer」のようなAzure用のものが登録されます。

sysprepの応答ファイルの生成

C:\unattend.xml」が生成されます。sysprepの応答ファイルで、sysprepに使用されます。
設定値として、Administratorのパスワードを付与しています。Windows Azureで使用する為に、Administratorのパスワードを初期化しているのだと思います。
タイムゾーンをUTCに設定しています。これは、東京に変えたくなるのですが、不具合原因になるかも・・・?
InputLocale、SystemLocale、UILanguage、UserLocaleをen-usに設定しています。これこそ、ja-jpに変更したいのですが、どうなんでしょ?VM Roleを使用できるようになったら、試してみようと思います。

application.configでライセンス対応

VM Roleで使用するOSのライセンス料は、VM Role課金に含まれることが発表されています。ライセンス認証をしていないOSイメージをそのままアップデートできますし、たとえ認証していてもsysprepをかけた段階で認証がクリアされます。
KMSアクティベーションを使用して、ライセンス認証をしています。application.configに、

<licensing>
  <!– http://technet.microsoft.com/en-us/library/ff793409.aspx –>
  <productKeys>
    <add name="Windows Server 2008 R2 HPC Edition"  key="消去しとく" />
    <add name="Windows Server 2008 R2 Datacenter"   key="消去しとく" />
    <add name="Windows Server 2008 R2 Enterprise"   key="消去しとく" />
    <add name="Windows Server 2008 R2 Standard"     key="消去しとく" />
    <add name="Windows Web Server 2008 R2"          key="消去しとく" />
  </productKeys>
</licensing>

っと言う記述があります。これで、OSのライセンス認証を済ませるはず・・・・です。てことは、Enterprise縛りではないようですね。VM Role。HPC、Datacenter、Enterprise、Stamdard、WebエディションどれでもOK?かもね。
これはクラウドなんだけど、Windows Serverを安い(よね?多分。)料金で使用できるって捉え方が正しいのかな。

Windows Azure

Vm Roleを使用する際に必要になる、Windows Azure 統合コンポーネントのインストールに、使用するwavmroleic.isoファイルには、3つのファイルが含まれています。

ConnectReadme.txtの記載されている内容を紹介します。

VN RoleでWindows Azure Connectを有効にするには、次の手順をする必要があります。

  1. sysprep前にConnectエンドポイント ソフトウェアをインストールします。エンドポイント ソフトウェアをインストールする為に使用するプログラムは、http://waconnect.blob.core.windows.net/client/latest/x64/wacendpointpackagefull.exeからダウンロードします。
    インストールする前に、未適用のWindows Updateがない事と、再起動待ちでない事を確認します。もし、残っている場合は、Windows Updateをして最新の状態にし、再起動を完了させてからエンドポイント ソフトウェアをインストールしてください。
    インストール後は、sysprepをかけて、VMイメージをアップロードしてからアクティベートしてください。
  2. 後は、通常の手順と同じです。

Windows Azure

CSUPLOADスクリプトが成功し、Azure上にVM Roleサービスが公開されたら、VMにリモート接続します。

VM Rollにリモート接続できない場合は、次のどちらかの可能性があります。

  • タイピングミスなどにより、クレデンシャルが正しく動作していない
  • VM Roll上のアプリケーションが正しく動作していない
    概略手順内で、OSインストール時の以下の手順をオプションと記載しましたが、不具合に遭遇した場合は、試してみると良いようです。(VM Role開発に携わっている中の人情報では、ブートパーティションを正確にWindows Server 2008 R2にしておけば、パーティションは複数あってもOKっと心強いコメントを頂いてますので、どちらかというとブートパーティションの設定を確認した方が良いかと思います。)

Windows Azure

エラー内容

VM Role用のVHDを作成した後、CSUPLOADスクリプトを使用してアップロードすると次のようなエラーが発生します。

エラーは、「A parameter was incorrect. Details: The subscription is not authorized for this feature」と表示されます。

「パラメータが不正です。詳細:このサブスクリプションでは、この機能は許可されていません」と言った意味でしょうか。多少、ミスリードされそうになるエラー文です。

原因

このエラーは、CSUPLOADスクリプトに渡すパラメータが不正な場合に発生します。

上のケースでは、Locationパラメータに、使用できない「Anywhere US」と設定した為に発生しました。

Locationパラメータには、存在するデータセンターのロケーション名を指定する必要があります。

解決策

Locationパラメータに、データセンタ名を指定します。設定できる名前は以下になります。

  • South Central US
  • North Central US
  • North Europe
  • West Europe
  • Southeast Asia
  • East Asia

情報源

Windows Azure VM Role – Handling Error : A parameter was incorrect. Details: The subscription is not authorized for this featureを意訳して紹介しました。

Windows Azure

VM Role関連では、下のような投稿をしていますので、良ければ参考にしてください。

エラー内容

VM Role用のVHDを作成した後、CSUPLOADスクリプトを使用してアップロードすると次のようなエラーが発生します。

エラーは、「An error occurred trying to attach to the VHD.
Details: The sector size of the physical disk on which the virtual disk resides is not supported」と表示されます。

「VHDをアタッチしようとしてエラーが発生しました。
詳細:仮想ハードディスクが保存されている、物理ディスクのセクターサイズは、サポートされていません」と言った意味になります。

原因

このエラーは、USB 3.0で接続した1TBの外付けHDDから、VHDイメージをロードした為に発生したエラーです。ほかのサイズの小さい外付けHDDを使用した場合には、エラーが発生しませんでした。エラーは、相性の悪いセクターサイズであるHDDを使用したので発生しました。

解決策

baseimage.vhdをローカルハードディスクへ移動させた後、アップロードに成功しました。

問題の解決策は、ローカルハードディスクにVHDをコピーし、“-LiteralPath” パラメータを適切に設定することです。

情報源

Windows Azure VM Role – Handling Error : The sector size of the physical disk on which the virtual disk resides is not supportedを意訳した投稿です。