主题
Rancher Rocky Linux 9 虚拟机操作文档
1. 环境概述
| 项目 | 说明 |
|---|---|
| 宿主机 OS | Linux |
| 虚拟化平台 | KVM + libvirt |
| 虚拟机名称 | rancher-rocky9-vm1 |
| 操作系统 | Rocky Linux 9 |
| 用途 | Rancher/Kubernetes 节点 |
| vCPU | 8 |
| 内存 | 32 GiB |
| 网络模式 | libvirt default NAT(192.168.122.0/24) |
| 存储池 | kvm |
| 系统盘 | kvm/rancher-rocky9-vm1.qcow2 |
| cloud-init seed | kvm/rancher-rocky9-vm1-seed.iso |
2. 一键创建虚拟机
2.1 脚本位置
bash
/home/xxx/create-rancher-rocky9-vm.sh2.2 默认创建
bash
/home/xxx/create-rancher-rocky9-vm.sh2.3 自定义参数
bash
# 创建第二台 VM,4 vCPU / 16GB 内存
/home/xxx/create-rancher-rocky9-vm.sh \
-n rancher-rocky9-vm2 \
-c 4 \
-m 163842.4 支持的参数
| 参数 | 说明 | 默认值 |
|---|---|---|
-n, --name NAME | 虚拟机名称 | rancher-rocky9-vm1 |
-c, --vcpus NUM | vCPU 数量 | 8 |
-m, --memory MB | 内存大小(MB) | 32768 |
-p, --pool POOL | 存储池名称 | kvm |
-d, --disk VOL | 系统盘卷名 | rancher-rocky9-vm1.qcow2 |
-s, --seed VOL | cloud-init seed ISO 卷名 | rancher-rocky9-vm1-seed.iso |
--network SPEC | 网络配置 | network=default,model=virtio |
-h, --help | 显示帮助 | - |
2.5 脚本前置要求
- 已安装
virt-install、virsh kvm存储池中已存在:rancher-rocky9-vm1.qcow2rancher-rocky9-vm1-seed.iso
- libvirt
default网络已激活
3. 日常运维命令
3.1 查看虚拟机状态
bash
# 查看所有虚拟机
virsh list --all
# 查看指定 VM 详情
virsh dominfo rancher-rocky9-vm1
# 查看 VM IP 地址
virsh domifaddr rancher-rocky9-vm13.2 电源管理
bash
# 开机
virsh start rancher-rocky9-vm1
# 正常关机(发送 ACPI 信号)
virsh shutdown rancher-rocky9-vm1
# 强制关机
virsh destroy rancher-rocky9-vm1
# 重启
virsh reboot rancher-rocky9-vm1
# 设置开机自启
virsh autostart rancher-rocky9-vm1
# 取消开机自启
virsh autostart --disable rancher-rocky9-vm13.3 连接虚拟机
3.3.1 串口控制台
bash
virsh console rancher-rocky9-vm1退出控制台快捷键:
Ctrl + ]
3.3.2 VNC 远程桌面
bash
# 查看 VNC 端口
virsh domdisplay rancher-rocky9-vm1输出示例:vnc://localhost:4,对应宿主机端口 5904。
本地直接连接:
bash
vncviewer localhost:5904通过 SSH 隧道从外部访问:
bash
ssh -L 5904:localhost:5904 user@<宿主机IP>
# 然后在本地用 VNC 客户端连接 localhost:59043.3.3 SSH 连接
VM 位于 NAT 网络,需从宿主机 SSH 登录:
bash
# 先获取 IP
virsh domifaddr rancher-rocky9-vm1
# 从宿主机 SSH 登录
ssh root@192.168.122.249如需从外部访问 VM,可通过 SSH 端口转发:
bash
ssh -L 2222:192.168.122.249:22 user@<宿主机IP>
# 外部连接:ssh -p 2222 root@localhost4. 存储管理
4.1 查看存储卷
bash
# 列出 kvm 池中的所有卷
virsh vol-list kvm
# 查看卷详情
virsh vol-info --pool kvm rancher-rocky9-vm1.qcow24.2 扩容系统盘
bash
# 1. 关闭虚拟机
virsh shutdown rancher-rocky9-vm1
# 2. 扩容卷(例如增加到 100G)
virsh vol-resize --pool kvm rancher-rocky9-vm1.qcow2 100G
# 3. 启动虚拟机
virsh start rancher-rocky9-vm1
# 4. 进入系统后扩展文件系统
ssh root@<VM_IP>
# Rocky Linux 使用 LVM 时:
pvresize /dev/vda3
lvextend -l +100%FREE /dev/mapper/rl-root
xfs_growfs /注意:扩容前请确认文件系统布局,命令可能因分区方式不同而变化。
4.3 创建快照
bash
# 创建快照
virsh snapshot-create-as rancher-rocky9-vm1 snap-2026-07-14 \
--description "安装完成后的初始状态"
# 列出快照
virsh snapshot-list rancher-rocky9-vm1
# 恢复快照
virsh snapshot-revert rancher-rocky9-vm1 snap-2026-07-14
# 删除快照
virsh snapshot-delete rancher-rocky9-vm1 snap-2026-07-145. 网络配置
5.1 当前网络:default NAT
VM 通过 libvirt 默认 NAT 网络访问外网,IP 段为 192.168.122.0/24。
bash
# 查看 default 网络详情
virsh net-info default
virsh net-edit default5.2 如需改为桥接网络
如果后续创建了 br0 网桥,可修改 VM XML:
bash
virsh edit rancher-rocky9-vm1将网络接口部分改为:
xml
<interface type='bridge'>
<source bridge='br0'/>
<model type='virtio'/>
</interface>或使用一键脚本重新创建:
bash
/home/xxx/create-rancher-rocky9-vm.sh --network bridge=br0,model=virtio6. 备份与恢复
6.1 备份虚拟机磁盘
bash
# 关闭 VM 后备份
virsh shutdown rancher-rocky9-vm1
virsh vol-download --pool kvm rancher-rocky9-vm1.qcow2 \
/backup/rancher-rocky9-vm1-$(date +%Y%m%d).qcow26.2 备份 VM XML 配置
bash
virsh dumpxml rancher-rocky9-vm1 > /backup/rancher-rocky9-vm1.xml6.3 从备份恢复
bash
# 重新定义 VM
virsh define /backup/rancher-rocky9-vm1.xml
# 替换磁盘卷后启动
virsh start rancher-rocky9-vm17. 故障排查
7.1 虚拟机无法启动
bash
# 查看 VM 日志
virsh logs rancher-rocky9-vm1
# 查看 libvirt 日志
sudo journalctl -u libvirtd -f
# 查看 QEMU 日志
sudo cat /var/log/libvirt/qemu/rancher-rocky9-vm1.log7.2 获取不到 IP
bash
# 确认 default 网络已激活
virsh net-list --all
# 必要时重启 default 网络
virsh net-destroy default
virsh net-start default
# 查看 VM 网卡 MAC 地址
virsh domiflist rancher-rocky9-vm1
# 查看 libvirt DHCP 租约
sudo cat /var/lib/libvirt/dnsmasq/virbr0.status7.3 VNC 无法连接
bash
# 确认 VNC 端口
virsh domdisplay rancher-rocky9-vm1
# 确认防火墙是否放行 590x 端口
sudo ss -tlnp | grep 590
# 临时放行(如需要)
sudo firewall-cmd --add-port=5904/tcp7.4 存储卷不存在错误
bash
# 确认卷存在
virsh vol-list kvm
# 如不存在,需重新准备系统盘和 seed ISO8. 销毁虚拟机
bash
# 强制关机并删除定义及磁盘
virsh destroy rancher-rocky9-vm1 2>/dev/null || true
virsh undefine rancher-rocky9-vm1 --remove-all-storage --nvram
--remove-all-storage会同时删除关联的存储卷,请谨慎使用。
9. 相关文件清单
| 文件 | 路径 | 说明 |
|---|---|---|
| 一键创建脚本 | /home/xxx/create-rancher-rocky9-vm.sh | 创建/重建 VM |
| 操作文档 | /home/xxx/docs/rancher-rocky9-vm/operations.md | 本文档 |
| VM 磁盘 | kvm/rancher-rocky9-vm1.qcow2 | 系统盘 |
| cloud-init seed | kvm/rancher-rocky9-vm1-seed.iso | 初始化配置 |
10. 常用命令速查
bash
# 查看所有 VM
virsh list --all
# 查看 VM 信息
virsh dominfo rancher-rocky9-vm1
# 查看 VM IP
virsh domifaddr rancher-rocky9-vm1
# 开机/关机/重启
virsh start rancher-rocky9-vm1
virsh shutdown rancher-rocky9-vm1
virsh destroy rancher-rocky9-vm1
virsh reboot rancher-rocky9-vm1
# 控制台/VNC
virsh console rancher-rocky9-vm1
virsh domdisplay rancher-rocky9-vm1
# 一键重建
/home/xxx/create-rancher-rocky9-vm.sh