Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

개요

bsr은 기존 로그 구조를 대폭 개선 하여 로그 수준 지정, 실시간 로깅, 와치 기능, CLI 로그 기능, 롤링되는 로그에 대한 파일 저장 기능 이 추가되어 관리자 및 개발자를 위한 편리한 디버깅 시스템을 제공합니다.

  • bsr로그는 드라이버에서 기록하는 로그이며 CLI로그는 bsradm, bsrsetup, bsrmeta 에서 기록하는 로그 입니다.

조회

로그

로그 파일은 아래 경로에 저장 됩니다.

...

로그 시스템을 통해 bsr 전반의 동작과정을 모니터링하고 문제가 발생했을 때 디버깅 할 수 있는 환경을 제공합니다. bsr 의 로그는 지정한 최대크기 만큼 실시간 파일로 기록되며 최대 파일크기 이상 초과 시 스스로 백업합니다. 로그는 bsr 커널 모듈에서 기록하는 커널로그와 bsr 유틸리티에서 기록하는 응용로그로 분리되어 있어서 각각 개별적으로 저장됩니다.

로그 파일이 저장되는 경로는 다음과 같으며 windows는 notepad, linux는 vi로 직접 파일을 읽어서 볼 수 있습니다.

  • windows는 “%BSR_PATH%\..\log\

    linux :

    ” 경로에 저장됩니다.

  • linux는 “/var/log/bsr/

  • 로그 파일은 아래 이름으로 저장 됩니다.

    • bsr로그 : bsrlog.txt

    • CLI로그 : bsradm.log, bsrsetup.log, bsrmeta.log

  • bsr로그는 실시간으로 로그를 확인하거나 저장 할 수 있습니다.

  • bsrwatch 명령으로 실시간 로그를 확인 할 수 있습니다.

  • bsrcon /get_log 명령으로 최신 로그를 파일 저장 할 수 있습니다.

    예) bsrcon /get_log 파일이름

    ” 경로에 저장됩니다.

유형

로그는 커널 로그와 응용 로그가 있으며 커널과 응용 계층 각각의 영역에서 발생한 로그를 저장합니다. 커널로그는 bsr 커널 모듈의 동작을 추적하며, 응용로그는 bsr 유틸리티의 동작과정을 추적하기 위한 용도로 사용합니다.

커널 로그는 시스템로그와 디버그로그 그리고 feature 로그로 분류되며 다음의 용도에 따라 사용합니다.

  • 디버그 로그는 bsr의 일반적인 동작과 상태를 추적하기 위한 로그입니다.

  • 시스템 로그는 bsr 복제 운영에 문제가 발생하거나 시스템에 영향을 줄 만한 중요한 정보를 기록하기 위한 로그 입니다.

  • feature 로그는 상세 디버그 로그로서 개발자를 위한 용도로 사용합니다.

조회

설정 정보

bsrcon /get_log_info 명령을

...

실행하여 로그

...

유형에 따른 수준, 백업 파일 단위 정보를 확인할 수 있습니다.

Info

bsr 1.7.0.0 이상 버전 부터 백업 파일 단위 정보는 원본 파일과 백업 파일을 모두 포함한 최대 파일 단위 정보로 변경됩니다.

Code Block
# bsrcon /get_log_info
Current log level.
    system-lv : err(3)
    debug-lv : info(6)

The maximum size of cli log feature-lvfile :is 05M.
Number of log files that can be saved.
Maximum
    bsradm : 2
    bsrsetup : 2
    bsrmeta : 2

The maximum size of onedriver log file is 50M48M or 100000 log count.
Number of log files that can be saved.
    bsrdriver : 15
Output category during  bsradm : 2
    bsrsetup : 2
    bsrmeta : 2
  • 로그 레벨

    • bsr로그는 system, debug, feature 3개의 로그 레벨을 설정 할 수 있으며 설정한 로그레벨 보다 낮거나 같은 로그만 기록합니다.

      • system : 시스템 이벤트에 기록하는 레벨 이며 기본 값은 err(3) 입니다.

        • 로그 레벨은 emerg(0) alert(1) criti(2) err(3) warning(4) notice(5) info(6) debug(7) 입니다.

      • debug : 파일 및 메모리에 기록하는 레벨 이며 기본 값은 info(6) 입니다.

        • 로그 레벨은 emerg(0) alert(1) criti(2) err(3) warning(4) notice(5) info(6) debug(7) 입니다.

      • feature : 부가적인 로그 레벨로 debug 레벨에 상관없이 파일 및 메모리에 기록하며 기본 값은 none(0) 입니다.

        • 로그 레벨은 none(0) oos(1) latency(2) verify(4) 입니다.

  • 최대 저장 로그 파일 수

    • 로그는 실시간으로 파일에 저장되며 파일에 크기가 50M 보다 크면 파일 이름을 변경 하고 저장 합니다.

      • 기본 값은 bsr로그 15개, CLI로그 2개 입니다.

      • bsr로그는 파일 크기가 상관없이 10만개 이상 로그가 발생하면 로그 파일 이름 변경 및 저장 합니다.

      • 지정한 최대 저장 로그 파일 수 보다 많아지면 오래된 파일 부터 삭제 합니다.

설정

bsrcon 명령을 통해 로그 레벨, 최대 저장 로그 파일 수를 설정 할 수 있습니다.

  • 로그 레벨

    • bsr로그는 bsrcon 명령을 통해 로그 레벨을 설정 할 수 있습니다.

      • system 로그 레벨 설정 : bsrcon /minlog_lv sys 3

      • debug 로그 레벨 설정 : bsrcon /minlog_lv dbg 6

      • feature 로그 설정 : bsrcon /minlog_lv feature 2

  • 최대 저장 로그 파일 수

    • bsrcon 명령을 통해 최대 저장 로그 파일 수를 설정 할 수 있습니다.

      • bsr로그 최대 저장 로그 파일 수 설정 : bsrcon /maxlogfile_cnt 5

      • CLI로그 bsradm 최대 저장 로그 파일 수 설정 : bsrcon /climaxlogfile_cnt adm 2

      • CLI로그 bsrsetup 최대 저장 로그 파일 수 설정 : bsrcon /climaxlogfile_cnt setup 2

      • CLI로그 bsrmeta 최대 저장 로그 파일 수 설정 : bsrcon /climaxlogfile_cnt meta 2

형식

  • bsr로그

    • 로그 파일이 제한 된 크기를 초과하면 bsrlog.txt를 “bsrlog.txt_날짜시간” 으로 파일 이름을 변경하고 bsrlog.txt 에 로그를 기록 합니다.

      • 예) bsrlog.txt => bsrlog.txt_2020-06-02T104543.745

    • 로그 형식은 “시퀀스번호, 날짜, 시간, 함수, 레벨, 로그” 입니다.

Code Block
00000053 07/15/2020 13:43:11.327 [get_max_agreeable_size] bsr_info<6>bsr r0/0 minor 2 pnode-id:0, pdsk(DUnknown), prpl(Off), pdvflag(0x0): node_id: 0 idx: 1 bm-uuid: 0x0 flags: 0x20010 max_size: 0 (DUnknown)

CLI로그

...

로그 파일이 제한 된 크기를 초과하면 bsradm.log를 “bsradm.log_날짜시간” 으로 파일 이름을 변경하고 bsradm.log 에 로그를 기록 합니다.

  • 예) bsradm.log => bsradm.log_2020-06-02T104543.745

  • bsrsetup, bsrmeta 도 동일하며 만약 CLI로그 저장 시 실행하는 CLI를 인지하지 못하면 bsrapp.log 파일에 로그가 저장 됩니다.

...

debug log.
    category : VOLUME IO IO_ERROR BITMAP LRU REQUEST PEER_REQUEST RESYNC_OV REPLICATION CONNECTION UUID TWOPC THREAD SEND_BUFFER STATE SOCKET DRIVER NETLINK GENL PROTOCOL MEMORY LOG ETC

Logging status command to the CLI log : disable (0)

조회

시스템 로그를 제외한 모든 로그는 로그 저장 경로에서 로그 파일을 직접 읽어서 조회할 수 있습니다.

Info

시스템 로그

Windows 에서는 이벤트 로그에서, Linux 에선 dmesg 명령을 통해 확인 합니다.

bsrwatch

bsr 의 동작과 상태를 실시간 추적하기 위한 용도로 bsrwatch 명령을 제공합니다. bsrwatch 명령은 커널로그가 기록되는 상황을 표준 출력으로 실시간 확인할 수 있습니다.

C:\Windows\system32\>bsrwatch

C:\Windows\system32\>cd C:\Program Files\bsr\bin/../log

C:\Program Files\bsr\log>Powershell.exe -command "Get-Content bsrlog.txt -Wait -Tail 100"
00000001 07/17/2020 09:26:58.513 [wait_for_add_device] bsr_info<6>[0xFFFFE000669F2880] wait for device to be connected for log file generation.(C:\Program Files\bsr)
00000002 07/17/2020 09:26:58.513 [initRegistry] bsr_info<6>[0xFFFFE000666BC880] registry_path[\Registry\Machine\System\CurrentControlSet\Services\bsr]
00000003 07/17/2020 09:26:58.513 [initRegistry] bsr_info<6>[0xFFFFE000666BC880] bypass_level=0, read_filter=0, use_volume_lock=1, netlink_tcp_port=5678, daemon_tcp_port=5679, ver=1.5
00000004 07/17/2020 09:26:58.513 [bsr_init] bsr_info<6>[0xFFFFE000666BC880] initialized. Version: 1.6-A2 (api:2/proto:86-114)
00000005 07/17/2020 09:26:58.513 [bsr_init] bsr_info<6>[0xFFFFE000666BC880] 1.6-T1(BSR-73) GIT-hash: dee8f9c build by DEV3-KBLD+Administrator@dev3-kbld, Wed Jul 15 14:29:17 2020
00000006 07/17/2020 09:26:58.513 [bsr_init] bsr_info<6>[0xFFFFE000666BC880] registered as block device major 147
00000007 07/17/2020 09:26:58.513 [DriverEntry] bsr_info<6>[0xFFFFE000666BC880] MVF Driver loaded.
00000008 07/17/2020 09:26:58.544 [WskGetNPI] bsr_info<6>[0xFFFFE0006741A040] WskCaptureProviderNPI start.

설정

bsrcon 명령을 통해 로그 수준과 로그 파일 백업 단위를 지정할 수 있습니다.

  • 로그 수준 및 로그 파일 저장 설정

    • 로그 수준 기본 값

      • system 로그는 err(3) 입니다.

      • debug 로그는 info(6) 입니다.

      • feature 로그는 none(0) 입니다.

    • 로그 파일 백업 단위 기본 값

      • 커널로그 파일은 15 입니다.

      • 응용로그 파일은 2 입니다.

Info

bsr 1.7.0.0 이상 버전 부터 로그 파일 백업 단위가 아닌 최대 로그 파일 단위로 원본과 백업 파일을 합한 단위 이므로 다음과 같이 변경됩니다.

  • 로그 파일 최대 단위 기본 값

    • 커널로그 파일은 16 입니다.

    • 응용로그 파일은 3 입니다.

Code Block
bsrcon
usage: bsrcon cmds options
...
  /maxlogfile_cnt [LogFileMaxCount : 0 ~ 1000]
  /climaxlogfile_cnt [adm, setup, meta] [LogFileMaxCount : 0 ~ 255]
  /minlog_lv [sys, dbg] [Level : 0~7] level info, emerg(0) alert(1) criti(2) err(3) warning(4) notice(5) info(6) debug(7)
  /minlog_lv feature [flag : 0,1,2,4] level info, none(0) oos(1) latency(2) verify(4)
...

형식

로그의 형식은 다음과 같습니다.

  • 커널로그

    • “순서” “날짜” “시간” [함수] [로그 분류:로그 인덱스] “로그 레벨” “로그 내용”

      Code Block
      00000219 09/15/2020 14:42:04.3936220 [bsr_bm_resize] [BITMAP:23] bsr_info<6> bsr r2/0 minor 4, ds(Attaching), dvflag(0x0): bitmap resize called with capacity(31451136)
  • 응용로그

    • “날짜” “시간” “로그 레벨” [pid][함수][라인][실행 명령] “로그 내용”

      Code Block
      2020/07/15 16:

...

    • 18:

...

    • 39 bsr_erro [pid:

...

    • 2060][func

...

    • :err][line:1056][cmd:NULL] bsradm: Unknown command 'resoure'
      2020/07/15 16:18:44 bsr_erro [pid:1160][func:err][line:

...

    • 1056][cmd:status]

...

    •  '10' not defined in your config (for this host).