安装KVM
- KVM为内核自身的功能,只需CPU支持虚拟化,并且在宿主机安装一些相关的管理工具即可
前期准备
- 注意:如果是在Windows中的Wmware Workstation模拟,则需要在开启虚拟机时开启虚拟化引擎
-
处理器
- √ 虚拟化 Inerl VT-x/EPT 或 AMD-V/RVI(V)
-
VMware Workstation 在此主机上不支持嵌套虚拟化。 模块“HV”启动失败。 未能启动虚拟机
-
是因为windows自身带的 hyper-v 所影响而导致的问题
-
window控制 –> 程序和功能 –> 启用或关闭windows功能 –> 取消勾选虚拟机平台
-
-
验证是否开启虚拟化
# grep -Em 1 "vmx|svm" /proc/cpuinfo
#Intel CPU 对应 vmx
#AMC CPU 对应 svm
# lsmod |grep kvm
kvm_amd 110592 0
ccp 98304 1 kvm_amd
kvm 798720 1 kvm_amd
irqbypass 16384 1 kvm
# ls -l /dev/kvm
crw-rw-rw- 1 root kvm 10, 232 Aug 8 17:26 /dev/kvm安装 KVM 相关工具包
相关包概述
centos
- qemu-kvm 为kvm提供底层仿真支持
- libvirt 使用最多的kvm虚拟化管理工具和应用程序接口,即通过libvirt调用KVM创建虚拟机,也是KVM通用的访问API,其不但能管理KVM,还能管理VMware、Xen、Hyper-V、VirtualBox等虚拟化方案
- libvirt-daemon libvirt的守护进程,管理虚拟机
- libvirt-client 客户端软件,提供客户端管理命令
- libvirt-daemon-driver-qemu libvirtd连接qemu的驱动
- virt-manager 图形界面管理工具,其底层也是调用libvirt API来完成对虚拟机的操作,包括虚拟机的创建、删除、启动、停止等一些简单的监控功能等
- virt-install 虚拟机命令行安装工具
- virsh 命令行工具是基于 libvirt API 创建的命令行工具,它可以作为图形化的 virt-manager 应用的备选工具。virsh 命令可以被用来创建虚拟化任务管理脚本,如安装、启动和停止虚拟机
- virt-viewer 通过 VNC 和 SPICE 协议显示虚拟机器图形控制台的最小工具。该工具在其同名软件包中:virtviewer
- cockpit Centos8 专门提供的基于Web的虚拟机管理界面
安装相关包
centos
-
centos8
-
至少需要的包: qemu-kvm 和 qemu-img(安装qemu-kvm会自动安装) 软件包
#建议安装的相关包
yum -y install qemu-kvm libvirt virt-manager virt-install virt-viewer
#启动服务
systemctl enable --now libvirtd- centos8提供的图形界面管理虚拟机的工具
- 可选项
yum -y install cockpit
systemctl enable --now cockpit
#通过以下方式访问
https://主机地址:9090/Ubuntu
- 18.04 和 20.04 都支持
#建议安装的相关包
apt -y install qemu-kvm virt-manager libvirt-daemon-system
#启动服务
systemctl enable --now libvirtd观察启动后的默认网络配置
- 可以看到多了两块网卡( virbr0 和 virbr0-nic ),类似于Wmware workstation生成的VMnet8网卡,用来充当虚拟机的NAT网卡
centos
[root@centos-kvm ~]# ip a
...
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:ef:6a:ec brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:ef:6a:ec brd ff:ff:ff:ff:ff:ff
#ip地址等信息是存放在此文件中
[root@centos8 ~]# cat /etc/libvirt/qemu/networks/default.xml
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
virsh net-edit default
or other application using the libvirt API.
-->
<network>
<name>default</name>
<uuid>27ec3515-886f-4853-ba1e-37beed262328</uuid>
<forward mode='nat'/>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:f2:f9:5d'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>Ubuntu
root@ubuntu-kvm:~# ip a
...
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:17:60:45 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:17:60:45 brd ff:ff:ff:ff:ff:ff