요약·해설, 영어 원문, 전체 번역을 구분해 실었습니다. API 이름, 코드 심벌, 소스 경로는 원문 표기를 유지합니다.
1. 요약·해설
원문의 핵심 내용을 정리하고 커널 프로그래밍에 필요한 설명을 덧붙였습니다. 아래의 전체 번역과는 별도로 작성한 해설입니다.
2. 영어 원문 전체
번역에 사용한 Linux v6.18.37 원문입니다. 줄 번호는 해당 버전의 소스 파일을 기준으로 합니다.
원문 전체 펼치기
digraph conn_states {
StandAllone -> WFConnection [ label = "ioctl_set_net()" ]
WFConnection -> Unconnected [ label = "unable to bind()" ]
WFConnection -> WFReportParams [ label = "in connect() after accept" ]
WFReportParams -> StandAllone [ label = "checks in receive_param()" ]
WFReportParams -> Connected [ label = "in receive_param()" ]
WFReportParams -> WFBitMapS [ label = "sync_handshake()" ]
WFReportParams -> WFBitMapT [ label = "sync_handshake()" ]
WFBitMapS -> SyncSource [ label = "receive_bitmap()" ]
WFBitMapT -> SyncTarget [ label = "receive_bitmap()" ]
SyncSource -> Connected
SyncTarget -> Connected
SyncSource -> PausedSyncS
SyncTarget -> PausedSyncT
PausedSyncS -> SyncSource
PausedSyncT -> SyncTarget
Connected -> WFConnection [ label = "* on network error" ]
}
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미에 맞춰 전체 내용을 번역했습니다. 코드, 함수명, 코드 심벌, URL은 원문 표기를 유지합니다.
연결 협상과 동기화 상태 전이
1-18이 DOT 그래프는 DRBD 8 연결의 상태 기계를 나타냅니다. 원문의 상태 식별자 `StandAllone` 철자는 그대로 보존합니다. `ioctl_set_net()` 호출로 연결 대기를 시작하고, 연결 수락 뒤 매개변수를 교환한 다음 일반 연결 또는 비트맵 기반 동기화 경로로 들어갑니다.
`WFReportParams`에서 `receive_param()` 검사가 실패하면 `StandAllone`으로 돌아가고, 정상 협상은 `Connected`로 갑니다. 동기화 핸드셰이크는 로컬 역할에 따라 `WFBitMapS` 또는 `WFBitMapT`로 갈라지며, 비트맵 수신 뒤 각각 `SyncSource` 또는 `SyncTarget`이 됩니다.
동기화 소스와 대상은 완료되면 `Connected`가 되며, 일시정지 상태 `PausedSyncS`·`PausedSyncT`로 들어갔다가 같은 역할로 복귀할 수 있습니다. 연결된 상태에서 네트워크 오류가 발생하면 `WFConnection`으로 돌아가 재연결을 기다립니다.
협상, 소스·대상 동기화, 일시정지와 네트워크 오류 복귀 경로를 분리해 표시합니다.
DOT 원문의 모든 간선과 라벨을 빠짐없이 한국어 의미와 함께 보존합니다.
digraph conn_states {
StandAllone -> WFConnection [ label = "ioctl_set_net()" ]
WFConnection -> Unconnected [ label = "unable to bind()" ]
WFConnection -> WFReportParams [ label = "in connect() after accept" ]
WFReportParams -> StandAllone [ label = "checks in receive_param()" ]
WFReportParams -> Connected [ label = "in receive_param()" ]
WFReportParams -> WFBitMapS [ label = "sync_handshake()" ]
WFReportParams -> WFBitMapT [ label = "sync_handshake()" ]
WFBitMapS -> SyncSource [ label = "receive_bitmap()" ]
WFBitMapT -> SyncTarget [ label = "receive_bitmap()" ]
SyncSource -> Connected
SyncTarget -> Connected
SyncSource -> PausedSyncS
SyncTarget -> PausedSyncT
PausedSyncS -> SyncSource
PausedSyncT -> SyncTarget
Connected -> WFConnection [ label = "* on network error" ]
}
요약·해설
conn-states-8.dot:1-18DRBD 8의 연결 협상, 비트맵 교환, 소스·대상 동기화, 일시정지와 네트워크 오류 복귀 상태를 나타내는 DOT 상태도입니다.