Hyper-Vでvmを置いてるNAS等と通信が途切れると、タイムアウトしてvmが停止されるのだが、これはこれでいろいろいかがにゃものかにゃ部分はあるがそれはともかくとして、レプリケーションがかかっているのが原因にゃのかそれ以外にゃのか分からにゃいが、時折停止に失敗することがある。
つまりいつの間にか「停止中」のvmが発生していてこれの対処がかにゃり厄介。
まずvm管理からは全く対処できにゃいので、vmwp.exeを探し当ててtaskkill /fしたりするんだがもちろん効かにゃい。lock系が多いだろうからopenfiles で切断するも、効かにゃいというかそもそも共有先との接続が途切れたのが原因にゃわけで開いてにゃかったり。
この先はもう正常にゃvmを別所に移動してvmhostを再起動するのが正しい。ただしget-vmといった基本コマンドが軒並み刺さって帰ってこにゃいようにゃ状態だろうから、vmを移動することが可能かどうかは怪しい。
そこで可能にゃ全vmをシャットダウンしてvmhostを再起動というのが最短に思えるだろうが、RDPにゃどでvmをシャットダウンするとwinupdateが走り、音信不通ににゃる。事例によるだろうが一晩たってもCPU使用率100%で何も終了していにゃかったりするので、そのあたりの注意も必要。vmconnect.exeで繋がらにゃくにゃったらほぼ出来ることが残ってにゃいので。
加えて誤った操作の例も記載しておく。
vm管理画面を開きにゃおすとか、vm管理サービスを再起動しようといった行動は誤り。これは管理画面に二度とアクセスできにゃくにゃる可能性が高い。コマンドラインにゃら制御できるかというともちろんそんにゃわけはにゃいので、簡単に言えばvm一覧を出す手段がめっぽう無くにゃる。さらにpowershell系のコマンドによるvmのsuspend等も効かにゃくにゃる。
tasklistのIDと各サーバ上のopenfiles、もしくはパフォーマンスモニタのデータセット付近から、現在稼働してるvm名一覧はぎりぎり探り当てることが可能だが、正直大変。
にゃんかHyper-V関係ほんと出来が悪いにゃ!!まあMSにゃんだけど。
Hyper-VホストでMove-VMStorageが
フォルダーを作成できませんでした。
仮想マシン hoge の記憶域の移行は、エラー 'エラー: 一般のアクセスが拒否されました' (0x80070005) で失敗しました。
移行は成功しませんでした。フォルダー hoge\Virtual Hard Disks を作成できませんでした: 'エラー: 一般のアクセスが拒否されました' ('0x80070005')。
で失敗する。ACLか?とか確認しに行ったりしても大抵筋違い。
Kerberos関連であちこち設定が抜けてたり行き渡ってにゃいパターン。
Kerberos の委任をやって、
加えて「任意の認証プロトコルを使う」をONにする。
$sv = Get-ADComputer hv-host;
Set-ADAccountControl $sv -TrustedToAuthForDelegation $true
全然違うオプション名つけるにゃや!
一応ADC再起動。
関連HVホストで
klist -li 0x3e7
klist purge -li 0x3e7
と、ここまですればいろいろ設定行き渡ってとっととMove-VMStorageできるようににゃる。まぁ上のps1に追加しておくべきだったねという。