virsh 连接是什么
virsh 是 libvirt 的命令行客户端:通过连接参数指定 URI,就可以管理本机或远端宿主上的域、网络与存储池。URI 决定了权限与可见范围,也决定了你能看到哪些虚机——同一个命令换一个 URI,结果可能完全不同,这是新手最容易困惑的地方。
基本信息
| 本机系统域 | 连接本机由守护进程管理的系统级资源 |
|---|---|
| 本机用户域 | 面向当前用户,功能与可见范围受限 |
| 远端连接 | 可通过 SSH 等传输方式连接远端宿主 |
| 默认连接 | 可用环境变量固化默认 URI,避免每次输入 |
| 权限影响 | 系统域需要相应授权,普通用户默认看不到 |
| 帮助查询 | 内置帮助可按对象查看子命令清单 |
连接与信息核对
连接与信息核对
virsh -c qemu:///system version # 查看客户端与服务端版本
virsh -c qemu:///system list --all # 列出系统域下的全部虚机
export LIBVIRT_DEFAULT_URI=qemu:///system # 固化默认连接,省去反复输入
virsh -c qemu+ssh://root@node2/system list --all # 连接远端宿主
virsh help pool # 按对象查看可用子命令连接方式对照
| 连接 | 适用场景 | 限制 |
|---|---|---|
| 本机系统域 | 管理宿主上的生产虚机 | 需要 root 或等效授权 |
| 本机用户域 | 个人开发与实验 | 网络与存储能力受限,与系统域隔离 |
| 远端 SSH | 从管理机统一操作节点 | 依赖 SSH 免密与网络可达性 |
| 远端加密连接 | 跨主机集中管理 | 需要证书配置与端口放行 |
把常用连接写进脚本前先手工验证一遍:远端连接依赖 SSH 免密与网络可达性,未验证就写入自动化,失败会表现为脚本在无人值守时静默出错。固化默认连接的变量只在当前会话有效,需要写进配置文件才能长期生效。
连接失败时的排查顺序:先确认守护进程在运行,再用版本命令验证取读通道是否通;接着核对连接 URI 与权限,最后检查网络与免密登录。按这个顺序走一遍,能区分服务侧问题、权限问题与网络问题三类原因,避免在错误方向上反复试参数。