RDMA통신(IWARP, ROCE)기술에 대해서 아시는 분을 찾고 있습니다.

tritob   
   조회 3107   추천 0    

저희 회사에서 2PC간에 1:1로 이미지를 주고받아야 하는데,

이미지의 크기가 2~3기가정도 되고, 전송된 이미지는 곧바로 RAM에 저장되야 합니다.

전송이 완료되면 바로 영상처리와 검사하는 과정이 진행되야 해서 빠른 속도를 가진 RDMA통신을 알아보고 있습니다.

Mellanox의 connect-X4 NIC카드를 이용해서 통신하려고 하는데, 통신을 구현하는 방법을 아시거나 또는

어디에서 알아보면 좋을지 조언을 남겨주시면 감사하겠습니다!

짧은글 일수록 신중하게.
epowergate 2022-07
통신을 구현한다는게 참 여러가지 뜻이 있습니다.
서버에 HCA 설치하고 모듈 올리고, SM 올리고, IPoIB에 IP 설정
하면 일단 시작은 가능합니다.

서버간에 데이터 전송, 메모리에 올리기 등은 전혀 다른 도메인 입니다.
     
tritob 2022-07
답변 감사드립니다.
혹시 기재하신 내용들(HCA설치, 모듈올리기, SM올리기, IPolB)이 비전공자도 수행할 수 있는 부분일까요??
          
epowergate 2022-08
딱 여기까지는 비전공자도 어렵지 않게 할 수 있습니다.
그 다음을 지대로 하려면 좀 어렵습니다
박문형 2022-07
잘은 모르지만

Mellanox는 현재 Nvidia 에 흡수되었습니다..

따라서 기술문의든 제품문의든 Nvidia KOREA나  Nvidia KOREA 총판 쪽에 문의하시면 거기서 방향을 제시할 수 있지 않을까 생각됩니다..

Mellanox 카드들은 리테일은 거의 시장에서 보기 힘들고 벤더에 OEM되어 있는 경우가 많으며

개인 사용자들은 eBay 같은 곳에서 구입해서 사용하는 경우가 많고

회사나 학교 같은 곳에서는 옛날부터 존재한 국내 몇몇 Mellanox 리셀러로 부터 제품을 공급 받아왔습니다..
이일저일 2022-07
박문형님 말씀처럼 nvidia에 물어보시는게 맞습니다만 nvidia Korea 는 네트워크 쪽은 잘 모르시는 듯.
RDMA는 칩이 스토리지에서 CPU개입없이 직접 전송하는 건데, 램에 있는 걸 보내는데는 도움이 안 될 것 같습니다.
     
newretrowave 2022-07
램으로 접근 맞습니다.
          
이일저일 2022-07
찾아보니.. 제가 잘못 알았네요. 

BlueField2 테스트 할 때 스토리지에 있는 파일을 지정하면 그걸 DPU가 자동전송하는 걸 해 봤는데.. 그게 RDMA라 생각했네요.
RDMA는 메모리에 있는 걸 DPU가 전송하는 것이군요. 제가 했던 건 뭐였을까요? 월요일에 한번 확인해 봐야 되겠네요.
구차니 2022-07
2~3기가 용량이면 10G 로 두대만 연결해서 사용해도 충분하지 않을까요?
2~3 기가면은 nvme 스토리지로 정상적인 속도를 내어줄 수 있다면 10G로 연결 시 2~3초 이내로 끌어오거나 네트워크를 통해 읽어올 수 있습니다.
그리고 정말 읽는 속도가 중요하다면 서버 구성부터 새롭게 정립해야 하지 않을까 합니다.

RDMA의 경우 고성능 컴퓨팅(HPC)에서 쓰인다고는 하지만 보안상의 문제가 불궈져서 어떻게 될지 모르겠습니다.
https://www.bodnara.co.kr/bbs/article.html?num=157569
https://www.ciokorea.com/news/178409
     
piloteer 2022-07
HPC쪽에선 좋든 싫든 쓰긴 해야 할 듯 합니다. 위험하다고 아예 안 쓰기엔 성능 차이가 너무 많이 나는 애플리케이션들도 있어서요.

PCI-e의 DMA가 보안 문제를 일으키는 경우가 많은 것은 사실이라 주의가 필요한 것은 맞는 것 같습니다. 그저.. 없애기 보다는 쓸데없는 써야 할 곳은 쓰되 더 보안을 강화하는 방향으로 가는 수 밖에 없지 않을까 생각합니다.
     
tritob 2022-07
10G로 연결한다는게 RDMA 사용하지않고 어떻게 가능할까요??
그냥 10G짜리 카드를 양쪽에 꽂아놓고 전용 케이블을 연결하고 기존 이더넷 연결처럼 사용하면 되는건가요??
송주환 2022-07
Memory to Memory 전송에, 사진 하나의 전송이 완료된 뒤 다음 사진을 전송하는 식이라면 RDMA로 얻을 수 있는 이득이 미미합니다. RDMA의 이점은 zero copy인데, 커널 메모리에서 1회 더 복사하는 데 걸리는 시간과, 3GB를 전송하는 데 걸리는 시간을 비교하면 후자가 압도적으로 길기 때문입니다.
이 경우 메인 병목지점은 네트워크 대역폭이 되겠죠.
     
piloteer 2022-07
제 생각도 비슷합니다. 차이가 없지는 않겠지만 지금 유즈 케이스에서는 그렇게 성능상의 이득이 클 거 같지는 않아요.

물론 조금이라도 더 성능을 쥐어짜내려면 보셔야 하는 건 맞을 것 같은데요. 그런데 당장 더 현실적인 문제는 RDMA보다 링크 속도 혹은 실질적인 네트워크 쓰루풋이 아닌가 하는 생각이 듭니다.
     
tritob 2022-07
답변 감사드립니다.
그렇다면, NIC카드를 100GB, 200GB급의 높은 사양의 카드를 사용하고
RDMA를 설정해서 통신한다면 2~3G의 이미지를 빠르게 전송 할 수 있을까요??
          
박문형 2022-07
글쎄요.. 해봐야 알겠지만

네트워크 대역폭만 높인다고 모든것이 다 빨라지거나 풀 대역폭으로 동작하지 않습니다..

전체적인 확인이 필요하고 전체적으로 잘 알고 솔류션을 줄수 있는 사람이 필요한데 잘 없죠..

요즘 나오는 이더넷 카드중에 40G 이상되는 제품들은 몇몇은 RDMA를 지원하다고 스팩에 나오지만

어떻게 지원되는지 어떤 상황에서 지원되는지 사용상에 응용이 가능한지 다 아는 사람은 드뭅니다..

https://www.intel.co.kr/content/www/kr/ko/support/articles/000031905/ethernet-products/700-series-controllers-up-to-40gbe.html

그나마 저런 기술들을 재일 먼저 적용한 업체가 맬라녹스인지라.. (그리고 10ㅎ 이상에서는 멜라녹스가 재일 솔류션이 많고 열도 적게 납니다..)

멜라녹스부터 알아보는게 좋다고 봅니다..

그리고 기본적으로 컴퓨터의 OS는 서버OS이여야 합니다..

저 기술들은 보통 거의 모두 서버쪽에서 나왔고 기본적으로는 서버OS만 지원한다고 봐야 합니다..
          
송주환 2022-07
질문이 너무 모호하네요. '빠르게'의 정의부터, 최종적으로는 달성하고자 하는 목표에 따라 달라지는 문제입니다.
회사 프로젝트인가요?
               
tritob 2022-07
네 이미지를 광학계로 촬영해서 1개의 workspace를 꽉 채우면 다른 pc로 전송하는데 이 workspace의 크기가 2~3기가 정도 됩니다.
workspace 1개가 다 촬영되면 바로 다른pc로 전송하고 다음 workspace를 촬영하는 식으로 반복합니다 다음 workspace도 촬영이 끝나면 전송합니다
원하는 성능은 2번째 workspace의 촬영이 시작되면 다른 pc가 이미 이전 workspace를 모두 수신해서
마치 (1번PC에서)촬영이 종료되면 바로 (2번 PC에서)검사가 시작되는 것처럼 구동하기를 원합니다
술이 2022-07
윈도우라면 프리모캐쉬 쓰거나 램디스크 쓰거나 하면 해결 될 일이네요.
그리고 10G 이더넷 시리즈부터는 기본값이 RDMA 기본동작입니다. 기본동작이기 때문에 따로 뭐 하고 말고가 없어요 알아서 그냥 동작하는데 동작하는 프로토콜은 정해졌습니다. SMB프로토콜이 대표적이며 요즘은 Target 프로토콜에 RDMA 적용하고 있는거 같던데 이건 블럭방식이라 데이터를 주고 받는거랑은 다르기에...
그리고 CPU와 메모리 성능이 최고로 빨라줘야만 40G 인터페이스도 그 속도를 받쳐줍니다. 카드만 속도 빨랐다고 빨라지지 않아요.
     
송주환 2022-07
RDMA가 기본이요?
     
SiCMOS 2022-07
10G나 40+G나 RDMA는 기본 동작이 아닙니다.
스위치부터 설정해줄 부분이 많고요..
          
술이 2022-07
Hyper-V 서비스 올리고 해당 10G/40G 이더넷을 가상스위치로 만들면 RDMA 옵션 설정이 활성 비활성 가능해져서 기본값인줄 알았네요.
위 서비스를 활용하면 물리적 스위치까지 설정까지는 필요 없을듯 보입니다.
               
SiCMOS 2022-07
RDMA 구성시 스위치에서 lossless 패브릭 형성을 위해서 흐름제어나 패킷 우선순위 변경 제한 등 몇가지 옵션을 넣어줘야 됩니다.
NIC에서도 해당 옵션이 활성화되어야 RDMA가 동작합니다.
램디스크를 쓰면 된다고 하셨는데 이러면 rdma의 의미가 없습니다.
메모리 공간 할당받아 두고 거기에 파일시스템을 올리게 되는데 이러면 송수신만 RDMA로 처리하고 FS RW 동작은 결국 CPU가 하게 됩니다.
               
송주환 2022-07
추가로 해당 가상 스위치의 RDMA 옵션은 Virtual Network Adapter에서 RDMA 응용을 동작시킬 수 있도록 일종의 wrapper를 제공해 주는 것일 가능성이 높습니다.
일반적으로 가상화 환경에서 RDMA를 사용할 때는 SR-IOV를 사용하여 하이퍼바이저의 네트워크 스택을 완전히 우회하게 됩니다. 그래야 RDMA를 사용하는 의미가 있으니까요. 한 가지 반례로는 VMware의 PVRDMA 기술이 있는데, 이 놈은 가상화 환경의 유연성을 가져가는 대신 20% 정도의 성능 패널티를 얻습니다.
     
piloteer 2022-07
램디스크와는 크게 관계 없는 이야기 같습니다. 어차피 실시간으로 데이터를 처리하려면 일반 ftp프로그램같은것으로 다운을 받거나 하는 식으로 동작하지는 않을 것이고, 직접 짠 코드라면 어차피 디스크보다 램에 데이터가 먼저 올라가는 것이 일반적이라서요... RDMA여부는 그냥 추가 memcpy가 (얼마나) 발생하는지 여부의 차이입니다.

그리고 RDMA랑 램디스크가 연동이 가능한지는 잘 모르겠네요. 아예 RDMA를 고려한 무언가가 있고 그것을 활용한다면 모르겠으나, 일반적인 경우 파일시스템으로 취급하기 위해 추가적인 처리가 필요하고 메모리를 직접 피닝하는 것도 어려울 수 있어 추가적인 오버헤드와 메모리 복사를 유발할 가능성이 높아서요. 그래서야 RDMA의 의미가 없을 것 같습니다.


QnA
제목Page 4794/5715
2014-05   5192643   정은준1
2015-12   1725685   백메가
2018-09   3104   미나리나물
2019-07   3104   딸기대장
2023-07   3104   이형동
2020-03   3104   거니스트
2019-03   3104   newretrowave
2020-12   3104   니드
2022-02   3104   김효수
2019-11   3104   오퍼레잇
2022-09   3104   분출수
2020-05   3104   김영기
2020-03   3104   민사장
2021-03   3103   건약
2020-12   3103   하나비
2024-01   3103   캔위드
2023-10   3103   스마트폰
2019-08   3103   거니스트
2020-03   3103   캔위드
2018-11   3103   일론머스크
2019-05   3103   전설속의미…
2015-01   3103   액션빔