Rocky Linux 10.0下安装使用KVM虚拟机

KVM虚拟机简介:

Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,目前集成在Linux的各个主要发行版本中。

KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术),是基于硬件的完全虚拟化。

Xen是基于硬件支持的完全虚拟化,但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。

广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。

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/configsetenforce 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 kvm01vi /etc/hostname #编辑配置文件CentOS 7.xkvm01 #修改localhost.localdomain为kvm01:wq! #保存退出vi /etc/hosts #编辑配置文件127.0.0.1 kvm01 localhost #修改localhost.localdomain为kvm01:wq! #保存退出

5、启用网络转发,kvm使用nat方式需要开始

​​​​​​​

复制代码
vi /etc/sysctl.confnet.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 kvmip link show type bridge[root@kvm01 ~]# lsmod | grep kvmkvm_intel             446464  0kvm                  1400832  1 kvm_intel[root@kvm01 ~]# ip link show type bridge3: 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-kvmls -l /usr/bin/qemu-kvm

6.4查看版本

复制代码
virsh --versionvirt-install --versionqemu-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激活配置

​​​​​​​

复制代码
#查看原网络名称为ens33nmcli 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/libvirtchmod 755 /data/libvirt -R *

‌7.2通过virsh命令管理存储池‌

复制代码
# 定义存储池virsh pool-define-as vmstore --type dir --target /data/libvirt/images# 构建并激活存储池virsh pool-build vmstorevirsh pool-start vmstorevirsh pool-autostart vmstore# 检查存储池状态virsh pool-list --allls -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