고가용성 구성
코어 셀을 효과적으로 운영하려면 고가용성을 위해 CN을 구성하는 것이 중요합니다. 권장되는 고가용성 체계는 코어 셀이 물리적 인프라에 배포되는지 클라우드 인프라에 배포되는지에 따라 달라집니다.
액티브 대기 (베어메탈에 권장)
이 구성에서는 두 개의 CN 노드가 액티브-스탠바이 구성으로 설치됩니다. 정상 작동 중에는 활성 노드가 블록 생성에 참여하고 대기 노드는 네트워크에서 체인 데이터만 동기화합니다. 이 구성은 활성 노드에 장애가 발생할 경우 대기 CN 노드가 체인 데이터의 새로운 사본을 갖도록 보장합니다.
설정
- 활성 CN의
nodekey
의 백업을 생성합니다. - 대기 CN을 설치합니다. 구성은 활성 CN과 동일합니다:
- 스탠바이에서는 다른
nodekey
를 사용해야 합니다. - PN의 주소를
$DATA_DIR/static-nodes.json
에 추가합니다.
- 스탠바이에서는 다른
장애 조치
- 대기 CN 중지:
sudo systemctl stop kcnd
- 스탠바이의
nodekey
를 장애가 발생한 활성 CN의nodekey
로 바꿉니다. - 활성 CN의 IP 주소를 대기 CN에 재할당합니다.
- 대기 CN을 시작하고 네트워크와 동기화되었는지 확인합니다: sudo systemctl start kcnd` 입력합니다.
머신 이미지 및 스냅샷 (클라우드용으로 권장)
클라우드 인프라를 사용하면 운영자가 장애가 발생한 노드를 훨씬 더 빠르게 교체할 수 있으므로 두 번째 대기 CN을 운영할 필요가 없습니다. 대신 새 CN을 신속하게 프로비저닝하고 업데이트된 체인 데이터 사본을 제공할 수 있도록 하는 것으로 충분합니다.
정확한 용어와 절차는 클라우드 환경마다 다를 수 있습니다. 아래 절차는 AWS (특히 EC2 및 EBS)를 기반으로 하지만 다른 클라우드 플랫폼에 맞게 조정할 수 있습니다.
설정
- 활성 CN의
nodekey
의 백업을 생성합니다. - CN 구성 또는 소프트웨어가 업데이트될 때마다 머신 이미지 (예: AMI)를 생성합니다. 이 이미지에
DATA_DIR
이 포함된 볼륨은 포함하지 마세요.
장애 조치
CC의 PN 노드 중 하나를 사용하여 체인 데이터 스냅샷을 얻습니다:
- PN 노드에 연결하고 kpnd를 중지합니다:
sudo systemctl stop kpnd
. 데이터 일관성을 보장하기 위해 먼저 kpnd를 중지하는 것이 중요합니다. - AWS 콘솔을 사용하여 PN의
DATA_DIR
이 포함된 볼륨의 스냅샷을 생성합니다. - kpnd를 시작합니다: sudo systemctl start kpnd` 3.
기본 CN 이미지와 체인데이터 이미지를 사용하여 새 CN을 만듭니다:
- CN 이미지 (위의 "설정"에서 생성한)를 사용하여 인스턴스를 생성합니다.
- PN의
$DATA_DIR
스냅샷에서 생성한 볼륨을 첨부합니다. - 볼륨에서
$DATA_DIR/klay/chaindata
를 제외한 모든 파일을 제거합니다.kcnd.conf
에 설정된DATA_DIR
이 체인데이터가 포함된 디렉터리와 일치하는지 확인합니다. 이름이 다를 경우 디렉터리 이름을 변경해야 할 수도 있습니다. - 실패한 CN의
nodekey
를$DATA_DIR/klay/nodekey
에 복사합니다. - 실패한 CN의 IP 주소를 대체 CN에 재할당합니다.
- kcnd를 시작합니다:
sudo systemctl start kcnd
입력 - CN이 네트워크와 동기화되었는지 확인합니다.
추가 고려 사항
장애가 발생한 CN의 공용 IP를 대체 CN에 재할당하면 대체 CN이 다른 CN에 즉시 연결할 수 있습니다. IP가 변경되면 다른 모든 CCO가 방화벽 구성을 업데이트할 때까지 새 CN은 네트워크에 연결할 수 없습니다.