Hyper-V Server覚え書き

  • 2015.08.04 Tuesday
  • 09:38


Windows 8やWindows Server 2012以降のOSでは仮想マシンのHyper-Vが標準搭載されているが、
ホストで作業しながら、古いOSでシミュレーションという使い方(XPモードのような)なら
このHyper-Vで十分用は足りるが、ただ仮想OSを載せたいという場合、そのホストOSが煩わしく感じることがある。

 



ということで、ホストOSのないHyper-V ServerというHyper-Vだけを取り出したソフトが公開されている。

 

注意

サーバーメーカー等、何社かHyper-V Serverについて確認しましたが、

Hyper-V Serverは導入できると思いますが、無サポートになります

との回答を得ております。

 

おそらく、Hyper-V ServerはWindows ServerのコンソールOSになるため、

通常Windows OS(GUI)上にインストールするメーカーのサーバー管理アプリが

正しく動作することを保証できない等で、

導入することができないためと考えられます。

 

サーバー管理等のサポートも含めてHyper-Vの導入を検討されている方は、

Windows Server OS機能にあるHyper-V機能を利用されることをお勧めいたします。

 

今後Windows Core OSをゴリゴリやってみたい方は

自己責任で導入してみてください。

 


細かいところはおなじみの他力ちゃんで、
こちらの解説とインストール方法を読みながら作業を進めていくとよい。

Hyper-V Serverを知り、インストールと初期設定をする


で、問題は、このまま進めても必ず行き詰まるわけで、早速ネットワーク設定でトラブル発生
ということで、覚え書き


■Hyper-VのNIC設定
もともと普通に使っていたパソコンを真っ新にしてHyper-V Serverを入れているのだが、
どうやらオンボードのNICはHyper-Vでは認識できないドライバで動いているようだ。
そのため、立ち上げるたびに、「アクティブなネットワークアダプタは見つかりませんでした」とメッセージが出てしまう。

ということで、ドライバのインストールなのだが、はてコマンドからドライバを入れるにはどうしたらよいの?
ということでネットで検索で、
ちょうど同じ種類のNICということもあり、こちらを参考に入れて見る。

Intel NUCにWindows Server 2012 (64bit)をインストールした。

その前に、ドライバはPC付属のドライバでも良いし、最新ドライバを用意しても良い。
ちなみに、付属のドライバはe1c62x64.infで、
ダウンロードしたドライバのe1c65x64.infはうまくいかなかったので、e1c64x64.infにしてみた。

そのinf内をエディタ開いて、なぜだか通ると言われるおまじないの設定をする
ControlFlagsの内容を消して、Intel.NTamd64.X.Y.Zの一部をIntel.NTamd64.X.Yにコピーする。
※認識に必要なものだけを書けばいいらしいようだが。

Hyper-V NIC


あとは、手順にしたがって、
 

bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING ON


で、上で修正したinfを認識させるおまじないをして、OSを再起動する(これをやらなかったので手こずりました・・・)
pnputilコマンドでドライバをインストール
 

pnputil -i -a e1c64x64.inf


警告が出るので、インストールしますを選択

Hyper-V NIC

これでNICが認識されるようになりました。
あとは、忘れずにセキュリティチェックを有効に戻して、再起動しておく。
 

bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING OFF

 

 

■リモートデスクトップが拒否される

インストールとネットワークが繋がったら、できれば自分の端末からゴリゴリやってみたいのだが、

リモートデスクトップを有効にしてもアクセスが拒否される。

 

一番最初に紹介したHyper-V Server 導入記事の第3回にあるように、

ファイアーウォールがブロックしているためだ。

 

Hyper-V ServerをGUIで使い、仮想マシンを作成してみる

 

ここの、

 

set rule group="リモート デスクトップ" new enable=yes

 

だけ開放して上げれば、リモートデスクトップが開放される。

あとは、リモートデスクトップ上で必要な設定をしていけばよい

 


■リモート管理の設定が拒否される
下のページを参考にしながらGUIでの接続を試みているのだが、

Hyper-V ServerをGUIで使い、仮想マシンを作成してみる

 

 

winrm set winrm/config/client @{TrustedHosts="xxxx"}
※複数のサーバーと接続する場合は、xxxx,yyyyとカンマ区切りにする


のコマンドを打つと、

WinRM エラー

クライアントは、要求で指定された接続先に接続できません。〜〜〜
エラー番号:-2144108526 0x80338012 〜〜〜

と長ったらしいエラーが出て先へ進めない。
とりあえず、WinRM サービスを分析及び構成してください をヒントに、サービスを除いてみると・・・。

WinRM エラー

あー、WinRMのサービスが登録されてはいるが、手動で動いていませんでした。

自動立ち上げ設定とサービス開始で(WinRMコマンドからでもよい)起動したら、
WinRMコマンドがスルッと通りました。
やれやれ。
 

追記151013
Windows 10 でHyper-V のマネージャからHyper-V serverにアクセスするために設定をしていたのだが、

Hyper-V ServerをGUIで使い、仮想マシンを作成してみる

などで紹介されている設定ツール(hvremote.wsf)がまだwindows 10 に対応していないため、
 
 ERROR: This OS release is unsupported. Use the /override parameter to
*****        force HVRemote to assume Windows 8.1/Windows Server 2012 R2 behaviour.
*****        This may fail and have unintended side effects.

という感じでサポートしていないよとエラーが出て設定できない。
ちょっと調べたところ、overrideで抜ける方法があるようなので、

Hyper-V Server 2012のセットアップ方法

それを試して見たところ、
一応WARN(警告)がでつつも、設定を通すことができた。
追記151113
なんか、クライアント側からリモートで接続できなくなった。
 
hyper-v リモート接続
サーバーXXに接続中にエラーが発生しました。
仮想マシン管理サービスが実行されており、サーバーに接続する権限が
与えられているかどうかを確認してください。

コンピューターXX上での操作が失敗しました。
WinRMクライアントは要求を処理できません。
認証スキームがKeroberosと異なる場合、またはクライアントコンピューターが
ドメインに参加していない場合は、HTTPSトランスポートを使用するか、
または宛先コンピューターがTrustedHosts構成設定に追加されている必要があります。
TrustedHostを構成するにはwinrm.cmdを使用します。
TrustedHosts一覧に含まれるコンピューターは認証されていない可能性があります。
winrm help config コマンドを実行すると、詳細が表示されます。

LANカードがいっぱいささっているせいかなとかいろいろ考えてみたが、
そうでもない気配

そういえば、raspberry Piのwindows 10 IoTをつないだ後からなので、
それに原因があるのかもと調べてみたところ、

上のエラーにも書いてあるTrustedHostsが接続できなくなた原因のようだ。

上の方で、Hyper-Vを設定する際、

winrm set winrm/config/client @{TrustedHosts="xxxx"}

というコマンドを使用したが、
このxxxxの部分にwin10IoTのマシンを登録したことで、
Hyper-V Serverの登録が消えてしまったようだ。

理由としては、このコマンドのままでは1台しか登録できない。
もし、複数台を許可する場合は、
 
winrm set winrm/config/client @{TrustedHosts="xxxx,yyyy"}


といった感じで,(カンマ)で必要分を同時に登録して上げる必要がある。
これで、接続断になってしまったHyper-V Serverにも接続ができるようになりました。

参考URL
Windows Server Core で、Windows Remote Shell を使ってみた
WinRM の TrastedHosts にホストを追加 / 確認 / 削除する

 

 

追記170118

同じようなエラーで、

 

サーバーXXに接続中にエラーが発生しました。
仮想マシン管理サービスが実行されており、サーバーに接続する権限が
与えられているかどうかを確認してください。

 
このタスクを完了するために必要なアクセス許可がありません。
このコンピューター'XXX'の承認ポリシーの管理者に問い合わせてください。
 

 

といったエラーが出た。

 

どうやらcmdkeyで登録したサーバ名が違うからのようだ

 

例えば、cmdkeyではxxxxサーバーで登録してあるのに、

Hyper-Vマネージャーから接続した際、名前解決できないなどで接続がうまくいかなかったので、

IPアドレスでHyper-Vサーバーにアクセスしようとした時に出たりする。

 

要するに、cmdkeyにIPアドレスが設定されていないため、エラーが起きた感じになる。

なので、cmdkeyにサーバー名ではなく、IPアドレスで登録しておけば解決できる訳である。

 
cmdkey /add:IPアドレス /user:hoge /pass

 

または、名前解決すれば良いので、hostsに登録しておいてもよい?と思ったのだが、

自分の環境ではうまくいかなかった。

 

追記160405
久しぶりにHyper-Vマネージャーで接続しようと思ったらリストに表示されない。
サーバに接続から再設定してみると、いろいろエラーが
どうやらWin10 1511に変えて設定の一部が飛んでしまったようだ。

とりあえず、順番にポリシー周りの設定を確認したが、
特にその辺は問題ないように見えたのだが、
下のエラーが解消できず、つまずいてしまった。
 
hyper-v リモート接続 サーバー”仮想マシン”に接続中にエラーが発生しました。
仮想マシン管理サービスが実行されており、
サーバーに接続する権限が与えられているかどうかを
確認してください。
このタスクを完了するために必要なアクセス許可がありません。
コンピューター”仮想マシン”の承認ポリシーの管理者に問い合わせてください。


もう一度参考ページを確認して、 cmdkey で資格情報が登録されていないことが判明、
資格情報をクライアント側に追加してあげたら接続できるようになりました。
 

追記160829

新しく構築したHyper-V Serverに接続しようと思ったら、マネージャーで×マークが出て、

上と似たようなエラーが出た。

クライアント、サーバー共に再起動しても全く改善せず。

試しに、cmdkeyで追加した情報を一度削除して、もう一度登録したら、

何事もなかったかのように繋がるようになった。

うーん、解決できたが謎すぎる・・・。

 

 

追記160609
しばらく使わなかったので放置していて、
久しぶりにつなごうとしたら、パスワードの有効期限が切れたとかで、
管理画面(リモート)からログインできなくなった。

Windows Server(Hyper-V Server)はデフォルト40日とかに設定されているので、
うっかりするとログインできなくなることがある。

PW変更(更新)はおなじみ Net Userコマンドから行えばできる。
 
Net User HogeUser Password

問題は期間変更。

こちらの記事に変更の仕方が載っていた。

コマンドプロントを使って簡単にパスワードの有効期限を無期限にする

こちらを参考に、Net Accounts コマンドで変更して、とりあえず、無期限かすることができた。
 
Net Accounts /maxpwage:unlimited

そうはいっても、定期的に変えた方がそれなりによい
 

追記160830

ネットワーク設定で、デフォルトゲートウエイを追加するかどうか悩んで、とりあえず、追加してみたのだが、

やっぱり外に出ることがないので削除しようと思ったのだけれど、

あれ?sconfigから削除できない?

 

 

空打ちしてもだめ、0.0.0.0とかnoneとか入れても無効と言われてデフォルトゲートウエイ設定を削除できない。困った。

 

ネットでデフォルトゲートウエイ設定を調べて、netshから設定する方法を見つける。

やはりこの方法しかないか・・・。

 

Hyper-V実践サーバ統合術 第1回

 

 

ところが、ネットワークアダプタの名前をnameに入れても、名前が違うよと言われてしまう。

確認のため、netsh interface ipv4 show interfacesをしてみたら、

対象のアダプタ名がvEthernet(xxx)とかで登録されていた。

 

この部分をそのままnameに入れて、設定したら、デフォルトゲートウエイを削除(空)にすることができました。

sconfigで設定できると良いのだが・・・。

 

 


■コマンドプロンプトを再表示
最近主流(?)になりつつWindows Server のコンソールモード(Server Core)

通常ならGUIでゴリゴリやるところ、CUIなコマンドプロンプトだけで後は真っ黒
うっかりコマンドプロンプトを閉じてしまったら・・・

はい、真っ黒けでどうしようもありません。
この状態でコマンドプロンプトやHyper-V Serverのサーバー構成画面を再び表示させることはできるのか・・・。

調べてみると、いわゆるCtrl + Alt + Delete(リモートはDeleteをEndにする)でセキュリティ画面を表示させ、
その中のタスクマネージャーを開いて、
ファイル→新しいタスクの作成の順で、

例えばコマンドプロンプトなら cmd 、Hyper-V Serverのサーバー構成なら sconfig と打てば再度表示できる。

良かった良かった。


■タスクマネージャ
Hyper-V Serverのメインマシン自体のパフォーマンスを見たい場合、
コマンドプロンプトやPower Shellで情報を出力してもいいが、
視覚的に見たいと思うと、タスクマネージャを起動してみたくなる。

コマンドプロンプトを表示させた方法でセキュリティ画面を表示させてタスクマネージャを選択するか、
コマンドプロンプトから taskmgr と打って起動させることができる。

残念なのはパフォーマンスモニターは起動できない。
モニターしたい場合はコマンドラインから定期的な取得しかないようだ。
 

■ファイル転送

上のhvremote.wsfファイルやドライバ、インストールISOなどをやりとりする場合どうするか

USBに入れていちいちサーバまで行くのも面倒である。

 

リモートデスクトップをやっているなら、ローカルリソースのローカルリソースとデバイスから、

自分のパソコンのドライブが共有できるので、共有したいファイルの入っているドライブにチェックを入れる。

 

 

次にリモートでHyper-Vサーバーに入り、net useコマンドを実行すると、

共有したドライブが見えてくれるはず

 

 

あとは、普通にcopyコマンドで ¥¥TSCLIENT¥ドライブ からファイルを取得すればOK

 

copy¥¥TSCLIENT¥C¥Tools¥hvremote.wsf

※¥は半角

 

 

■ライセンス

ライセンスに関してはこちらで他力ちゃん

Windows Server 2012 R2 / System Center 2012 R2 ライセンス 早わかり ガイド

 

ちなみに、よく購入すると思われる2012 Standardの場合、

1ライセンスで2CPU、2仮想環境(インスタンス/OSE)が実行できます。

 

Hyper-V Server(ハイパーバイザー) ではなく、

Windows Server 2012機能のHyper-V(仮想環境アプリケーション)を使う場合は、

Windows Server 2012(Hyper-V管理用) + 2インスタンスまでで1ライセンスです。

 

 

仮想環境を3以上にしたい場合は、2インスタンス毎に1ライセンスが必要になります。

 

それと、Hyper-Vを実行しているWindows Server OSはあくまで管理用となるため、

例えばIISを追加したいなど別機能を持たせる場合は、別途ライセンスが必要になるそうです。

 

13台以上の仮想環境を実行したい場合は、Datacenterを購入した方がよいようです。

 

なお、ここまでは2012のカウント方法でしたが、

10月にリリースされた2016からライセンスの計算が大幅に変更されたようです。

 

大ざっぱに書くと、CPUのコア数でライセンス数が決まるようで、

(ちなみに、販売単価は2コアで1ライセンスになります)

 

例えば、Windows Server 2016 Standardの場合

 

1CPU 8コアのマシンに入れる場合 → 最低の16コア(8ライセンス)

1CPU 8コア2台(合計16コア)に入れる場合→ 16コア(8ライセンス)

1CPU 10コア2台(合計20コア)に入れる場合→20コア(10ライセンス)

※HT(ハイパースレッド)は無視できます。純粋の1CPU内のコア数で計算します。

 例 8C 16T なら8コア

 

必要になり、仮想マシンを載せる場合はこのライセンスで2インスタンス動かせるようです。

 

さらに2インスタンス追加した場合(合計4インスタンス)は、倍々で、

 

1CPU 8コアのマシンに入れる場合 → 16 x 2 = 32コア(16ライセンス)

1CPU 8コア2台(合計16コア)に入れる場合→  16 x 2 = 32コア(16ライセンス)

1CPU 10コア2台(合計20コア)に入れる場合→ 20 x 2 = 40コア(20ライセンス)

 

という計算になるようです。

 

計算がややこしいので、購入先にCPUの型番と搭載数を伝えて計算してもらってください。

 

この辺が分かりやすいかもしれない(中程のフローチャートで計算できます)

 

あと、この辺とか

Windows Server 2016で大きく変わるライセンスモデル

 


■参考URL
Hyper-V Server 2012 R2の基本操作
Server Coreでコマンド・プロンプトを表示させる


■関連URL
Hyper-V Serverを知り、インストールと初期設定をする
Hyper-V Server 2012 R2(ソフトダウンロード)

Intel NUCにWindows Server 2012 (64bit)をインストールした。
15 ステップで完了するHyper-V Server と NUC によるサーバー仮想化環境の構築

Hyper-V Server 2012の管理にリモートサーバ管理ツールを使う


 

 

コメント
コメントする








    
この記事のトラックバックURL
トラックバック

calendar

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
<< September 2017 >>

search this site.

よく使う、検索される投稿

categories

アマゾン

楽天

selected entries

archives

recent comment

recent trackback

profile


※当ブログはリンクフリーですが、 取材や雑誌等で掲載される場合は、事前にお知らせください

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM