Upload
naoki-abe
View
5.621
Download
0
Embed Size (px)
Citation preview
トラブルや事象から理解するHyper-Vの基礎
阿部直樹(NAOKI ABE)
MICROSOFT MVP – VIRTUAL MACHINE
自己紹介
阿部直樹( Naoki ABE )
マイクロソフト認定トレーナー
エディフィストラーニング株式会社所属
主な担当分野
Windows Server (AD,Network,Security,Cluster,Hyper-V)
System Center
Lync
Microsoft MVP – Virtual Machine( Apr.2010 - Mar.2014 )
Blog : MCTの憂鬱<http://naonao71.wordpress.com/>
アジェンダ
Part1 Hyper-V Install
Part2 Hyper-V Configuration
Part3 Hyper-V Maintaining
Part4 Hyper-V Performance
Part5 Summary
Part1 HYPER-V INSTALL
#01 VM が起動しない
Hyper-V を導入済みのマスターイメージを展開したが、VMが起動しない
Hyper-V インストール要件
BIOS
ハードウェア仮想化支援
Intel Virtualization Technology(Intel VT)
AMD Virtualization(AMD-V)
ハードウェア実行防止(DEP)
INTEL XD ビット(exclude disable bit)
AMD NX ビット(no execute bit)
64 ビットプロセッサ
Hyper-V のインストール
GUI
[サーバーの役割の選択] ページで [Hyper-V] を選択してインストール
PowerShell コマンド
Install-WindowsFeature –Name Hyper-V -ComputerName <computer_name> -
IncludeManagementTools –Restart
DISM コマンド
DISM /Online /Enable-Feature /FeatureName:Microsoft-Hyper-V
DISM /Online /Enable-Feature /all /FeatureName:Microsoft-Hyper-V-Management-Clients
ブートローダーの変化
Hyper-V を導入することにより次の項目が追加されハイパーバイザが起動する
Hypervisorlaunchtype Auto
原因と対策
展開先のコンピューターの BIOS 設定がHyper-V のインストール要件を満たしていない(ハードウェア仮想化支援が OFF など)ことにより、ブートローダーのHypervisorlaunchtype が削除されハイパーバイザーが起動していない。よって、VMが起動しない。
BIOS 設定を見直し変更する
電源を落とす(マシンによって再起動では有効にならなものある)
次のコマンドを実行しブートローダーを変更する
bcdedit /set hypervisorlaunchtype
auto
Part2 HYPER-V CONFIGURATION
#02 最大 RAM はデフォルトでいいの?
動的メモリ設定を行うことにより、物理マシンに搭載されている最大メモリ量以上のメモリを VM に割り当てることが可能
動的メモリの最大 RAM は 1T の設定になっている
動的メモリの動作
スタートアップ RAM
VM 起動時に割り当てる RAM
最大 RAM
物理マシンに存在する RAM で割り当て可能な容量がある場合は、VMからの要求により設定した容量まで割り当てる
最小 RAM
VM でのメモリ使用量が少なくなると使用していないメモリを、設定した容量までホストに返却する
原因と対策
最大メモリを設定しても、物理メモリ以上のメモリを割り当てることはしない
1Tのメモリ容量でも問題ない
自動的に VM に割り当てられる最大容量まで使用する
Hyper-V ホストが使用するメモリを予約
Windows Server 2012 以降は自動調整するので設定はしないほうがよい
Windows Server 2008 R2 ではレジストリで設定する必要がある
レジストリで予約可能
キー:HKEY_LOCAL_MACHINE¥SOFTWAR
E¥Microsoft¥Windows
NT¥CurrentVersion¥Virtualization
値の名前 (型): MemoryReserve (DWORD
値)
値のデータ: 管理用 OSに予約するメモリサイズ (MB)
#03 NUMA 設定はどうすればいいの?
SMP (対称型マルチプロセッシング)
1 個のメモリコントローラが、全てのプロセッサとメモリを接続している。
どのプロセッサも、メモリ全体に同じ速度でアクセスできる。
プロセッサ数が少ないうちは、これで問題なかった。
プロセッサ
チップセット(メモリ コントローラー)
コア コア
プロセッサ
コア コア
プロセッサ増加による課題
プロセッサが増えるとメモリへの経路がボトルネックになる
多くのプロセスのそれぞれが、広大なメモリ空間の大部分をなめるようにアクセスすることは少ない
参照の局所性チップセット
(メモリ コントローラー)
プロセッサ
コア コア
コア コア
プロセッサ
コア コア
コア コア
プロセッサ
コア コア
コア コア
プロセッサ
コア コア
コア コア
NUMAアーキテクチャ(Nehalemなど)
プロセッサ
コア コア
コア コアチップセット
(
メモリ
コントローラー) プロセッサ
コア コア
コア コア チップセット
(
メモリ
コントローラー)
NUMA ノード NUMA ノード
Interconnect
Hyper-V on Windows Server 2008 R2
ハイパーバイザは NUMA を認識
VM 配置時に NUMA ノードを考慮。
可能な限り、NUMA ノードをまたがないように VM のメモリを確保する
単一NUMAノード内で足りない場合は「NUMA ノードにまたがるメモリ割り当て」の設定によって挙動が変わる
ON の場合
単一の NUMA ノード内でメモリを確保できなかった場合は、ノードをまたいでメモリを確保する
メモリに空きがあれば、 NUMA ノードの大きさを超える「大きな VM」も配置できることになる
OFF の場合
NUMA ノードをまたぐメモリ割り当ては行わない
「システム全体でみればメモリが空いているように見えるが、 VM を起動できない」ことがあり得る
物理マシン
NUMA ノード 0
Hyper-V on Windows Server 2008 R2
Windows や SQL Server
のような“NUMA-aware” ソフトウェアがその能力を発揮できない
NUMA ノードをまたいだメモリもローカルであるように見える
通常は「OFF」として設定
コア
NUMA ノード 1
コア
仮想マシン
NUMA ノード 0
コア
コア
VM作成
物理マシン
NUMA ノード 0
Hyper-V on Windows Server 2012
NUMA ノードまたぎを
過度に避ける必要はない 通常は「ON」として設定
ただし、動的メモリを使用
する場合は単一 NUMA と
して認識される 動的メモリを使用する場
合は「OFF」として設定
コア
NUMA ノード 1
コア
VM作成
物理マシン
NUMA ノード 0
コア
NUMA ノード 1
コア
Part3 HYPER-V MAINTAINING
#04 HOST 間での通信ができない
Hyper-V および VM をインストールしたイメージを展開
それぞれコンピューター名を変更
Host1 Host2
VM1 VM2 VM3 VM4
仮想ネットワーク
外部
VM VM
vSW
HOST
NIC
vNIC
SW
内部
VM VM
vSW
HOST
vNIC
プライベート
VM VM
vSW
HOST
vNIC
Hyper-V ネットワーク構成時のポイント
Hyper-V シンプル構成
VM VM
vSW
物理マシン
Windows Server2012
NIC
SW
NIC
SW
HOST
NIC
SW
NIC
SW
NIC をホストとVM で共有可能
VM VM
vSW
HOST
NIC
vNIC
SW管理オペレーティングシステムにこの
ネットワークアダプタの共有を許可する
MAC アドレス
仮想マシンに割り当てられる MAC アドレスは次のアルゴリズムで生成される
ホストIPの第 3、4 オクテットを16進数に変換し、先頭に「00-15-5D」を付与する
例としては
ホストの IP アドレスが 192.168.10.200 の場合
00-15-5d-0a-c8-00から00-15-5d-0a-c8-ff
の範囲
原因と対策
「管理オペレーティングシステムにこのネットワークアダプタの共有を許可する」の設定がされていた場合
ホストの NIC がバーチャル NIC として扱われる
イメージ展開後は同じ「MACアドレス」が使用されるためホスト間通信ができない
NIC の構成より「MACアドレス」の変更を行い、ユニークに設定する
ホスト専用 NIC を使用する場合は問題ない
VM が「外部ネットワーク」に接続された状態で展開するとイメージ取得時のMAC アドレスがそのまま使用される
外部ネットワークには接続しない状態でイメージ取得する
1台も外部ネットワークが接続されていない状態でイメージ取得したものであれば、イメージ展開後に「仮想スイッチマネージャー」を起動したタイミングで MAC アドレス範囲が決定する(もしくは仮想マシンを起動)
#05 PxE ブートで VM を起動できない
WDS から VM に OS インストールを行いたいができない
DC/DNS DHCP WDS
IDE と SCSI
IDE 接続デバイス
ハードディスク
DVD/CD
1 コントローラーあたり 2 デバイスサポート
2 コントローラーまで接続可能
起動サポート
SCSI 接続デバイス
ハードディスク
1 コントローラーあたり 64 台までサポート
4 コントローラーまで接続可能
ホットアド対応仮想マシンが起動した状態でディスクを追加可能
原因と対策
PxE ブートをサポートするのは「レガシネットワークアダプター」のみ
ネットワークアダプターはサポートしない
スタートアップ順序で「レガシネットワークアダプター」を上位にする
IDE にハードディスクを接続
#06 AMD と Intel 間での移行ができない
ライブマイグレーションで失敗する
仮想マシンの構成ファイル
状態情報(.vsv)
メモリ情報(.bin)
差分ディスク(.avhd)
構成情報(.xml)
仮想マシン
状態情報(.vsv)
メモリ情報(.bin)
仮想ディスク(.vhd)
構成情報(.xml)
スナップショット
原因と対策
CPU の互換性の設定は、同じメーカーの製品で世代が異なる際に使用する
Intel と AMD での CPU の違いを吸収するものではない
主に同一メーカーの世代が異なる CPU 上で、ライブマイグレーションを行う場合に使用する
Intel ー AMD 間で移行するには?
状態情報(.vsv)には CPU 情報やネットワーク情報が入っている。
.bin や .vsv ファイルは VM 起動時に作成される
VM を停止し(.bin や .vsv ファイルがない状態)、エクスポートする。異なるCPU ホストでインポートする
#07 特定ファイルを VM で使用したい
USB HDD 上のファイルを VM で使用する方法は?
仮想ハードディスク
原因と対策
外部ネットワーク経由
VM が外部、内部ネットワーク接続している
ISO や仮想フロッピー経由
VHD 経由
VHD を作成し、ホストのディスクの管理より接続後、対象のファイルをコピーする。ホストから接続解除し、SCSI 経由でホットアド接続
直接 HDD をパススルー接続
パススルー接続を行うには、Hyper-V ホストでオフラインにする
#08 VM が突然消えた・・・
仮想マシンを起動または作成しようとすると、仮想マシンが見つからないか、エラー 0x800704C8、0x80070037、または0x800703E3 が表示される
原因と対策
一部のマルウェア対策ソフトウェアによっては、Hyper-V の挙動をマルウェアと認識する場合がある
KB961804
マルウェア対策ソフトの除外設定を行う
VHD、VHDX、AVHD、VSVとISOファイルを含むすべてのフォルダ
仮想マシンのデフォルトの設定ディレクトリを使用する場合(C:¥ProgramData¥Microsoft¥Windows¥Hyper-V)
デフォルトのスナップショット·ファイル·ディレクトリを使用する場合(%systemdrive%¥ProgramData¥Microsoft¥Windows¥Hyper-V¥Snapshots)
カスタム仮想マシン構成ディレクトリが該当する場合
カスタム仮想ハードディスクドライブのディレクトリ
スナップショットディレクトリー
Vmms.exe
Vmwp.exe
クラスタ共有ボリュームを使用する場合は、CSVファイルのパスを除外する(C:¥ClusterStorageとそのすべてのサブディレクトリ)
#09 リモート接続後にホストが不安定
クライアントからリモート接続を行い、Hyper-V ホストに接続したら不安定になった
原因と対策
RDP のプリンタマッピングにより、ホストが不安定になることがあるのでホスト上で無効化する
最適な方法としては、任意のOU にHyper-V ホストをいれこみ、GPOで制御する
[コンピュータの構成] > [ポリシー] > [管理用テンプレート] > [Windowsコンポーネント] > [リモートデスクトップサービス] > [リモートデスクトップセッションホスト] > [プリンタのリダイレクト] >[クライアントプリンターのリダイレクトを許可しない] 設定を有効にする
Part4 HYPER-V PERFORMANCE
#10 Disk 交換したら VM が遅くなった
Windows Server 2008 R2 の Hyper-V をしており、今後 Windows Server 2012 のHyper-V に移行する予定
前段階として、圧迫している Disk の変更を行ったらパフォーマンスの劣化が見られた
そもそも VM が起動しない・・・
AFT(Advanced Format Technology)
AFT は HDD の容量拡大を目的とした高密度化に伴い、セクタサイズを4Kバイトに変更し、512 バイトセクタを論理セクタとしてエミュレーションする技術
Windows Server 2008 以降の OS で対応
Hyper-V の VHD は 512 バイトでの I/O
VHD は 1 セクター 512 バイトまでの対応なので 4K ネイティブディスクでは使用不可
セクターあたりのバイト数
物理セクターあたりのバイト数
種類
4096 4096 ネイティブの
4 K
512 4096 512エミュレーション
512 512 ネイティブの
512
Read-Modify-Write
書き込みされる512バイトの論理セクタが含まれる4Kbの物理セクター全体をキャッシュに読み込む
4Kbのキャッシュの中に含まれる、書き込み対象の512バイトを更新する
更新した4Kbのキャッシュ全体をディスクの物理セクターに書き込む
出典:大容量ディスクとセクター サイズ拡大に対応する Windows 8
http://blogs.msdn.com/b/b8_ja/archive/2011/12/02/windows-8-enabling-
large.aspx
VHD と VHDX
VHD 以前のバージョンから使用されている仮
想ディスクフォーマット形式
2 T バイトまで対応
VHDX Windows Server 2012 より採用された新
しい仮想ディスクフォーマット形式
64 T バイトまで対応
4Kbytesセクタ(AFT)のサポート
内部データ構造を4Kbytes境界に配置することにより、AFT形式のディスクでのパフォーマンス低下を抑止
原因と対策
新規ディスクが AFT ディスクだったのでOS レベルでは対応していても、VHD が対応していないのでパフォーマンスの劣化が起こった(KB2515143)
KB では約 30 % の劣化が起こると記載
VM が起動しないのは、4K ネイティブのディスクだったため
Windows Server 2012 の Hyper-V を使用し、VHD から VHDX への変換を行う
Part5 SUMMARY
他のベストプラクティス
Hyper-V の役割以外の役割をインストールしない。
唯一の例外として VDI をホストしている場合はリモートデスクトップサービスの役割をインストールする
Hyper-V ホストにインストールする必要があるものは次のものが考えられる
フェールオーバークラスター:クラスターノードの場合
MPIO:iSCSI or FC で接続されている場合
リモートデスクトップサービス:VDI が使用される場合
仮想ハードディスク(VHD/VHDX)はシステムドライブ以外に作成する
これにより、Hyper-V ホストのディスクスペース不足のリスクを減らすことができる
Hyper-V ホストは、可能な限りドメインに参加させる
ID管理やセキュリティ、監査などの一元管理ができる
まとめ
Hyper-V が登場してから 5 年が経過し、その進化は止まりません。
Windows Server 2012 では Windows Server 2008 R2 の Hyper-V では推奨だったものが変更されたものもあるので、注意が必要です。
Windows Server 2012 R2 では Hyper-V 関連のアップデートが多数ありますので、まずは基本を押さえてから、キャッチアップしましょう。
Q&A
ご清聴ありがとうございました