在 Centos7 的KVM上啓用嵌套虛擬化

嵌套虛擬化意味着在虛擬機內配置虛擬化環境。換句話說,咱們能夠說嵌套虛擬化是虛擬機管理程序hypervisor的一個特性,它容許咱們經過虛擬化管理程序(宿主機)的硬件加速在虛擬服務器內安裝和運行虛擬機。html

在這篇文章中,咱們將討論如何在 CentOS 7 / RHEL 7 的 KVM 上啓用嵌套虛擬化。我假定您已經配置過 KVM 管理程序。若是您不熟悉如何安裝和配置 KVM 管理程序,請參考如下文章。linux

在 CentOS 7.x 和 RHEL 7.x 安裝 KVM 管理程序git

讓咱們進入虛擬化管理程序,驗證您的 KVM 宿主機是否啓用了嵌套虛擬化。github

基於 Intel 的處理器運行如下命令:centos

[root@kvm-hypervisor ~]# cat /sys/module/kvm_intel/parameters/nested
N

基於 AMD 的處理器運行如下命令:api

[root@kvm-hypervisor ~]# cat /sys/module/kvm_amd/parameters/nested
N

上述命令輸出 N 表示嵌套虛擬化是禁用的。若是咱們獲得的輸出是 Y 則表示在您的宿主機已啓用嵌套虛擬化。服務器

如今啓用嵌套虛擬化,使用如下內容建立一個文件名爲 /etc/modprobe.d/kvm-nested.conf 的文件:dom

[root@kvm-hypervisor ~]# vi /etc/modprobe.d/kvm-nested.conf
options kvm-intel nested=1
options kvm-intel enable_shadow_vmcs=1
options kvm-intel enable_apicv=1
options kvm-intel ept=1

保存並退出文件。ssh

如今移除 kvm_intel 模塊而後經過 modprobe 命令添加一樣的模塊。在移除模塊以前,確保虛擬機已關機,不然咱們會獲得像 「modprobe: FATAL: Module kvm_intel is in use」 這樣的錯誤信息。測試

[root@kvm-hypervisor ~]# modprobe -r kvm_intel
[root@kvm-hypervisor ~]# modprobe -a kvm_intel

如今驗證嵌套虛擬化功能是否啓用。

[root@kvm-hypervisor ~]# cat /sys/module/kvm_intel/parameters/nested
Y

測試嵌套虛擬化

假設咱們在 KVM 管理程序上有一臺已經啓用了嵌套虛擬化的名爲 「director」 的虛擬機。在測試以前,確保 CPU 模式爲 「host-modle」 或 「host-passthrough」 ,使用 Virt-Manager 或 virtsh 編輯命令檢查虛擬機的 CPU 模式。

cpu_mode_vm_kvm

如今登陸 director 這臺虛擬機並運行 lscpu 和 lsmod 命令。

[root@kvm-hypervisor ~]# ssh 192.168.126.1 -l root
root@192.168.126.1's password:
Last login: Sun Dec 10 07:05:59 2017 from 192.168.126.254
[root@director ~]# lsmod | grep kvm
kvm_intel             170200  0
kvm                   566604  1 kvm_intel
irqbypass              13503  1 kvm
[root@director ~]# lscpu

lscpu_command_rhel7_centos7

讓咱們試着在 director 這臺虛擬機的虛擬管理器 GUI 或 virt-install 命令建立一臺虛擬機,在個人狀況下我使用 virt-install 命令。

[root@director ~]# virt-install  -n Nested-VM  --description "Test Nested VM"  --os-type=Linux  --os-variant=rhel7  --ram=2048  --vcpus=2  --disk path=/var/lib/libvirt/images/nestedvm.img,bus=virtio,size=10  --graphics none  --location /var/lib/libvirt/images/CentOS-7-x86_64-DVD-1511.iso --extra-args console=ttyS0
Starting install...
Retrieving file .treeinfo...                                                   | 1.1 kB  00:00:00
Retrieving file vmlinuz...                                                     | 4.9 MB  00:00:00
Retrieving file initrd.img...                                                  |  37 MB  00:00:00
Allocating 'nestedvm.img'                                                      |  10 GB  00:00:00
Connected to domain Nested-VM
Escape character is ^]
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015
………………………………………………

cli-installer-virt-install-command-kvm

這證明了嵌套虛擬化已成功啓用,由於咱們能在虛擬機內建立虛擬機。

via: https://www.linuxtechi.com/enable-nested-virtualization-kvm-centos-7-rhel-7/

做者:Pradeep Kumar[1] 譯者:zjon[2] 校對:wxy[3]

本文由 LCTT[4] 原創編譯,Linux中國[5] 榮譽推出

本文地址:http://www.linuxprobe.com/centos7-kvm-nested-virtualization.html編輯:逄增寶,審覈員:劉遄

相關文章
相關標籤/搜索