kvm-部署
1、环境准备
1.1、操作系统
这里使用ubuntu系统 下载地址:https://releases.ubuntu.com/23.04/ubuntu-23.04-live-server-amd64.iso
1.2、开启CPU支持虚拟化技术VT-X和AMD-V
虚拟主机配置:内存:8G,CPU:4核
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、检查语法
netplan try
1.3.3、生效配置
netplan apply
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