首頁 > 系統教程 > Linux > 主體

在 Centos7 的KVM上啟用巢狀虛擬化

WBOY
發布: 2024-03-30 17:21:36
轉載
397 人瀏覽過

巢狀虛擬化意味著在虛擬機器內配置虛擬化環境。換句話說,我們可以說嵌套虛擬化是虛擬機管理程式hypervisor的特性,它允許我們透過虛擬化管理程式(宿主機)的硬體加速在虛擬伺服器內安裝和運行虛擬機器。

在這篇文章中,我們將討論如何在 CentOS 7 / RHEL 7 的 KVM 上啟用巢狀虛擬化。我假定您已經配置過 KVM 管理程式。如果您不熟悉如何安裝和設定 KVM 管理程序,請參考以下文章。

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

#讓我們進入虛擬化管理程序,驗證您的 KVM 宿主機是否啟用了巢狀虛擬化。

基於 Intel 的處理器執行以下命令:

[root@kvm-hypervisor ~]# cat /sys/module/kvm_intel/parameters/nested
N
登入後複製

基於 AMD 的處理器執行以下命令:

[root@kvm-hypervisor ~]# cat /sys/module/kvm_amd/parameters/nested
N
登入後複製

上述指令輸出 N 表示巢狀虛擬化是已停用的。如果我們得到的輸出是 Y 則表示在您的宿主機器已啟用嵌套虛擬化。

現在啟用巢狀虛擬化,使用以下內容建立一個檔案名稱 /etc/modprobe.d/kvm-nested.conf 的檔案:

[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
登入後複製

儲存並退出檔案。

現在移除 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 模式。

在 Centos7 的KVM上启用嵌套虚拟化

#cpu_mode_vm_kvm

現在登入 director 這台虛擬機器並執行 lscpulsmod 指令。

[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
登入後複製

在 Centos7 的KVM上启用嵌套虚拟化

#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
………………………………………………
登入後複製

在 Centos7 的KVM上启用嵌套虚拟化

#cli-installer-virt-install-command-kvm

這證實了巢狀虛擬化已成功啟用,因為我們能在虛擬機器內建立虛擬機器。


以上是在 Centos7 的KVM上啟用巢狀虛擬化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:linuxprobe.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!