问题描述:

在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 admin@192.168.42.196: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