故障恢复
本文描述平台出现常见异常故障后的恢复手段。
恢复admin密码
admin 是平台部署后默认创建的默认用户,如果丢失了admin的密码,可以登录控制节点shell,执行如下climc命令重置admin密码:
climc user-update admin --password "new_password_of_admin"
恢复sysadmin密码
sysadmin 是平台的默认系统用户,控制节点shell的climc的用户就是sysadmin。可能在以下情况平台会丢失sysadmin的密码:
- 恢复平台的数据库到以前的一个版本
- 修改了sysadmin密码但不小心遗忘sysadmin密码
可以通过如下流程恢复sysadmin的密码:
首先修改keystone的configmaps:
kubectl -n onecloud edit configmaps default-keystone
修改如下两项:
bootstrap_admin_user_password: initial_sysadmin_password
reset_admin_user_password: true
重启default-keystone容器,则sysadmin的密码重置为 initial_sysadmin_password
注意:如上操作成功后应恢复 reset_admin_user_password 为false,否则每次重启keystone都会重置 sysadmin 密码。
恢复宿主机的主机目录
可能存在丢失宿主机上 /opt/cloud/workspace/servers 下特定主机或者所有主机的目录,此时,通过平台可以看到该虚拟机的状态变为 not_found 或 unknown,且无法恢复状态。
可以通过如下方法恢复虚拟机的目录:
假设虚拟机的ID为:89b69a7d-cc0b-428f-81dc-06fe1f283594
首先在宿主机的 /opt/cloud/workspace/servers 目录下创建目录 89b69a7d-cc0b-428f-81dc-06fe1f283594,并在该目录下创建一个desc文件,内容如下:
如果是虚拟机:
{"uuid":"89b69a7d-cc0b-428f-81dc-06fe1f283594","hypervisor":"kvm"}
如果是容器主机:
{"uuid":"89b69a7d-cc0b-428f-81dc-06fe1f283594","hypervisor":"pod"}
最后,重启该宿主机上的host服务,重启完成后,该虚拟机的状态将变为ready。