Rocky Linux9.6安装KVM虚拟化平台的详细过程

AI 概述
CentOS 8 生命周期结束后,Rocky Linux 9.6 成为企业级操作系统替代首选。文章介绍了其安装与使用:先进行磁盘阵列规划、检查硬件虚拟化支持、关闭防火墙和 selinux;接着安装 KVM 软件包,配置桥接网络,实现虚拟机与宿主机同网段;还安装了 Cockpit 及虚拟机模块,启动服务后可登录 WEB 管理界面。Rocky Linux 9.6 稳定安全,对 CentOS 用户学习成本低,值得选择。
目录
文章目录隐藏
  1. 1. 安装准备
  2. 2. 安装 KVM 软件包
  3. 3.配置桥接网络 (Bridge)
  4. 4. KVM Web 管理界面安装

KVM 是 内核虚拟机(Kernel Virtualization Machine) 的简称,是一个为 Linux 内核设计的开源虚拟化平台。它是一种 1 类管理程序,或通常称为裸机管理程序。它允许用户创建和管理多台客户机,这些可以在 Linux 或 Windows 操作系统中创建。

与大多数虚拟化平台一样,它将硬件资源(如 CPU、内存、存储、网络、图形等)抽象化,并将它们分配给独立于宿主机运行的客户机。

最新版本 Rocky Linux 9.6 已正式发布,今天就带大家一起来看一下它的安装与使用过程!

1. 安装准备

1.1 磁盘阵列规划

6 块 2.2TB 容量的SAS 硬盘,4 块做 RAID10,1 块做热备盘 RHS,另一块单独做 RAID0,用来存放ISO 文件

Rocky Linux9.6 安装 KVM 虚拟化平台的详细过程

1.2 操作系统安装

操作系统的安装过程,略过。

[root@bjbj ~]# cat /etc/redhat-release
Rocky Linux release 9.6 (Blue Onyx)
[root@bjbj ~]#

1.3 检查硬件是否支持虚拟化

[root@bjbj ~]# lscpu | grep Virtualization
Virtualization:                       VT-x
[root@bjbj ~]#

或者:

[root@bjbj ~]# cat /proc/cpuinfo | grep -E "vmx|svm"
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 intel_ppin ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts hwp_epp vnmi pku ospke avx512_vnni md_clear flush_l1d arch_capabilities
vmx flags : vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs pml ept_violation_ve ept_mode_based_exec tsc_scaling
……

检查硬件是否支持虚拟化

1.4 关闭防火墙和 selinux

防火墙先临时关闭,完成后启用再开放端口:

[root@bjbj ~]# systemctl stop firewalld
[root@bjbj ~]# systemctl disable firewalld
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
[root@bjbj ~]#
[root@bjbj ~]# vim /etc/selinux/config
SELINUX=disabled

2. 安装 KVM 软件包

2.1 更新包存储库缓存

[root@bjbj ~]# dnf update

安装 KVM 软件包

2.2 安装 KVM 基础软件包

[root@bjbj ~]# dnf install -y qemu-kvm libvirt virt-manager virt-install 
Last metadata expiration check: 0:10:04 ago on Sat 20 Dec 2025 11:07:10 AM CST.
Dependencies resolved.
=============================================================================================================================================================================================
 Package                                                       Architecture                  Version                                                  Repository                        Size
=============================================================================================================================================================================================
Installing:
 libvirt                                                       x86_64                        10.10.0-15.4.el9_7                                       appstream                         33 k
 qemu-kvm                                                      x86_64                        17:9.1.0-29.el9_7.3                                      appstream                         73 k
 virt-install                                                  noarch                        5.0.0-1.el9                                              appstream                         41 k
 virt-manager                                                  noarch                        5.0.0-1.el9                                              appstream                        529 k
Installing dependencies:
 boost-iostreams                                               x86_64                        1.75.0-13.el9_7                                          appstream                         37 k
 capstone                                                      x86_64                        4.0.2-10.el9                                             appstream                        766 k
 daxctl-libs                                                   x86_64                        78-2.el9                                                 baseos                            41 k
……

安装 KVM 基础软件包

2.3 安装其他管理软件包

[root@bjbj ~]# dnf -y install virt-top libguestfs-tools libvirt-client virt-viewer
Last metadata expiration check: 0:12:38 ago on Sat 20 Dec 2025 11:07:10 AM CST.
Package libvirt-client-10.10.0-15.4.el9_7.x86_64 is already installed.
Dependencies resolved.
=============================================================================================================================================================================================
 Package                                                 Architecture                        Version                                            Repository                              Size
=============================================================================================================================================================================================
Installing:
 virt-top                                                x86_64                              1.1.1-9.el9                                        appstream                              709 k
 virt-viewer                                             x86_64                              11.0-1.el9                                         appstream                              284 k
 virt-win-reg                                            noarch                              1.52.2-6.el9                                       appstream                               30 k
Installing dependencies:
 augeas-libs                                             x86_64                              1.14.1-3.el9                                       appstream                              373 k
……

安装其他管理软件包

以上安装完成后,检查内核模块是否加载,输出可以看出系统已经加载了 KVM 内核模块:

[root@bjbj ~]# lsmod | grep kvm
kvm_intel             446464  0
kvm                  1404928  1 kvm_intel
[root@bjbj ~]#

2.4 启动并启用 libvirtd 守护进程

libvirtd是一个服务器端守护程序部件,可以在虚拟化的客户机上运行和管理任务。它被应用于虚拟化技术的管理,如 Xen、KVM、ESXi 等。

设置开机启动并启动和查看状态:

[root@bjbj ~]# systemctl enable libvirtd
Created symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service → /usr/lib/systemd/system/libvirtd.service.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd.socket → /usr/lib/systemd/system/libvirtd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd-ro.socket → /usr/lib/systemd/system/libvirtd-ro.socket.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd-admin.socket → /usr/lib/systemd/system/libvirtd-admin.socket.
[root@bjbj ~]# systemctl start libvirtd

查看状态:

[root@bjbj ~]# systemctl status libvirtd
● libvirtd.service - libvirt legacy monolithic daemon
     Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; preset: disabled)
     Active: active (running) since Sat 2025-12-20 11:25:18 CST; 17s ago
TriggeredBy: ● libvirtd.socket
             ● libvirtd-admin.socket
             ● libvirtd-ro.socket
       Docs: man:libvirtd(8)
             https://libvirt.org/
   Main PID: 152225 (libvirtd)
      Tasks: 22 (limit: 32768)
     Memory: 24.9M (peak: 26.8M)
        CPU: 691ms
     CGroup: /system.slice/libvirtd.service
             ├─152225 /usr/sbin/libvirtd --timeout 120
             ├─152323 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
             └─152324 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper

Dec 20 11:25:19 bjbj dnsmasq[152323]: started, version 2.85 cachesize 150
Dec 20 11:25:19 bjbj dnsmasq[152323]: compile time options: IPv6 GNU-getopt DBus no-UBus no-i18n IDN2 DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth cryptohash DNSSEC loop-detect inotify>
Dec 20 11:25:19 bjbj dnsmasq-dhcp[152323]: DHCP, IP range 192.168.122.2 -- 192.168.122.254, lease time 1h
Dec 20 11:25:19 bjbj dnsmasq-dhcp[152323]: DHCP, sockets bound exclusively to interface virbr0
Dec 20 11:25:19 bjbj dnsmasq[152323]: reading /etc/resolv.conf
Dec 20 11:25:19 bjbj dnsmasq[152323]: using nameserver 223.5.5.5#53
Dec 20 11:25:19 bjbj dnsmasq[152323]: using nameserver 223.5.5.6#53
Dec 20 11:25:19 bjbj dnsmasq[152323]: read /etc/hosts - 2 addresses
Dec 20 11:25:19 bjbj dnsmasq[152323]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
Dec 20 11:25:19 bjbj dnsmasq-dhcp[152323]: read /var/lib/libvirt/dnsmasq/default.hostsfile
lines 1-27/27 (END)

启动并启用 libvirtd 守护进程

3.配置桥接网络 (Bridge)

这是实现虚拟机与宿主机同网段的关键步骤。这里先创建一个名为 br0 的网桥,并将物理网卡 ens9f0 作为其从属设备。

先查看网卡信息:

[root@bjbj ~]# nmcli connection show
NAME           UUID                                  TYPE      DEVICE        
ens9f0         9a7164fa-7d39-3e7c-92f3-88515395920e  ethernet  ens9f0        
enp0s20f0u1u6  aeea3b0f-4e21-373b-8eb4-a04f70eaa771  ethernet  enp0s20f0u1u6 
lo             f9df6193-cbbc-44b2-9d41-1a7ea856cf1b  loopback  lo            
virbr0         8eb29437-4a2f-4d5a-bf13-fe4879552b1e  bridge    virbr0        
ens9f1         7f03d99f-5ad6-43c5-b1a8-453bbea7a0a2  ethernet  --            
ens9f2         16049f9d-c838-4f65-9530-1646feff3118  ethernet  --            
ens9f3         1bf79154-f9dd-454d-88c2-e9afc3e33296  ethernet  --            
[root@bjbj ~]#

3.1 创建网桥接口 (br0)

使用 nmcli 命令创建一个名为 br0 的桥接连接。这个网桥将承载宿主机和虚拟机的网络配置。

[root@bjbj ~]# nmcli connection add type bridge autoconnect yes con-name br0 ifname br0
Warning: nmcli (1.54.0) and NetworkManager (1.52.0) versions don't match. Restarting NetworkManager is advised.
Connection 'br0' (17d240e9-f9f3-4b73-b1b5-88ba7e4a4586) successfully added.
[root@bjbj ~]#

3.2 配置网桥接口的 IP 地址

接着为网桥 br0 配置与宿主机相同的 IP 地址、网关和 DNS。这是关键,因为宿主机的原有 IP 将从物理网卡转移到网桥上。

[root@bjbj ~]# nmcli connection modify br0 \
ipv4.addresses 192.168.**.**/24 \
ipv4.gateway 192.168.**.1 \
ipv4.dns "223.5.5.5 223.5.5.6" \
ipv4.method manual
[root@bjbj ~]#

配置网桥接口的 IP 地址

3.3 将物理网卡 (ens9f0) 设为网桥的从属设备

现在,将物理网卡 ens9f0 设置为网桥 br0 的从属(Slave),使其成为网桥的一部分。

[root@bjbj ~]# nmcli connection delete 9a7164fa-7d39-3e7c-92f3-88515395920e
[root@bjbj ~]# nmcli connection add type bridge-slave autoconnect yes con-name ens9f0 ifname ens9f0 master br0

3.4 激活 br0 接口

[root@bjbj ~]# nmcli connection up br0

查看:

[root@bjbj ~]# nmcli connection show
NAME           UUID                                  TYPE      DEVICE        
br0            17d240e9-f9f3-4b73-b1b5-88ba7e4a4586  bridge    br0           
enp0s20f0u1u6  aeea3b0f-4e21-373b-8eb4-a04f70eaa771  ethernet  enp0s20f0u1u6 
ens9f0         9a7164fa-7d39-3e7c-92f3-88515395920e  ethernet  ens9f0        
lo             f9df6193-cbbc-44b2-9d41-1a7ea856cf1b  loopback  lo            
virbr0         8eb29437-4a2f-4d5a-bf13-fe4879552b1e  bridge    virbr0        
ens9f1         7f03d99f-5ad6-43c5-b1a8-453bbea7a0a2  ethernet  --            
ens9f2         16049f9d-c838-4f65-9530-1646feff3118  ethernet  --            
ens9f3         1bf79154-f9dd-454d-88c2-e9afc3e33296  ethernet  --            
[root@bjbj ~]#
[root@bjbj ~]# ip a | grep br0
2: ens9f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
7: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
8: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet 192.168.1.100/24 brd 192.168.38.255 scope global noprefixroute br0
[root@bjbj ~]#

4. KVM Web 管理界面安装

4.1 安装Cockpit及虚拟机模块

[root@bjbj ~]# dnf install -y cockpit cockpit-machines
Last metadata expiration check: 1:22:41 ago on Sat 20 Dec 2025 11:07:10 AM CST.
Package cockpit-344-1.el9.x86_64 is already installed.
Dependencies resolved.
================================================================================================================================================================
 Package                                    Architecture                     Version                                  Repository                           Size
================================================================================================================================================================
Installing:
 cockpit-machines                           noarch                           337-1.el9                                appstream                           889 k
Installing dependencies:
 libvirt-dbus                               x86_64                           1.4.1-5.el9                              appstream                            94 k

Transaction Summary
================================================================================================================================================================
Install  2 Packages

Total download size: 983 k
Installed size: 1.2 M
Downloading Packages:
(1/2): libvirt-dbus-1.4.1-5.el9.x86_64.rpm                                                                                      121 kB/s |  94 kB     00:00    
(2/2): cockpit-machines-337-1.el9.noarch.rpm                                                                                    682 kB/s | 889 kB     00:01    
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                           337 kB/s | 983 kB     00:02     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                        1/1 
  Running scriptlet: libvirt-dbus-1.4.1-5.el9.x86_64                                                                                                        1/2 
  Installing       : libvirt-dbus-1.4.1-5.el9.x86_64                                                                                                        1/2 
  Installing       : cockpit-machines-337-1.el9.noarch                                                                                                      2/2 
  Running scriptlet: cockpit-machines-337-1.el9.noarch                                                                                                      2/2 
  Verifying        : cockpit-machines-337-1.el9.noarch                                                                                                      1/2 
  Verifying        : libvirt-dbus-1.4.1-5.el9.x86_64                                                                                                        2/2 

Installed:
  cockpit-machines-337-1.el9.noarch                                               libvirt-dbus-1.4.1-5.el9.x86_64                                              

Complete!
[root@bjbj ~]#

安装 Cockpit 及虚拟机模块

4.2 启动 Cockpit 服务

[root@bjbj ~]# systemctl enable --now cockpit.socket
Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket → /usr/lib/systemd/system/cockpit.socket.
[root@bjbj ~]# 
[root@bjbj ~]# systemctl status cockpit.socket
● cockpit.socket - Cockpit Web Service Socket
     Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; enabled; preset: disabled)
     Active: active (listening) since Sat 2025-12-20 12:32:48 CST; 25s ago
      Until: Sat 2025-12-20 12:32:48 CST; 25s ago
   Triggers: ● cockpit.service
       Docs: man:cockpit-ws(8)
     Listen: [::]:9090 (Stream)
    Process: 154481 ExecStartPost=/usr/share/cockpit/issue/update-issue  localhost (code=exited, status=0/SUCCESS)
    Process: 154488 ExecStartPost=/bin/ln -snf active.issue /run/cockpit/issue (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 1644972)
     Memory: 100.0K (peak: 2.7M)
        CPU: 35ms
     CGroup: /system.slice/cockpit.socket

Dec 20 12:32:48 bjbj systemd[1]: Starting Cockpit Web Service Socket...
Dec 20 12:32:48 bjbj systemd[1]: Listening on Cockpit Web Service Socket.
[root@bjbj ~]#

4.3 登录 WEB 管理界面

用户名和密码为系统用户名和密码,https://ip:9090

登录 WEB 管理界面

Rocky Linux 9.6 是一款稳定、安全、轻量的企业级操作系统,具备良好的生态支持,适合用作服务器部署、容器运行环境或桌面工作站。对习惯 CentOS 的用户来说,几乎无学习成本,是值得信赖的选择!

以上关于Rocky Linux9.6安装KVM虚拟化平台的详细过程的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » Rocky Linux9.6安装KVM虚拟化平台的详细过程

发表回复