이 문서에서는 Spanner Omni 배포를 유지관리하는 방법을 설명합니다. Spanner Omni 배포를 유지 관리하려면 클러스터 안정성과 일관성을 보장하기 위해 정기적인 상태 점검, 비정상 요소 폐기, 서버 노드 또는 결함이 있는 디스크 교체가 필요합니다. 데이터베이스 상태를 관리하면 계획되지 않은 서비스 중단으로부터 데이터베이스를 보호하고 기본 Paxos 컨센서스 그룹의 중복성을 유지할 수 있습니다.
유지보수를 수행하면 다음과 같은 이점이 있습니다.
고가용성 보장: 비정상 가상 머신 (VM) 또는 포드를 다시 프로비저닝하여 데이터베이스 서버 중복성을 유지합니다. 이렇게 하면 하드웨어에 장애가 발생해도 애플리케이션을 계속 실행할 수 있습니다.
데이터 안전 및 무결성 보호: 결함이 있는 디스크가 있는 노드를 폐기하여 저장소 장애가 데이터베이스의 다른 부분으로 확산되지 않도록 합니다. 또한 이렇게 하면 연결이 끊긴 서버가 충돌하는 업데이트를 기록하지 않습니다.
시작하기 전에
Kubernetes 배포에서 유지보수를 수행하기 전에 다음을 수행해야 합니다.
Spanner Omni 배포를 만듭니다. 자세한 내용은 Kubernetes에 배포 만들기 또는 VM에 배포 만들기를 참고하세요.
Spanner Omni CLI를 다운로드하고 설치합니다.
Kubernetes에 배포하려면 Helm을 설치하고 Helm 차트 구성을 만드세요.
서버 교체
시스템 또는 스토리지 오류를 해결하기 위해 배포에서 서버를 교체해야 할 수 있습니다.
루트 서버 교체
루트 서버를 교체하려면 환경에 해당하는 탭을 선택하세요.
Kubernetes
Kubernetes 배포에서 루트 서버를 바꾸려면 다음 단계를 수행하세요. 기존 Kubernetes 배포에 루트 서버를 추가하는 것은 지원되지 않지만 기존 루트 서버를 교체하여 복구할 수 없는 오류를 해결할 수 있습니다.
바꾸려는 서버를 삭제합니다.
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONE다음을 바꿉니다.
SERVER_ENDPOINT: 삭제할 서버 포드 엔드포인트입니다(SERVER.pod.NAMESPACE:PORT형식)(예:spanner-a-1.pod.spanner-ns:15000). 배포에서 서버 엔드포인트를 찾으려면spanner deployment servers list --zone=ZONE를 실행하여 배포 서버를 나열합니다.ZONE: 서버가 포함된 영역입니다(예:us-central1-a).
서버의 데이터 양에 따라 이 단계에 몇 분 정도 걸릴 수 있습니다. Spanner Omni는 이 서버의 데이터를 배포의 다른 서버로 재배치합니다. 다음 단계로 진행하기 전에 서버 삭제가 완료되었는지 확인합니다.
삭제 진행 상황을 추적하려면 서버 상태를 확인하세요.
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONE명령어가
NOT_FOUND오류를 반환하거나 서버가 더 이상 등록되지 않았음을 나타낼 때까지 기다립니다.서버를 호스팅하는 포드의 영구 볼륨 신청 (PVC)을 삭제합니다.
kubectl delete pvc DATA_VOLUME_NAME -n NAMESPACE다음을 바꿉니다.
DATA_VOLUME_NAME: 데이터 볼륨 이름입니다(예:data-volume-spanner-a-1). 데이터 볼륨 이름을 찾으려면kubectl get pvc -n NAMESPACE를 실행하여 네임스페이스의 PVC를 나열합니다.NAMESPACE: 배포의 네임스페이스입니다(예:spanner-ns).
Pod 삭제
kubectl delete pod POD_NAME -n NAMESPACEPOD_NAME을 삭제할 서버 포드의 이름(예:spanner-a-1)으로 바꿉니다.Kubernetes는 대체 포드에서 새 서버를 자동으로 시작하고 새 PVC를 연결합니다.
배포에 새 서버를 추가합니다.
spanner deployment servers create SERVER_ENDPOINT --zone=ZONE인수가 새 포드 엔드포인트 및 영역과 일치하는지 확인합니다(예:
spanner-a-1.pod.spanner-ns:15000을 엔드포인트로 사용하고us-central1-a을 영역으로 사용).
VM
VM 배포에서 루트 서버를 바꾸려면 다음 단계를 실행하세요.
바꾸려는 서버를 삭제합니다.
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONE다음을 바꿉니다.
SERVER_ENDPOINT: 서버 IP 주소 또는 호스트 이름 및 포트(예:spanner-vm-1.example.com:15000) 서버 엔드포인트를 찾으려면spanner deployment servers list --zone=ZONE를 실행하여 배포 서버를 나열합니다.ZONE: 서버가 포함된 영역입니다(예:us-central1-a).
서버의 데이터 양에 따라 이 단계에 몇 분 정도 걸릴 수 있습니다. Spanner Omni는 이 서버의 데이터를 배포의 다른 서버로 재배치합니다. 다음 단계로 진행하기 전에 서버 삭제가 완료되었는지 확인합니다.
삭제 진행 상황을 추적하려면 서버 상태를 확인하세요.
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONE명령어가
NOT_FOUND오류를 반환하거나 서버가 더 이상 등록되지 않았음을 나타낼 때까지 기다립니다.VM에 Spanner Omni 배포 만들기에 설명된 대로 깨끗한 스토리지로 서버를 다시 프로비저닝합니다.
spanner start \ --root \ --server-address=HOSTNAME \ --zone=ZONE \ --base-dir=BASE_DIR다음을 바꿉니다.
HOSTNAME: 새 VM의 확인 가능한 FQDN 또는 호스트 이름입니다(예:spanner-vm-1.example.com).ZONE: 대상 영역(예:us-central1-a)BASE_DIR: 데이터가 저장되는 경로입니다(예:./span-dir).
배포에 새 서버를 추가합니다.
spanner deployment servers create SERVER_ENDPOINT --zone=ZONE인수가 새 서버의 매개변수와 일치하는지 확인합니다(예:
spanner-vm-1.example.com:15000를 엔드포인트로 사용하고us-central1-a를 영역으로 사용).
루트가 아닌 서버 교체
루트가 아닌 서버를 교체하려면 환경에 해당하는 탭을 선택하세요.
Kubernetes
Kubernetes 배포에서 비루트 서버를 바꾸려면 다음 단계를 수행하세요.
바꾸려는 서버를 삭제합니다.
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONE다음을 바꿉니다.
SERVER_ENDPOINT: 삭제할 서버 포드 엔드포인트입니다(SERVER.pod.NAMESPACE:PORT형식)(예:spanner-a-4.pod.spanner-ns:15000). 배포에서 서버 엔드포인트를 찾으려면spanner deployment servers list --zone=ZONE를 실행하여 배포 서버를 나열합니다.ZONE: 서버가 포함된 영역입니다(예:us-central1-a).
서버의 데이터 양에 따라 이 단계에 몇 분 정도 걸릴 수 있습니다. Spanner Omni는 이 서버의 데이터를 배포의 다른 서버로 재배치합니다. 다음 단계로 진행하기 전에 서버 삭제가 완료되었는지 확인합니다.
삭제 진행 상황을 추적하려면 서버 상태를 확인하세요.
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONE명령어가
NOT_FOUND오류를 반환하거나 서버가 더 이상 등록되지 않았음을 나타낼 때까지 기다립니다.서버를 호스팅하는 포드의 영구 볼륨 신청 (PVC)을 삭제합니다.
kubectl delete pvc DATA_VOLUME_NAME -n NAMESPACE다음을 바꿉니다.
DATA_VOLUME_NAME: 데이터 볼륨 이름입니다(예:data-volume-spanner-a-4). 데이터 볼륨 이름을 찾으려면kubectl get pvc -n NAMESPACE를 실행하여 네임스페이스의 PVC를 나열합니다.NAMESPACE: 배포의 네임스페이스입니다(예:spanner-ns).
Pod 삭제
kubectl delete pod POD_NAME -n NAMESPACEPOD_NAME을 삭제할 서버 포드의 이름(예:spanner-a-4)으로 바꿉니다.Kubernetes는 대체 포드에서 새 서버를 자동으로 시작하고 새 PVC를 연결합니다. Spanner Omni는 새 비루트 서버를 배포에 자동으로 등록합니다.
VM
VM 배포에서 루트가 아닌 서버를 바꾸려면 다음 단계를 실행하세요.
바꾸려는 서버를 삭제합니다.
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONE다음을 바꿉니다.
SERVER_ENDPOINT: 서버 IP 주소 또는 호스트 이름 및 포트(예:spanner-vm-4.example.com:15000) 서버 엔드포인트를 찾으려면spanner deployment servers list --zone=ZONE를 실행하여 배포 서버를 나열합니다.ZONE: 서버가 포함된 영역입니다(예:us-central1-a).
서버의 데이터 양에 따라 이 단계에 몇 분 정도 걸릴 수 있습니다. Spanner Omni는 이 서버의 데이터를 배포의 다른 서버로 재배치합니다. 다음 단계로 진행하기 전에 서버 삭제가 완료되었는지 확인합니다.
삭제 진행 상황을 추적하려면 서버 상태를 확인하세요.
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONE명령어가
NOT_FOUND오류를 반환하거나 서버가 더 이상 등록되지 않았음을 나타낼 때까지 기다립니다.비루트 서버 추가에 설명된 대로 깨끗한 저장소로 비루트 서버를 다시 프로비저닝합니다. 서버가 배포에 자동으로 추가됩니다.