49
トラブルや事象から理解する Hyper-Vの基礎 阿部 直樹(NAOKI ABEMICROSOFT MVP – VIRTUAL MACHINE

トラブルから理解するHyper vの基礎

Embed Size (px)

Citation preview

Page 1: トラブルから理解するHyper vの基礎

トラブルや事象から理解するHyper-Vの基礎

阿部直樹(NAOKI ABE)

MICROSOFT MVP – VIRTUAL MACHINE

Page 2: トラブルから理解するHyper vの基礎

自己紹介

阿部直樹( 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/>

Page 3: トラブルから理解するHyper vの基礎

アジェンダ

Part1 Hyper-V Install

Part2 Hyper-V Configuration

Part3 Hyper-V Maintaining

Part4 Hyper-V Performance

Part5 Summary

Page 4: トラブルから理解するHyper vの基礎

Part1 HYPER-V INSTALL

Page 5: トラブルから理解するHyper vの基礎

#01 VM が起動しない

Hyper-V を導入済みのマスターイメージを展開したが、VMが起動しない

Page 6: トラブルから理解するHyper vの基礎

Hyper-V インストール要件

BIOS

ハードウェア仮想化支援

Intel Virtualization Technology(Intel VT)

AMD Virtualization(AMD-V)

ハードウェア実行防止(DEP)

INTEL XD ビット(exclude disable bit)

AMD NX ビット(no execute bit)

64 ビットプロセッサ

Page 7: トラブルから理解するHyper vの基礎

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

Page 8: トラブルから理解するHyper vの基礎

ブートローダーの変化

Hyper-V を導入することにより次の項目が追加されハイパーバイザが起動する

Hypervisorlaunchtype Auto

Page 9: トラブルから理解するHyper vの基礎

原因と対策

展開先のコンピューターの BIOS 設定がHyper-V のインストール要件を満たしていない(ハードウェア仮想化支援が OFF など)ことにより、ブートローダーのHypervisorlaunchtype が削除されハイパーバイザーが起動していない。よって、VMが起動しない。

BIOS 設定を見直し変更する

電源を落とす(マシンによって再起動では有効にならなものある)

次のコマンドを実行しブートローダーを変更する

bcdedit /set hypervisorlaunchtype

auto

Page 10: トラブルから理解するHyper vの基礎

Part2 HYPER-V CONFIGURATION

Page 11: トラブルから理解するHyper vの基礎

#02 最大 RAM はデフォルトでいいの?

動的メモリ設定を行うことにより、物理マシンに搭載されている最大メモリ量以上のメモリを VM に割り当てることが可能

動的メモリの最大 RAM は 1T の設定になっている

Page 12: トラブルから理解するHyper vの基礎

動的メモリの動作

スタートアップ RAM

VM 起動時に割り当てる RAM

最大 RAM

物理マシンに存在する RAM で割り当て可能な容量がある場合は、VMからの要求により設定した容量まで割り当てる

最小 RAM

VM でのメモリ使用量が少なくなると使用していないメモリを、設定した容量までホストに返却する

Page 13: トラブルから理解するHyper vの基礎

原因と対策

最大メモリを設定しても、物理メモリ以上のメモリを割り当てることはしない

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)

Page 14: トラブルから理解するHyper vの基礎

#03 NUMA 設定はどうすればいいの?

Page 15: トラブルから理解するHyper vの基礎

SMP (対称型マルチプロセッシング)

1 個のメモリコントローラが、全てのプロセッサとメモリを接続している。

どのプロセッサも、メモリ全体に同じ速度でアクセスできる。

プロセッサ数が少ないうちは、これで問題なかった。

プロセッサ

チップセット(メモリ コントローラー)

コア コア

プロセッサ

コア コア

Page 16: トラブルから理解するHyper vの基礎

プロセッサ増加による課題

プロセッサが増えるとメモリへの経路がボトルネックになる

多くのプロセスのそれぞれが、広大なメモリ空間の大部分をなめるようにアクセスすることは少ない

参照の局所性チップセット

(メモリ コントローラー)

プロセッサ

コア コア

コア コア

プロセッサ

コア コア

コア コア

プロセッサ

コア コア

コア コア

プロセッサ

コア コア

コア コア

Page 17: トラブルから理解するHyper vの基礎

NUMAアーキテクチャ(Nehalemなど)

プロセッサ

コア コア

コア コアチップセット

(

メモリ

コントローラー) プロセッサ

コア コア

コア コア チップセット

(

メモリ

コントローラー)

NUMA ノード NUMA ノード

Interconnect

Page 18: トラブルから理解するHyper vの基礎

Hyper-V on Windows Server 2008 R2

ハイパーバイザは NUMA を認識

VM 配置時に NUMA ノードを考慮。

可能な限り、NUMA ノードをまたがないように VM のメモリを確保する

単一NUMAノード内で足りない場合は「NUMA ノードにまたがるメモリ割り当て」の設定によって挙動が変わる

ON の場合

単一の NUMA ノード内でメモリを確保できなかった場合は、ノードをまたいでメモリを確保する

メモリに空きがあれば、 NUMA ノードの大きさを超える「大きな VM」も配置できることになる

OFF の場合

NUMA ノードをまたぐメモリ割り当ては行わない

「システム全体でみればメモリが空いているように見えるが、 VM を起動できない」ことがあり得る

Page 19: トラブルから理解するHyper vの基礎

物理マシン

NUMA ノード 0

Hyper-V on Windows Server 2008 R2

Windows や SQL Server

のような“NUMA-aware” ソフトウェアがその能力を発揮できない

NUMA ノードをまたいだメモリもローカルであるように見える

通常は「OFF」として設定

コア

NUMA ノード 1

コア

仮想マシン

NUMA ノード 0

コア

コア

VM作成

Page 20: トラブルから理解するHyper vの基礎

物理マシン

NUMA ノード 0

Hyper-V on Windows Server 2012

NUMA ノードまたぎを

過度に避ける必要はない 通常は「ON」として設定

ただし、動的メモリを使用

する場合は単一 NUMA と

して認識される 動的メモリを使用する場

合は「OFF」として設定

コア

NUMA ノード 1

コア

VM作成

物理マシン

NUMA ノード 0

コア

NUMA ノード 1

コア

Page 21: トラブルから理解するHyper vの基礎

Part3 HYPER-V MAINTAINING

Page 22: トラブルから理解するHyper vの基礎

#04 HOST 間での通信ができない

Hyper-V および VM をインストールしたイメージを展開

それぞれコンピューター名を変更

Host1 Host2

VM1 VM2 VM3 VM4

Page 23: トラブルから理解するHyper vの基礎

仮想ネットワーク

外部

VM VM

vSW

HOST

NIC

vNIC

SW

内部

VM VM

vSW

HOST

vNIC

プライベート

VM VM

vSW

HOST

vNIC

Page 24: トラブルから理解するHyper vの基礎

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管理オペレーティングシステムにこの

ネットワークアダプタの共有を許可する

Page 25: トラブルから理解するHyper vの基礎

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

の範囲

Page 26: トラブルから理解するHyper vの基礎

原因と対策

「管理オペレーティングシステムにこのネットワークアダプタの共有を許可する」の設定がされていた場合

ホストの NIC がバーチャル NIC として扱われる

イメージ展開後は同じ「MACアドレス」が使用されるためホスト間通信ができない

NIC の構成より「MACアドレス」の変更を行い、ユニークに設定する

ホスト専用 NIC を使用する場合は問題ない

VM が「外部ネットワーク」に接続された状態で展開するとイメージ取得時のMAC アドレスがそのまま使用される

外部ネットワークには接続しない状態でイメージ取得する

1台も外部ネットワークが接続されていない状態でイメージ取得したものであれば、イメージ展開後に「仮想スイッチマネージャー」を起動したタイミングで MAC アドレス範囲が決定する(もしくは仮想マシンを起動)

Page 27: トラブルから理解するHyper vの基礎

#05 PxE ブートで VM を起動できない

WDS から VM に OS インストールを行いたいができない

DC/DNS DHCP WDS

Page 28: トラブルから理解するHyper vの基礎

IDE と SCSI

IDE 接続デバイス

ハードディスク

DVD/CD

1 コントローラーあたり 2 デバイスサポート

2 コントローラーまで接続可能

起動サポート

SCSI 接続デバイス

ハードディスク

1 コントローラーあたり 64 台までサポート

4 コントローラーまで接続可能

ホットアド対応仮想マシンが起動した状態でディスクを追加可能

Page 29: トラブルから理解するHyper vの基礎

原因と対策

PxE ブートをサポートするのは「レガシネットワークアダプター」のみ

ネットワークアダプターはサポートしない

スタートアップ順序で「レガシネットワークアダプター」を上位にする

IDE にハードディスクを接続

Page 30: トラブルから理解するHyper vの基礎

#06 AMD と Intel 間での移行ができない

ライブマイグレーションで失敗する

Page 31: トラブルから理解するHyper vの基礎

仮想マシンの構成ファイル

状態情報(.vsv)

メモリ情報(.bin)

差分ディスク(.avhd)

構成情報(.xml)

仮想マシン

状態情報(.vsv)

メモリ情報(.bin)

仮想ディスク(.vhd)

構成情報(.xml)

スナップショット

Page 32: トラブルから理解するHyper vの基礎

原因と対策

CPU の互換性の設定は、同じメーカーの製品で世代が異なる際に使用する

Intel と AMD での CPU の違いを吸収するものではない

主に同一メーカーの世代が異なる CPU 上で、ライブマイグレーションを行う場合に使用する

Intel ー AMD 間で移行するには?

状態情報(.vsv)には CPU 情報やネットワーク情報が入っている。

.bin や .vsv ファイルは VM 起動時に作成される

VM を停止し(.bin や .vsv ファイルがない状態)、エクスポートする。異なるCPU ホストでインポートする

Page 33: トラブルから理解するHyper vの基礎

#07 特定ファイルを VM で使用したい

USB HDD 上のファイルを VM で使用する方法は?

Page 34: トラブルから理解するHyper vの基礎

仮想ハードディスク

Page 35: トラブルから理解するHyper vの基礎

原因と対策

外部ネットワーク経由

VM が外部、内部ネットワーク接続している

ISO や仮想フロッピー経由

VHD 経由

VHD を作成し、ホストのディスクの管理より接続後、対象のファイルをコピーする。ホストから接続解除し、SCSI 経由でホットアド接続

直接 HDD をパススルー接続

パススルー接続を行うには、Hyper-V ホストでオフラインにする

Page 36: トラブルから理解するHyper vの基礎

#08 VM が突然消えた・・・

仮想マシンを起動または作成しようとすると、仮想マシンが見つからないか、エラー 0x800704C8、0x80070037、または0x800703E3 が表示される

Page 37: トラブルから理解するHyper vの基礎

原因と対策

一部のマルウェア対策ソフトウェアによっては、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とそのすべてのサブディレクトリ)

Page 38: トラブルから理解するHyper vの基礎

#09 リモート接続後にホストが不安定

クライアントからリモート接続を行い、Hyper-V ホストに接続したら不安定になった

Page 39: トラブルから理解するHyper vの基礎

原因と対策

RDP のプリンタマッピングにより、ホストが不安定になることがあるのでホスト上で無効化する

最適な方法としては、任意のOU にHyper-V ホストをいれこみ、GPOで制御する

[コンピュータの構成] > [ポリシー] > [管理用テンプレート] > [Windowsコンポーネント] > [リモートデスクトップサービス] > [リモートデスクトップセッションホスト] > [プリンタのリダイレクト] >[クライアントプリンターのリダイレクトを許可しない] 設定を有効にする

Page 40: トラブルから理解するHyper vの基礎

Part4 HYPER-V PERFORMANCE

Page 41: トラブルから理解するHyper vの基礎

#10 Disk 交換したら VM が遅くなった

Windows Server 2008 R2 の Hyper-V をしており、今後 Windows Server 2012 のHyper-V に移行する予定

前段階として、圧迫している Disk の変更を行ったらパフォーマンスの劣化が見られた

そもそも VM が起動しない・・・

Page 42: トラブルから理解するHyper vの基礎

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

Page 43: トラブルから理解するHyper vの基礎

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

Page 44: トラブルから理解するHyper vの基礎

VHD と VHDX

VHD 以前のバージョンから使用されている仮

想ディスクフォーマット形式

2 T バイトまで対応

VHDX Windows Server 2012 より採用された新

しい仮想ディスクフォーマット形式

64 T バイトまで対応

4Kbytesセクタ(AFT)のサポート

内部データ構造を4Kbytes境界に配置することにより、AFT形式のディスクでのパフォーマンス低下を抑止

Page 45: トラブルから理解するHyper vの基礎

原因と対策

新規ディスクが AFT ディスクだったのでOS レベルでは対応していても、VHD が対応していないのでパフォーマンスの劣化が起こった(KB2515143)

KB では約 30 % の劣化が起こると記載

VM が起動しないのは、4K ネイティブのディスクだったため

Windows Server 2012 の Hyper-V を使用し、VHD から VHDX への変換を行う

Page 46: トラブルから理解するHyper vの基礎

Part5 SUMMARY

Page 47: トラブルから理解するHyper vの基礎

他のベストプラクティス

Hyper-V の役割以外の役割をインストールしない。

唯一の例外として VDI をホストしている場合はリモートデスクトップサービスの役割をインストールする

Hyper-V ホストにインストールする必要があるものは次のものが考えられる

フェールオーバークラスター:クラスターノードの場合

MPIO:iSCSI or FC で接続されている場合

リモートデスクトップサービス:VDI が使用される場合

仮想ハードディスク(VHD/VHDX)はシステムドライブ以外に作成する

これにより、Hyper-V ホストのディスクスペース不足のリスクを減らすことができる

Hyper-V ホストは、可能な限りドメインに参加させる

ID管理やセキュリティ、監査などの一元管理ができる

Page 48: トラブルから理解するHyper vの基礎

まとめ

Hyper-V が登場してから 5 年が経過し、その進化は止まりません。

Windows Server 2012 では Windows Server 2008 R2 の Hyper-V では推奨だったものが変更されたものもあるので、注意が必要です。

Windows Server 2012 R2 では Hyper-V 関連のアップデートが多数ありますので、まずは基本を押さえてから、キャッチアップしましょう。

Page 49: トラブルから理解するHyper vの基礎

Q&A

ご清聴ありがとうございました