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
(完了)