데이터 센터를 폐기해야 하는 경우가 있습니다. 예를 들어 운영체제를 업그레이드하는 경우 새 데이터 센터에 새 운영체제를 설치한 후 이전 데이터 센터를 폐기해야 합니다. 다음 섹션에서는 12노드 클러스터 설치에 데이터 센터가 두 개(dc-1, dc-2) 있는 데이터 센터 폐쇄의 예를 보여줍니다.
- dc-1은 폐쇄할 데이터 센터입니다.
- dc-2는 폐기 절차에 사용되는 두 번째 데이터 센터입니다.
운영체제를 업그레이드하는 경우 dc-2는 새 버전의 운영체제 (OS)를 설치한 데이터 센터일 수 있습니다. 하지만 데이터 센터를 폐기하는 데 새 OS를 설치할 필요는 없습니다.
데이터 센터 폐기 전 고려사항
데이터 센터를 폐쇄할 때는 다음 사항을 고려하세요.
- 폐쇄되는 데이터 센터로 향하는 모든 런타임 및 관리 트래픽을 차단하고 다른 데이터 센터로 리디렉션합니다.
- 데이터 센터를 폐쇄하면 Apigee 클러스터의 용량이 줄어듭니다. 이를 보완하려면 폐기 후 나머지 데이터 센터의 용량을 늘리거나 데이터 센터를 추가하는 것이 좋습니다.
- 폐기 프로세스 중에 폐기되는 데이터 센터에 설치된 분석 구성요소에 따라 분석 데이터가 손실될 수 있습니다. 자세한 내용은 Qpid 노드 추가 또는 삭제를 참고하세요.
- 데이터 센터를 폐쇄하기 전에 모든 데이터 센터에서 모든 구성요소가 구성되는 방식, 특히 SymasLDAP, ZooKeeper, Cassandra, Postgres 서버를 이해해야 합니다. 모든 구성요소와 해당 구성을 백업해야 합니다.
시작하기 전에
- 관리 서버: 모든 폐기 단계는 관리 서버에 크게 의존합니다. 사용 가능한 관리 서버가 하나만 있는 경우 dc-1의 관리 서버를 폐기하기 전에 dc-1이 아닌 데이터 센터에 새 관리 서버 구성요소를 설치하고 관리 서버 중 하나가 항상 사용 가능한지 확인하는 것이 좋습니다.
- 라우터: 라우터를 폐기하기 전에 포트 15999를 차단하여 라우터의 도달 가능성을 사용 중지합니다. 폐기되는 라우터로 런타임 트래픽이 전송되지 않는지 확인합니다.
- Cassandra 및 ZooKeeper:
아래 섹션에서는 데이터 센터가 두 개인 설정에서 dc-1을 폐기하는 방법을 설명합니다.
데이터 센터가 3개 이상인 경우 폐기되는 노드(이 경우 dc-1)에 대한 모든 참조를 나머지 모든 데이터 센터의 모든 자동 구성 파일에서 삭제해야 합니다. 사용 중단할 Cassandra 노드의 경우
CASS_HOSTS
에서 해당 호스트를 삭제합니다. 나머지 Cassandra 노드는CASS_HOSTS
의 원래 순서대로 유지되어야 합니다. - Postgres: Postgres 마스터를 폐기하는 경우 사용 가능한 대기 노드 중 하나를 새 Postgres 마스터로 승격해야 합니다. QPID 서버는 대기열에 버퍼를 유지하지만 Postgres 마스터를 장시간 사용할 수 없으면 분석 데이터가 손실될 위험이 있습니다.
기본 요건
구성요소를 폐기하기 전에 모든 노드를 완전히 백업하는 것이 좋습니다. 현재 버전의 Edge에 해당하는 절차를 사용하여 백업을 실행합니다. 백업에 대한 자세한 내용은 백업 및 복원을 참고하세요.
- 다음 명령어를 사용하여 폐기하기 전에 Edge가 실행 중인지 확인합니다.
/opt/apigee/apigee-service/bin/apigee-all status
- 현재 폐기 중인 데이터 센터에 런타임 트래픽이 도착하지 않는지 확인합니다.
구성요소 서비스 종료 순서
여러 노드에 프라이빗 클라우드용 Edge를 설치하는 경우 다음 순서로 해당 노드에서 Edge 구성요소를 폐기해야 합니다.
- Edge UI (edge-ui)
- 관리 서버 (edge-management-server)
- Symas LDAP (apigee-openldap)
- 라우터 (에지 라우터)
- 메시지 프로세서 (edge-message-processor)
- Qpid 서버 및 Qpidd (edge-qpid-server 및 apigee-qpidd)
- Postgres 및 PostgreSQL 데이터베이스 (edge-postgres-server 및 apigee-postgresql)
- ZooKeeper (apigee-zookeeper)
- Cassandra (apigee-cassandra)
다음 섹션에서는 각 구성요소를 폐기하는 방법을 설명합니다.
Edge UI
dc-1의 Edge UI 구성요소를 중지하고 제거하려면 다음 명령어를 입력합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-ui stop
/opt/apigee/apigee-service/bin/apigee-service edge-ui uninstall
관리 서버
dc-1에서 관리 서버를 폐기하려면 다음 단계를 따르세요.
- dc-1에서 관리 서버를 중지합니다.
apigee-service edge-management-server stop
- dc-1에 등록된 관리 서버의 UUID를 찾습니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X GET “http://{MS_IP}:8080/v1/servers?pod=central®ion=dc-1&type=management-server”
- 서버 유형을 등록 해제합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=management-server®ion=dc-1&pod=central&uuid=UUID&action=remove"
- 서버를 삭제합니다. 참고: 이 서버에 다른 구성요소도 설치되어 있는 경우 UUID를 삭제하기 전에 먼저 모든 구성요소를 등록 해제하세요.
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/{UUID}
- dc-1에서 관리 서버 구성요소를 제거합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall
Symas LDAP
이 섹션에서는 dc-1에서 SymasLDAP를 사용 중단하는 방법을 설명합니다.
참고: 데이터 센터가 3개 이상인 경우 아래의 데이터 센터가 3개 이상인 설정을 참고하세요.
dc-1에서 SymasLDAP를 폐기하려면 다음 단계를 따르세요.
- 백업 방법의 단계에 따라 dc-1 SymasLDAP 노드를 백업합니다.
두 데이터 센터(dc-1 및 dc-2) 간의 데이터 복제를 중단하려면 두 데이터 센터에서 다음 단계를 실행하세요.
- 현재 상태를 확인합니다.
/opt/symas/bin/ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {credentials} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl
출력은 다음과 유사해야 합니다.
olcSyncrepl: {0}rid=001 provider=ldap://{HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={credentials} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1
- 다음 명령어가 포함된
break_repl.ldif
파일을 만듭니다.dn: olcDatabase={2}mdb,cn=config changetype: modify delete: olcSyncRepl dn: olcDatabase={2}mdb,cn=config changetype: modify delete: olcMirrorMode
ldapmodify
명령어를 실행합니다./opt/symas/bin/ldapmodify -x -w {credentials} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f path/to/file/break_repl.ldif
출력은 다음과 유사해야 합니다.
modifying entry "olcDatabase={2}mdb,cn=config" modifying entry "olcDatabase={2}mdb,cn=config"
- 현재 상태를 확인합니다.
dc-2 LDAP에 항목을 만들어 dc-1의 LDAP에 표시되지 않는지 확인하여 dc-2가 더 이상 dc-1에 복제되지 않는지 확인할 수 있습니다.
원하는 경우 아래 단계에 따라 dc-2 SymasLDAP 노드에서 읽기 전용 사용자를 만든 다음 사용자가 복제되었는지 확인할 수 있습니다. 사용자가 삭제됩니다.
- 다음 콘텐츠로 dc-2에
readonly-user.ldif
파일을 만듭니다.dn: uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com objectClass: organizationalPerson objectClass: person objectClass: inetOrgPerson objectClass: top cn: readonly-user sn: readonly-user userPassword: {testPassword}
- dc-2에서 `ldapadd` 명령어를 사용하여 사용자를 추가합니다.
/opt/symas/bin/ldapadd -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" -f path/to/file/readonly-user.ldif
출력은 다음과 비슷합니다.
adding new entry "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
- dc-1에서 사용자를 검색하여 사용자가 복제되지 않았는지 확인합니다. 사용자가 dc-1에 없는 경우 두 LDAP가 더 이상 복제되지 않는다는 것을 확인할 수 있습니다.
/opt/symas/bin/ldapsearch -H ldap://{HOST}:{PORT} -x -w {credentials} -D "cn=manager,dc=apigee,dc=com" -b uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com -LLL
출력은 다음과 유사해야 합니다.
No such object (32) Matched DN: ou=users,ou=global,dc=apigee,dc=com
- 이전에 추가한 읽기 전용 사용자를 삭제합니다.
/opt/symas/bin/ldapdelete -v -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
- 다음 콘텐츠로 dc-2에
- dc-1에서 SymasLDAP 중지:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
- dc-1에서 SymasLDAP 구성요소를 제거합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall
라우터
이 섹션에서는 라우터를 사용 중단하는 방법을 설명합니다. 라우터 삭제에 관한 자세한 내용은 서버 삭제를 참고하세요.
다음 단계에서는 dc-1에서 라우터를 폐기합니다. dc-1에 구성된 라우터 노드가 여러 개 있는 경우 모든 라우터 노드에서 한 번에 단계를 실행합니다.
참고: 여기서는 라우터의 상태 점검 포트 15999가 부하 분산기에 구성되어 있고 포트 15999를 차단하면 라우터에 연결할 수 없다고 가정합니다. 포트를 차단하려면 루트 액세스 권한이 필요할 수 있습니다.
라우터를 폐기하려면 다음 단계를 따르세요.
상태 점검 포트인 포트 15999를 차단하여 라우터의 연결 가능성을 사용 중지합니다. 이 데이터 센터에서 런타임 트래픽이 차단되었는지 확인합니다.
iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
라우터에 연결할 수 있는지 확인합니다.
curl -vvv -X GET http://{ROUTER_IP}:15999/v1/servers/self/reachable
출력은 다음과 유사해야 합니다.
About to connect() to 10.126.0.160 port 15999 (#0) Trying 10.126.0.160... Connection refused Failed connect to 10.126.0.160:15999; Connection refused Closing connection 0 curl: (7) Failed connect to 10.126.0.160:15999; Connection refused
- UUID 가져오기에 설명된 대로 라우터의 UUID를 가져옵니다.
- 라우터를 중지합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-router stop
- 다음 명령어를 사용하여 조직에서 사용 가능한 게이트웨이 포드를 나열합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"
포드 정보를 참고하세요.
- 서버 유형을 등록 해제합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=router®ion=dc-1&pod=gateway-1&uuid=UUID&action=remove"
- 서버를 등록 취소합니다.
curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID
edge-router
제거: 서버 삭제하기를 참고하세요./opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
- 차단된 포트 15999를 사용 설정하려면
iptables
규칙을 플러시합니다.iptables -F
메시지 프로세서
이 섹션에서는 dc-1에서 메시지 프로세서를 폐기하는 방법을 설명합니다. 메시지 프로세서를 삭제하는 방법에 관한 자세한 내용은 서버 삭제를 참고하세요.
dc-1에 12노드 클러스터 설치가 있다고 가정하므로 dc-1에 구성된 메시지 프로세서 노드가 두 개 있습니다. 두 노드에서 다음 명령어를 실행합니다.
- UUID 가져오기에 설명된 대로 메시지 프로세서의 UUID를 가져옵니다.
- 메시지 프로세서를 중지합니다.
apigee-service edge-message-processor stop
- 서버 유형을 등록 해제합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor®ion=dc-1&pod=gateway-1&uuid=UUID&action=remove"
- 메시지 프로세서에서 환경을 연결 해제합니다.
curl -H "Content-Type:application/x-www-form-urlencoded" <AdminEmailID>:'<AdminPassword>’ \ -X POST http://{MS_IP}:8080/v1/organizations/{ORG}/environments/{ENV}/servers \ -d "action=remove&uuid=UUID"
- 서버 유형을 등록 해제합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor®ion=dc-1&pod=gateway-1&uuid=UUID&action=remove"
- 메시지 프로세서를 제거합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
- 서버를 등록 취소합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
Qpid 서버 및 Qpidd
이 섹션에서는 Qpid 서버 (edge-qpid-server
)와 Qpidd(apigee-qpidd
)를 폐기하는 방법을 설명합니다. dc-1에 구성된 Qpid 노드가 두 개이므로 두 노드 모두에 다음 단계를 실행해야 합니다.
- UUID 가져오기에 설명된 대로 Qpidd의 UUID를 가져옵니다.
edge-qpid-server
및apigee-qpidd
를 중지합니다./opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
/opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
- 애널리틱스 및 소비자 그룹 목록을 가져옵니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax
- 소비자 그룹에서 Qpid를 삭제합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -H "Content-Type: application/json" -X DELETE \ "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/consumer-groups/{consumer_group}/consumers/{QPID_UUID}"
- 분석 그룹에서 Qpid를 삭제합니다.
curl -v -u <AdminEmailID>:'<AdminPassword>' \ -X DELETE "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/servers?uuid={QPID_UUID}&type=qpid-server"
- Edge 설치에서 Qpid 서버를 등록 해제합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \ -d "type=qpid-server®ion=dc-1&pod=central&uuid={QPID_UUID}&action=remove"
- Edge 설치에서 Qpid 서버를 삭제합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
- 모든 노드에서 모든 edge-qpid-server 구성요소를 다시 시작하여 변경사항이 이러한 구성요소에 적용되도록 합니다.
$ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server wait_for_ready
- edge-qpid-server 및 apigee-qpidd를 제거합니다.
$ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall $ /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall
Postgres 및 Postgresql
폐쇄하는 데이터 센터에 Postgres 마스터 또는 Postgres 스탠바이가 있을 수 있습니다. 다음 섹션에서는 이를 폐기하는 방법을 설명합니다.
Postgres 마스터 사용 중단
참고: Postgres 마스터를 폐기하는 경우 사용 가능한 대기 노드 중 하나를 새 Postgres 마스터로 승격해야 합니다. QPID 대기열이 데이터를 버퍼링하는 동안 Postgres 마스터를 장시간 사용할 수 없으면 분석 데이터가 손실될 수 있습니다.
Postgres 마스터를 폐기하려면 다음 단계를 따르세요.
- 다음 링크의 안내에 따라 dc-1 Postgres 마스터 노드를 백업합니다.
- UUID 가져오기에 설명된 대로 Postgres 서버의 UUID를 가져옵니다.
- dc-1에서 현재 마스터의
edge-postgres-server
및apigee-postgresql
를 중지합니다./opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
- dc-2의 대기 노드에서 다음 명령어를 입력하여 마스터 노드로 만듭니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql promote-standby-to-master <IP of OLD Progress master>
참고: 대기 Postgres 노드가 두 개 이상인 경우 새 마스터에 호스트 항목을 추가하고 사용 가능한 모든 Postgres 대기 노드의 복제 설정을 업데이트해야 합니다.
새 Postgres 마스터에 호스트 항목을 추가하려면 아래의 적절한 섹션에 있는 단계를 따르세요.
대기 노드가 하나만 남은 경우
예를 들어 서비스 해제 전에 구성된 Postgres 노드가 3개 있었다고 가정해 보겠습니다. 기존 마스터를 폐기하고 남아 있는 postgres 대기 노드 중 하나를 마스터로 승격했습니다. 다음 단계에 따라 나머지 대기 노드를 구성합니다.
- 새 마스터에서 구성 파일을 수정하여 다음을 설정합니다.
PG_MASTER=IP_or_DNS_of_new_PG_MASTER PG_STANDBY=IP_or_DNS_of_PG_STANDBY
- 새 마스터에서 복제를 사용 설정합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
대기 노드가 두 개 이상 남아 있는 경우
/opt/apigee/customer/application/postgresql.properties
에 다음 구성을 추가합니다.conf_pg_hba_replication.connection=host replication apigee standby_1_ip/32 trust \n host replication apigee standby_2_ip/32 trust
- /opt/apigee/customer/application/postgresql.properties 파일이 apigee 사용자가 소유하는지 확인합니다.
chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
apigee-postgresql
를 다시 시작합니다.apigee-service apigee-postgresql restart
- 구성 파일
/opt/silent.conf
를 수정하고 새 Postgres 마스터의 IP 주소로PG_MASTER
필드를 업데이트합니다. - 다음 명령어를 사용하여 이전 Postgres 데이터를 삭제합니다.
rm -rf /opt/apigee/data/apigee-postgresql/
- 대기 노드에서 복제를 설정합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- dc-2에서 다음 명령어를 입력하여 Postgres 마스터가 올바르게 설정되었는지 확인합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
- 분석 그룹 및 소비자 그룹에서 Postgresql 서버를 삭제하고 추가합니다.
- 분석 그룹에서 Postgres 서버 삭제의 안내에 따라 분석 그룹에서 이전 Postgres 서버를 삭제합니다.
- 분석 그룹에 기존 Postgres 서버 추가의 안내에 따라 분석 그룹에 새 Postgres 서버를 추가합니다.
- dc-1에서 이전 postgres 서버를 등록 해제합니다.
curl -u <AdminEmailID>:<AdminPassword> -X POST http://{MS_IP}:8080/v1/servers \ -d "type=postgres-server®ion=dc-1&pod=analytics&uuid=UUID&action=remove"
- dc-1에서 이전 postgres 서버를 삭제합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
- 이제 이전 Postgres 마스터를 안전하게 폐기할 수 있습니다.
edge-postgres-server
및apigee-postgresql
을 제거합니다./opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall
대기 노드에서 복제 설정을 업데이트하려면 다음 단계를 따르세요.
Postgres 대기 서버 사용 중단
참고: 12노드 클러스터 설치 문서에서는 dc-1 postgresql 노드가 마스터로 표시되지만, 편의상 이 섹션에서는 dc-1 postgresql 노드가 스탠바이이고 dc-2 postgresql 노드가 마스터라고 가정합니다.
Postgres 스탠바이를 폐기하려면 다음 단계를 따르세요.
- UUID 가져오기의 안내에 따라 Postgres 서버의 UUID를 가져옵니다.
- dc-1의 현재 대기 노드에서
apigee-postgresql
를 중지합니다./opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
- 분석 그룹 및 소비자 그룹에서 Postgresql 서버를 삭제하고 추가합니다.
- 분석 그룹에서 Postgres 서버 삭제의 안내에 따라 분석 그룹에서 이전 Postgres 서버를 삭제합니다.
- 분석 그룹에 기존 Postgres 서버 추가의 안내에 따라 분석 그룹에 새 Postgres 서버를 추가합니다.
- dc-1에서 이전 postgres 서버를 등록 해제합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \ -d "type=postgres-server®ion=dc-1&pod=analytics&uuid=UUID&action=remove"
- dc-1에서 이전 postgres 서버를 삭제합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
- 이제 이전 Postgres 마스터를 안전하게 폐기할 수 있습니다.
edge-postgres-server
및apigee-postgresql
을 제거합니다./opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall
ZooKeeper 및 Cassandra
이 섹션에서는 2개 데이터 센터 설정에서 ZooKeeper 및 Cassandra 서버를 폐기하는 방법을 설명합니다.
데이터 센터가 3개 이상인 경우 폐기되는 노드(이 경우 dc-1)에 대한 모든 참조를 나머지 모든 데이터 센터의 모든 자동 구성 파일에서 삭제해야 합니다. 사용 중단할 Cassandra 노드의 경우
CASS_HOSTS
에서 해당 호스트를 삭제합니다. 나머지 Cassandra 노드는CASS_HOSTS
의 원래 순서대로 유지되어야 합니다.ZooKeeper 참고: ZooKeeper 앙상블이 계속 작동하도록 구성 파일에서
ZK_HOST
속성을 수정하는 동안 유권자 노드의 쿼럼을 유지해야 합니다. 구성에서 유권자 노드의 수가 홀수여야 합니다. 자세한 내용은 Apache ZooKeeper 유지관리 작업을 참고하세요.ZooKeeper 및 Cassandra 서버를 사용 중단하려면 다음 단계를 따르세요.
- 다음 링크의 안내에 따라 dc-1 Cassandra 및 ZooKeeper 노드를 백업합니다.
Cassandra 노드가 사용 중지될 데이터 센터에 있는 ZooKeeper 및 Cassandra 서버의 UUID를 나열합니다.
apigee-adminapi.sh servers list -r dc-1 -p central -t application-datastore --admin <AdminEmailID> --pwd '<AdminPassword>' --host localhost
- 서버 유형을 등록 해제합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MS_IP:8080/v1/servers -d "type=cache-datastore&type=user-settings-datastore&type=scheduler-datastore&type=audit-datastore&type=apimodel-datastore&type=application-datastore&type=edgenotification-datastore&type=identityzone-datastore&type=user-settings-datastore&type=auth-datastore®ion=dc-1&pod=central&uuid=UUID&action=remove"
- 서버를 등록 취소합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
ZK_HOSTS
및CASS_HOSTS
에서 사용 중지된 노드의 IP가 삭제된 구성 파일을 업데이트합니다.예: dc-1에
$IP1 $IP2 $IP3
IP가 있고 dc-2에$IP4 $IP5 $IP6
IP가 있으며 dc-1을 폐기한다고 가정해 보겠습니다. 그런 다음 구성 파일에서 IP$IP1 $IP2 $IP3
를 삭제해야 합니다.- 기존 구성 파일 항목:
ZK_HOSTS="$IP1 $IP2 $IP3 $IP4 $IP5 $IP6" CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1, $IP4:2,1 $IP5:2,1 $IP6:2,1”
- 새 구성 파일 항목:
ZK_HOSTS="$IP4 $IP5 $IP6" CASS_HOSTS="$IP4:2,1 $IP5:2,1 $IP6:2,1"
- 기존 구성 파일 항목:
- 삭제된 폐기 노드의 IP로 자동 구성 파일 (e단계에서 수정됨)을 업데이트하고 관리 서버를 호스팅하는 모든 노드에서 관리 서버 프로필을 실행합니다.
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
- 삭제된 서비스 해제 노드의 IP로 구성 파일을 업데이트하고 모든 라우터 및 메시지 프로세서 노드에서 MP/RMP 프로필을 실행합니다.
- Edge 라우터와 메시지 프로세서가 동일한 노드에 구성된 경우 다음을 입력합니다.
/opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
Edge 라우터와 메시지 프로세서가 별도의 노드에 구성된 경우 다음을 입력합니다.
라우터의 경우:
/opt/apigee/apigee-setup/bin/setup.sh -p r -f updated_config_file
메시지 프로세서의 경우:
/opt/apigee/apigee-setup/bin/setup.sh -p mp -f updated_config_file
- Edge 라우터와 메시지 프로세서가 동일한 노드에 구성된 경우 다음을 입력합니다.
- 응답 파일에서 서비스 해제된 노드의 IP를 삭제하여 모든 Qpid 노드를 재구성합니다.
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
- 응답 파일에서 서비스 해제된 노드의 IP를 삭제하여 모든 Postgres 노드를 재구성합니다.
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f updated_config_file
system_auth
키스페이스를 변경합니다. 기존 Cassandra 노드에서 Cassandra 인증을 사용 설정한 경우 다음 명령어를 실행하여system_auth
키스페이스의 복제 인수를 업데이트합니다.ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-2': '3'};
이 명령어는 복제 요소를
'3'
로 설정하여 클러스터에 Cassandra 노드가 3개 있음을 나타냅니다. 필요에 따라 이 값을 수정합니다.이 단계를 완료한 후에는 Cassandra 토폴로지에 키스페이스에
dc-1
이 없어야 합니다.- dc-1에서 Cassandra 노드를 하나씩 사용 중단합니다.
Cassandra 노드를 사용 중단하려면 다음 명령어를 입력합니다.
/opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission
- 다음 명령어 중 하나를 사용하여 dc-1에서 Cassandra 노드의 연결을 확인합니다.
/opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'
또는 폐기된 노드에서 실행할 보조 확인 명령어:
/opt/apigee/apigee-cassandra/bin/nodetool netstats
위 명령어는 다음을 반환해야 합니다.
Mode: DECOMMISSIONED
- dc-2의 모든 Cassandra 및 ZooKeeper 노드에 대해 DS 프로필을 실행합니다.
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
- dc-1에서
apigee-cassandra
및apigee-zookeeper
를 중지합니다.apigee-service apigee-cassandra stop
apigee-service apigee-zookeeper stop
- dc-1에서
apigee-cassandra
및apigee-zookeeper
을 제거합니다.apigee-service apigee-cassandra uninstall
apigee-service apigee-zookeeper uninstall
dc-1에서 바인딩 삭제
dc-1에서 바인딩을 삭제하려면 다음 단계를 따르세요.
- dc-1에서 바인딩을 삭제합니다.
- 조직에서 사용 가능한 모든 포드를 나열합니다.
curl -v -u <AdminEmailID>:'<AdminPassword>' -X GET "http://MS_IP:8080/v1/o/ORG/pods"
- 모든 바인딩이 삭제되었는지 확인하려면 포드와 연결된 서버의 UUID를 가져옵니다.
curl -v -u <AdminEmailID>:'<AdminPassword>' \ -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"
이 명령어에서 UUID가 반환되지 않으면 이전 단계에서 모든 바인딩이 삭제된 것이므로 다음 단계를 건너뛰어도 됩니다. 그렇지 않으면 다음 단계를 실행합니다.
- 이전 단계에서 가져온 UUID의 모든 서버 바인딩을 삭제합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
- 포드에서 조직 연결 해제:
curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/o/ORG/pods" -d "action=remove®ion=dc-1&pod=gateway-1" -H "Content-Type: application/x-www-form-urlencoded" -X POST
- 조직에서 사용 가능한 모든 포드를 나열합니다.
- 포드를 삭제합니다.
curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
- 리전을 삭제합니다.
curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/regions/dc-1" -X DELETE
이제 dc-1의 서비스 해제가 완료되었습니다.
부록
문제 해결
이전 단계를 수행한 후에도 일부 포드에 서버가 남아 있는 경우 다음 단계에 따라 서버를 등록 해제하고 삭제하세요. 참고: 필요에 따라 유형과 포드를 변경하세요.
- 다음 명령어를 사용하여 UUID를 가져옵니다.
apigee-adminapi.sh servers list -r dc-1 -p POD -t --admin <AdminEmailID> --pwd '<AdminPassword>’ --host localhost
- 서버 유형을 등록 해제합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MP_IP:8080/v1/servers -d "type=TYPE=REGION=dc-1&pod=POD&uuid=UUID&action=remove"
- 서버를 하나씩 삭제합니다.
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MP_IP:8080/v1/servers/UUID
유효성 검사
다음 명령어를 사용하여 폐기를 검증할 수 있습니다.
관리 서버
- 모든 지역의 관리 서버에서 다음 명령어를 실행합니다.
curl -v -u <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=central®ion=dc-1
curl -v -u <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=gateway®ion=dc-1
curl -v -u <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=analytics®ion=dc-1
- 모든 구성요소에서 다음 명령어를 실행하여 모든 관리 포트의 포트 요구사항을 확인합니다.
curl -v http://MS_IP:8080/v1/servers/self
- 분석 그룹을 확인합니다.
curl -v -u <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/o/ORG/e/ENV/provisioning/axstatus
curl -v -u <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/analytics/groups/ax
-
모든 Cassandra 노드에서 다음을 입력합니다.
/opt/apigee/apigee-cassandra/bin/nodetool -h <host> statusthrift
이렇게 하면 해당 노드의
running
또는not running
상태가 반환됩니다. -
한 노드에서 다음을 입력합니다.
/opt/apigee/apigee-cassandra/bin/nodetool -h <host> ring
/opt/apigee/apigee-cassandra/bin/nodetool -h <host> status
위 명령어는 활성 데이터 센터 정보를 반환합니다.
-
ZooKeeper 노드에서 먼저 다음을 입력합니다.
echo ruok | nc <host> 2181
이 명령어는
imok
를 반환합니다.다음을 입력합니다.
echo stat | nc <host> 2181 | grep Mode
위 명령어에서 반환된
Mode
값은observer
,leader
,follower
중 하나입니다. -
한 ZooKeeper 노드에서 다음을 실행합니다.
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt
-
Postgres 마스터 노드에서 다음을 실행합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
응답에 노드가 마스터라고 표시되는지 확인합니다.
-
대기 노드에서 다음을 실행합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
응답에서 노드가 대기 상태임을 확인합니다.
-
다음 명령어를 사용하여 PostgreSQL 데이터베이스에 로그인합니다.
psql -h localhost -d apigee -U postgres
메시지가 표시되면
postgres
사용자의 비밀번호 (기본값:postgres
)를 입력합니다.그런 다음 다음 쿼리를 실행하여 최대
client_received_start_timestamp
을 확인합니다.SELECT max(client_received_start_timestamp) FROM "analytics"."$org.$env.fact" LIMIT 1;
Cassandra/ZooKeeper 노드
로그
구성요소의 로그를 확인하여 오류가 없는지 확인합니다.
- 새 마스터에서 구성 파일을 수정하여 다음을 설정합니다.