Centos7安装kvm服务器
- 什么是kvm
- virt-manager及相关软件简介
- virt-manger架构及原理
- KVM
- QEMU
- Libvirt
- 检查硬件是否支持kvm虚拟化
- 启用嵌套虚拟化(可选)
- 检查是否启用嵌套虚拟化
- 热生效嵌套虚拟化(临时启用)
- 重新加载模块并验证
- 永久启用嵌套虚拟化功能
- 虚拟机硬件直通
- 虚拟机内查看嵌套虚拟化是否成功
- 安装kvm服务器
-
- 关闭防火墙和SELinux
- 配置开机自动加载内核
- 启动libvirt服务
- 查看是否正确设置了虚拟化
- 设置kvm命令软链接(可选)
- 查看kvm版本
- 查看kvm模块
- 创建桥接网卡
- KVM常用目录
- libvirtd远程管理
什么是kvm
参考: RHEL7部署虚拟化服务器
https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/part-deployment
KVM
是kernel based virtual machine
;
意思是基于内核的虚拟机
virt-manager及相关软件简介
virt-manager 是虚拟机管理器(Virtual Machine Manager)应用程序的缩写,也是管理工具的软件包名称。是用于管理虚拟机的图形化的桌面用户接口。其工作流程依赖 libvirt 的 API 实现,能够提供诸如虚拟机生命周期管理,虚拟机CPU,内存,磁盘,网卡,显卡,终端等虚拟资源的管理功能。virsh 是用于管理虚拟化环境中的客户机和 Hypervisor 的命令行工具,与virt-manager 等工具类似,它也是通过 libvirt API 来实现虚拟化的管理。virsh是完全在命令行文本模式下运行的用户态工具,它是系统管理员通过脚本程序实现虚拟化自动部署和管理的理想工具。
virt-manger架构及原理
virt-manager 架构如下图所示:
KVM
KVM(Kernel-based Virtual Machine, 即内核级虚拟机) 是一个开源的系统虚拟化模块。它使用 Linux 自身的调度器进行管理,KVM 目前已成为学术界的主流 VMM 之一。 它包含一个为处理器提供底层虚拟化可加载的核心模块kvm.ko。kvm 还需要一个经过修改的 QEMU 软件(qemu-kvm),作为虚拟机上层控制和界面。 KVM 的虚拟化需要硬件支持。是基于硬件的完全虚拟化。通过使用 KVM,可以运行多个其本身运行未改动的镜像的虚拟机。
QEMU
QEMU 是个独立的虚拟化解决方案,从这个角度它并不依赖KVM。而KVM是另一套虚拟化解决方案,不过因为这个方案实际上只实现了内核中对处理器虚拟化特性的支持,换言之,它缺乏设备虚拟化以及相应的用户空间管理虚拟机的工具,所以它借用了 QEMU 的代码并加以精简,连同KVM一起构成了另一个独立的虚拟化解决方案,KVM+QEMU。
Libvirt
libvirt 是对虚拟机进行管理的工具和应用程序接口(API),提供如下功能:
- 1,它提供统一、稳定、开放的源代码的应用程序接口(API)、守护进程(libvirtd)和和一个默认命令行管理工具(virsh)。
- 2,它提供了对虚拟化客户机和它的虚拟化设备、网络和存储的管理。
- 3,它提供了一套较为稳定的 C 语言应用程序接口。目前,在其他一些流行的编程语言中也提供了对 libvirt 的绑定,在 Python、Perl、Java、Ruby、PHP、OCaml 等高级编程语言中已经有 libvirt 的程序库可以直接使用。
- 4,它对多种不同的 Hypervisor 的支持是通过一种基于驱动程序的架构来实现的。libvirt 对不同的 Hypervisor 提供了不同的驱动,包括Xen 的驱动,对QEMU/KVM 有 QEMU 驱动,VMware 驱动等。
- 5,它作为中间适配层,让底层 Hypervisor 对上层用户空间的管理工具是可以做到完全透明的,因为 libvirt 屏蔽了底层各种 Hypervisor 的细节,为上层管理工具提供了一个统一的、较稳定的接口(API)。
检查硬件是否支持kvm虚拟化
https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-system_requirements-kvm_requirements
egrep -c "vmx|svm" /proc/cpuinfo
启用嵌套虚拟化(可选)
参考:RHEL7启用嵌套虚拟化
检查是否启用嵌套虚拟化
grep -m 1 'model name' /proc/cpuinfo
cat /sys/module/kvm_intel/parameters/nested
cat /sys/module/kvm_intel/parameters/nested
cat /sys/module/kvm_amd/parameters/nested
0
或N
禁用虚拟化嵌套,1
或Y
开启嵌套虚拟化
热生效嵌套虚拟化(临时启用)
该方法是临时启用,重启后失效
。
0
或N
禁用虚拟化嵌套,1
或Y
开启嵌套虚拟化
echo "
# intel_CPU临时开启嵌套虚拟化
Y " > /sys/module/kvm_intel/parameters/nested
echo "
# AMD_CPU临时开启嵌套虚拟化
Y " > /sys/module/kvm_amd/parameters/nested
重新加载模块并验证
modprobe -r kvm_intel
modprobe -r kvm_amd
modprobe kvm_intel nested=1
modprobe kvm_amd nested=1
cat /sys/module/kvm_intel/parameters/nested
永久启用嵌套虚拟化功能
vim /etc/modprobe.d/kvm-nested.conf
options kvm_intel nested=1
options kvm_amd nested=1
虚拟机硬件直通
host-passthrough
直接将物理CPU
暴露给虚拟机
使用,在虚拟机
上完全可以看到的就是物理CPU
的型号.
这种方式是CPU性能最好
的,也可以适用于有些应用检查CPU某些特性;但是虚拟机不能迁移到不同型号的CPU上
;
virsh edit Vm-Name
将文件中的 custom
改为 host-passthrough
<cpu mode='host-passthrough'/>
虚拟机内查看嵌套虚拟化是否成功
reboot
lsmod | grep kvm
grep vmx /proc/cpuinfo
安装kvm服务器
参考: RHEL7安装虚拟化软件包组
libvirt
的作用:虚拟机的管理软件
virt-install
的作用: 虚拟机实例安装工具
virt-clone
的作用:虚拟机克隆工具
qemu-kvm
的作用: 虚拟机磁盘工具
acpid
服务的作用:通过这个服务来执行电源关闭的动作
yum install -y libvirt virt-install qemu-kvm qemu-kvm-tools
yum install -y acpid
yum install -y virt-top
安装kvm的所有包(不推荐)
有些包一时半会用不上。
yum install virt* -y
yum –y install qemu-kvm qemu-kvm-tools libguestfs libguestfs-tools libvirt virt-install bridge-utils virt-viewer virt-top virt-v2v acpid
关闭防火墙和SELinux
systemctl disable --now firewalld
systemctl mask firewalld
setenforce 0
sed -ri 's#(SELINUX=).*#\1disabled#' /etc/selinux/config
grep 'SELINUX=' /etc/selinux/config
配置开机自动加载内核
https://blog.csdn.net/omaidb/article/details/122718636
echo virtio-net >/etc/modules-load.d/virtio-net.conf
启动libvirt服务
libvirtd
服务启动会设置net.ipv4.ip_forward =1
systemctl enable --now libvirtd
systemctl enable --now acpid.service
查看是否正确设置了虚拟化
virsh capabilities
virt-host-validate
设置kvm命令软链接(可选)
新版本已经自动将qemu-kvm
安装到/usr/bin/
目录下
ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
查看kvm版本
https://www.onitroad.com/jc/linux/how-to-check-kvm-qemu-kvm-version-in-linux.html
yum info qemu-kvm
qemu-kvm -version
查看kvm模块
lsmod | grep kvm
创建桥接网卡
KVM服务器
装好后默认是NAT模式
,想要指定虚拟机网卡为桥接模式
,需要先创建桥接网卡
.
https://blog.csdn.net/omaidb/article/details/128792834
KVM常用目录
https://blog.csdn.net/nb_zsy/article/details/107674063
/etc/libvirt/storage/*.xml
KVM中Storage Pool
的定义文件/var/lib/libvirt/images
KVM默认查找镜像的地方/var/lib/libvirt/images/
KVM将宿主机的该目录
作为默认的Storage Pool
/etc/libvirt/libvirtd.conf
libvirtd
配置文件/etc/libvirt/qemu.conf
qemu
配置文件
libvirtd远程管理
https://cloud.tencent.com/developer/article/2168916
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)