카더라가 1328; 많아서 ኧ1; 가1648; 1221;리 1328; Ȣ16;,192;습니다.
1. iWARP/ROCE/RDMA가 ᇼ1;1068;한 기술1008; 아닙니다. 160;
1204;혀. 160;iWARP를 1648;원Ȣ16;lj16; NIC1473;에 RDMA를 1648;원Ȣ16;1648; 않lj16; NIC들1060; 많습니다.
2. RDMA가 ZERO COPY1060;기 ǐ12;문에 성능1060; 1339;1008;,148; 아닙니다. 160;
TCP/IP도 ZERO COPY/196; 구현.108;1648; 10년 넘었습니다. 160;
다만 RDMA가 ZERO COPY1064;,148; 태생1201;1004;/196; 맞습니다.
3. 모든 10G/40G가 RDMA를 1648;원Ȣ16;1648;lj16; 않1648;만 RDMA를 1648;원Ȣ16;lj16; 카드lj16; 많습니다. 160;또한 많1008; >10G NIC들1008; iWARP를 1648;원합니다.
4. RDMA/iWARPlj16; 빠른 TCP가 아닙니다. 160;굳1060; 비교Ȣ16;/140;면 RDP (Reliable Diagram) 와 비슷Ȣ16;,192;습니다.
5. RDMA1032; DMA가 보안에 ȏ12;약함. 160;웃기lj16; 소리1077;니다. 160;
RDMA가 REMOTE DMA1077;니다. 160;기본1201;1004;/196; PC11032; 메모리를 PC2에서 사용할 수 1080;lj16;,161;니다.
1060;,152;가1648;고 보안1060; Ǻ12;1788;구 Ȣ16;lj16;,163; 1088;체가 웃기lj16; ,161;니다.
물론 프/196;그ǖ16; 1096;못1676;면 위험할 수 1080;습니다.
아1452; 오래1204;에 Ǻ12;떤 회사가 요청했Nj12; 비슷한 상황1060; 1080;었습니다. 160;0152;도체/디스플/112;1060; QA 1901; 솔루션 1060;었습니다.
그ǐ12; 상황1008;
1. PC11032; 카메라가 워1060;6140;/패널 사1652;1012; 찍1020;
2. PC11032; 카메라가 찍1008; 1060;0120;1648;를 파1068;/196; 떨꿈 (Local DISK/NFS/SAMBA መ1; 다양한 0169;법 사용)
3. PC11060; PC2 (ǥ16;석1109;비)에 파1068;1060; 생성.104;었1020;1012; 알림
4. PC2가 PC11032; 파1068;1012; 가1256;감 (보내1468;, NFS/SAMBA መ1; 공유 1200;1109;1109;치에 1200;1109;함 መ1;መ1;)
5. PC2lj16; 해NJ17; 파1068;1012; 1069;고 (메모리/196; /196;딩) "ǥ16;석" 함
순1060;었습니다.
문1228;lj16; 파1068;1032; 크기가 1216;1216; 커1648;면서 촬영/1200;1109;/1204;송/ǥ16;석 단계 1473;에서 1200;1109;/1204;송 단계에 너무 많1008; 시간/1088;원1060; 소요 .104;lj16; ,144;였습니다.
해결0169;법1008;
1. PC11032; 카메라가 사1652;1012; 찍1020;
2. PC11032; 카메라가 찍1008; IMAGE DATA가 아1649; BUFFER에 1080;1020; (Driver buffer 1068;수도 1080;1020;)
3. PC11008; 해NJ17; DATA가 1200;1109;.108; 메모리1032; 위치를 확1064;함 (메모리에 Lock,152;구, 간ᕬ1; LOCK 빼먹1004;면 5와 같1008; 보안 1060;슈 0156;생 할 수 1080;1020;)
4. PC11008; PC2에 해NJ17; 메모리 위치/크기 መ1;1012; 알/140; 1468;
5. PC2lj16; PC11032; 메모리에서 IMAGE DATA를 RDMA Protocol1012; 사용Ȣ16;여 PC21032; 메모리/196; 가1256;옴
6. PC2lj16; PC11032; 해NJ17; 메모리 LOCK 해1228;
7. PC2lj16; 1060;0120; 1088;신1032; 메모리에 1080;lj16; 데1060;터를 대상1004;/196; "ǥ16;석" 수행 함
1060;었습니다.
데모 수1456;에서 해보면 10~400176; 1221;도1032; 성능 향상1060; 1060;루Ǻ12; 1648;lj16; ,152; 확1064; 할 수 1080;lj16;데
1060; 간단한 구1312;를 실1228; 구현 Ȣ16;lj16;,172; 만만치 않습니다.
NJ17;시 개0156;Ȝ16;1109; 비명 소리가 1648;금도 생생합니다.
º¸¾È¿¡ Ãë¾àÇÏ´Ù°í ÇÑÀûÀº ¾ø½À´Ï´Ù.
intel cpu °ÔÀÌÆ® ¹ß»ýÇÏ¸é¼ ´ýÀ¸·Î xeon DDIO. RDMAÀÇ °æ¿ì º¸¾È Ãë¾àÁ¡ÀÌ ¹ß°ßµÈÀûÀÌ ÀÖ¾úÀ¸´Ï ¾î¶»°Ô ÇØ°áµÇ¾ú´ÂÁø ¸ð¸£°Ú´Ù Á¤µµ·Î¸¸ ¾ð±ÞÇß½À´Ï´Ù.
±×·¡¼ ¾Æ·¡ÀÇ ¸µÅ©¸¦ °É¾î³ù´ø °ÍÀ̱¸¿ä.
https://www.bodnara.co.kr/bbs/article.html?num=157569
°³ÀÎÀûÀ¸·Î 10G ±¸¼ºÇؼ ½áº»ÀûÀÌ ¾ø¾î¼ Áú¹®µµ °çµé¿© º¾´Ï´Ù.
RDMA ±¸¼º¾øÀÌ 10G ¸¸À¸·Î ÆÄÀÏÀ» ÁÖ°í ¹ÞÀ»¼ö Àִ°ǰ¡¿ä? ¿ø Áú¹®ÀÚµµ 10G °¡ RDMA ¾øÀÌ ¾î¶»°Ô °¡´ÉÇÏ³Ä°í ¹Ý¹®Çϼ̴µ¥ ±Ã±ÝÇÕ´Ï´Ù.
10G samba³ª nfs µîÀ¸·Î ¸»ÀÌÁÒ.
ÀÏ¹Ý TCP·Îµµ ´Ù µÇ´Â ºÎºÐÀÔ´Ï´Ù.
´Ù¸¸ RDMA°¡ AÀåÄ¡¿¡¼ BÀåÄ¡ÀÇ ¸Þ¸ð¸®¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÑ ±¸Á¶/±â¼úÀε¥ À̸¦ º¸¾È Ãë¾àÀ¸·Î ºñ±³ÇÏ´Â °Ç Á» ¸ÂÁö ¾Ê¾Æ º¸ÀÔ´Ï´Ù.
Áú¹®ÀÚÀÇ Áú¹®À» Àß º¸¸é ÆÄÀÏÀ» Àü¼ÛÇÑ´Ù°í ÇÏÁö ¾Ê¾Ò½À´Ï´Ù.
±×·¸±â ¶§¹®¿¡ ±×°É NFS/SAMBA·Î Àü¼ÛÀÌ °¡´ÉÇÏ³Ä ÇÏ°í ÇϽøé ÀÌ´Â ¶Ç ÀüÇô ´Ù¸¥ Áú¹®À¸·Î º¸ÀÔ´Ï´Ù.
Àü¼ÛµÇ´Â µ¥ÀÌÅÍ°¡ ÆÄÀÏÀ̶ó¸é
10G·Î 10G Àü¼ÛÀÌ ¾î·Á¿ì¸é 100G ¾²¸é °¡´ÉÇÒ ¼öµµ ÀÖ°ÚÁÒ
±×·±µ¥ ¾çÂÊÀÇ DISK°¡ ÀûÀýÇÏÁö ¾ÊÀ¸¸é 100G¾Æ´Ï¶ó 400G·Îµµ Èûµé°ÚÁÒ
±»ÀÌ ºñ±³ÇÏÀÚ¸é ³» Â÷°¡ 200KM/h¸¦ ´Þ¸± ¼ö À־ ¼¿ï½Ã³»¿¡¼± ¾î·Æ°ÚÁÒ.
¾Æ¹«Æ° ÆÄÀÏÀ» Àü¼ÛÇÑ´Ù´Â ¸»ÀÌ ¾ø´Â°Ô ÀÇ¿ÜÀÇ ÇÙ½É Å°¿öµå¿´³ª º¸³×¿ä. »ý°¢ÀÌ Âª¾Ò½À´Ï´Ù.
°³ÀÎÀûÀ¸·Î´Â ¿Ö ±»ÀÌ ÃÔ¿µ°ú 󸮰¡ ´Ù¸¥ ÀåÄ¡¿¡¼ µÇ¾î¾ß Çϳª. º¹»çÀÇ ½Ã°£À» ÁÙÀÌ´Â°Ô ÃÖ¼±À̶ó¸é
µ¿ÀÏ Àåºñ¿¡¼ ó¸®ÇÏ°í ´Ù¸¥ ÄÄÇ»Å͸¦ mpi µîÀ» ÀÌ¿ëÇÏ¿© ó¸®¿ë µ¥ÀÌÅͳª ¿¬»ê¸¸ ¶°³Ñ°Ü
´õ ¼º´ÉÇâ»óÀ» ²ÒÇÒ¼ö ÀÖÁö ¾ÊÀ»±î?¶ó´Â »ý°¢ÀÌ µé¾ú´Âµ¥ ¹ÝµµÃ¼ Àåºñ¶ó ¿ø ±â´É ÀÌ¿Ü¿¡ ´Ù¸¥ ±â´ÉÀ¸·Î ¾²Áö ¸øÇÏ´Â
¸ðÁ¾ÀÇ Á¦¾àÀÌ ÀÖÀ¸´Ï ±×·± »ý°¢À» ÇÏ´Â °Ç ¾Æ´Ò±î Çß½À´Ï´Ù.
2. ÇöÀçÀÇ ¸®´ª½º TCP ½ºÅÃÀÌ Á¤¸»·Î zero-copyÀϱî¿ä? °á±¹ ¾ÖÇø®ÄÉÀ̼ǿ¡¼ ±× µ¥ÀÌÅ͸¦ »ç¿ëÇÏ·Á¸é Ä¿³Î ¸Þ¸ð¸®->À¯Àú ¸Þ¸ð¸®·Î Ãß°¡ÀûÀÎ copy°¡ ÇÊ¿äÇÕ´Ï´Ù.
ÀÌ ºÎºÐÀ» Á¦°ÅÇϱâ À§ÇØ uio¸¦ ±¸ÇöÇϱ⵵ ÇØ º» ÀÔÀå¿¡¼ zero copy°¡ »ó´çÇÑ ºñÁßÀ» Â÷ÁöÇÏ´Â °Íµµ ¸Â½À´Ï´Ù. zero copy°¡ ÀüºÎ°¡ ¾Æ´Ï¶ó´Â Á¡¿¡´Â µ¿ÀÇÇÕ´Ï´Ù.
Âü°í·Î 100G ½º·çDz Å×½ºÆ®¸¦ ÇÒ ¶§ Ä¿³Î ³×Æ®¿öÅ© ½ºÅÃÀ¸·Î´Â ¼º´ÉÀÌ ¾È ³ª¿Í¼ DPDK¸¦ »ç¿ëÇß½À´Ï´Ù. 40G ±îÁö´Â ¾î¶»°Ôµç Ä¿¹öÇÑ´Ù Ãĵµ 100G ºÎÅÍ´Â RDMA¸¦ ¾²´Â ÆíÀÌ ¿ÀÈ÷·Á ´õ ½±°í ºü¸£°Ô ÇÏÀÌ ½º·çDzÀ» ´Þ¼ºÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾Æ´Ò±î »ý°¢ÇÕ´Ï´Ù. °³ÀÎÀûÀÎ ÀÇ°ßÀÔ´Ï´Ù.
=>Ãʱâ INTEL iWARP NICµé Áß¿¡¼ RDMA Áö¿øÇÏÁö ¾Ê´Â NICµé ¸¹¾Ò½À´Ï´Ù. CHELSIOµµ ¸¶Âù°¡Áö ¿´½À´Ï´Ù.
2. ÇöÀçÀÇ ¸®´ª½º TCP ½ºÅÃÀÌ Á¤¸»·Î zero-copyÀϱî¿ä?
=> ZERO COPY ¸Â½À´Ï´Ù. ±×·¸Áö ¾Ê°Ô ±¸ÇöµÈ DRIVER/STACKµµ ÀÖ±ä ÇÕ´Ï´Ù.
=> Applicartion¿¡¼ ¾î¶»°Ô ±¸ÇöÀÌ µÇ¾ú´ÂÁö´Â ÀüÇô ´Ù¸¥ ¶Ç ´Ù¸¥ ¿µ¿ªÀÔ´Ï´Ù.
º°µµ À̽´Áö¸¸ (Àú´Â °³ÀÎÀûÀ¸·Î DPDK·Î ¹º°¡¸¦ ¸¸µé¾îº» °æÇèÀº ¾ø½À´Ï´Ù)
DPDK´Â ³×Æ®¿öÅ© ÆÐŶ󸮸¦ ÇÏ´Â ProtocolÀÌ°í RDMA´Â Remote DMAÀÔ´Ï´Ù.
DPDK´Â User Space¿¡¼ NIC ·¹º§ÀÇ ³×Æ®¿öÅ©¸¦ ÄÜÆ®·Ñ ÇÒ ¼ö ÀÖ´Â Library ¸ðÀ½À̶ó¼ Æ÷ÅÙ¼ÈÀÌ ÀÖ´Ù°í ¸»µé ÇÕ´Ï´Ù.
¹®Á¦´Â DPDK´Â L2 ¼öÁØÀÇ ProtocolÀ» L6 ¼öÁØ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Çϱ⠶§¹®¿¡ User Space Application ¿¡¼ ¾öû³ ¼º´ÉÀ» ³¾ ¼ö ÀÖ°ÚÁö¸¸ °³¹ß ³À̵µ ¿ª½Ã ¾öû³¯ °Ì´Ï´Ù.
¿¹¸¦ µé¾î¼ DPDK¿¡¼´Â Çü½ÄÈµÈ Åë½Å ÇÁ·ÎÅäÄÝÀÌ ¾Æ´Ï±â ¶§¹®¿¡ °³¹ßÀÚ°¡ ¾î¶² µ¥ÀÌÅ͸¦ Àü¼Û/¹Þ±â µîÀ» ÇÏ·Á¸é ÀÌ ¸ðµç ÄÜÆ®·ÑÀ» Á÷Á¢ °³¹ßÇØ¾ß ÇÕ´Ï´Ù.
Áï, TCP °°Àº ÇÁ·ÎÅäÄÝÀ» Application °³¹ßÀÚ°¡ °³¹ßÇؼ ¼Ö·ç¼Ç¿¡ ³Ö¾î¾ß ÇÏ´Â °Ì´Ï´Ù.
¸¸¸¸Ä¡ ¾ÊÁÒ
¿ø Áú¹®ÀÚ°¡ Áú¹®ÇÑ ³»¿ëÀÇ ´ä ºñ½ÁÇÑ °É ãÀ¸·Á¸é
=>PC2¿¡¼ ÀÛµ¿ÇÏ´Â ºÐ¼® ÇÁ·Î±×·¥ÀÌ PC1ÀÇ CAMERA°¡ ÂïÀº µ¥ÀÌÅ͸¦ PC1ÀÇ ¸Þ¸ð¸®¿¡ °¡Áö°í ÀÖÀ» Å״ϱî À̸¦ Á÷Á¢ ¾Ë¾Æ¼ °¡Á®¿À´Â ÇÁ·Î±×·¥/½Ã½ºÅÛÀ» ¸¸µé¾î¾ß ÇÕ´Ï´Ù.
DPDK·Î ¸¸µé ¼ö ÀÖ½À´Ï´Ù.
RDMA·Îµµ ¸¸µé ¼ö ÀÖ½À´Ï´Ù.
³À̵µ¾ß ¹¹..
2. ±×·¯´Ï Application¿¡¼ 'ÃÖ¼ÒÇÑ' ÇÑ ¹øÀÇ copy´Â ÇÊ¿äÇÏ´Ù´Â À̾߱âÀÔ´Ï´Ù. RDMAÀÇ À̵æÀÌ °¡Àå ÀûÀº °æ¿ì¶ó ÇÏ´õ¶óµµ RDMA´Â ÃÖ¼ÒÇÑ ÇÑ ¹øÀÇ memcpy¸¦ Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í ¾Æ½Ã´Ù½ÃÇÇ ±× ÇÑ ¹øÀÇ Â÷ÀÌ´Â ¾ÖÇø®ÄÉÀ̼ǿ¡ µû¶ó¼´Â »ó´çÈ÷ Ŭ ¼ö ÀÖ½À´Ï´Ù
3. DPDK´Â L2 Library°í, ¶§¹®¿¡ »óÀ§ ÇÁ·ÎÅäÄÝ ½ºÅÃÀ» ¶óÀ̺귯¸®·Î Á¦°øÇÏ´Â mTCP °°Àº ¼µåÆÄƼ ¶óÀ̺귯¸®°¡ Á¸ÀçÇÕ´Ï´Ù. ¹°·Ð ¾ÈÁ¤¼ºÀº »ó´ëÀûÀ¸·Î ¶³¾îÁý´Ï´Ù...
ºÒ¾ÈÁ¤¼º+¹ÌÄ£µíÀÌ Ä¡¼Ú´Â °³¹ß ³À̵µ ¶§¹®¿¡ over 40G¸¦ ±¸ÇöÇϱâ À§ÇØ ±»ÀÌ DPDK¸¦ »ç¿ëÇϱ⺸´Ù´Â Â÷¶ó¸® IB Verbs API¸¦ °øºÎÇÏ´Â ÆíÀÌ ´õ ³ªÀ» ¼öµµ ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. DPDK¸¦ »ç¿ëÇØ º» ÀÔÀå¿¡¼¿ä..
»ç½Ç ÀÌ¹Ì ¿À´Ã ¿ÀÀü¿¡ ±Û ÀÛ¼ºÀںаú ÅëÈÇÏ¿© ÇöÀçÀÇ bottleneck point´Â latency º¸´Ù´Â bandwidthÀÌ´Ï, 100/200G NICÀ» ±¸¸ÅÇÏ¿© ÀÏ´Ü ÇöÀçÀÇ Àü¼Û ÇÁ·ÎÅäÄÝ·Î ¾²·çDz/¸ñÇ¥ ½Ã°£ ¸¸Á· ¿©ºÎ¸¦ È®ÀÎÇÑ µÚ ¸¸¾à ÃæºÐÄ¡ ¾ÊÀ¸¸é RDMA¸¦ ¿É¼ÇÀ¸·Î °í·ÁÇ϶ó°í Á¶¾ðÀ» µå·È½À´Ï´Ù. ¾Æ¸¶ ±×·¸°Ô ÁøÇàÀ» ÇÏ½Ç °Ì´Ï´Ù.
°³ÀÎÀûÀ¸·Î´Â ¾²·¹µå¸¦ Àß ÂÉ°³¼ À̹ÌÁö¸¦ ºÐÇÒ Àü¼ÛÇÒ ¼ö ÀÖ´Ù¸é CPU Äھ Àß ºÐ»êÇؼ near 100G ±îÁö´Â ±¸ÇöÇÒ ¼ö ÀÖÀ» °ÍÀ¸·Î º¸°í ÀÖ½À´Ï´Ù. ½Ã½ºÅÛ ¼º´É¿¡ ´Þ¸° ¹®Á¦ÁÒ. ¸¸¾à ±×°ÍÀ¸·Îµµ ºÒÃæºÐÇÏ´Ù¸é RDMA¸¦ »ç¿ëÇØ¾ß ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
DPDK°¡ ¾ÆÁ÷ ¹«¸£ÀÍÀº ±â¼úµµ ¾Æ´Ï°í °³¹ß³À̵µ°¡ »ó´çÇÕ´Ï´Ù.
¶ÇÇÑ DPDK¸¦ Áö¿øÇÏ´Â NICÀÌ ¸¹Áö ¾ÊÀ» °Ì´Ï´Ù.
¸¸¾à DPDK°¡ ¾î´ÀÁ¤µµ ÀÚ¸®¸¦ ÀâÀ¸¸é NIC Á¦Á¶»çµéÀÌ À̸¦ ´õ Àß Áö¿øÇÒ °ÍÀÌ°í ±×·¯¸é Áö±Ý º¸½Ã´Â ÇÑ°èµµ »¡¸® »ç¶óÁú ¼ö ÀÖ½À´Ï´Ù.
¸¶Ä¡ ±×·¡ÇÈ Ä«µå°¡ driver °³¼±À¸·Î ¼º´ÉÀÌ ÁÁ¾ÆÁö´Â °Í 󷳿ä
¹¹, ¾Æ´Ò¼öµµ
ÆÄÀϵµ part ÇüÅ·ΠsplitÇÏ¿© º´·ÄÇÁ·Î¼¼¼·Î ÇÏ´Â°É ¼±È£ÇÕ´Ï´Ù,.
´ÜÀÏÀº À̾î¹Þ±â°¡ ¾î·ÆÁö¸¸ ½ÃÇÇÀ¯°¥±Å¼ ºÐÇÒÇصθé ÆíÇϱ⶧¹®¿¡¿ä...