昨夜、Windows 2008 Hyper-VホストサーバーをWindows 2008 R2にアップグレードしました。アップグレードは順調に進みましたが、新しいバージョンとして落ち着くと、17台のうち2台の仮想マシンがHyper-VコンソールUIから欠落していることがわかりました。
Hyper-Vイベントログから
Log Name: Microsoft-Windows-Hyper-V-VMMS-Admin
Source: Microsoft-Windows-Hyper-V-VMMS
Date: 6/4/2011 2:31:26 AM
Event ID: 16300
Task Category: None
Level: Error
Keywords:
User: SYSTEM
Computer: elune
Description:
Cannot load a virtual machine configuration: General access denied error (0x80070005) (Virtual machine ID 5185AC13-4148-4AFE-9024-6E74FE3C9754)
Event Xml:
<Event xmlns="http://schemas.Microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-Hyper-V-VMMS" Guid="{6066F867-7CA1-4418-85FD-36E3F9C0600C}" />
<EventID>16300</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x8000000000000000</Keywords>
<TimeCreated SystemTime="2011-04-05T18:31:26.432942100Z" />
<EventRecordID>641</EventRecordID>
<Correlation />
<Execution ProcessID="1964" ThreadID="2064" />
<Channel>Microsoft-Windows-Hyper-V-VMMS-Admin</Channel>
<Computer>elune</Computer>
<Security UserID="S-1-5-18" />
</System>
<UserData>
<VmlEventLog xmlns:auto-ns2="http://schemas.Microsoft.com/win/2004/08/events" xmlns="http://www.Microsoft.com/Windows/Virtualization/Events">
<VmName>
</VmName>
<VmId>5185AC13-4148-4AFE-9024-6E74FE3C9754</VmId>
<ErrorMessage>%%2147942405</ErrorMessage>
<ErrorCode>0x80070005</ErrorCode>
</VmlEventLog>
</UserData>
</Event>
これらの「見つからない」VMには、オンラインスナップショットが関連付けられていません。それらを行ったとしても Microsoftのアドバイス に基づいてスナップショットを削除してマージしましたが、それらは「生き残りました」。
starting仮想マシンに関しては、「一般的なアクセス拒否エラー(0x80070005)」の議論がたくさんあるようです。しかし、私の場合は、Hyper-Vサービスが構成を読み込むことさえできないため、Hyper-VはそれらのVM構成の場所を知っていますが、それらにアクセスする権限がないのですか?
3つのHyper-Vサービスはローカルシステムアカウントで起動され、これらのVMの「仮想マシン」フォルダーはフルコントロールのアクセス許可を付与します。他のVMから確認できることは、それらのフォルダーに仮想マシングループとVM GUID自体のための追加のACEがあることです。
このACE構造を複製しようとしましたが、Windowsは見つからないVMのGUIDプリンシパルを見つけることができません。この問題の原因は何ですか?
まあ、これは奇妙な手段です。
重要なことは、Windows/Hyper-Vがどこかに「リスト」を参照して、サーバーに登録されている仮想マシンを通知することです。私の仮想マシンは複数のドライブに分散しているため、集中リポジトリーが必要です。それが判明
C:\ ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines
実際の構成XMLファイルの物理的な場所を参照するシンボリックリンクがあります。問題のあるVM=リンクには「ロック」アイコンが付いていました。
問題のあるシンボリックリンクのセキュリティACLを編集しました。案の定、他のNT仮想マシンアカウントはありません。そのため、ユーザーグループにフルコントロールを付与しました。 Hyper-V仮想マシン管理サービスを再起動すると、不足しているVMが再びロードされる可能性があります。仮想マシンアカウントなしで機能しているようです。
それでも、Hyper-Vがこれらの仮想マシンアカウントから何を要求しているかを説明するために探していた完全な詳細な回答はまだ得られていませんが、少なくとも元の仮想マシン構成は再利用できます。