问题描述:
在cloudstack 中用ceph作为主存储时,常常是填入ceph-mon的一台机器ip作为接入口。但是一旦这台机器出现问题,cloudstack将无法访问主存储。

解决方案:

一. 登录到cloustack manager 机器

  1. 关闭cloustack manager服务
    cloudstack-management# service cloudstack-management stop

  2. 修改数据库对应的storage_pool项
    cloudstack-managemant# mysql -uroot -p
    mysql> use cloud;
    mysql> select * from storage_pool where pool_type='RBD';

    获取pool_type='RBD'的id, 例如id是9:
    mysql> update storage_pool set host_address='ceph-mon' where id=9;
    mysql> quit;

  3. 添加对应host dns. 例如ceph-mon对应192.168.42.196, 192.168.42.197. 192.168.42.198
    cloudstack-management# vim /etc/hosts

    192.168.42.196 ceph-mon
    192.168.42.197 ceph-mon
    192.168.42.198 ceph-mon

二. 逐一登录所有cloudstack host(cloudstack angent)机器删除旧的ceph相关的secret-list项目

  1. 查询相关的的ceph secret项目
    cloudstack-agent# virsh secret-list
    UUID Usage
    f34f4f01-9ee3-3e45-8c12-33990bd133a3 ceph [email protected]:6789/pub-rbd

  2. 删除对应的项目
    cloudstack-agent# secret-undefine f34f4f01-9ee3-3e45-8c12-33990bd133a3

  3. 添加对应host dns. 例如ceph-mon对应192.168.42.196, 192.168.42.197. 192.168.42.198
    cloudstack-anget# vim /etc/hosts

    192.168.42.196 ceph-mon
    192.168.42.197 ceph-mon
    192.168.42.198 ceph-mon

  4. 重启libvirtd和cloudstack-agent服务
    cloudstack-agent# service libvirtd restart
    cloudstack-agent# service cloudstack-agent restart

三. 回到cloustack manager 机器

  1. 重新启动cloustack management 服务
    cloudstack-management# service cloustack-management restart