Mellanox InfiniBand 어댑터를 이용한 윈도우-리눅스간 40Gbps IPoIB 연결
사용하던 윈도우7 PC를 10으로 업그레이드 하면서 기존에 사용했던 Mellanox MHQH19B-XTR InfiniBand 어댑터도 드라이버를 새로 설치해주어야 했다.
이 어댑터는 NAS에 SMB, FTP, iSCSI, WebDAV 등으로 접근할때 10Gbps 혹은 그 이상의 대역폭을 활용하기 위해 사용되었다.
윈도우7 에서는 IPoIB의 사용법을 몰라서 10Gbps Ethernet 모드로 사용하고 있었는데, 10을 설치하고나니 IPoIB로 자동으로 잡히고 Ethernet 모드로 드라이버를 변경하면 작동하지를 않는다 -o-;;
어쩔수 없이 구글링하면서 삽질한 결과 OpenSM (Open Subnet Manager)이라는것을 마스터에서 실행시켜주어야 정상적으로 작동한다는 사실을 알고 리눅스에서 opensm 을 백그라운드로 실행시켜 주니 40Gbps로 연결이 잡혔다.
그런데 IPoIB에도 2가지 모드가 있다.
Connected와 Datagram 모드인데, 대충 찾아본 결과로는 Connected 모드가 성능이 더 좋으나 커널 메모리를 더 많이 사용한다고 한다.
2가지 모드의 MTU도 다른데, Datagram의 경우 최대 2044(2KB IB) / 4092(4KB IB)를 갖고 Connected의 경우 65520을 최대값으로 갖는다.
사용중인 MHQH19B-XTR 은 윈도우10에서 Datagram 모드만 지원하는듯 하다.
어쨋든 40Gbps 로 잡힌걸 보니 매우 뿌듯하였다..ㅋ
이 어댑터는 펌웨어 개조를 통해 RDMA 지원을 활성화 시킬 수 있다는데 시간나면 시도해 보아야겠다.
Mellanox 어댑터 사용시 리눅스에서 주로 사용되는 명령어
# IB / ETH 모드 변경
connectx_port_config
# IPoIB 사용시 백그라운드에서 OpenSM 실행
nohup opensm > /dev/null 2>&1 &
# 현재 어댑터 링크 상태 표시
ibstatus
# ib0 (IPoIB) 인터페이스를 datagram 모드로 변경
echo datagram > /sys/class/net/ib0/mode
# ib1 (IPoIB) 인터페이스 모드 확인
cat /sys/class/net/ib1/mode
# ib0 (IPoIB) 인터페이스 MTU 를 2044로 변경
echo 2044 > /sys/class/net/ib0/mtu
InifiniBand
- Ethernet
- IPoIB (Datagram)
- IPoIB (Connected)