요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
digraph peer_states {
Secondary -> Primary [ label = "recv state packet" ]
Primary -> Secondary [ label = "recv state packet" ]
Primary -> Unknown [ label = "connection lost" ]
Secondary -> Unknown [ label = "connection lost" ]
Unknown -> Primary [ label = "connected" ]
Unknown -> Secondary [ label = "connected" ]
}
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
원격 역할 인식과 연결 손실
1-8이 DOT 그래프는 DRBD 8에서 로컬 노드가 인식하는 피어의 역할 상태를 나타냅니다. 상태는 `Primary`, `Secondary`, `Unknown` 세 가지이며, 피어 상태 패킷 수신·연결 손실·재연결이라는 세 사건이 여섯 개의 방향 전이를 만듭니다.
연결 중 `recv state packet`을 받으면 피어가 보고한 역할에 따라 `Secondary`에서 `Primary`로 또는 `Primary`에서 `Secondary`로 바뀝니다. 여기서 상태는 로컬 역할이 아니라 원격 피어에 대한 관측값입니다. 연결이 끊기면 현재 역할이 무엇이든 `Unknown`이 되어 더는 피어 역할을 확정할 수 없음을 표시합니다.
다시 `connected`가 되면 협상 결과에 따라 `Unknown`에서 `Primary` 또는 `Secondary`로 이동합니다. 따라서 재연결 자체만으로 역할을 하나로 고정하지 않으며, 연결 후 확인된 원격 역할을 기준으로 최종 상태를 정합니다.
상태 패킷, 연결 손실, 재연결이 원격 역할 관측값을 어떻게 바꾸는지 보여 줍니다.
DOT 원문의 6개 간선을 빠짐없이 정리합니다.
digraph peer_states {
Secondary -> Primary [ label = "recv state packet" ]
Primary -> Secondary [ label = "recv state packet" ]
Primary -> Unknown [ label = "connection lost" ]
Secondary -> Unknown [ label = "connection lost" ]
Unknown -> Primary [ label = "connected" ]
Unknown -> Secondary [ label = "connected" ]
}
요약·해설
peer-states-8.dot:1-8DRBD 8이 인식하는 원격 피어의 Primary·Secondary·Unknown 역할과 상태 패킷 수신, 연결 손실, 재연결에 따른 여섯 전이를 설명합니다.