Mercuryのバックアップとリストア

サービスの停止と削除

全てのサービスを停止してください。

Mercuryサービスを取得します。

既存のサービスを削除します。

kubectl get svc -n component --no-headers=true | awk '{print $1}' | xargs kubectl delete svc -n component

AFDサービスを取得します。

該当するサービスを削除します。

kubectl get svc --no-headers=true | grep alert-feature-db | awk '{print $1}' | xargs kubectl delete svc

mercury-work-01 ansible_host=10.0.100.4の場合、下記のコマンドで削除を実施します。

$ kubectl delete -f /etc/kubernetes/components/minio/default/service.yaml $ kubectl delete -f /etc/kubernetes/components/cassandra/alert/service.yaml $ kubectl delete svc engine-alert-feature-db-proxy $ kubectl delete svc engine-alert-feature-db-worker-1

データ

Cassandra

cassandra pvcを取得します。

3列目の出力を参照してpvを取得します。

kubectl get pv local-pv-a7a94bfe -o=jsonpath='{.spec.nodeAffinity.required.nodeSelectorTerms[0].matchExpressions[0].values[]}' link-pro-23-cv-host-02-10.0.100.8

ホストlink-pro-23-cv-host-02にローカルpvが保存されています。ipアドレスは10.0.100.8

ssh 10.0.100.8

mkdir -p /mnt/backup/cassandra cp -r /mnt/locals/cassandra/alert/volume1 /mnt/backup/cassandra

Minio

MNO PVCとPVを取得します。

ssh 10.0.100.9

mkdir -p /mnt/backup/minio cp -r /mnt/locals/minio/default /mnt/backup/minio

AFD

AFD PVCとPVを取得します。

ssh 10.0.100.8

mkdir -p /mnt/backup/afd cp -r /mnt/locals/afd/volume0 /mnt/backup/afd

新たなサーバでリストア

新たなmercuryの新たなマスターノードで

私たちの場合mercury-work-01 ansible_host=10.0.100.13で下記の操作から実施します。

$ kubectl delete -f /etc/kubernetes/components/minio/default/service.yml $ kubectl delete -f /etc/kubernetes/components/cassandra/alert/service.yml $ kubectl delete svc engine-alert-feature-db-proxy $ kubectl delete svc engine-alert-feature-db-worker-1

Cassandra

新たな volume0-cassandra-alert-0 サーバを取得します。

kubectl get pvc -n componet | minio| awk '{print $3}' local-pv-dfs04x4x kubectl get pv local-pv-dfs04x4x -o=jsonpath='{.spec.nodeAffinity.required.nodeSelectorTerms[0].matchExpressions[0].values[]}' link-pro-23-cv-host-04-10.0.100.13 ssh 10.0.100.13 rm -rf /mnt/locals/cassandra/alert/volume0

RSYNC フォルダー

ssh 10.0.100.8 cd /mnt/backup/cassandra rsync -avzP volume0 ubuntu@10.0.100.13:/mnt/locals/cassandra/alert/

volume0-cassandra-alert-1/volume0-cassandra-alert-2/volume1-cassandra-alert-0/volume1-cassandra-alert-1/volume1-cassandra-alert-2を繰り返します

Minio

kubectl get pvc -n componet | minio | awk '{print $3}' local-pv-gj04x4xd kubectl get pv local-pv-gj04x4xd -o=jsonpath='{.spec.nodeAffinity.required.nodeSelectorTerms[0].matchExpressions[0].values[]}' link-pro-23-cv-host-04-10.0.100.13 ssh 10.0.100.13 rm -rf /mnt/locals/minio/default

復元

ssh 10.0.100.8 cd /mnt/backup/minio rsync -avzP volume0 ubuntu@10.0.100.13:/mnt/locals/minio/default

AFD

kubectl get pvc | alert-feature-db | awk '{print $3}' local-pv-cfgx4xd kubectl get pv local-pv-cfgx4xd -o=jsonpath='{.spec.nodeAffinity.required.nodeSelectorTerms[0].matchExpressions[0].values[]}' link-pro-23-cv-host-04-10.0.100.13 ssh 10.0.100.13 rm -rf /mnt/locals/afd/

復元

ssh 10.0.100.8 cd /mnt/backup/afd rsync -avzP volume0 ubuntu@10.0.100.13:/mnt/locals/afd

サービスを追加します。

$ kubectl apply -f /etc/kubernetes/components/minio/default/service.yml $ kubectl apply -f /etc/kubernetes/components/cassandra/alert/service.yml $ kubectl apply -f /etc/kubernetes/apps/engine-alert-feature-db

podsを復元します。

$kubectl get pods -n component | grep cassandra-alert | awk '{print $1}' | xargs kubectl delete pods -n component $kubectl get pods -n component | grep minio| awk '{print $1}' | xargs kubectl delete pods -n component $kubectl get pods | grep engine-alert-feature-db | awk '{print $1}' xargs kubectl delete pods

(完了)

最終更新