通过,这两天查看日志,Bug复现,个人认为,出现这个问题的原因个人认为如下:
直接原因:是由于虚拟机在操作 创建, 重启, 恢复的过程中,都需要读取或者创建cgroup中的资源配置信息。 但在192.168.200.14中,部分子系统,子Group文件丢失,导致libvirt API读取相关文件时候抛出异常,导致服务操作不可用。
根本原因:在当前主流Linux发行版中,使用两种系统和服务管理器 systemd 和 upstart。 Systemd 和 upstart 对于cgroup进程有以下服务规则,当libvirt调度的虚拟机不在使用相关资源时,systemd和upstart出于资源释放目的,将cgroup相关资源分配配置信息自行删除,其认为当前不在使用此资源,从而在cgroup子系统文件中,找不到libvirt指定子系统文件。导致nova相关操作不能使用。