FREEDOM. FRIENDS. FEATURES. FIRST.
페도라 한국 사용자 모임

NFS및 RPC의 커널레벨 디버깅 하기 - rpcdebug

게시판 Tech/Tip NFS및 RPC의 커널레벨 디버깅 하기 - rpcdebug

  • This topic has 0개 답변, 1명 참여, and was last updated 11 years 전에 by 인베인. This post has been viewed 21 times
  • 만든이
    게시글
  • #12028
    인베인
    참가자
    • 게시글141
    • 댓글379
    • 총합520
    • ★★
    @leemgs


    rpcdebug명령은 임베디드 보드에서 리눅스의  NFS클라이언트와 서버의  NFSD간의 메세지들을
    보기 위해서 디버깅 플래그를 Enable or Disable하는 유틸리티이다. 이 방법을 이용해서 임베디드에
    NFS문제들을 디버깅할때 tcpdump 만큼이나 상당히 유용하다.

    이 기능을 사용하기 위해 커널을 컴파일전에  "rpcdebug for NFSv4"를 체크해야 한다.
    일반적으로 리눅스 배포판의 커널에는 모두 Enable되어 있으며,  옵션에서 -m을 이용하여
    nfsd , nfs , nlm , rpc 등을 선택적으로 사용할수 있다.

    #>rpcdebug -vh
    #>rpcdebug -m module -s flags...  <-- 디버깅 Enable
    #>rpcdebug -m module -c flags...  <-- 디버깅 Disable
    #>echo 1 > /proc/sys/sunrpc/nfs_debug
    #>echo 1 > /proc/sys/sunrpc/nfsd_debug
    #>rpcdebug -m  nfsd -vh
    Module     Valid flags
    nfsd       sock fh export svc proc fileop auth repcache xdr lockd
    #>rpcdebug -m  nfsd -s sock fh export svc proc fileop auth repcache xdr lockd

    개발보드를 nfs root filesystem으로 부팅을 한다.
    이제 Host Linux컴퓨터에서 dmesg명령을 이용하여 통신된 메세지 정보를 열람할수 있다.
    #> dmesg
    nfsd: fh_verify(32: 01040001 002f400a a4853e4d 002f8151 8b290abb 00000000)
    nfsd_dispatch: vers 2 proc 1
    nfsd: GETATTR  32: 01040001 002f400a a4853e4d 002f815d 8b290ac7 00000000
    nfsd: fh_verify(32: 01040001 002f400a a4853e4d 002f815d 8b290ac7 00000000)
    nfsd_dispatch: vers 2 proc 1
    nfsd: GETATTR  32: 01040001 002f400a a4853e4d 002f8157 8b290ac1 00000000
    nfsd: fh_verify(32: 01040001 002f400a a4853e4d 002f8157 8b290ac1 00000000)
    NFSD: laundromat service - starting
    NFSD: laundromat_main - sleeping for 90 seconds
    NFSD: laundromat service - starting
    NFSD: laundromat_main - sleeping for 90 seconds
       . . . . . . 이하 여백 . . . . . .

    * 오픈소스는 Open Innovationa & 윈윈전략을 도모할 지언정 절대 공짜(무료)임을 뜻하지 않는다.치

  • 답변은 로그인 후 가능합니다.