IB 장치 모니터 및 문제 해결
Oracle Solaris 11 릴리스에서 새로운 명령 및 유틸리티를 사용으로 설정하여 IB 패브릭을 더욱 효과적으로 관리할 수 있습니다. 이러한 명령은 system/io/infiniband/open-fabrics 패키지에 포함되어 있으며 open-fabrics 패키지를 설치하면 매뉴얼 페이지가 자동으로 설치됩니다. 예를 들면 다음과 같습니다.
% man rping
Reformatting page. Please Wait... done
librdmacm RPING(1)
NAME
rping - RDMA CM connection and RDMA ping-pong test.
SYNOPSIS
rping -s [-v] [-V] [-d] [-P] [-a address] [-p port]
[-C message_count] [-S message_size]
rping -c [-v] [-V] [-d] -a address [-p port]
[-C message_count] [-S message_size]
.
.
.
다음 새 명령 및 유틸리티를 통해 IB 장치 나열 및 질의, IB 패브릭 문제 진단 및 해결 그리고 IB 성능 측정을 수행할 수 있습니다.
표 3-1 일반적인 IB 모니터링 명령
|
|
ibv_asyncwatch
|
Monitors InfiniBand 비동기 이벤트를 모니터합니다.
|
ibv_devices or ibv_devinfo
|
InfiniBand 장치 또는 장치 정보를 나열합니다.
|
ibv_rc_pingpong, ibv_srq_pingpong 또는 ibv_ud_pingpong
|
RC 연결, SRQ 또는 UD 연결을 사용하여 노드 간 연결을 테스트합니다.
|
mckey
|
RDMA CM 멀티캐스트 설정 및 간단한 데이터 전송을 테스트합니다.
|
rping
|
RDMA CM 연결을 테스트하고 RDMA ping-pong을 시도합니다.
|
ucmatose
|
RDMA CM 연결을 테스트하고 간단한 ping-pong을 시도합니다.
|
udaddy
|
RDMA CM 데이터그램 설정을 테스트하고 간단한 ping-pong을 시도합니다.
|
|
표 3-2 일반적인 IB 성능 테스트 명령
|
|
rdma_bw 또는 rdma_lat
|
스트리밍 대역폭 및 대기 시간에 대한 RDMA 쓰기 트랜잭션을 테스트합니다.
|
ib_read_bw 또는 ib_read_lat
|
대역폭 및 대기 시간에 대한 RDMA 읽기 트랜잭션을 테스트합니다.
|
ib_send_bw 또는 ib_send_lat
|
대역폭 및 대기 시간에 대한 RDMA 보내기 트랜잭션을 테스트합니다.
|
ib_write_bw 또는 ib_write_bw_postlist
|
한 번에 한 I/O 요청을 표시하는 대역폭 또는 I/O 요청 목록을 표시하는 게시 목록 대역폭에 대한 RDMA 쓰기 트랜잭션을 테스트합니다.
|
ib_write_lat
|
대기 시간에 대한 RDMA 쓰기 트랜잭션을 테스트합니다.
|
ib_clock_test
|
시스템 클록의 정확도를 테스트합니다.
|
qperf
|
소켓 및 RDMA 성능을 측정합니다.
|
|
표 3-3 RDS 모니터 및 테스트 도구
|
|
rds-info
|
RDS 커널 모듈 정보를 표시합니다.
|
rds-ping
|
RDS를 통한 원격 노드에 도달할 수 있는지 확인합니다
|
rds-stress
|
RDS 소켓을 통해 프로세스 간에 메시지를 보냅니다.
|
|
RDSv3은 HCA 구성 해제를 지원하지 않습니다. DR 수행 시 시스템에 RDSv3 드라이버가 설치되어 있는 경우 HCA 구성 해제를 수행하면 작업이 실패하며 오류 메시지가 표시됩니다(예: ib::rdsv3,0의 경우 다음 예와 같은 메시지가 표시됨).
# cfgadm -c unconfigure ib::rdsv3,0
This operation will suspend activity on the IB device
Continue (yes/no)? yes
cfgadm: Hardware specific failure: unconfigure operation
failed ap_id: /devices/ib:fabric::rdsv3,0
# cfgadm -c unconfigure PCI-EM0
cfgadm: Component system is busy, try again: unconfigure failed
임시해결책:
HCA DR 작업을 수행하기 전에 RDSv3 드라이버를 제거하고 시스템을 재부트합니다.
# rem_drv rdsv3
Device busy
Cannot unload module: rdsv3
Will be unloaded upon reboot.
# init 6
표 3-4 패브릭 진단 도구
|
|
ibdiagnet
|
전체 패브릭에 대해 진단 검사를 수행합니다.
|
ibaddr
|
InfiniBand 주소를 질의합니다.
|
ibnetdiscover
|
원격 InfiniBand 토폴로지를 검색합니다.
|
ibping
|
IB 노드 간의 연결에 대한 유효성을 검사합니다.
|
ibportstate
|
IB 포트의 물리적 포트 상태 및 링크 속도를 질의합니다.
|
ibroute
|
InfiniBand 스위치 전달 테이블을 표시합니다.
|
ibstat 또는 ibsysstat
|
InfiniBand 장치의 상태 또는 IB 주소에서 시스템 상태를 질의합니다.
|
ibtracert
|
IB 경로를 추적합니다.
|
perfquery 또는 saquery
|
IB 포트 카운터 또는 sIB 서브넷 관리 속성을 질의합니다.
|
sminfo
|
IB SMInfo 속성을 질의합니다.
|
smpquery 또는 smpdump
|
IB 서브넷 관리 속성을 질의 또는 덤프합니다.
|
ibcheckerrors 또는 ibcheckerrs
|
IB 포트(또는 노드) 또는 IB 서브넷의 유효성을 검사하고 오류를 보고합니다.
|
ibchecknet, ibchecknode 또는 ibcheckport
|
IB 서브넷, 노드 또는 포트의 유효성을 검사하고 오류를 보고합니다.
|
ibcheckportstate, ibcheckportwidth, ibcheckstate 또는 ibcheckwidth
|
링크가 살아 있으나 활성화되지 않은 IB 포트, 1x(2.0Gbps) 링크 폭에 해당하는 포트, 링크가 살아 있으나 활성화되지 않은 IB 서브넷의 포트 또는 IB 서브넷의 lx 링크에 대한 유효성을 검사합니다.
|
ibclearcountersibclearerrors 또는 ibclearerrors
|
IB 서브넷에서 포트 카운터 또는 오류 카운터를 지웁니다.
|
ibdatacountersibdatacounts 또는 ibdatacounts
|
IB 서브넷의 데이터 카운트 또는 IB 포트 데이터 카운터를 질의합니다.
|
ibdiscover.pl
|
IB 토폴로지에 주석을 달고 IB 토폴로지를 비교합니다.
|
ibhosts
|
토폴로지의 IB 호스트 노드를 표시합니다.
|
iblinkinfo.pl 또는 iblinkinfo
|
패브릭의 모든 링크에 대한 링크 정보를 표시합니다.
|
ibnodes
|
토폴로지의 IB 노드를 표시합니다.
|
ibprintca.pl
|
ibnetdiscover 출력에서 지정된 CA 또는 CA 목록을 표시합니다.
|
ibprintrt.pl
|
ibnetdiscover 출력에서 지정된 라우터 또는 라우터 목록만 표시합니다.
|
ibprintswitch.pl
|
ibnetdiscover 출력에서 지정된 스위치 또는 스위치 목록을 표시합니다.
|
ibqueryerrors.pl
|
0이 아닌 IB 포트 카운터를 질의 및 보고합니다.
|
ibrouters
|
토폴로지의 IB 라우터 노드를 표시합니다.
|
ibstatus
|
IB 장치의 기본 상태를 질의합니다.
|
ibswitches
|
토폴로지의 IB 스위치 노드를 표시합니다.
|
ibswportwatch.pl
|
지정한 스위치 또는 포트의 카운터와 변경 정보 보고 속도를 폴합니다.
|
set_nodedesc.sh
|
IB HCA(호스트 컨트롤러 어댑터)에 대한 노드 설명 문자열을 설정 또는 표시합니다.
|
dump2psl.pl
|
크레딧 루프 검사에 사용되는 opensm 출력 파일을 기반으로 PSL 파일을 덤프합니다.
|
dump2slvl.pl
|
크레딧 루프 검사에 사용되는 opensm 출력 파일을 기반으로 SLVL 파일을 덤프합니다.
|
ibis
|
IB 관리 대역 내 서비스에 대한 확장된 TCL 셸입니다.
|
|