6 安装虚拟化组件 #
6.1 简介 #
要运行可托管一个或多个 Guest 系统 (VM Guest) 的虚拟化服务器(VM 主机服务器),需要在该服务器上安装所需的虚拟化组件。这些组件根据您要使用的虚拟化技术而异。
6.2 安装虚拟化组件 #
可通过以下方式之一安装运行 VM 主机服务器所需的虚拟化工具:
- 在 VM 主机服务器上安装 SUSE Linux Enterprise Server 期间选择特定的系统角色 
- 在已安装并正在运行的 SUSE Linux Enterprise Server 上运行 YaST 虚拟化模块。 
- 在已安装并正在运行的 SUSE Linux Enterprise Server 上安装特定的安装软件集。 
6.2.1 指定系统角色 #
您可以在 VM 主机服务器上安装 SUSE Linux Enterprise Server 期间安装虚拟化所需的所有工具。在安装期间,您会看到屏幕。
在此屏幕中,可以选择 或 角色。在安装 SUSE Linux Enterprise Server 的过程中,系统会自动执行相应软件的选择和设置。
          这两个虚拟化系统角色都会创建专用的 /var/lib/libvirt 分区,并启用 firewalld 和 Kdump 服务。
        
6.2.2 运行 YaST 虚拟化模块 #
您的系统上可能未安装任何虚拟化工具,具体取决于 VM 主机服务器上的 SUSE Linux Enterprise Server 安装范围。使用 YaST 虚拟化模块配置超级管理程序时,系统会自动安装虚拟化工具。
YaST 虚拟化模块包含在 yast2-vm 软件包中。在安装虚拟化组件之前,请校验是否在 VM 主机服务器上安装了该模块。
要安装 KVM 虚拟化环境和相关工具,请执行以下操作:
- 启动 YaST 并选择 › 。 
- 选择 以安装极简的 QEMU 和 KVM 环境。同时请选择 以使用基于 - libvirt的管理堆栈。单击确认。
- YaST 会建议自动在 VM 主机服务器上配置网桥。这可以确保 VM Guest 获得正常的网络功能。如果您同意执行此操作,请选择,否则请选择。 
- 安装完成后,您可以开始创建并配置 VM Guest。不需要重引导 VM 主机服务器。 
要安装 Xen 虚拟化环境,请执行以下操作:
- 启动 YaST 并选择 › 。 
- 选择 以安装极简的 Xen 环境。同时请选择 以使用基于 - libvirt的管理堆栈。单击确认。
- YaST 会建议自动在 VM 主机服务器上配置网桥。这可以确保 VM Guest 获得正常的网络功能。如果您同意执行此操作,请选择,否则请选择。 
- 安装完成后,您需使用 Xen 内核重引导计算机。 提示:默认引导内核- 如果一切按预期进行,请使用 YaST 更改默认引导内核,并将支持 Xen 的内核设置为默认内核。有关更改默认内核的详细信息,请参见第 18.3 节 “使用 YaST 配置引导加载程序”。 
6.2.3 安装特定的安装软件集 #
SUSE Linux Enterprise Server 软件储存库中的相关软件包已组织成安装软件集。您可以使用这些软件集在已运行的 SUSE Linux Enterprise Server 上安装特定的虚拟化组件。使用 zypper 安装这些组件:
      
zypper install -t pattern PATTERN_NAME
要安装 KVM 环境,请考虑使用以下软件集:
- kvm_server
- 安装带有 KVM 和 QEMU 环境的基本 VM 主机服务器。 
- kvm_tools
- 安装用于在 KVM 环境中管理和监控 VM Guest 的 - libvirt工具。
要安装 Xen 环境,请考虑使用以下软件集:
- xen_server
- 安装基本的 Xen VM 主机服务器。 
- xen_tools
- 安装用于在 Xen 环境中管理和监控 VM Guest 的 - libvirt工具。
6.3 在 KVM 中启用嵌套虚拟化 #
KVM 的嵌套式虚拟化仍为技术预览版。此版本是出于测试目的提供的,我们不提供相关支持。
嵌套式 Guest 是 KVM Guest 中运行的 KVM Guest。在描述嵌套式 Guest 时,我们会用到以下虚拟化层:
- L0
- 运行 KVM 的裸机主机。 
- L1
- 在 L0 上运行的虚拟机。由于它可以在另一个 KVM 上运行,因此称为 Guest 超级管理程序。 
- L2
- 在 L1 上运行的虚拟机。称为嵌套式 Guest。 
嵌套式虚拟化具有诸多优势。它可在以下场景中为您提供便利:
- 在云环境中直接使用所选的超级管理程序管理您自己的虚拟机。 
- 将超级管理程序及其 Guest 虚拟机作为单个实体进行实时迁移。 注意- 不支持实时迁移嵌套的 VM Guest。 
- 使用嵌套式虚拟化进行软件开发和测试。 
      要暂时启用嵌套功能,请去除该模块,然后使用 nested KVM 模块参数重新加载该模块:
    
- 对于 Intel CPU,请运行: - >- sudomodprobe -r kvm_intel && modprobe kvm_intel nested=1
- 对于 AMD CPU,请运行: - >- sudomodprobe -r kvm_amd && modprobe kvm_amd nested=1
      要永久启用嵌套功能,请根据您的 CPU,在 /etc/modprobe.d/kvm_*.conf 文件中启用 nested KVM 模块参数:
    
- 对于 Intel CPU,请编辑 - /etc/modprobe.d/kvm_intel.conf,在其中添加下面一行:- options kvm_intel nested=1 
- 对于 AMD CPU,请编辑 - /etc/modprobe.d/kvm_amd.conf,在其中添加下面一行:- options kvm_amd nested=1 
如果 L0 主机能够嵌套,则您可以通过以下方式之一启动 L1 Guest:
- 使用 - -cpu hostQEMU 命令行选项。
- 将 - vmx(对于 Intel CPU)或- svm(对于 AMD CPU)CPU 功能添加到- -cpuQEMU 命令行选项,用于启用虚拟 CPU 的虚拟化。
6.3.1 VMware ESX 用作 Guest 超级管理程序 #
如果您在 KVM 裸机超级管理程序之上使用 VMware ESX 作为 Guest 超级管理程序,网络通讯可能会变得不稳定。嵌套的 KVM Guest 与 KVM 裸机超级管理程序或外部网络之间特别容易发生这种问题。嵌套 KVM Guest 的以下默认 CPU 配置会导致该问题:
<cpu mode='host-model' check='partial'/>
要解决问题,请如下所示修改 CPU 配置:
[...] <cpu mode='host-passthrough' check='none'> <cache mode='passthrough'/> </cpu> [...]
