KVM虚拟机简介:
Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,目前集成在Linux的各个主要发行版本中。
KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术),是基于硬件的完全虚拟化。
Xen是基于硬件支持的完全虚拟化,但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。
广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。
系统安装部署:Rocky Linux 10.x系统安装配置图解教程
1、检查cpu是否支持虚拟化
1.1如果是在VMware虚拟机中安装,检查Intel VT设置
在VMware设置中将作为宿主机的Rocky Linux虚拟机的Intel VT或AMD-V功能打勾选中,开启VT虚拟化,才能在虚拟机中创建虚拟机
1.2用下列指令检查cpu是否支持vt:
cat /proc/cpuinfo|egrep 'vmx|svm'
grep -Ei 'vmx|svm' /proc/cpuinfo
如果有出现vmx或者svm关键字就代表支持虚拟化,vmx代表Intel的CPU,svm代表AMD的CPU
2、关闭selinux
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
3、防火墙设置
#Rocky Linux默认使用的是firewall作为防火墙
#cockpit的web界面会调用系统默认的firewalld防火墙
#默认端口为9090,需放行该端口或cockpit服务才能远程访问
firewall-cmd --add-service=cockpit --permanent #永久放行服务
firewall-cmd --reload #重载配置
firewall-cmd --list-ports #检查已开放端口
firewall-cmd --list-all #显示所有规则(含服务、端口、区域)
4、修改主机名
方便区分宿主机和KVM虚拟化,建议修改宿主机的主机名称
hostnamectl set-hostname kvm01
vi /etc/hostname #编辑配置文件CentOS 7.x
kvm01 #修改localhost.localdomain为kvm01
:wq! #保存退出
vi /etc/hosts #编辑配置文件
127.0.0.1 kvm01 localhost #修改localhost.localdomain为kvm01
:wq! #保存退出
5、启用网络转发,kvm使用nat方式需要开始
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
:wq! #保存退出
sysctl -p /etc/sysctl.conf
6、安装kvm
6.1使用yum安装
#安装虚拟化核心套件
yum install virt-* qemu-kvm qemu-img libvirt libguestfs-tools
#启动并设置开机启动
systemctl enable --now libvirtd
#验证状态应为"active (running)"
systemctl status libvirtd
#安装Cockpit网页管理工具(含虚拟机管理模块)
yum install cockpit cockpit-machines
#启动并设置开机启动
systemctl enable --now cockpit.socket
#验证状态应为"active (running)"
systemctl status cockpit.socket
#默认可能禁止root登录
#修改后重启生效
vi /etc/cockpit/disallowed-users #删除"root"行
root
:wq! #保存退出
systemctl restart cockpit.socket #重启服务
systemctl restart libvirtd #重启服务
#模块说明
kvm:linux内核中的一个模块,不需要安装只要加载就行,通过用户态进程来管理。
qemu:虚拟化软件,支持多种架构,可扩展,可移植
qemu-kvm:用户态管理KVM,网卡、声卡、PCI设备等的管理
libvirt:是一个虚拟化 API 和虚拟机(VMs)管理后台,支持远程或本地访问,支持多种虚拟化后端 (QEMU/KVM, VirtualBox, Xen,等等)
6.2检查确认载入kvm模块
lsmod | grep kvm
ip link show type bridge
[root@kvm01 ~]# lsmod | grep kvm
kvm_intel 446464 0
kvm 1400832 1 kvm_intel
[root@kvm01 ~]# ip link show type bridge
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc htb state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:54:70:d8 brd ff:ff:ff:ff:ff:ff
6.3创建软连接
ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
ls -l /usr/bin/qemu-kvm
6.4查看版本
virsh --version
virt-install --version
qemu-kvm --version
6.5、配置kvm网络
kvm虚拟机的网络配置有两种模式:NAT模式和桥接模式,默认只有NAT模式
两种模式的区别:
NAT模式:也是用户模式,数据包由NAT方式通过主机的接口进行传送,可以访问公网,但是无法从外部访问虚拟机网络,所以一般不会用到。
NAT模式配置比较简单,只需要在启动虚拟机后,设置ip地址为dhcp自动获得即可联网,也可以修改ip地址为固定ip,但是宿主机必须启用网络转发。
Bridge:也就是桥接模式,这种模式允许虚拟机像一个独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持,一般有线网卡都支持。
6.5.1创建桥接网桥
#创建桥接配置文件(Rocky Linux 10.x新路径)
#IP信息是当前网卡ens33的
nmcli con add type bridge con-name br0 ifname br0 \
ipv4.method manual \
ipv4.addresses 192.168.21.159/24 \
ipv4.gateway 192.168.21.1 \
ipv4.dns "8.8.8.8,8.8.4.4"
6.5.2绑定物理网卡
#将ens33绑定到桥接
nmcli con add type bridge-slave \
con-name br0-port \
ifname ens33 \
master br0
6.5.3激活配置
#查看原网络名称为ens33
nmcli connection show
#禁用原网络配置
nmcli con down "ens33"
nmcli con up br0
6.5.4验证桥接
bridge link show br0 #应显示ens33已绑定
ip addr show br0 #应显示原ens33的IP已迁移到br0
6.5.5调优网络
#禁用STP:小型网络可减少延迟
nmcli con mod br0 bridge.stp no
#MTU优化
nmcli con mod br0 ethernet.mtu 9000
7、创建kvm虚拟机
7.1创建自定义存储目录(推荐替代默认路径)
mkdir -p /data/libvirt/{iso,images}
chown -R root:root /data/libvirt
chmod 755 /data/libvirt -R *
7.2通过virsh命令管理存储池
# 定义存储池
virsh pool-define-as vmstore --type dir --target /data/libvirt/images
# 构建并激活存储池
virsh pool-build vmstore
virsh pool-start vmstore
virsh pool-autostart vmstore
# 检查存储池状态
virsh pool-list --all
ls -ld /data/libvirt/images
# 查看存储池完整配置
virsh pool-dumpxml vmstore
# 验证自动启动配置是否持久化
ls -l /etc/libvirt/storage/autostart/vmstore.xml
# 存储池配置实际保存在
cat /etc/libvirt/storage/vmstore.xml
7.3上传iso镜像文件
上传系统镜像文件到存放目录/data/libvirt/iso
7.4创建kvm虚拟机
#查询kvm支持的操作系统
osinfo-query os
#创建虚拟机
virt-install \
--name rocky10-01 \
--vcpu 2 \
--memory 4096 \
--disk path=/data/libvirt/images/rocky10-01.qcow2,size=40,bus=virtio \
--cdrom /data/libvirt/iso/Rocky-10.0-x86_64-minimal.iso \
--network bridge=br0 \
--graphics vnc,port=5900 \
--os-type linux \
--noautoconsole
#创建数据盘文件
# 创建20GB的qcow2格式磁盘
qemu-img create -f qcow2 /data/libvirt/images/rocky10-01-data.qcow2 20G
#查看创建的磁盘信息
qemu-img info /data/libvirt/images/rocky10-01-data.qcow2
#挂载磁盘到虚拟机
virsh attach-disk rocky10-01 \
/data/libvirt/images/rocky10-01-data.qcow2 \
vdb --persistent --subdriver qcow2
#查看虚拟机
virsh list --all
#启动虚拟机
virsh start rocky10-01
#查看kvm虚拟机信息
virsh dumpxml rocky10-01
#关闭虚拟机
virsh shutdown rocky10-01
#编辑虚拟机配置文件
virsh edit rocky10-01
#启动kvm虚拟机
virsh start rocky10-01
#强制断电
virsh destroy rocky10-01
#删除kvm虚拟机
virsh undefine rocky10-01
#查看磁盘信息
virsh domblklist rocky10-01
7.5使用web控制台Cockpit管理kvm虚拟机
浏览器打开https://192.168.21.159:9090/
root/密码
登录
可以进入到虚拟机控制台安装系统
至此,Rocky Linux 10.0下安装使用KVM虚拟机教程完成。



