SWE / SRE / Frontend · System Design / 基础

TikTok libvirt:虚拟化管理 API 与故障分层

解释 libvirt 管理 domain、网络和存储,区分管理库与实际 hypervisor。

题目重点:解释 libvirt 管理 domain、网络和存储,区分管理库与实际 hypervisor。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 岗位问概念与实践;个人使用经历据实,不假定使用过KVM或某云。

解题路线

  1. libvirt提供虚拟化管理API/工具,支持多种hypervisor与相关网络/存储资源。它不是一个等同KVM的CPU虚拟化引擎。
  2. domain表示受管理虚机实例/配置,定义持久配置与启动运行状态要区分;连接URI、权限和管理daemon决定操作目标。
  3. VM网络/磁盘故障分管理配置、host资源、hypervisor和guest层检查,不能所有问题都归libvirt。
  4. 实践回答选真实操作:创建/启动domain、配置网络或观察事件,再说明失败状态与回滚。没有实践时明确只了解API职责。

手动走一遍

domain定义存在但未运行,不能把配置列表当健康状态;虚机运行也不表示guest服务可用。VM网络断开检查tap/bridge、host路由与guest地址,libvirt仅是管理链路一部分。

规模与取舍

管理API开销与VM工作负载不同;容量由CPU、内存、磁盘/网络与超售政策决定,不能凭虚机数量判断。

易错点与追问

容易失分的边界

  • libvirt就是hypervisor。
  • 配置存在等于运行成功。
  • 编造工具实践。

继续深挖

  • 持久domain与临时运行实例有何差别?
  • guest agent提供哪些额外观察能力?

技术参考

✓已复制微信号!