GNU/Linux >> Linux の 問題 >  >> Linux

LinuxのKVMでネストされた仮想化を有効にする方法

このガイドでは、 KVMでネストされた仮想化を有効にする方法を説明します。 Linuxでは。 ネストされた仮想化 は、ホストシステムからのハードウェアアクセラレーションを使用しながら、別の仮想マシン内で仮想マシンを実行できるようにする機能です。つまり、ネストされた仮想化は、仮想マシン(VM)内でハイパーバイザーを実行するメカニズムであり、仮想マシン自体はハイパーバイザー上で実行されます。

LinuxのKVMでネストされた仮想化を有効にする

ネストされたVT機能を有効にする前に、実行中のすべてのVMの電源を切ります。

次に、KVMモジュールをアンロードします。

INTELでKVMモジュールをアンロードするには システム、実行:

$ sudo modprobe -r kvm_intel

AMD システム:

$ sudo modprobe -r kvm_amd

次のコマンドを使用して、INTELCPUでネストされた機能を有効にしてKVMモジュールをリロードします。

$ sudo modprobe kvm_intel nested=1

次のコマンドを使用して、AMDCPUでネストされた機能を有効にしてKVMモジュールをリロードします。

$ sudo modprobe kvm_amd nested=1

ネストされた仮想化を永続的に有効にする

ネストされたVT機能は、KVMホストシステムを再起動するまでのみ有効になることに注意してください。ネストされた機能を永続的に有効にするには、 /etc/modprobe.d/kvm.confを編集します ファイル:

$ sudo vi /etc/modprobe.d/kvm.conf

ファイルが存在しない場合は、作成するだけです。

INTELに次の行を追加します ホスト:

options kvm_intel nested=1

AMDに次の行を追加します ホスト:

options kvm_amd nested=1

ファイルを保存して閉じます。

終わり! KVMホストシステムでネストされたVTを有効にしました。

KVMホストでネストされた仮想化が有効になっているかどうかを確認します

プロセッサがINTELの場合は、 "/ sys / module / kvm_intel / parameters / nested"を確認してください。 「cat」コマンドを使用したファイル:

$ cat /sys/module/kvm_intel/parameters/nested

Linuxでネストされた仮想化がサポートされているかどうかを確認する

"Y"を返す場合 または"1" 、これは、システムがネストされた仮想化をサポートしていることを意味します。出力が"N"の場合 または"0" 、システムはネストされた仮想化をサポートしません。

プロセッサがAMDの場合は、 "/ sys / module / kvm_amd / parameters / nested"の内容を確認してください。 ファイル。

または、次のコマンドを使用して、「kvm_intel」カーネルモジュールでネストが有効になっていることを確認できます。

$ modinfo kvm_intel | grep -i nested

出力例:

parm:           nested_early_check:bool
parm:           nested:bool

AMD CPUの場合:

$ modinfo kvm_amd | grep -i nested

私のKVMホストはネストされた仮想化をサポートしており、すでに有効になっています。

KVMゲストマシンでネストされた仮想化を有効にする

コマンドラインから、または Virt-manager などのグラフィカルKVM管理アプリケーションを使用して、KVMVMでネストされた機能を有効にできます。 。

コマンドラインからKVMゲストのネストされた機能を有効にする

virshコンソールにログインします:

$ virsh

ネストされた機能を有効にするVMを編集します:

virsh # edit centos

使用可能なすべてのVMを見つけるには、virshコンソール内で次のコマンドを実行します。

virsh # list --all

「cpumode」パラメータを見つけて、その値を「host-model」として設定します。

<cpu mode='host-model' check='partial'/>

virshコマンドを使用してKVMゲストでネストされた機能を有効にする

ファイルを保存して閉じます。

VMを起動します:

virsh # start centos8

ネストされた機能がVMで有効になっているかどうかを確認します:

virsh # dumpxml centos8

「CPUモード」ディレクティブの下に必要なすべての機能ポリシーが更新されていることを確認してください。

<cpu mode='custom' match='exact' check='full'>
    <model fallback='forbid'>SandyBridge-IBRS</model>
    <vendor>Intel</vendor>
    <feature policy='require' name='vme'/>
    <feature policy='require' name='vmx'/>
    <feature policy='require' name='pcid'/>
    <feature policy='require' name='hypervisor'/>
    <feature policy='require' name='arat'/>
    <feature policy='require' name='tsc_adjust'/>
    <feature policy='require' name='umip'/>
    <feature policy='require' name='md-clear'/>
    <feature policy='require' name='stibp'/>
    <feature policy='require' name='arch-capabilities'/>
    <feature policy='require' name='ssbd'/>
    <feature policy='require' name='xsaveopt'/>
    <feature policy='require' name='ibpb'/>
    <feature policy='require' name='amd-ssbd'/>
    <feature policy='require' name='skip-l1dfl-vmentry'/>
    <feature policy='disable' name='aes'/>
  </cpu>

ネストされた仮想化機能がCentOS8VMで有効になっています。

Virt-managerを使用してKVMゲストでネストされた機能を有効にする

Virt-manager GUIアプリケーションを開き、ネストされたVT機能を有効にするKVMゲストをダブルクリックします。 [仮想ハードウェアの詳細を表示]ボタンをクリックして、左側のメニューの[CPU]セクションに移動します。

「ホストCPU構成のコピー」を選択します CPU構成ウィンドウのチェックボックスをオンにして、「適用」をクリックします。

VIrt-managerでネストされた仮想化を構成する

これで、物理ホストのCPUモデルと構成がVMに適用されます。

KVMゲストが仮想化をサポートしているかどうかを確認します

ネストされた機能を有効にしたKVMゲストマシンの電源を入れてログインします。

KVMゲストのターミナルで次のコマンドを実行して、仮想化が有効になっているかどうかを確認します。

# egrep --color -i "svm|vmx" /proc/cpuinfo

出力例:

KVMゲストがLinuxの仮想化テクノロジーをサポートしているかどうかを確認する

「vmx」が表示された場合 (Intel-VTテクノロジー)または「svm」 (AMD-Vサポート)出力では、KVMゲストマシンはハイパーバイザーおよびホストVMとして機能できます。上記の出力からわかるように、私のCentOS 8KVMVMは仮想化をサポートしています。

LinuxシステムがVTをサポートしているかどうかを確認するその他の方法については、次のガイドを確認してください。

  • CPUが仮想化テクノロジー(VT)をサポートしているかどうかを確認する方法

関連記事:

  • VirtualBoxでネストされた仮想化を有効にする方法

Linux
  1. RedhatLinuxで仮想化を構成する方法

  2. LinuxでのIP転送とは何ですか? IP転送を有効にする方法は?

  3. Azure Linux VM で Ping を有効にする方法

  1. 仮想化 Linux サーバーのインストール方法

  2. Linux で md5 ハッシュを有効にする方法

  3. Linux スワップ パーティションを有効にするにはどうすればよいですか?

  1. LinuxでIP転送を有効にする方法

  2. Rocky Linux 8でPowerToolsリポジトリを有効にする-その方法は?

  3. Linux で libass を有効にするには?