NFS TCP/RDMA Áú¹® µå¸³´Ï´Ù.

dogbull   
   Á¶È¸ 4680   Ãßõ 0    

TCP프로토콜 NFS(ㄱ)와 RDMA프로토콜 NFS(ㄴ)를 비교하여 보았습니다.

작은 블록사이즈(1k)의 fio 명령 수행 결과(a)는 RDMA프로토콜(b)이 TCP프로토콜(c) 보다 약 2.3배의 속도로 측정되었습니다.
하지만,
큰 블록사이즈(128k)의 fio 명령 수행 결과(b)는 TCP프로토콜(f)이 RDMA프로토콜(e) 보다 약 1.25배의 속도로 측정되었습니다.

RDMA프로토콜이 항상 더 높은 속도를 낼 것이라 생각했는데,
TCP프토토콜이 더 높은 속도가 나온 것이 이상합니다.

RDMA프로토콜과 TCP프로토콜의 wsize와 rsize가 다른데 이것 때문일까요?
TCP프로토콜은 NFS wsize/rsize 최대값인 1MB로 되어 있는데,
RDMA프로토콜은 wsize/rsize 최대값이 변경이 안됩니다(ㄷ).

긴 글 읽어주셔서 감사합니다.


(ㄱ) TCP프로토콜 NFS 마운트.
mount -t nfs 10.2.43.1:/mnt/disk1/data1 /mnt/nfs/

(ㄴ) RDMA프로토콜 NFS마운트.
mount -t nfs -o proto=rdma,port=20049 10.2.43.1:/mnt/disk1/data2 /mnt/nfs/

(ㄷ) RDMA프로토콜 NFS마운트 및 rsize/wsize 값 변경 시도( 변경 안됨).
root@pxnode3:/mnt# mount -t nfs -o proto=rdma,port=20049,wsize=1048576,rsize=1048576 10.2.43.1:/mnt/disk1/data2 /mnt/nfs/
root@pxnode3:/mnt# mount | grep nfs
10.2.43.1:/mnt/disk1/data2 on /mnt/nfs type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=rdma,port=20049,timeo=600,retrans=2,sec=sys,clientaddr=10.2.43.2,local_lock=none,addr=10.2.43.1)

(a) 블록사이즈 1k
 fio -rw=randrw --bs=1k --numjobs=4 --iodepth=8 --runtime=30 --time_based --loops=1 --ioengine=libaio --direct=1 --invalidate=1 --fsync_on_close=1 --randrepeat=1 --norandommap --exitall --name task1 --filename=/mnt/nfs/fio-test.dat --size=10000000

(b) 명령어(a) 를 이용한, RDMA 결과. 약 68MB/s
Run status group 0 (all jobs):
   READ: io=2538.9MB, aggrb=86655KB/s, minb=21654KB/s, maxb=21682KB/s, mint=30001msec, maxt=30001msec
  WRITE: io=2539.7MB, aggrb=86683KB/s, minb=21653KB/s, maxb=21690KB/s, mint=30001msec, maxt=30001msec

(c) 명령어(a) 를 이용한, TCP 결과. 약 29MB/s
Run status group 0 (all jobs):                                            
   READ: io=870393KB, aggrb=29011KB/s, minb=7235KB/s, maxb=7267KB/s, mint=30001msec, maxt=30002msec
  WRITE: io=870814KB, aggrb=29025KB/s, minb=7241KB/s, maxb=7268KB/s, mint=30001msec, maxt=30002msec

r(d) 블록사이즈 128k
 fio -rw=randrw --bs=128k --numjobs=4 --iodepth=8 --runtime=30 --time_based --loops=1 --ioengine=libaio --direct=1 --invalidate=1 --fsync_on_close=1 --randrepeat=1 --norandommap --exitall --name task1 --filename=/mnt/nfs/fio-test.dat --size=10000000

(e) 명령어(d)를 이용한, RDMA 결과. 약 724MB/s
Run status group 0 (all jobs):
   READ: io=21226MB, aggrb=724457KB/s, minb=176717KB/s, maxb=184922KB/s, mint=30002msec, maxt=30002msec
  WRITE: io=21265MB, aggrb=725805KB/s, minb=178714KB/s, maxb=183019KB/s, mint=30002msec, maxt=30002msec

(f) 명령어(d)를 이용한, TCP 결과. 약 909MB/s
Run status group 0 (all jobs):
   READ: io=26648MB, aggrb=909489KB/s, minb=226267KB/s, maxb=229071KB/s, mint=30002msec, maxt=30003msec
  WRITE: io=26732MB, aggrb=912361KB/s, minb=226895KB/s, maxb=228943KB/s, mint=30002msec, maxt=30003msec


ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
¼úÀÌ 2019-10
RDMA°¡ ÇÁ·ÎÅäÄÝÀΰ¡?....
     
nfs over rdma  °¡ ÀÖÁö¿ä.
          
¼úÀÌ 2019-10
±×·¯´Ï±î ¸Þ¸ð¸® ¸®´ÙÀÌ·ºÆ® ±â´ÉÀÌÁö ÀÌ°Ô ÇÁ·ÎÅäÄÝÀ̳Ĵ°ÅÁÒ.
TCP/UDP/ICMP/GRE/¡¦ ±âŸµîµî ÀÌ·±°É ÇÁ·ÎÅäÄÝÀ̶ó°í ÇÏ°í RDMA´Â ±â´É¿¡ ¼ÓÇϴ°ɷΠ¾Æ´Âµ¥ ÀÌ°É ¿Ö ÇÁ·ÎÅäÄÝÀ̶ó´Â ±Ô°ÝÀ¸·Î ĪÇÏ´ÂÁö ±×°É ¹¯´Â°Ì´Ï´Ù.
     
dogbull 2019-10
https://www.chelsio.com/wp-content/uploads/resources/T5-NFSoRDMA-vs-NIC-vs-IB-FDR.pdf
Overview¿¡ "The Remote DMA (RDMA) protocol allows efficient....."¶ó°í ¾º¾î Àֳ׿ä.
epowergate 2019-10
Nfsordma¸¦ »ç¿ëÇϴµ¥ fioÀÇ ioengineÀ» libaio¸¦. »ç¿ëÇÏ¸é ¾ÊµÇÁÒ
´äÀº manpage º¸½Ã¸é ³ª¿ÍÀÖ½À´Ï´Ù.
±×¸®°í rdma´Â protocol ¸Â½À´Ï´Ù.  Dma°¡ ÇÁ·ÎÅäÄÝÀε¥ rdma°¡ ¾Æ´Ò¸®°¡ ¾øÁÒ. 
±×·±µ¥ ¸Þ¸ð¸® ¸®´ÙÀÌ·ºÆ®´Â. ¹»±î¿ä?
     
¼úÀÌ 2019-10
¸®¸ðÆ®´ÙÀÌ·ºÆ®¶ó°í ÇÒ¿©´Ù ±×¸®µÈ°Å°í À§Å°¸¦ ã¾ÆºÁµµ ÇÁ·ÎÅäÄÝ º¸´Ü ±â´ÉÀ̶ó´Â ¼³¸íÀÌ ´õ °¡±õ°Ô ¼³¸íÇÏ°í ÀÖ½À´Ï´Ù. ¸¸¾à ÇÁ·ÎÅäÄÝÀ̶ó¸é º°µµÀÇ ¼ÒÄÏÅë½ÅÀ̳ª ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇÏÁö ¾ÊÀº ÀÎÇÇ´ÏƼ¹êµåó·³ ´Üµ¶Åë½ÅÀÌ °¡´ÉÇØ¾ß µË´Ï´Ù. ÀÌÁ¦±îÁö ³×Æ®¿öÅ© Åë½ÅÀÌ CPU°¡ 󸮸¦ ÇØÁذǵ¥ Àú±â´É¸¸À¸·Î CPU ºÎÇϸ¦ ÁÖÁö¾Ê°í ´ÙÀÌ·ºÆ®·Î ¸Þ¸ð¸®±îÁö ¾×¼¼½º ÇÏ°Ô²û Çϴ°ǵ¥ Àú°Ô ÇÁ·ÎÅäÄÝ Á¾·ù¿¡ Æ÷ÇÔµÈ´Ù´Â°Ô ¸»ÀÌ ¾ÈµÇÁÒ.
±×·¯¸é rdma ±â¹ÝÀ¸·Î ÇÁ·Î±×·¡¹Öµµ ³ª¿Í¾ß µË´Ï´Ù.
          
epowergate 2019-10
Àß ÀÌÇØ°¡ °¡Áú ¾Ê´Âµ¥¿ä...
ÀÏ´Ü ProtocolÀÌ ²À Network Åë½Å±Ô¾à¸¸Àº ¾Æ´Õ´Ï´Ù.  SATA Controller¿Í SATA DISK°£ÀÇ ±Ô¾àµµ Protocol ÀÔ´Ï´Ù.  CPUÀÇ Register <=> L1 Cache <=> L2 Cache ...µµ ¸ðµÎ Protocol ÀÔ´Ï´Ù.

»ì¦ ¹Ù²ã¼­ ¸»Çϸé TCP/IP¸¦ »ç¿ëÇÏ´Â Network ÇÁ·Î±×·¥µéÄ¡°í TCP¸¦ °¡Áö°í °³¹ßÇÏ´Â°É º»ÀûÀÌ (°ÅÀÇ) ¾ø½À´Ï´Ù. »ç¶÷µéÀÌ ÀڽŵéÀÌ ´ëºÎºÐ Åë½Å ÇÁ·Î±×·¥À» ¸¸µé¶§ TCP/IP·Î ÇÁ·Î±×·¥À» §´Ù°í »ç´Âµ¥ TCP IP¸¦ »ç¿ëÇѴٱ⠺¸´Ù´Â Socket ProgrammingÀ» Çϴ°ÅÁÒ.  ±× SOCKETÀÌ TCP¸¦ »ç¿ëÇÏ´Â °Å±¸¿ä.
±×³É ´Ü¼øÇÏ°Ô TCP¸¦ ±×³É ±×´ë·Î »ç¿ëÇϱ⠾î·Æ±â ¶§¹®¿¡ ±×·±°Ì´Ï´Ù.

RDMAµµ ±Ô¾àÀÌ Àִµ¥ »ç¿ëÇϱⰡ °ÅÁö °°½À´Ï´Ù.  À̽º¶ó¿¤³ÑµéÀÌ tutorialµµ Á¦´ë·Î ¸¸µé¾î ³õÁö ¾Ê¾ÒÁÒ.
Áö±ÝÀº ¸ð¸£°Ú´Âµ¥ ¿¹Àü¿¡ Á¦°¡ °³¹ßÇßÀ» ¶§´Â (2001~2003³â) VAPI³ª CMµîÀ» °¡Áö°í RDMA ProgrammingÀ» Çß¾ú½À´Ï´Ù.
±× ÈÄ¿¡ ³ª¿Â i-Warp (IBM Ç¥ÁØÀÏ °Ì´Ï´Ù)µµ RDMA¸¦ »ç¿ëÇÏ´Â API/SDK/ProtocolÀ̱¸¿ä.
±×³É InfiniBand¸¦ »ç¿ëÇÏr±ä ÇؾßÇϴµ¥ ±âÁ¸ ÇÁ·Î±×·¥À» °íÄ¡±ä ¾î·Á¿ì´Ï SDP³ª IPoIB¸¦ »ç¿ëÇؼ­ RDMA¸¦ »ç¿ëÇÑ´Ù°í Çß´ø »ç¶÷(ȸ»ç)µéµµ ÀÖ¾ú½À´Ï´Ù.  (Áö±Ýµµ ÀÖ½À´Ï´Ù).
     
dogbull 2019-10
°¨»çÇÕ´Ï´Ù. manpage Á¶Â÷ ¾Èº¸°í Áú¹®µå¸°°Ô ºÎ²ô·´³×¿ä. ÇÑ ¹ø È®ÀÎÇØ º¸°Ú½À´Ï´Ù.
          
epowergate 2019-10
FIO manpage°¡ Á» °Å½Ã±â ÇÕ´Ï´Ù.
¸¹ÀÌ »ç¿ëÇÏ´Â ¿É¼ÇµéÀº ¼³¸í°ú ¿¹½Ã°¡ Àִµ¥ ±×·¸Áö ¾ÊÀº ¿É¼ÇµéÀº Á» ºÎ½ÇÇÏÁÒ.
´öºÐ¿¡ ÁÁÀº Á¤º¸¸¦ ¾Ë°ÔµÇ¾ú½À´Ï´Ù. Àúµµ RDMA¸¦ ÀÌ¿ëÇغÁ¾ß°Ú½À´Ï´Ù.
RDMA(Remote Direct Memory Access) ÇÁ·ÎÅäÄÝÀº °í¼Ó ³×Æ®¿öÅ©¸¦ ÅëÇÑ ¸Þ¸ð¸® °£ µ¥ÀÌÅÍ Àü¼Û¿ë ±â¼úÀÔ´Ï´Ù. ±¸Ã¼ÀûÀ¸·Î, RDMA´Â CPU¸¦ »ç¿ëÇÏÁö ¾Ê°í ¸Þ¸ð¸®¿¡¼­/¸Þ¸ð¸®·Î Á÷Á¢ ¿ø°Ý µ¥ÀÌÅ͸¦ Àü¼ÛÇÏ´Â ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ¶ÇÇÑ RDMA´Â Á÷Á¢ µ¥ÀÌÅÍ ¹èÄ¡ ±â´Éµµ Á¦°øÇϹǷΠµ¥ÀÌÅÍ º¹»çº»ÀÌ ¾ø¾îÁ® CPU ÀÛ¾÷ÀÌ ´õ¿í ÁÙ¾îµì´Ï´Ù. µû¶ó¼­ RDMA´Â È£½ºÆ® CPUÀÇ ºÎ´ãÀ» ÁÙÀÏ »Ó ¾Æ´Ï¶ó È£½ºÆ® ¸Þ¸ð¸® ¹× I/O ¹ö½º¿¡ ´ëÇÑ °æÇÕµµ ÁÙ¿© ÁÝ´Ï´Ù.
[Ãâó] RDMA(Remote Direct Memory Access)|ÀÛ¼ºÀÚ ÇϴþƷ¡
     
epowergate 2019-10
Ç¥·ÃÀÌ »ì¦ Ʋ·È½À´Ï´Ù.
"RDMA(Remote Direct Memory Access) ÇÁ·ÎÅäÄÝÀº °í¼Ó ³×Æ®¿öÅ©¸¦ ÅëÇÑ ¸Þ¸ð¸® °£ µ¥ÀÌÅÍ Àü¼Û¿ë ±â¼ú"
ÀÌ ¾Æ´Ï¶ó
"¸Þ¸ð¸®°£ µ¥ÀÌÅÍ Àü¼ÛÀ» ÅëÇÑ °í¼Ó ³×Æ®¿öÅ© ±â¼ú"ÀÌ ¸Â½À´Ï´Ù.


QnA
Á¦¸ñPage 2463/5687
2014-05   4989218   Á¤ÀºÁØ1
2015-12   1525183   ¹é¸Þ°¡
2006-11   4678   õÈñ½Â
2016-08   4678   Ŭ·¡½Ä
2016-11   4678   ¹Ú
2013-02   4678   ¾Æ±â°ø·æ¼Â°
2015-07   4678   ²Ùºñ
2014-01   4678   À©µµ¿ì10
2016-06   4678   Noman
2007-01   4678   ¹Ú¿µ¹Î
2014-01   4678   ºí·ç¸ð¼Ç
2017-03   4678   Ŭ·¡½Ä
2014-07   4678   Å×µ¹¾ÆÀÌ
2006-11   4678   Á¤¸íÇö
2015-03   4679   µ·ÅÚÆÄÆÄ
2013-12   4679   ¹è³ª¿Â´Á´ë
2007-01   4679   ±èâ¹®
2016-07   4679   ºÒ¹«°ñ
2017-04   4679   ¸¸³âÃʺ¸
2013-10   4679   ¹Ú¼º¸¸
2014-12   4679   ¹èÁؼ®
2015-02   4679   Nikon