HYPER-V で Linux を実行するためのベスト プラクティス

 

適用対象: Hyper-V Server 2012,Windows 8.1,Windows Server 2008 R2,Windows Server 2012 R2,Microsoft Hyper-V Server Technical Preview,Windows Server 2012,Hyper-V Server 2012 R2,Windows 10 Technical Preview,Windows Server Technical Preview,Windows 8

このドキュメントには、HYPER-V で Linux 仮想マシンを実行するための推奨事項の一覧が含まれています。

動的な VHDX ファイル上の Linux ファイル システムのチューニング

一部の Linux ファイル システムは、ファイル システムが空ではほとんどの場合でも、非常に多くの実際のディスク領域を消費することがします。 動的の VHDX ファイルの実際のディスク領域の使用量を減らすためには、次の推奨事項を考慮してください。

  • を、VHDX を作成する場合、たとえば PowerShell では、(既定値は 32 MB である) から 1 MB の BlockSizeBytes を使用します。

    PS > New-VHD –Path C:\MyVHDs\test.vhdx –SizeBytes 127GB –Dynamic –BlockSizeBytes 1MB
    
  • Ext4 形式は ext4 ext3 動的の VHDX ファイルを使用するとより効率的な多くの領域である ext3 をお勧めです。

  • ときに、ファイル システムを作成するには、4096、たとえばするグループの数を指定します。

    # mkfs.ext4 –G 4096 /dev/sdX1 
    

第 2 世代仮想マシンの grub] メニューの [タイムアウト

レガシ ハードウェア エミュレーションでは、第 2 世代仮想マシンから削除されるため grub] メニューのカウント ダウン タイマーをカウントが早すぎる grub メニューを表示するには、すぐに、既定のエントリを読み込みします。 Grub が固定されて EFI でサポートされているタイマーを使用するまでの変更**/boot/grub/grub.conf**、/etc/default/grub、またはして、それと同等"タイムアウト = 100000"、既定ではなく"timeout = 5" です。

第 2 世代仮想マシン上の PxE ブート

PIT タイマーがジェネレーション 2 仮想マシン内に存在しないので、PxE TFTP サーバーへのネットワーク接続が途中で終了することができ、Grub の構成を読み取り、サーバーから、カーネルの読み込みとブートローダーを防ぐためです。

RHEL 6.x、ここで説明した、grub2 ではなく、レガシ grub v0.97 EFI ブート ローダーを使用できます https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-netboot-pxe-config-efi.html

RHEL 以外の Linux ディストリビューションで 6.x、同様の手順の後に、PxE サーバーからの Linux カーネルを読み込む grub v0.97 を構成することができます。

さらに、RHEL/CentOS 6.6 キーボードとマウスの入力では動作しません防ぐことが、インストール前のカーネル、メニューでのインストール オプションを指定します。 シリアル コンソールは、インストール オプションを選択できるようにするように構成する必要があります。

  • Efidefault 、PxE サーバー上のファイルに追加し、次のカーネル パラメーター “console=ttyS1”

  • HYPER-V での仮想マシン上には、次の PowerShell コマンドレットを使用して、COM ポートをセットアップします。

    Set-VMComPort –VMName <Name> -Number 2 –Path \\.\pipe\dbg1
    

インストールする前のカーネルにこれらのファイルを指定すると、キーボードとマウスのインストール中に入力の必要性はまたしないでください。

フェールオーバー クラスタ リングでは、静的 MAC アドレスを使用します。

各仮想ネットワーク アダプターには、静的メディア アクセス制御 (MAC) アドレスでは、フェールオーバー クラスタ リングを使用して展開される Linux 仮想マシンを構成する必要があります。 Linux のいくつかのバージョンでは、ネットワークの構成失われるフェールオーバー後に新しい MAC アドレスが仮想ネットワーク アダプターに割り当てられているためです。 ネットワークの構成を失うことを回避するのには、各仮想ネットワーク アダプターに静的 MAC アドレスがあることを確認します。 MAC アドレスを構成するには、HYPER-V マネージャーまたはフェールオーバー クラスター マネージャーで仮想マシンの設定を編集します。

レガシ ネットワーク アダプターではなく、ハイパースレッディング固有のネットワーク アダプターを使用します。

構成し、パフォーマンスが向上したハイパースレッディング固有のネットワーク カードには、仮想のイーサネット アダプターを使用します。 レガシとハイパー固有のネットワーク アダプターの両方が仮想マシンに関連付けられている場合、ネットワーク名の出力ifconfig –aなどランダムな値を表示することがあります**_tmp12000801310**です。 この問題を回避するには、Linux 仮想マシンでハイパースレッディング固有のネットワーク アダプターを使用する場合、すべてのレガシ ネットワーク アダプターを削除します。

ディスク I/O パフォーマンスの向上には、I/O スケジューラ noop になりますを使用します。

Linux カーネルは、さまざまなアルゴリズムを要求の順序を変更する次の 4 つの異なる I/O スケジューラがします。 何もしませんは、ハイパーバイザーが行うスケジュールの意思決定を通過する先入れ先出しキューです。 HYPER-V 上の Linux 仮想マシンを実行している場合は、スケジューラとして何もしませんを使用することをお勧めします。 ブート ローダーの構成では、特定のデバイスのスケジューラを変更する (または etc/grub.conf の例については、)、追加elevator=noopカーネル パラメーターの場合は、および再起動にします。

追加"numa = オフ"Linux 仮想マシンに 8 以上の仮想プロセッサまたは複数の 30 GB の RAM がある場合。

複数の 7 個の仮想プロセッサを使用するように構成する Linux 仮想マシンを追加する必要がありますnuma=off2.6.x の Linux カーネルの既知の問題を回避するために GRUB boot.cfg にします。 Linux 仮想マシンが 30 以上を使用するように構成 GB の RAM を追加する必要がありますもnuma=offGRUB boot.cfg にします。

Kdump のより多くのメモリを予約します。

ダンプのキャプチャのカーネルは起動時にパニック状態で終了、場合に、カーネルの多くのメモリを予約します。 たとえば、パラメーターを変更crashkernel=384M-:128Mcrashkernel=384M-:256MUbuntu grub の構成ファイルにします。

縮小または VHD ファイルを展開するが GPT パーティション テーブルのエラーがあります。

HYPER-V では、すべてのパーティション、ボリューム、またはディスクに存在するファイル システムのデータ構造に関係なく、仮想ディスク (VHD) ファイルの圧縮できます。 VHD の終了になるパーティションの終了前に、VHD を圧縮する場合は、データが失われる、パーティションが壊れているか、または無効なデータをなります返されることが、パーティションは読み取りします。

VHD のサイズを変更すた後には、管理者は、fdisk などのユーティリティを使用する必要があります。 または、パーティション、ボリューム、およびディスクのサイズの変更を反映するようにファイル システムの構造を更新するためです。 圧縮またはを GUID パーティション テーブル (GPT) を持つ VHD のサイズを拡張すると、警告、パーティションの管理ツールを使用して、パーティションのレイアウトをチェックすると、管理者は、最初とセカンダリの GPT ヘッダーを修正する警告が表示されます。 この手順を手動では、データ損失なしで実行しても安全です。

関連項目