Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
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)” 이 없다면 명령이 완료되지 않은 상황임을 알 수 있습니다.

  • 명령에따라 실행 완료까지 대기 또는 대기하지 않을 수 있습니다.

  • 명령 실행으로 출력되는 로그는 “...” 으로 작성했습니다.

...