다음을 통해 공유


상태 저장 서비스 복제본 세트 크기 구성

Stateful 서비스에 대한 복제본 세트 크기는 두 개의 매개 변수를 사용하여 구성됩니다.

  • TargetReplicaSetSize - 시스템이 서비스의 각 복제본 세트에 대해 만들고 유지 관리하는 복제본 수
  • MinReplicaSetSize – 서비스의 각 복제본 세트에 대해 허용되는 최소 복제본 수

이 두 매개 변수의 기본 개념은 파티션이 쿼럼 손실을 일으키지 않고 최소 두 번의 동시 실패를 허용하는 구성을 허용하는 것입니다. 이러한 상황은 계획된 장애 조치(failover)(노드/복제본 다운을 가져오는 업그레이드)와 계획되지 않은 장애 조치(failover)(노드 크래시)가 하나 있을 때 발생할 수 있습니다.

예를 들어 TargetReplicaSetSize =5, MinReplicaSetSize =3이면 일반적으로 오류 없이 복제본 세트의 Service Fabrics 보기에 5개의 복제본이 있습니다. 오류가 발생하면 복제본 세트의 Service Fabric 보기가 MinReplicaSetSize에 도달할 때까지 줄어듭니다.

Service Fabric은 이 보기에서 유지 관리되는 복제본 수의 과반수 쿼럼을 사용하므로 MinReplicaSetSize의 과반수 쿼럼은 모든 작업의 최소 안정성 수준입니다. 총 복제본 수가 MinReplicaSetSize의 과반수 쿼럼 아래로 떨어지면 추가 쓰기가 허용되지 않습니다. 서비스가 쿼럼 손실 상태에 있을 때 쿼럼 손실에서 벗어나기 위해 특정 순서로 복제본을 다시 가져와야 할 수 있다는 점에 유의해야 합니다.

Important

TargetReplicaSetSize = 5, MinReplicaSetSize = 3인 예에서 MinReplicaSetSize의 과반수 쿼럼은 2입니다. 즉, 3개의 동시 오류가 발생하여 나머지 2개의 복제본만 실행되는 경우에도 Service Fabric은 복제본 세트 보기에 3개의 복제본(2개는 위쪽 및 1개는 아래쪽)을 가지며 나머지 2개의 실행 중인 복제본은 과반수 쿼럼을 충족하기에 충분합니다.

최적이 아닌 구성의 예

TargetReplicaSetSize = 3; MinReplicaSetSize = 2

이러한 종류의 구성은 종종 쿼럼 손실이 됩니다(계획된 장애 조치(failover)와 계획되지 않은 장애 조치(failover)가 동시에 발생할 때마다). 쿼럼 손실을 복구하려면 하나의 복제본만 백업하는 것만으로는 충분하지 않습니다. 복제본 세트의 일부였던 정확한 복제본이 백업되어야 합니다.

이미지는 TargetReplicaSetSize = 3 및 MinReplicaSetSize = 2일 때 아래 시퀀스 중 각 장애 조치(failover) 단계에서 클러스터의 노드를 보여 줍니다.

  1. 파티션에는 A, B, C의 세 가지 복제본이 있습니다.
  2. 복제본 A가 다운되고 Service Fabric이 복제본 세트를 2(B, C)로 다운시프트합니다.
  3. 계획되지 않은 장애 조치(failover)가 발생하고 복제본 B도 다운됨 - 파티션이 이제 쿼럼 손실 상태에 있음
  4. 복제본 A가 돌아오면 A는 현재 복제본 세트(B, C)의 일부가 아니므로 파티션은 쿼럼 손실 상태로 유지됩니다. 쿼럼 손실은 복제본 B가 돌아올 때만 수정됩니다.

TargetReplicaSetSize = 3, MinReplicaSetSize = 3

이러한 종류의 구성은 종종 쿼럼 손실이 됩니다(계획된 장애 조치(failover)와 계획되지 않은 장애 조치(failover)가 동시에 발생할 때마다). 그러나 이러한 복제본이 백업되는 즉시 파티션은 쿼럼 손실에서 복구됩니다.

Warning

이러한 종류의 구성은 여전히 최적이 아니며 TagetReplicaSetSize =3, MinReplicaSetSize = 2보다 약간 더 좋습니다.

이미지는 TargetReplicaSetSize = 3 및 MinReplicaSetSize = 3일 때 아래 시퀀스 중 각 장애 조치(failover) 단계에서 클러스터의 노드를 보여 줍니다.

  1. 파티션에는 A, B, C의 세 가지 복제본이 있습니다.
  2. 복제본 A가 중단되고 복제본 세트가 동일하게 유지됨(A, B, C)
  3. 계획되지 않은 장애 조치(failover)가 발생하고 복제본 B도 다운됨 - 파티션이 이제 쿼럼 손실 상태에 있음
  4. 복제본 A 또는 B가 백업되는 즉시 A와 B가 모두 현재 복제본 세트의 일부이므로 파티션이 쿼럼을 복원합니다.

다음 단계