突然停機應變措施
compute node 突然停機: 開啟它
單一 controller node 突然停機: 開啟它
複數的 controller node 突然停機: 找出最晚掛的,最先開
單一 controller node 損壞
重灌作業系統(如果作業系統有故障的話)
更新 inventory (下面動作與佈署 OpenStack 相同)
执行主机初始化配置:docker,ssh,
處理 networking interface等動作
- 執行
kolla-ansible -i multinode deploy
mariadb cluster 無法正常啟動
方法 一:
kolla-ansible -i multinode mariadb_recovery
方法 二:
將所有 controller 的 mariadb 和 haproxy 停止
sudo docker stop mariadb sudo docker stop haproxy
找出擁有最新資料的主機。在每一台電腦下下面指令,找出 log number 最大的主機。 172.23.103.1:4000/kolla/centos-source-mariadb:4.0.1 這個要換成該環境的 image。
sudo docker run --net=host --rm -e " KOLLA_CONFIG_STRATEGY=COPY_ALWAYS " -v /etc/kolla/mariadb:/var/lib/kolla/config_files -v mariadb:/var/lib/mysql -it 172.23.103.1:4000/kolla/centos-source-mariadb:4.0.1 mysqld --wsrep-recover
在擁有最大 log number 的主機做下面指令,該主機為 master。 進入 mariadb container,以下指令都在此 container 內部執行。
sudo docker run --net=host --rm -e " KOLLA_CONFIG_STRATEGY=COPY_ALWAYS " -v /etc/kolla/mariadb:/var/lib/kolla/config_files -v mariadb:/var/lib/mysql -it --name mariadb_recovery 172.23.103.1:4000/kolla/centos-source-mariadb:4.0.1 /bin/bash
初始化 mariadb 設定檔
kolla_start
若上面指令無法持續執行(指無法回到bash),則執行下面步驟,否則就跳過
啟動 database server
mysqld_safe --wsrep_cluster_address=gcomm://
若上面指令無法持續執行(指無法回到bash),則執行下面步驟,否則就跳過
編輯 /var/lib/mysql/grastate.dat 檔案,將 safe_to_bootstrap 改成 1
啟動 database server。此時這指令會持續執行。
mysqld_safe --wsrep_cluster_address=gcomm://
在其他 controller node 執行下面動作
docker start mariadb
若上面指令會執行失敗,則將 /var/lib/mysql/grastate.dat 改成 1。用下面的指令編輯。
sudo docker run -u root --net=host --rm -e " KOLLA_CONFIG_STRATEGY=COPY_ALWAYS " -v /etc/kolla/mariadb:/var/lib/kolla/config_files -v mariadb:/var/lib/mysql -it 172.23.103.1:4000/kolla/centos-source-mariadb:4.0.1 vi /var/lib/mysql/grastate.dat
將剛剛在 master (用另外一個連線) ,停止你剛剛自己啟動的 container。
sudo docker stop mariadb_recovery sudo docker rm mariadb_recovery
啟動原本的 container。
sudo docker start mariadb sudo docker start haproxy
啟動其他主機的 haproxy
sudo docker start haproxy
galera cluster 發生此錯誤 this member has applied more events than the primary component.Data loss is possible. Aborting.
解決辦法
cd
/var/lib/mysql
rm grastate.dat ib_log
*
-f
更新 haproxy 憑證
將新的憑證檔 ( haproxy.pem) 放到所有 deploy node 的 /etc/kolla/certificates 下
重新跑 reconfigure
ka reconfigure