欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

CloudStack SSVM启动条件源码阅读与问题解决方法

程序员文章站 2022-06-29 23:29:56
cloudstack ssvm启动条件源码阅读与问题解决方法:  在cloudstack建立zone的时候,经常遇到ssvm不启动,或者根本就没有ssvm的情况...

cloudstack ssvm启动条件源码阅读与问题解决方法:

 在cloudstack建立zone的时候,经常遇到ssvm不启动,或者根本就没有ssvm的情况,分析cloudstack日志,会发现有“zone 1 is not ready to launch secondary storage vm yet”打印,意思是zone还未准备好启动ssvm。

通过查询cloudstack源代码,发现启动ssvm前有如下检查:

        获取zone里的template。

        select a.* from vm_template a, host h where h.type = 'routing' and h.data_center_id = 1 and a.type = 'system' and a.hypervisor_type = h.hypervisor_type limit 1;   

        如果没有获取到,会打印如下警告:

        warn: zone host is ready, but secondary storage vm template  3 is not ready on secondary storage: 1

        解决办法:检查system template是否已经下载完成(注意,要下载自己环境的hypervisor的system template)。

        获取zone的二级存储。

        select * from host where type = 'secondarystorage' and data_center_id = 1;  # host id is 3

        如果没有获取到,会打印如下警告:

        warn: no secondary storage available in zone 1, wait until it is ready to launch secondary storage vm

        解决办法:为zone 1建立secondary storage pool。

        获取template和host的关联。

        select * from template_host_ref where host_id = 3 and template_id = 1 and download_state = 'downloaded'; # host id and template id is query by before.

        如果没有获取到,会打印如下警告:

        warn: zone host is ready, but secondary storage vm template  3 is not ready on secondary storage: 1

        如果secondary storage是nfs,可以通过mount来检查secondary storage是否能够正常工作,如果secondary storage没有问题,则只能等待cloudstack自动关联上。

        获得host的主存储。

        select p.data_center_id,  count(ph.host_id) count  from storage_pool p, storage_pool_host_ref ph where p.id = ph.pool_id and p.data_center_id = 1 group by p.data_center_id;

        主存储数量需要大于0,如果等于0,会打印如下警告:

        warn: primary storage is not ready, wait until it is ready to launch secondary storage vm

没有问题后,cs会打印:zone  1 is ready to launch secondary storage vm。 cs将会启动 start secondary storage vm工作。

         感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!