Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
¾©¶«»ùÓÚDPDK¼¼ÊõµÄ¸ßÐÔÄÜËÄ²ã¸ºÔØ¾ùºâÆ÷SKYLB
 
  6427  次浏览      28
 2018-3-29 
 
±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚ¾©¶«É̳ǻù´¡Æ½Ì¨²¿£¬±¾ÎÄÖ÷Òª½éÉÜÁ˾©¶«É̳ÇÉè¼ÆºÍʵ¼ùµÄÒ»Ì׸߿ɿ¿£¬¸ßÐÔÄܵĸºÔؾùºâÆ÷£¬ÎÒÃÇÃüÃûΪSKYLB¡£

ÕªÒª

Ëæ×ž©¶«ÒµÎñµÄ¸ßËÙÔö³¤£¬×÷ΪӦÓÃÈë¿ÚµÄ¸ºÔؾùºâ£¬´óÁ÷Á¿´ó²¢·¢´øÀ´µÄÌôÕ½Ô½À´Ô½ÑϾþ¡£±¾ÎÄÖ÷Òª½éÉÜÁ˾©¶«É̳ÇÉè¼ÆºÍʵ¼ùµÄÒ»Ì׸߿ɿ¿£¬¸ßÐÔÄܵĸºÔؾùºâÆ÷£¬ÎÒÃÇÃüÃûΪSKYLB¡£ÊÇÒ»¸öʹÓÃintel DPDK±¨ÎÄת·¢¿â£¬ÊµÏÖÔËÐÐÔÚͨÓÃX86·þÎñÆ÷ÉÏ×ÔÑеķֲ¼Ê½¸ºÔؾùºâ·þÎñ¡£ÅäºÏÍøÂç·ÓÉÆ÷µÄOSPF»òÕßBGPЭÒ飬×é³É³Ðµ£¾©¶«Êý¾ÝÖÐÐĺËÐÄËÄ²ã¸ºÔØ¾ùºâµÄ¼¯Èº¡£×î´óÏ޶ȵķ¢»ÓÆÕͨX86·þÎñÆ÷Ó²¼þ×ÊÔ´µÄÐÔÄÜ£¬ÊµÏÖÒ»Ì×ÊʺÏÓÚ¾©¶«É̳ÇÒµÎñµÄµÍ³É±¾£¬·Ö²¼Ê½£¬¸ßÐÔÄÜ£¬¿ÉÀ©Õ¹µÄÖÇÄܸºÔؾùºâϵͳ¡£

½éÉÜ

¾©¶«É̳ÇĿǰÊǹúÄÚ×î´óµÄµçÉÌÆóÒµ¡£¾©¶«µÄ»ú·¿ÄÚ²¿µÄÁ÷Á¿±¬Õ¨Ê½¿ìËÙµÄÔö³¤¡£ÔçÔÚ2016Äê³õ¾©¶«É̳ÇÒѾ­½«ËùÓеÄÒµÎñϵͳȫ²¿Ç¨ÒƵ½ÈÝÆ÷ƽ̨JDOS£¬ÏßÉϰÙÍò+ÈÝÆ÷ʵÀýÎȶ¨ÔËÐС£´óÁ÷Á¿µÄ¸ºÔؾùºâµÄ·ÖÅäÏÔµÃÖÁ¹ØÖØÒª£¬Ò²ÊǾ©¶«É̳ÇÐÂÒ»´úÈí¼þ¶¨ÒåÊý¾ÝÖÐÐĵĹؼü»ù´¡·þÎñÉèʩ֮һ¡£

¸ºÔؾùºâÆ÷Ò»°ã½éÓÚÍøÂçÉϵÄ·ÓÉÆ÷Óëºó¶Ë·þÎñÆ÷Ö®¼ä£¬¸ºÔð½«Ã¿¸öÊý¾Ý°üͨ¹ýÒ»¶¨µÄ·þÎñÆ¥Å䣬½«Æäת·¢µ½ºó¶Ë·þÎñÆ÷½Úµã¡£³ä·Ö¿¼Âǵ½¾©¶«É̳ÇÊý¾ÝÖÐÐÄÈ«ÈÝÆ÷¼°È«Èý²ãBGP×éÍøµÄÄ£ÐÍ¡£ÒÔ¼°»ùÓÚDPDKµÄ¼¸ºõ´ïµ½Íø¿¨ÏÞËÙµÄÐÔÄÜ£¬ÎÒÃÇÔÚÉè¼Æ¸ºÔؾùºâʱ£¬½ö¿¼ÂÇʵÏÖÁËFULLNATģʽ£¬¼´³öÏòºÍÈëÏòµÄÁ÷Á¿¾ùͨ¹ý¸ºÔؾùºâÆ÷£¬»ù±¾Êý¾ÝÁ÷³ÌͼÈçÏÂͼ1Ëùʾ£º

ͼ1¸ºÔؾùºâÁ÷³Ìͼ

Ò»°ã¸ù¾ÝÒµÎñ¼°Á÷Á¿µÄ¹æÄ£µÄ²»Í¬½×¶ÎÀ´Ñ¡ÔñʹÓò»Í¬µÄ¸ºÔؾùºâ£¬Í¨³£ÎÒÃÇÔÚ¸ºÔؾùºâµÄÑ¡ÔñÉÏ´óÖÂÓÐÒÔÏÂÁ½¸ö·½Ïò£º1)Ó²¼þ¸ºÔؾùºâ£¬ÈçF5¡£CitrixNetscalerµÈ£»2)Èí¼þ¸ºÔؾùºâ£¬Èç»ùÓÚLVS£¬Haproxy£¬NginxµÈ¿ªÔ´Èí¼þÀ´ÊµÏֵĸºÔؾùºâ¡£¶ÔÓÚÉÏÊöÁ½ÖÖ¸ºÔؾùºâµÄÑ¡Ôñ£¬¸÷ÓÐÓÅȱµã£¬ÈçÏ£º

1£©Ó²¼þ¸ºÔؾùºâ

¿ÉÀ©Õ¹ÐÔÊÜÏÞ£¬ÎÞ·¨¸úÉÏÒµÎñÁ÷Á¿Ôö³¤µÄÐèÇó¡£ÒÔ¼°Èç618¡¢Ë«Ê®Ò»´ó´ÙµÈ˲¼äÁ÷Á¿¸ß·å¡£

ËäÈ»¿ÉÒԳɶԲ¿Êð±ÜÃâµ¥µã¹ÊÕÏ£¬µ«ÊÇÒ»°ãÖ»ÄÜÌṩ1+1ÈßÓà¡£

ȱ·¦»¥ÁªÍø¿ìËÙµü´úµÄÁé»îÐÔ£¬Éý¼¶³É±¾°º¹ó¡£

Ò»°ãÖ»Äܸù¾ÝÍøÂçµÄÇé¿öÀ´É趨¸ºÔؾùºâ£¬Î޹غõʵ¼ÊϵͳºÍÓ²¼þµÄÇé¿ö¡£

³É±¾½Ï¸ß¡£

2£©»ùÓÚ¿ªÔ´Èí¼þµÄ¸ºÔؾùºâ

¿ÉÒÔ¸ù¾Ýʵ¼ÊϵͳºÍÓ¦ÓõÄ״̬À´ºÏÀíµÄ¸ºÔØ£¬µü´ú¡¢À©ÈݺͲ¿ÊðÏà¶Ô·½±ã¡£

µ¥Ì¨¸ºÔؾùºâÐÔÄÜÏà¶Ô½Ï²î£¬ÐèÒªÓü¯ÈºÀ´Ö§³Å¸ºÔؾùºâµÄÕûÌåÐÔÄÜ¡£

ÐԼ۱Ƚϵ͡£

ÎÒÃǵÄÄ¿±ê£º

  1. Éè¼ÆÊµÏÖÒ»Ì׸߿ɿ¿¡¢¸ßÐÔÄÜ¡¢Ò×ά»¤¼°ÐԼ۱ȸߵÄL4¸ºÔؾùºâϵͳ,¡£
  2. »ùÓÚͨÓÃX86_64·þÎñÆ÷¿ò¼Ü£¬ÒÔ¼°Ö§³ÖDPDKÍø¿¨Ó²¼þ£¬Ò׿ª·¢ºÍÒÆÖ²¡£
  3. ·½±ã²¿Êð¡¢É¾³ýºÍά»¤£¬¼¯³Éµ½¾©¶«Èí¼þ¶¨ÒåÊý¾ÝÖÐÐÄ£¨JDOS2.0£©ÏµÍ³£¬×÷Ϊ¾©¶«ÏÂÒ»´úÈí¼þ¶¨ÒåÊý¾ÝÖÐÐĵĻù´¡×é¼þ¡£
  4. ¸ºÔؾùºâϵķþÎñÆ÷»ùÓÚϵͳӦÓøºÔØÁ÷Á¿¾ù̯£¬¸ºÔؾùºâÆ÷ÌṩN+1 ÈßÓ࣬½èÖúOSPF/BGP¿ØÖƸºÔؾùºâÆ÷µÄÁ÷Á¿¸ºÔØ¡£
  5. »ùÓÚϵͳӦÓü¶±ðµÄ̽»î£¬×Ô¶¯¹ÊÕϼì²â¼°Á÷Á¿¿ìËÙ»Ö¸´¡£

±¾ÎÄÖ÷Òª½éÉÜÁËSKYLBÒ»ÖÖ»ùÓÚDPDKƽ̨ʵÏֵĿìËÙ¿É¿¿µÄÈí¼þÍøÂç¸ºÔØ¾ùºâϵͳ¡£²»½ö¿ÉÒÔ¿ìËٵĺáÏòÀ©Õ¹£¬»¹¿ÉÒÔ×î´óÏ޶ȵÄÌáÉý¸ºÔؾùºâµ¥¸öNICµÄ´¦Àíת·¢ËÙ¶È£¬À´ÊµÏÖL4µÄ¸ºÔؾùºâ¡£½èÖúDPDKµÄÓÅÊÆ£¬Èç±ãÀûµÄ¶àºË±à³Ì¿ò¼Ü¡¢¾ÞÒ³ÄÚ´æ¹ÜÀí¡¢ÎÞËø¶ÓÁС¢ÎÞÖжÏpoll-mode Íø¿¨Çý¶¯¡¢CPUÇ׺ÍÐԵȵÈÀ´ÊµÏÖ¿ìËÙµÄÍø¿¨ÊÕ·¢¼°´¦Àí±¨ÎÄ£¬ºóÐø¿¼ÂÇTCP/IP Óû§Ì¬Ð­ÒéʵÏÖºÍÓÅ»¯£¬½ø¶øÊµÏÖL7¸ºÔؾùºâ¡£

ϵͳ¸ÅÀÀ

¹¤×÷³¡¾°

SKYLB²¿ÊðÔÚ¾©¶«ÈÝÆ÷¼¯ÈºJDOSµÄǰ¶Ë£¬¶ÔÓÚÒ»¸öÓ¦Óü¯Èº£¬·¢²¼Ò»¸ö»ò¶à¸öVIPµ½SKYLB·þÎñÉÏ£¬µ±¿Í»§¶ËÐèÒª·ÃÎÊÓ¦ÓýÚ×ÊÔ´URL£¬Ê×ÏÈͨ¹ýÓòÃû·ÃÎÊJDÖÇÄÜ·Ö²¼Ê½DNS·þÎñ£¨SKYDNSÏê¼ûhttps://github.com/ipdcode/skydns£©, SkyDns»áÖÇÄÜ·µ»Øµ±Ç°×î½üÇÒ״̬Õý³£ÇÒ¸ºÔØÕý³£µÄVIP·þÎñµÄIP,¿Í»§¶Ë¾Í»áÏòVIPÈ¥ÇëÇóÁ¬½Ó¡£

SKYLB½ÚµãÉÏÔËÐÐÁËÒ»¸ö·ÓÉ·¢²¼·þÎñagent£¬ÎÒÃÇʹÓøÃagentÓ뿪ÆôOSPF/BGPµÄ·ÓÉÆ÷×ö·Óɽ»»¥£¬µ±SKYLBµÄÉϲã·ÓÉÆ÷½ÓÊÕµ½ÇëÇóVIPµÄÊý¾Ý°üʱ£¬Â·ÓÉÆ÷ͨ¹ý£¨OSPF/BGP£©µÄµÈ¼Û¶à·¾¶×ª·¢Ð­ÒéÑ¡ÔñÒ»¸ö¿ÉÒÔʹÓõķ¢²¼¸ÃVIPµÄSKYLB½Úµã£¬½«±¨ÎÄת·¢¸øÒ»¸öSKYLB½Úµã¡£Í¨¹ýÕâÖÖ²ßÂÔÀ´ÊµÏÖVIPµÄ·¢²¼ºÍºáÏòÈÝÁ¿¸ºÔØÄÜÁ¦À©Õ¹¡£

µ±±¨ÎÄͨ¹ýÉÏÊö²½Öèµ½´ïSKYLB¸ºÔؾùºâºó£¬Í¨¹ý³£ÓõĸºÔؾùºâ²ßÂÔ(round robin£¬Ò»ÖÂÐÔhash £¬×îСÁ¬½ÓÊý)£¬½«Êý¾Ý°üË͵½ÏàÓ¦µÄºó¶ËÈÝÆ÷·þÎñ¡£

ϵͳ¼Ü¹¹

JingdongDatacenter Operating System(JDOS) ÊÇ»ùÓÚJDOSÌṩÎïÀí»ú/ÐéÄâ»ú/ÈÝÆ÷µÄͳһ¹ÜÀíϵͳ¡¢Å䱸Áé»îµÄÍøÂ绥Á¬¡¢¿É¿¿µÄ·Ö²¼Ê½¹²Ïí´æ´¢£¬ÊµÏÖÈí¼þ¶¨ÒåÊý¾ÝÖÐÐĵļÆËã×ÊԴͳһ¹ÜÀíºÍ¼¯Èº¹ÜÀí¡£Í¨¹ýʹÓÃJDOS£¬¿ÉÒÔÖ±½ÓѸËٵõ½ÈÎÒâÐèÒªµÄ¼ÆËã¡¢´æ´¢¡¢ÍøÂç¡¢°²È«µÈ·½ÃæµÄ×ÊÔ´ºÍÄÜÁ¦¡£SKYLB×÷ΪÕû¸öJDOSϵͳµÄÒ»¸öÖØÒª×é³É²¿·Ö£¬¸ºÔðÌṩ¼¯ÈºµÄL4¸ºÔؾùºâÄÜÁ¦£¬Í¨¹ýrestful APIµÈ½Ó¿ÚÓëJDOSϵͳ½»»¥¡£Óû§¿ÉÒÔͨ¹ýͳһµ÷¶È¹ÜÀíÆ½Ì¨±ã½ÝµÄ´´½¨¡¢É¾³ý¡¢Ç¨ÒƸºÔؾùºâϵͳ¡£Í¬Ê±¶à¸öÓ¦Ó÷þÎñ½øÐÐÁ÷Á¿·Ö·¢µÄ¸ºÔؾùºâ·þÎñ£¬´Ó¶øÀ©Õ¹Ó¦ÓÃϵͳ¶ÔÍâµÄ·þÎñÄÜÁ¦£¬²¢ÇÒͨ¹ýÏû³ýµ¥µã¹ÊÕÏÌá¸ßÓ¦ÓÃϵͳµÄ¿ÉÓÃÐÔ¡£

ϵͳµÄ»ù±¾¼Ü¹¹ÈçÏÂͼ2Ëùʾ£¬Ã¿Ò»¸ö¼¯ÈºÅ䱸һ×é¿ÉÈÝÔֵĸºÔؾùºâ¿ØÖÆÖÐÐÄ,Ö÷Ҫͨ¹ýrestful api½Ó¿Ú¸ºÔðÓëJDOSµ÷¶ÈÖÐÐĽ»»¥£¬½ÓÊÕvipµÄÅäÖÃÇëÇó¡£Í¬Ê±ÎÒÃÇÔÚÿһ¸öSKYLBµÄ½ÚµãÉÏÔËÐÐÒ»¸ö´úÀí½ø³Ì£¬¸Ã´úÀí½ø³Ìͨ¹ýgRPCÓë¿ØÖÆÖÐÐÄÁ¬½Ó¡£½ÓÊÕ¿ØÖÆÖÐÐÄÏ´ïµÄ´´½¨¼°É¾³ývip,ºó¶Ëserver endpoint·þÎñµÈһϵÁÐÖ¸Áͨ¹ýload balancer ÌṩµÄÃüÁîÐÐÖ´ÐÐÏàÓ¦µÄÖ¸Áî¡£½ÓÊÕload balancer ¹ØÓÚÁ÷Á¿¼°±¨ÎÄµÄ¼à¿ØÐÅÏ¢£¬¶ÔÓÚÁ÷Á¿¼°¼à¿Ø½øÐи澯£¬²¢ÇÒ֪ͨ¿ØÖÆÖÐÐĺ͵÷¶ÈÖÐÐĽøÐÐÀ©ÈݵȲÙ×÷¡£

´úÀí½ø³Ìͬʱ»¹¸ºÔðºó¶Ë·þÎñ server endpoint»ùÓÚ·þÎñ¿ÉÓÃÐԵĽ¡¿µ¼ì²é£¬¼°Ê±¸ù¾Ýºó¶Ë·þÎñµÄ״̬ͨ¹ýÃüÁîÐнøÐÐÌí¼ÓºÍɾ³ýµÄ²Ù×÷¡£

ͼ2ϵͳ¼Ü¹¹Í¼

ÓÅÊÆ

1£©À©Õ¹ÐÔ

Ö§³Ö¶¯Ì¬Ìí¼ÓºÍɾ³ýºó¶Ë·þÎñµÄÈÝÆ÷£¬ÊµÏÖÎÞ·ìµÄÉìËõ£»ÔÚÉ죬Ëõ¹ý³ÌÖУ¬¶ÔÏà¹Øµ÷ÓúͷÃÎÊÕßÎÞÓ°Ïì¡£

2£©¸ß¿ÉÓÃÐÔ

Ìṩ¶à»î¸ºÔؾùºâ£¬Óжà¸öVIP£¬ËüÃǶÔÓ¦Ò»¸öÓòÃû£¬×ÔÑÐDNS·þÎñSKYDNS»á¸ù¾ÝÇëÇóµÄ¿Í»§¶ËIPÖÇÄܽâÎö¿ÉÓõÄVIP£¬·µ»Ø¸øÓû§£¬´Ó¶øÊµÏÖ¸ü¸ßµÄ¿ÉÓÃÐÔ£»¼´Ê¹Ò»¸öVIP²»¿ÉÓã¬Ò²²»»áÓ°ÏìÒµÎñϵͳ¶ÔÍâÌṩ·þÎñ¡£Í¬Ê±½èÖúOSPF/BGPµÈЭÒéʵÏÖ¸ºÔؾùºâµÄºáÏòÀ©³ä

3£©·þÎñÄÜÁ¦×Ô¶¯¿Éµ÷

SKYLB¸ù¾ÝVIPʵ¼Ê½ÓÊÕÁ÷Á¿µÄ¸ºÔØÐèÒªµ÷Õû¸ºÔؾùºâµÄ·þÎñÄÜÁ¦£¬±ÈÈçÁ÷Á¿¡¢Á¬½ÓÊýµÄ¿ØÖƵÈÖ¸±ê¡£

¹¦ÄÜÌØµã

1£©Ð­ÒéÖ§³Ö

¸ºÔؾùºâÖ§³Ö°üº¬TCP¡¢UDPЭÒéµÄËÄ²ã¸ºÔØ¾ùºâ£¬Å䱸½¡È«µÄÁ´Â·¸ú×Ù»úÖÆ£¬ÒÔ¼°¶àÖÖµ÷¶È²ßÂÔ£¬Óû§¿ÉÒÔ¸ù¾Ý·þÎñµÄÐèÒª´´½¨ºÏÊÊ×Ô¼ºµÄ¸ºÔؾùºâ¡£

2£©¸ß¿ÉÓÃÐÔ

Ö§³ÖÈÝÆ÷µÄ½¡¿µ¼ì²é£¬³ý´«Í³µÄIP+Port£¬²¢¼ÓÈë¶ÔURL¼ì²é£¬±£Ö¤Ó¦ÓÿÉÓÃÐÔ£º ½¡¿µ¼ì²éƵÂÊ¿É×Ô¶¨Ò壻һµ©Ì½²âµ½Òì³££¬Ôò²»»á½«Á÷Á¿ÔÙ·ÖÅäµ½ÕâЩÒ쳣ʵÀý£¬±£Ö¤Ó¦ÓÿÉÓÃÐÔ¡£

3£©¼¯Èº²¿Ê𣬶à²ã´ÎÈÝ´í»úÖÆ£º ¸ºÔؾùºâ²ÉÓü¯Èº²¿Êð£¬Ö§³ÖÈÈÉý¼¶£¬»úÆ÷¹ÊÕϺͼ¯ÈºÎ¬»¤¶ÔÓû§Íêȫ͸Ã÷£¬½áºÏDNSʹÓû¹¿ÉÖ§³ÖÈ«¾Ö¸ºÔؾùºâ¡£

4£©Áé»îÐÔ

Ö§³Ö¶àÖÖÁ÷Á¿µ÷¶ÈËã·¨£¬Ê¹µÃÁ÷Á¿·ÖÅä¸ü¾ùÔÈ£º ¸ºÔؾùºâÖ§³Ö¼ÓȨÂÖѯºÍ×îСÁ¬½ÓÊýÕâÁ½ÖÖµ÷¶ÈËã·¨£¬¿É¸ù¾Ý×ÔÉíÐèÇóÑ¡ÔñÏàÓ¦µÄËã·¨À´·ÖÅäÓû§·ÃÎÊÁ÷Á¿£¬²¢Ö§³ÖÉèÖúó¶ËÈÝÆ÷È¨ÖØ£¬Ê¹µÃÁ÷Á¿µ÷¶È¸ü¾ùÔÈ£¬ÌáÉý¸ºÔؾùºâÄÜÁ¦¡£

Ö§³Ö»á»°±£³Ö£¬Âú×ãÓû§¸öÐÔ»¯ÐèÇó£º ¸ºÔؾùºâͨ¹ýIPµØÖ·ÊµÏֻỰ±£³Ö£¬¿É½«Ò»¶¨Ê±¼äÄÚÀ´×ÔͬһÓû§µÄ·ÃÎÊÇëÇó£¬×ª·¢µ½Í¬Ò»¸öºó¶ËÈÝÆ÷ÉϽøÐд¦Àí£¬´Ó¶øÊµÏÖÓû§·ÃÎʵÄÁ¬ÐøÐÔ¡£

5£©Ò×ÓÃÐÔ

Ìṩ¶àÖÖ¹ÜÀí;¾¶£¬ÇáËɲÙ×ݸºÔؾùºâ£º Óû§¿Éͨ¹ý¿ØÖÆÌ¨ÇáËÉʵÏÖ¸ºÔؾùºâÆ÷µÄÅäÖá¢Êͷŵȹ¦ÄÜ¡£ºóÐø»á¿ª·Å±ê×¼µÄAPI»òSDKÌṩ¸øÓû§£¬´Ó¶ø×Ô¼º¿ª·¢¶Ô¸ºÔؾùºâµÄ¿ØÖƹÜÀí¡£

ϵͳÉè¼Æ¼°¼¼ÊõʵÏÖ

¸ºÔؾùºâģʽѡÔñ

³£ÓõĸºÔؾùºâģʽÓÐDR£¬NAT£¬TUNNEL£¬FULLNAT¡£Ã¿ÖÖģʽ¶¼ÓÐ×Ô¼ºµÄÓÅÊÆºÍʹÓó¡¾°£¬ÒµÄÚ¶ÔÿÖÖģʽµÄ·ÖÎö±È½ÏÎĵµºÜ¶à£¬²»ÔÙ½éÉÜ¡£ÓÉÓÚJDOSÈÝÆ÷ÍøÂçÐèÒªVLAN¸ôÀ룬¶øFULLNAT¸ÕºÃÖ§³ÖLBºÍRS¿çVLANͨÐÅ£¬½áºÏÎÒÃÇ×ÔÉíÈÝÆ÷¼¯ÈºµÄÐèÇó£¬ÎÒÃÇÔÚʵÏÖSKYLBʱÖ÷Òª¿¼ÂÇÖ§³ÖFULLNATģʽ¡£Í¼3ÊÇSKYLBµÄFULLNAT¸ºÔؾùºâģʽÖÐÊý¾Ý°üµÄÁ÷Ïòͼ¡£SKYLBλÓÚ¿Í»§¶ËºÍºó¶Ë·þÎñÖ®¼ä£¬¶ÔÓÚ¿Í»§¶ËµÄÇëÇó±¨ÎÄ£¬½«Ä¿µÄµØÖ·Ìæ»»³Éºó¶Ë·þÎñµÄµØÖ·£¬Ô´µØÖ·Ìæ»»³ÉSKYLBµÄ±¾µØµØÖ·£¬¶ÔÓÚºó¶Ë·þÎñµÄÏìÓ¦±¨ÎÄ£¬½«Ä¿µÄµØÖ·Ìæ»»³É¿Í»§¶ËµØÖ·£¬Ô´µØÖ·Ìæ»»³ÉSKYLBµÄVIPµØÖ·¡£

ͼ3 FULLNATģʽÏÂSKYLBµÄÊý¾Ý°üÁ÷Ïòͼ

½èÖúDPDKʵÏÖ¸ßËÙת·¢

Data Plane DevelopmentKit£¨DPDK£©£ºÊÇÔËÐÐÔÚLinux Óû§Ì¬£¬ÊµÏÖX86ͨÓÃÆ½Ì¨ÍøÂ籨ÎÄ¿ìËÙ´¦ÀíµÄ¿âºÍÇý¶¯µÄ¼¯ºÏ£¬ÈçÏÂͼ4Ëùʾ£¬ÆäÖ÷ÒªÌØµã£º

¶àºË±à³Ì¿ò¼Ü¼°CPUÇ׺ÍÐÔ

ÿ¸öNUMA½ÚµãÓе¥¶ÀµÄCPUºÍ±¾µØÄÚ´æ

CPU·ÃÎʱ¾µØÄÚ´æËٶȱȷÃÎÊÔ¶¶ËÄÚ´æ¿ì£¬±ÜÃâCPU·ÃÎÊÔ¶¶ËÄÚ´æ

×¢ÒâÍø¿¨¹ÒÔØµÄNUMA½Úµã¾ÞÒ³ÄÚ´æ¹ÜÀí

¾ÞÒ³(HugePage)

ÆÕͨÄÚ´æÒ³Ãæ´óС4KB£¬¾ÞÒ³ÄÚ´æÒ³Ãæ´óС2MB/1GB

¼õÉÙÒ³±íÏîÊýÄ¿£¬½µµÍTLB miss

ʹÓôóÒ³Ãæ±ÈʹÓÃ4KµÄÒ³ÃæÐÔÄÜÌá¸ß10%~15%

Á㿽±´£¬±¨ÎÄÊý¾Ý¼°×ª·¢ÄÚ´æÁ㿽±´¡£

ÎÞËø¶ÓÁÐ

ʹÓÃÎÞËø¶ÓÁУ¬Èë¶Ó³ö¶ÓÎÞÐè×èÈûµÈ´ýËø×ÊÔ´

poll-modeÍø¿¨Çý¶¯

DPDKÍø¿¨Çý¶¯ÍêÈ«ÅׯúÖжÏģʽ£¬»ùÓÚÂÖѯ·½Ê½ÊÕ°ü

ͼ4 DPDKÏà¹ØÄ£¿é

°ü´¦Àí¼Ü¹¹ÊµÏÖ

ͼ5ÊÇSKYLB»ùÓÚRTCÊý¾Ý°ü´¦ÀíÄ£ÐÍʵÏֵļܹ¹¡£SKYLBÑ¡ÔñÒ»¸öºË×÷Ϊ¿ØÖƺˣ¬Ö´ÐÐÃüÁîÅäÖã¬ÓëÄں˽»»»£¬ARP±íά»¤µÈÈÎÎñ¡£ÆäËûµÄºË×÷Ϊ¹¤×÷ºË£¬Ã¿¸ö¹¤×÷ºËÂÖÑ¯Íø¿¨µÄÒ»¸öRX¶ÓÁУ¬Ö´ÐÐÊý¾Ý°ü´¦ÀíÈÎÎñ¡£SKYLBÀûÓÃÍø¿¨µÄRSS¹¦ÄÜʵÏÖ¿Í»§¶ËÇëÇó±¨ÎĵķÖÁ÷£¬ÀûÓÃÍø¿¨FDIR¹¦ÄÜʵÏÖºó¶Ë·þÎñÏìÓ¦±¨ÎĵķÖÁ÷¡£SKYLB¶Ô±¨ÎÄ·ÖÁ÷Ä¿µÄÊÇÒª±£Ö¤¿Í»§¶ËµÄÇëÇó±¨ÎÄºÍÆä¶ÔÓ¦µÄ·þÎñ¶ËÏìÓ¦±¨Îĵ½´ïͬһ¸ö¹¤×÷ºËÉÏ¡£ÔÚÕâ¸öÄ¿µÄ´ï³ÉµÄǰÌáÏ£¬SKYLBµÄÒµÎñʵÏÖ»á¼òµ¥ºÍ¸ßЧºÜ¶à¡£Ã¿¸ö¹¤×÷ºËά»¤Ò»ÕÅsession±í£¬Í¬ÓÚ±£´æ¿Í»§¶ËºÍºó¶Ë·þÎñµÄÁ¬½ÓÐÅÏ¢¡£SKYLB²»ÐèÒª¿¼ÂǶÔsession±í¼ÓËø£¬ÒòΪÿ¸ö¹¤×÷ºËµÄsession±í¶¼ÊǶÀÁ¢µÄ¡£

ͼ5 SKYLBµÄRTC°ü´¦ÀíÄ£ÐÍ¿ò¼Üͼ

ÎÒÃÇÉè¼ÆSKYLBÿ¸ö¹¤×÷ºË¶ÀÕ¼ÖÁÉÙÒ»¸öLIP£¬²¢½«LIPÐÅϢдÈëÍø¿¨ÅäÖá£Í¼6ÊÇÍø¿¨¶ÔIP±¨ÎÄ·ÖÁ÷µÄÁ÷³Ìͼ¡£Í¼ÖÐdst_ip¼´SKYLBΪÿ¸ö¹¤×÷ºË·ÖÅäµÄLIP¡£Íø¿¨¶Ôºó¶Ë·þÎñÏìÓ¦±¨ÎĵÄÄ¿µÄµØÖ·LIPÆ¥Åä³É¹¦£¬½«±¨ÎÄË͵½°ó¶¨µÄRX¶ÓÁУ¬Ã»ÓÐÆ¥ÅäµÄ±¨ÎÄÔò¿ÉÒÔÈÏΪÊǿͻ§¶ËµÄÇëÇó±¨ÎÄ£¬°´RSSÁ÷³Ì·ÖÅäRX¶ÓÁС£

ͼ6 Íø¿¨¶ÔIP±¨ÎÄ·ÖÁ÷¹ý³Ìͼ

SKYLBÔÚÆô¶¯¹ý³ÌÖл¹»áΪÿ¸öÎïÀí¿Ú´´½¨Ò»¸öKNI½Ó¿Ú£¬¿ØÖƺ˸ºÔðÂÖѯKNI½Ó¿Ú¡£¸Ã½Ó¿ÚÖ÷ÒªÓÃÓÚÍⲿ³ÌÐòquaggaÏò·ÓÉÆ÷·¢²¼VIPÐÅÏ¢£¬Agent¼ì²éºó¶Ë·þÎñ½¡¿µ×´Ì¬¡£

SKYLBĿǰ֧³ÖµÄ¸ºÔؾùºâµ÷¶ÈËã·¨ÓÐÒ»ÖÂÐÔhash£¬round robinºÍ×îСÁ¬½ÓÊýËã·¨¡£

SessionÎåÔª×飬SKYLB²ÉÓÃÎåÔª×éÀ´ÊµÏֻỰµÄ¹ÜÀí¹¦ÄÜ£¬ÈçÏÂͼ7 Ëùʾ£º

ͼ7 SKYLB ÎåÔª×é¹ÜÀíSession

¸ºÔؾùºâÈßÓàÉè¼Æ

SKYLBʹÓÃBGP»òÕßOSPFµÄģʽ×é³É¼¯Èº£¬Í¨¹ýÉÏÊöЭÒ齫Êý¾Ý°üÉ¢Áе½¼¯ÈºÖи÷¸ö½ÚµãÉÏ£¬±£Ö¤µ¥Ì¨SKYLB¹ÊÕÏ»òÕ߻ָ´ºóÄܶ¯Ì¬µÄ½«»úÆ÷Ìí¼Ó¼°É¾³ý¡£ÆäÈßÓàʵÏÖÉè¼ÆÈçÏÂͼ6Ëùʾ£º

ͼ8 SKYLBµÄÈßÓàÉè¼Æ

ÐÔÄÜÓÅ»¯Êµ¼ù

Á¼ºÃµÄÁ÷³ÌÉè¼ÆÊÇÐÔÄÜÌáÉýµÄ¹Ø¼ü£¬Õâ·½ÃæµÄÁ÷³ÌÉæ¼°ºÍÒµÎñÏà¹Ø£¬È±·¦¹²ÐÔ£¬Òò´Ë²»×öÏêϸ²ûÊö¡£Ö÷Òª½éÉÜSKYLBÐÔÄÜÓÅ»¯¹ý³ÌÖÐʹÓÃµÄÆäËûÓÅ»¯·½·¨¡£

Ç¡µ±µØÊ¹ÓÃrte_prefetch0()£¬¿ÉÒÔ¼õÉÙcache-miss´ÎÊý£¬±ÜÃ⵱ǰº¯Êý³ÉΪÐÔÄÜÈȵ㡣ÐÔÄܵ÷ÓŹ¤¾ßperf¿ÉÒÔ°ïÖúÎÒÃÇ·ÖÎöÓ¦¸ÃÔÚÄÄ´¦´úÂëʹÓÃԤȡ¡£ÀýÈçÎÒÃÇʹÓÃperf·¢ÏÖ±¨ÎÄ´¦Àíº¯ÊýÖÐÓÐÒ»¸ö´¦´úÂëÊÇÐÔÄÜÈȵ㣬¸Ã´úÂëÓÃÓÚ¶Áȡб¨ÎĵÄÀàÐÍ×ֶβ¢Åжϣ¬·ÖÎöÈÏΪºÜ¿ÉÄÜÊÇcache-missesÔì³ÉµÄ¡£ÔÚ½øÈ뱨ÎÄ´¦Àíº¯ÊýǰʹÓÃrte_prefetch0()£¬ÓÐЧ±ÜÃâ¸Ãº¯Êý³ÉΪÈȵ㡣

Ç¡µ±µØÊ¹ÓÃlikely()ºÍunlikely()£¬¿ÉÒÔ¼õÉÙ·ÖÖ§Ô¤²âʧ°ÜµÄ´ÎÊý¡£ÎÒÃÇÔÚSKYLB´úÂëµÄÒ»´¦·ÖÖ§Óï¾äÖÐʹÓÃunlikely()ÓÅ»¯£¬ÐÔÄÜÌáÉýÃ÷ÏÔ¡£·ÖÖ§Ô¤²âÓÅ»¯µã¿ÉÒÔ½èÖúperf·ÖÎöÈ·¶¨£¬Ò²¿ÉÒÔ¸ù¾Ý×Ô¼º¶Ô´úÂëÖ´ÐÐÁ÷³ÌµÄÀí½âÈ·¶¨¡£

¾¡Á¿¼õÉÙËøµÄʹÓá£SKYLBÖÐÅäÖÃÐÅÏ¢²»¾­³£±ä»¯£¬ÎÒÃÇûÓе¥¶ÀΪÿ¸ö¿ÉÄÜÕùÓõÄ×ÊÔ´¼ÓËø£¬¶øÊÇÖ»ÓÃÒ»°ÑDPDKÌṩµÄ¶ÁÐ´Ëø£¬Ã¿¸ö¶ÁÏß³ÌÔÚ¼Ó¶ÁËøºó£¬´¦ÀíÒ»Åú±¨ÎÄ£¬È»ºóÊͷŶÁËø¡£¼È¼ò»¯Á÷³Ì£¬ÓÖ¼õÉÙÁ˲Ù×÷¶ÁÐ´ËøµÄ¿ªÏú(DPDK¶ÁÐ´ËøµÄ¿ªÏú²¢²»ÊǺܴó)¡£

ÐÔÄÜÊý¾Ý

²âÊÔ»·¾³£º

CPU£ºIntel(R) Xeon(R) CPU E5-2640 v3

NIC£ºintel 82599ES 10-GigabitSFI/SFP+ Network Connection

²âÊÔÅäÖãº

¸ºÔؾùºâģʽ£ºFULLNAT

µ÷¶ÈËã·¨£ºÒ»ÖÂÐÔhash

ÅäÖãºCPUÕ¼ÓÃ8ºË ÄÚ´æÕ¼ÓÃ4G

ÐÔÄܲâÊÔÊý¾Ý£º

1£©UDP·¢°ü£¬²âÊÔת·¢ÐÔÄÜ£¬ÎÒÃÇʹÓÃÁËSKYDNS×÷Ϊºó¶Ë·þÎñ£¬¿Í»§¶Ë²ÉÓÃUDPÇëÇóDNS

±í1 SKYLB»ùÓÚUDPµÄDNSÐÔÄܲâÊÔÊý¾Ý

2£©NGINX×÷Ϊºó¶Ë·þÎñ£¬Ñ¹²âHTTPÐÔÄÜ¡£

ÅäÖãºCPUÕ¼ÓÃ8ºË ÄÚ´æÕ¼ÓÃ4G

±í2 SKYLB HTTPÐÔÄܲâÊÔÊý¾Ý

ͼ9 SKYLB HTTP ÐÔÄܲâÊÔÖ¸±êͼ

ͼ10 SKYLBhttp ÐÔÄܲâÊÔÖ¸±êͼ

×ܽá

±¾ÎÄÖ÷Òª½éÉÜÁËSKYLB£¬Ò»ÖֵĻùÓÚintel DPDKƽ̨¿ª·¢µÄ¸ºÔؾùºâÆ÷¡£Æä½Ó½üÍø¿¨ÏßËÙ´¦Àí¼°×ª·¢ÄÜÁ¦£¬Áé»îµÄ²¿Ê𣬶àÑùµÄ¼à¿ØÒÔ¼°¿É¿¿µÄÎȶ¨ÐÔ¡£»ù±¾Éϸ²¸ÇËùÓÐ4²ã¸ºÔؾùºâµÄÒµÎñ´¦ÀíÐèÇó£¬ÅäºÏ¼¯Èº¹ÜÀíÒÔ¼°µ÷¶È£¬×÷Ϊ¾©¶«Êý¾ÝÖÐÐIJÙ×÷ϵͳ£¨JDOS£©µÄÒ»¸öÖØÒªµÄ×é³É²¿·Ö£¬ÔÚ¾©¶«Êý¾ÝÖÐÐÄ·¢»ÓÖÁ¹ØÖØÒªµÄ×÷Óá£

   
6427 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù