1、环境准备
1.1、操作系统
1.2、开启CPU支持虚拟化技术VT-X和AMD-V

1.3、修改系统为固定ip地址
1.3.1、修改配置
root@localhost:~# cat /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
ethernets:
ens33:
dhcp4: false
addresses: [192.168.10.21/24]
optional: true
routes:
- to: default
via: 192.168.10.2
nameservers:
addresses: [192.168.10.2,8.8.8.8]
version: 2
1.3.2、检查语法
1.3.3、生效配置
1.3.4、查询修改完成的状态
root@localhost:~# netplan status
Online state: online
...
● 2: ens33 ethernet UP (networkd: ens33)
MAC Address: 00:0c:29:95:33:c8 (Intel Corporation)
Addresses: 192.168.10.21/24
fe80::20c:29ff:fe95:33c8/64 (link)
DNS Addresses: 192.168.10.2
8.8.8.8
Routes: default via 192.168.10.2 (static)
192.168.10.0/24 from 192.168.10.21 (link)
fe80::/64 metric 256
1.4、安装系统内核模块检查
1.4.1、确保CPU支持HVM
# grep -E "vmx|svm" /proc/cpuinfo | wc -l
4
1.4.2、查询支持模块
# 默认已经加载成功,我这里是使用AMD CPU
# lsmod | egrep 'kvm|Module'
Module Size Used by
kvm_amd 204800 0
ccp 131072 1 kvm_amd
kvm 1347584 1 kvm_amd
irqbypass 16384 1 kvm
# 如果没有加载,尝试手动加载内核模块
# load kvm module
modprobe kvm
# load AMD CPU module
modprobe kvm-amd
# load Intel CPU module
modprobe kvm-intel
1.4.3、验证kvm模块是否正常
# ll /dev/kvm
crw-rw---- 1 root kvm 10, 232 May 20 07:03 /dev/kvm
1.5、软件介绍
qeum-kvm: 用户态管理kvm,网卡、声卡、PCI设备等都是需要qemu来管理。
libvirt: 是管理kvm的工具
virt-install: 安装虚拟机用的
2、kvm-软件安装
2.1、安装软件
apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager virt-viewer
2.2、工具简介
qemu-kvm # 为 KVM 管理程序提供硬件模拟的软件程序
libvirt-daemon-system # 将 libvirt 守护程序作为系统服务运行的配置文件
libvirt-clients # 用来管理虚拟化平台的软件
bridge-utils # 用来配置网络桥接的命令行工具
virtinst # 用来创建虚拟机的命令行工具
virt-manager # 提供一个易用的图形界面,并且通过libvirt 支持用于管理虚拟机的命令行 工具
virt-viewer # 查看虚拟机的控制端工具
2.3、启动libvirtd服务
systemctl start libvirtd
systemctl enable libvirtd
~# systemctl is-active libvirtd
active
2.4、检查效果
2.4.1、是否多出virbr0网桥
root@localhost:~# ifconfig virbr0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
2.4.2、查询路由状态
root@localhost:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.10.2 0.0.0.0 UG 0 0 0 ens33
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
2.4.3、查询进程
root@localhost:~# ps -aux | grep -v grep | grep dns
libvirt+ 4622 0.0 0.0 11256 2072 ? S 07:16 0:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
root 4623 0.0 0.0 11256 1176 ? S 07:16 0:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
2.4.4、目录结构
root@localhost:~# ll /etc/libvirt/
...
drwxr-xr-x 2 root root 4096 Mar 1 06:56 hooks/
-rw-r--r-- 1 root root 450 Jan 16 10:57 libvirt-admin.conf
-rw-r--r-- 1 root root 547 Jan 16 10:57 libvirt.conf
-rw-r--r-- 1 root root 17820 Mar 1 06:56 libvirtd.conf
-rw-r--r-- 1 root root 2169 Jan 16 10:57 libxl-lockd.conf
-rw-r--r-- 1 root root 2465 Jan 16 10:57 libxl-sanlock.conf
-rw-r--r-- 1 root root 2268 Jan 16 10:57 libxl.conf
-rw-r--r-- 1 root root 1175 Jan 16 10:57 lxc.conf
drwxr-xr-x 2 root root 4096 May 20 07:16 nwfilter/
drwxr-xr-x 3 root root 4096 May 20 07:16 qemu/
-rw-r--r-- 1 root root 2169 Jan 16 10:57 qemu-lockd.conf
-rw-r--r-- 1 root root 2465 Jan 16 10:57 qemu-sanlock.conf
-rw------- 1 root root 37722 Mar 1 06:56 qemu.conf
drwx------ 2 root root 4096 May 20 07:16 secrets/
-rw-r--r-- 1 root root 3058 Jan 16 10:57 virtlockd.conf
-rw-r--r-- 1 root root 3537 Jan 16 10:57 virtlogd.conf