Table of Contents |
---|
개요
커널 로그 분석 시 로그 사전으로 개별 로그 조회는 가능하지만 하나의 동작이 여러 로그를 출력하고 있으므로 분석 시 로그 패턴의 이해를 돕기 위해 동작 시 출력되는 로그들과 설명을 제공합니다.
Info |
---|
동작 로그는 https://mantech.jira.com/wiki/spaces/BSRUG , 로그을 이해하고 있다는 가정하에 설명을 진행 하므로 동작 로그를 읽기 전 https://mantech.jira.com/wiki/spaces/BSRUG , 로그을 숙지해주세요. |
동작
...
개별 동작에 따라 발생하는 일련의 로그 패턴들에 대해 분석하고 설명합니다.
동작
Info |
---|
예로 든 로그 메시지들은 windwos bsr 1.6.1 설치 후 1:1 연결 환경에서 수집한 로그로 작성되었습니다. |
...
버전을 기준으로 합니다. |
드라이버 기동
다음은 windows 에서 bsr 커널 드라이버 로드 시 로그와 설명입니다드라이버가 기동할 때의 로그 입니다.
bsr 드라이버 버전과 bsr 드라이버에서 사용하는 port 정보등을 출력합니다.
시스템 로그가 없는 상황에서는 커널 로드 로그 출력 시간을 통해 시스템 시작 시간을 짐작하기도 합니다윈도우즈 커널 드라이버는 시스템이 시작하는 시점에 기동합니다. 해당 시간을 통해 시스템이 시작한 시간을 대략적으로 유추할 수 있습니다.
Code Block |
---|
00000001 10/26/2020 16:24:42.7079617 [initRegistry] [DRIVER:63] bsr_info<6> [0xFFFFE0012A6BD880] registry_path[\Registry\Machine\System\CurrentControlSet\Services\bsr] 00000002 10/26/2020 16:24:42.7079678 [initRegistry] [DRIVER:64] bsr_info<6> [0xFFFFE0012A6BD880] bypass_level=0, read_filter=0, use_volume_lock=1, netlink_tcp_port=5678, daemon_tcp_port=5679, ver=1.5 00000003 10/26/2020 16:24:42.7080324 [wait_for_add_device] [LOG:10] bsr_info<6> [0xFFFFE0012A9DC300] Wait for device to be connected for log file generation.(C:\Program Files\bsr) 00000004 10/26/2020 16:24:42.7080346 [bsr_init] [DRIVER:77] bsr_info<6> [0xFFFFE0012A6BD880] BSR driver loaded and initialized successfully. Version: 1.6.1 (api:2/proto:86-114) 00000005 10/26/2020 16:24:42.7080380 [bsr_init] [DRIVER:78] bsr_info<6> [0xFFFFE0012A6BD880] 1.6.1(2020.10.13_A1) GIT-hash: f52eea3 build by DEV3-KBLD+Administrator@dev3-kbld, Tue Oct 13 15:19:41 2020 00000006 10/26/2020 16:24:42.7080400 [bsr_init] [DRIVER:79] bsr_info<6> [0xFFFFE0012A6BD880] registered as block device major 147 00000007 10/26/2020 16:24:42.7080424 [DriverEntry] [DRIVER:4] bsr_info<6> [0xFFFFE0012A6BD880] BSR MVF Driver loaded. |
상태 변경
다음은 bsr 커널은 커널의 disk, peer disk, replication, connection, role 상태 변경 시 로그와 설명입니다role의 상태가 변경될 때 발생하는 로그 입니다.
복수의 상태 변경이 하나의 로그에 출력 될 수 있습니다.예상하지 못한 상태 설정 시 로그를 통해 문제 등을 유추 할 수 있습니다.
- 예를 들어
연결 상태가 connected 에서 connecting 또는 standalone 으로
변경된다면변경 될 경우, 연결 상태 변경
로그 중심으로 원인을 분석 할 수 있습니다로그를 중심으로 분석합니다.
로그에는 해당 상태 변경을
진행한 함수 이름이 같이 출력되며 소스코드 확인이 가능하다면 더 상세한 분석을 할수행한 호출자 함수의 이름이 같이 출력됩니다. 함수의 호출 흐름을 추적하여 디버깅 정보로 활용할 수 있습니다.
다음 로그에서 상태 변경을
진행한 함수 이름은 “change수행한 호출자는 change_disk_state, recevie_state, change_role, connect_
work” 입니다work 가 됩니다.
Code Block |
---|
00000053 10/13/2020 16:09:29.3583295 [print_state_change] [STATE:20] bsr_info<6> bsr r0/0 minor 2, ds(Attaching), dvflag(0x0): change_disk_state, disk( Attaching -> UpToDate ) 00000091 10/13/2020 16:09:48.2615732 [print_state_change] [STATE:21] bsr_info<6> bsr r0/0 minor 2 pnode-id:1, pdsk(DUnknown), prpl(Off), pdvflag(0x100200): receive_state, pdsk( DUnknown -> UpToDate ) repl( Off -> Established ) 00000099 10/13/2020 16:10:14.3457504 [print_state_change] [STATE:18] bsr_info<6> bsr r0, r(Secondary), f(0x0), scf(0xa1c): change_role, role( Secondary -> Primary ) 00000583 10/13/2020 16:14:01.5270141 [print_state_change] [STATE:19] bsr_info<6> bsr r0 pnode-id:1, cs(Connecting), prole(Unknown), cflag(0xe), scf(0xa0a): connect_work, conn( Connecting -> Connected ) peer( Unknown -> Secondary ) |
Netlink 명령
...
다음은 bsr 유틸리티로 명령을 수행했을 때의 로그와 설명입니다.
명령 실행 시 “
"실행 명령" command has been received. Execute the command.
”, 명령 실행 후 “"실행 명령" command execution terminated. (pending command:0)
” 로그를 출력하며 실행되는 명령은 “실행 명령”으로 표시됩니다.예를들어 명령 실행 시 “
"실행 명령" command has been received. Execute the command.
” 은 있으나 매칭되는 “"실행 명령" command execution terminated. (pending command:0)
” 이 없다면 명령이 완료되지 않은 상황임을 알 수 있습니다.
명령에따라 실행 완료까지 대기 또는 대기하지 않을 수 있습니다.
명령 실행으로 출력되는 로그는 “...” 으로 작성했습니다.
...