← Documents Documentation/admin-guide/blockdev/drbd/conn-states-8.dot GitHub 원문 ↗

Linux 6.18.37 · Admin guide

DRBD 8 연결 상태 전이

DRBD 8의 연결 협상, 비트맵 교환, 소스·대상 동기화, 일시정지와 네트워크 오류 복귀 상태를 나타내는 DOT 상태도입니다.

Source pathDocumentation/admin-guide/blockdev/drbd/conn-states-8.dot
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

conn-states-8.dot:1-18

DRBD 8의 연결 협상, 비트맵 교환, 소스·대상 동기화, 일시정지와 네트워크 오류 복귀 상태를 나타내는 DOT 상태도입니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 digraph conn_states {
2 StandAllone -> WFConnection [ label = "ioctl_set_net()" ]
3 WFConnection -> Unconnected [ label = "unable to bind()" ]
4 WFConnection -> WFReportParams [ label = "in connect() after accept" ]
5 WFReportParams -> StandAllone [ label = "checks in receive_param()" ]
6 WFReportParams -> Connected [ label = "in receive_param()" ]
7 WFReportParams -> WFBitMapS [ label = "sync_handshake()" ]
8 WFReportParams -> WFBitMapT [ label = "sync_handshake()" ]
9 WFBitMapS -> SyncSource [ label = "receive_bitmap()" ]
10 WFBitMapT -> SyncTarget [ label = "receive_bitmap()" ]
11 SyncSource -> Connected
12 SyncTarget -> Connected
13 SyncSource -> PausedSyncS
14 SyncTarget -> PausedSyncT
15 PausedSyncS -> SyncSource
16 PausedSyncT -> SyncTarget
17 Connected -> WFConnection [ label = "* on network error" ]
18 }
19

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

연결 협상과 동기화 상태 전이

1-18

이 DOT 그래프는 DRBD 8 연결의 상태 기계를 나타냅니다. 원문의 상태 식별자 `StandAllone` 철자는 그대로 보존합니다. `ioctl_set_net()` 호출로 연결 대기를 시작하고, 연결 수락 뒤 매개변수를 교환한 다음 일반 연결 또는 비트맵 기반 동기화 경로로 들어갑니다.

`WFReportParams`에서 `receive_param()` 검사가 실패하면 `StandAllone`으로 돌아가고, 정상 협상은 `Connected`로 갑니다. 동기화 핸드셰이크는 로컬 역할에 따라 `WFBitMapS` 또는 `WFBitMapT`로 갈라지며, 비트맵 수신 뒤 각각 `SyncSource` 또는 `SyncTarget`이 됩니다.

동기화 소스와 대상은 완료되면 `Connected`가 되며, 일시정지 상태 `PausedSyncS`·`PausedSyncT`로 들어갔다가 같은 역할로 복귀할 수 있습니다. 연결된 상태에서 네트워크 오류가 발생하면 `WFConnection`으로 돌아가 재연결을 기다립니다.

DRBD 8 연결 상태 흐름
StandAlloneioctl_set_net()WFConnectionconnect() after acceptWFReportParamsreceive_param()Connected
WFConnectionunable to bind()Unconnected
WFReportParamsreceive_param() checks failedStandAllone
WFReportParamssync_handshake()WFBitMapSreceive_bitmap()SyncSourceConnected
WFReportParamssync_handshake()WFBitMapTreceive_bitmap()SyncTargetConnected
SyncSourcePausedSyncSSyncSource
SyncTargetPausedSyncTSyncTarget
Connectednetwork errorWFConnection

협상, 소스·대상 동기화, 일시정지와 네트워크 오류 복귀 경로를 분리해 표시합니다.

연결 상태 전이 전체
출발 상태도착 상태원문 조건한국어 의미
StandAlloneWFConnectionioctl_set_net()네트워크 설정 ioctl로 연결 대기 시작
WFConnectionUnconnectedunable to bind()바인드할 수 없어 미연결 상태로 이동
WFConnectionWFReportParamsin connect() after accept연결 수락 뒤 매개변수 보고 대기
WFReportParamsStandAllonechecks in receive_param()수신 매개변수 검사 결과 독립 상태로 복귀
WFReportParamsConnectedin receive_param()매개변수 수신 중 정상 연결 확정
WFReportParamsWFBitMapSsync_handshake()동기화 소스용 비트맵 대기
WFReportParamsWFBitMapTsync_handshake()동기화 대상용 비트맵 대기
WFBitMapSSyncSourcereceive_bitmap()비트맵을 받아 동기화 소스가 됨
WFBitMapTSyncTargetreceive_bitmap()비트맵을 받아 동기화 대상이 됨
SyncSourceConnected라벨 없음소스 동기화 완료 뒤 연결 상태
SyncTargetConnected라벨 없음대상 동기화 완료 뒤 연결 상태
SyncSourcePausedSyncS라벨 없음소스 동기화 일시정지
SyncTargetPausedSyncT라벨 없음대상 동기화 일시정지
PausedSyncSSyncSource라벨 없음소스 동기화 재개
PausedSyncTSyncTarget라벨 없음대상 동기화 재개
ConnectedWFConnection* on network error네트워크 오류 시 재연결 대기

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" ]
}