在openstack下创建windows虚机可能会出现do_hivex_close导致失败,下面具体说明。
报错信息如下:
NovaException: Error mounting /var/lib/nova/instances/xxxxx/disk with libguestfs (hivex_close: do_hivex_close: you must call 'hivex-open' first to initialize the hivex handle)
hivex是提供给libguestfs api接口用以操作windows虚机内部文件的工具,nova则利用libguestfs来修改windows虚机内注册表等配置文件。
在redhat上也能看到相关bug记录bug,触发原因是镜像内出现异常(windows内注册表页异常),hivex发现这种这种异常就会调用do_hivex_close将hivex关闭,导致失败。
提供的patch方案:
在hivex >= 1.3.14 提供HIVEX_OPEN_UNSAFE标志位,用以处理遇到异常hive的时候强制打开hivex,根据这个机制,在ibguestfs API中增加对该标志位的映射。
bug讨论区在libguestfs-1.36.3版本验证已无此问题,所以如果有环境出现这个问题可以看下libguestfs版本信息,以做升级。

在openstack中创建windows虚拟机时,可能会遇到由于do_hivex_close错误导致的失败。该问题源于hivex在处理镜像内异常的注册表页时关闭hivex。Red Hat上存在相关bug,解决方案是使用HIVEX_OPEN_UNSAFE标志在hivex >= 1.3.14中强制打开。在libguestfs-1.36.3及更高版本中已修复此问题,遇到问题的环境可以考虑升级。
最低0.47元/天 解锁文章
1132

被折叠的 条评论
为什么被折叠?



