Hyper-Vの第2世代
今更感がありますがWindows Server 2012 R2には第2世代という種類の仮想化ゲストが用意されています。いろいろ機能が拡張されていますが特にUEFIブートになったことが大きいです。自分が引っかかった第2世代に関することのまとめです。
Ubuntuのインストール
Ubuntuも第2世代にするといろいろな恩恵を受けられますがいくつか注意点があります。サポート情報などはMicrosoft Technetの以下のページを見るとよいでしょう。
Supported guest operating systems for Hyper-V virtual machines
Ubuntu virtual machines on Hyper-V
Secure Bootをオフにする
UEFIにはSecure BootというモードがありますがUbuntuは対応していません。ブートするにはオフにする必要があります。
Powershellにて以下のように入力するか、
Set-VMFirmware –VMName "VMname" -EnableSecureBoot Off
Hyper-V マネージャーの"設定"を開いてファームウェアの項目からセキュアブートを無効化します。
シャットダウンができない
Ubuntuをうまくシャットダウンできないことがありました。リブートも同様です。
- ゲスト側からシャットダウンするとシステムは落ちているのにホストは実行中の状態だと認識している。ホスト側からもう一度シャットダウンする必要がある。
- ホスト側からシャットダウンするとシステムは落ちているのにホストが認識せずに5分間待たされる。もう一度ホスト側からシャットダウンする必要がある。
というような状態になっていました。Ubuntu 14.04.3 LTSになってからはちゃんとシャットダウンできているのでアップグレードするのがいいんじゃないでしょうか。原因はGRUBにあるようで以下のサイトには具体的な対処法が載っています。
山市良のえぬなんとかわーるど: Windows Server 2012 R2 Hyper-V and Ubuntu 14.04 LTS Guest
第1世代を第2世代に移行する
Windowsに限られますが第1世代の仮想化ゲストを第2世代に移行する方法があります。
- 仮想化ゲストのWinRM有効化します
- Windows Hyper-V generation 2 VM conversion utility (Convert-VMGeneration) sampleを仮想化ホストで実行します
やはり細かい設定などがあるようでクリーンインストールすることが推奨のようです。
動的メモリ
Ubuntuも対応している動的メモリですが注意が必要です。DBやWebフレームワークのようなメモリを大きく使うアプリケーションを動かしているサーバーには適していません。
自分はWSUSを動的メモリで運用していた時に同様にとても不安定になりました。使い分けが重要ですね。