Skip to content

OVN DB 恢复

马洪贞 edited this page Jun 3, 2021 · 9 revisions

当 ovn-central 节点无法启动或数据库受损,无法保证多数节点正常,可通过下面的步骤来恢复 ovn-central 集群。

  1. 记录当前 ovn-central 副本数量,并停止 ovn-central 避免新的数据库变更
kubectl scale deployment -n kube-system ovn-central --replicas=0
  1. 选择 NODE_IPS 中排第一的节点恢复数据库文件,如果第一个节点数据库文件已损坏,从其他机器 /etc/origin/ovn 下复制文件到第一台机器,执行下列命令恢复数据库文件。
docker run -it -v /etc/origin/ovn:/etc/ovn kubeovn/kube-ovn:v1.7.0 bash
cd /etc/ovn/
ovsdb-tool cluster-to-standalone ovnnb_db_standalone.db ovnnb_db.db
ovsdb-tool cluster-to-standalone ovnsb_db_standalone.db ovnsb_db.db
  1. 退出容器,移除每个 ovn-central 节点上的数据库文件
mv /etc/origin/ovn/ovnnb_db.db /tmp
mv /etc/origin/ovn/ovnsb_db.db /tmp
  1. 恢复第一个节点的数据库文件
mv /etc/origin/ovn/ovnnb_db_standalone.db /etc/origin/ovn/ovnnb_db.db
mv /etc/origin/ovn/ovnsb_db_standalone.db /etc/origin/ovn/ovnsb_db.db
  1. 启动 ovn-central 容器
kubectl scale deployment -n kube-system ovn-central --replicas={之前副本数}
Clone this wiki locally