±¾Ìû×îºóÓÉ pig2 ÓÚ 2014-10-25 12:02 ±à¼
ÎÊÌâµ¼¶Á 1.ÄãÊÇÈçºÎÀí½âÍøÇŵģ¿ 2.ʲôÊÇOpen vSwitch£¿ 3.Open vSwitchÓÐʲô×÷Óã¿ ¿ª·¢ÈËÔ±±Ø¶ÁopenstackÍøÂç»ù´¡6£¬½²ÁËÍøÇÅ£¬ÕâÀïÔٴβûÊö£¬µ±ÊǽøÒ»²½¼ÓÉîÀí½âÍøÇÅ¡£²»¹ý±¾ÎÄÖص㽲µÄÊÇOpen vSwitch ÍøÇÅ Bridge£¨ÇÅ£©ÊÇLinuxÉÏÓÃÀ´×öTCP/IP¶þ²ãÐÒé½»»»µÄÉ豸£¬ÓëÏÖʵÊÀ½çÖеĽ»»»»ú¹¦ÄÜÏàËÆ¡£BridgeÉ豸ʵÀý¿ÉÒÔºÍLinuxÉÏÆäËûÍøÂçÉ豸ʵÀýÁ¬½Ó£¬¼ÈattachÒ»¸ö´ÓÉ豸£¬ÀàËÆÓÚÔÚÏÖʵÊÀ½çÖеĽ»»»»úºÍÒ»¸öÓû§ÖÕ¶ËÖ®¼äÁ¬½ÓÒ»¸ùÍøÏß¡£µ±ÓÐÊý¾Ýµ½´ïʱ£¬Bridge»á¸ù¾Ý±¨ÎÄÖеÄMACÐÅÏ¢½øÐй㲥¡¢×ª·¢¡¢¶ªÆú´¦Àí¡£ ͼ1.BridgeÉ豸¹¤×÷¹ý³Ì ÈçͼËùʾ£¬BridgeµÄ¹¦ÄÜÖ÷ÒªÔÚÄÚºËÀïʵÏÖ¡£µ±Ò»¸ö´ÓÉ豸±»attachµ½BridgeÉÏʱ£¬Ï൱ÓÚÏÖʵÊÀ½çÀï½»»»»úµÄ¶Ë¿Ú±»²åÈëÁËÒ»¸ùÁ¬ÓÐÖն˵ÄÍøÏß¡£
Open vSwitch
ʲôÊÇOpen vSwitch Open vSwitchµÄÄ¿±ê£¬ÊÇ×öÒ»¸ö¾ßÓвúÆ·¼¶ÖÊÁ¿µÄ¶à²ãÐéÄâ½»»»»ú¡£Í¨¹ý¿É±à³ÌÀ©Õ¹£¬¿ÉÒÔʵÏÖ´ó¹æÄ£ÍøÂçµÄ×Ô¶¯»¯£¨ÅäÖᢹÜÀí¡¢Î¬»¤£©¡£ËüÖ§³ÖÏÖÓбê×¼¹ÜÀí½Ó¿ÚºÍÐÒ飨±ÈÈçnetFlow£¬sFlow£¬SPAN£¬RSPAN£¬CLI£¬LACP£¬802.1agµÈ£¬ÊìϤÎïÀíÍøÂçά»¤µÄ¹ÜÀíÔ±¿ÉÒÔºÁ²»·ÑÁ¦µØͨ¹ýOpen vSwitchתÏòÐéÄâÍøÂç¹ÜÀí£©¡£×ܵÄÀ´Ëµ£¬Ëü±»Éè¼ÆΪ֧³Ö·Ö²¼ÔÚ¶à¸öÎïÀí·þÎñÆ÷£¬ÀýÈçVMwareµÄvNetwork·Ö²¼Ê½vSwitch»ò˼¿ÆµÄNexus1000V¡£
ÄÇôʲôÊÇÐéÄâ½»»»£¿ÐéÄâ½»»»¾ÍÊÇÀûÓÃÐéÄâƽ̨£¬Í¨¹ýÈí¼þµÄ·½Ê½Ðγɽ»»»»ú²¿¼þ¡£¸ú´«Í³µÄÎïÀí½»»»»úÏà±È£¬ÐéÄâ½»»»»úͬÑù¾ß±¸ÖÚ¶àÓŵ㣬һÊÇÅäÖøü¼ÓÁé»î¡£Ò»Ì¨ÆÕͨµÄ·þÎñÆ÷¿ÉÒÔÅäÖóöÊýʮ̨ÉõÖÁÉÏ°Ų̀ÐéÄâ½»»»»ú£¬ÇҶ˿ÚÊýÄ¿¿ÉÒÔÁé»îÑ¡Ôñ¡£ÀýÈ磬VMwareµÄESXһ̨·þÎñÆ÷¿ÉÒÔ·ÂÕæ³ö248̨ÐéÄâ½»»»»ú£¬ÇÒÿ̨½»»»»úÔ¤ÉèÐéÄâ¶Ë¿Ú¼´¿É´ï56¸ö£»¶þÊdzɱ¾¸ü¼ÓµÍÁ®£¬Í¨¹ýÐéÄâ½»»»ÍùÍù¿ÉÒÔ»ñµÃ°º¹óµÄÆÕͨ½»»»»ú²ÅÄÜ´ïµ½µÄÐÔÄÜ£¬ÀýÈç΢ÈíµÄHyper-Vƽ̨£¬ÐéÄâ»úÓëÐéÄâ½»»»»úÖ®¼äµÄÁª»úËÙ¶ÈÇáÒ׿ɴï10Gbps
ͨË×À´½²£¬Open vSwitchÊÇÒ»¸öÓÉNicira NetworksÖ÷µ¼µÄ¿ªÔ´ÏîÄ¿£¬Í¨¹ýÔËÐÐÔÚÐéÄ⻯ƽ̨ÉϵÄÐéÄâ½»»»»ú£¬Îª±¾Ì¨ÎïÀí»úÉϵÄVMÌṩ¶þ²ãÍøÂç½ÓÈ룬 ¸úÔÆÖеÄÆäËüÎïÀí½»»»»úÒ»Ñù¹¤×÷ÔÚLayer 2²ã¡£Open vSwitch³ä·Ö¿¼ÂÇÁËÔÚ²»Í¬ÐéÄ⻯ƽ̨¼äµÄÒÆÖ²ÐÔ£¬²ÉÓÃƽ̨Î޹صÄCÓïÑÔ¿ª·¢¡£
Open vSwitchµÄ×÷ÓÃ
Äã¿ÉÄÜ»áÎÊ£¬ÎÒΪʲôÓбØÒªÔÚ×Ô¼ºµÄÔƼܹ¹ÖÐʹÓÃËüÄØ£¿ËüÄܸøÎÒµÄÔÆ´øÀ´Ê²Ã´£¿ OK¡£ÐèÇó¾ö¶¨Ò»ÇУ¬Èç¹ûÄãÖ»ÊÇ×Ô¼º¸ãһ̨Host£¬ÔÚÉÏÃæÐéÄ⼸̨VM×öʵÑé¡£»òÕßСÐÍ´´Òµ¹«Ë¾£¬Í¨¹ýÔÚÎą̊ʮ̨»úÆ÷ÉϵÄÐéÄ⻯£¬´´½¨Ò»Ð©VM¸ø¹«Ë¾ÄÚ²¿¿ª·¢²âÊÔÍŶÓʹÓá£ÄÇô¶ÔÄã¶øÑÔ£¬ÍøÂçÐéÄ⻯µÄÆÈÇÐÐÔ²¢²»Ç¿ÁÒ¡£Ò²ÐíÄã¸ü¶à¿¼Âǵģ¬ÊÇVMµÄ¿É¿¿½ÓÈ룺ºÍÎïÀí»úÒ»ÑùÓÐЧ»ñÈ¡ÍøÂçÁ¬½Ó£¬Äܹ»RDP·ÃÎÊ¡£Linux Kernel×Ô´øµÄÇŽÓÄ£¿é¾Í¿ÉÒԺܺõĽâ¾öÕâÒ»ÎÊÌâ¡£ÔÀíÉϽ²£¬ÕýÈ·ÅäÖÃÇŽӣ¬²¢°ÑVMµÄvirtual nicÁ¬½ÓÔÚÇŽÓÆ÷ÉϾÍOKÀ²¡£ºÜ¶àÐéÄ⻯ƽ̨µÄÔçÆÚ½â¾ö·½°¸Ò²ÊÇÈç´Ë£¬×Ô¶¯ÅäÖò¢ÒÔÏòÓû§Í¸Ã÷µÄ·½Ê½ÌṩÐéÄâ»ú½ÓÈë¡£Èç¹ûÄãÊÇOpenStackµÄfans£¬ÄÇNova¾Í¸üºÃµØ°ïÄãÍê³ÉÁËһϵÁÐÍøÂç½ÓÈëÉèÖá£Open vSwitchÔÚWHY-OVSÕâƪÎÄÕÂÖУ¬µÚÒ»¾ä»°¾Í¸ß¶ÈÔÞÑïÁËLinux bridge£º ¡°We love the existing network stack in Linux. It is robust, flexible, and feature rich. Linux already contains an in-kernel L2 switch (the Linux bridge) which can be used by VMs for inter-VM communication. So, it is reasonable to ask why there is a need for a new network switch.¡±
µ«ÊÇ£¬Èç¹ûÄãÊÇ´óÐÍÊý¾ÝÖÐÐĵÄÍøÂç¹ÜÀíÔ±£¬Ò»¶äûÓÐÍøÂçÐéÄ⻯֧³ÖµÄÔÆ£¬½«ÊÇÎÞ¾¡µÄجÃΡ£ ÔÚ´«Í³Êý¾ÝÖÐÐÄÖУ¬ÍøÂç¹ÜÀíԱϰ¹ßÁËÿ̨ÎïÀí»úµÄÍøÂç½ÓÈë¾ù¿É¼û²¢ÇÒ¿ÉÅäÖá£Í¨¹ýÔÚ½»»»»úij¶Ë¿ÚµÄ²ßÂÔÅäÖ㬿ÉÒԺܺÿØÖÆÖ¸¶¨ÎïÀí»úµÄÍøÂç½ÓÈ룬·ÃÎʲßÂÔ£¬ÍøÂç¸ôÀ룬Á÷Á¿¼à¿Ø£¬Êý¾Ý°ü·ÖÎö£¬QosÅäÖã¬Á÷Á¿ÓÅ»¯µÈ¡£
ÓÐÁËÔÆ£¬ÍøÂç¹ÜÀíÔ±ÈÔÈ»ÆÚÍûÄÜÒÔper OS/per portµÄ·½Ê½¹ÜÀí¡£Èç¹ûûÓÐÍøÂçÐéÄ⻯¼¼ÊõµÄÖ§³Ö£¬¹ÜÀíÔ±Ö»ÄÜ¿´µ½±»ÇŽӵÄÎïÀíÍø¿¨£¬ÆäÉÏ´¨Á÷²»Ï¢µØÅÜ×Ån̨VMµÄÊý¾Ý°ü¡£½öƾÎïÀí½»»»»úÖ§³Ö£¬¹ÜÀíÔ±ÎÞ·¨Çø·ÖÕâЩ°üÊôÓÚÄĸöOSÄĸöÓû§£¬Ö»ÄÜÍûÔÆÐË̾ºõ£¿¼òµ¥Áоٳ£¼ûµÄ¼¸ÖÖÐèÇó£¬Open vSwitchÏÖÓа汾ºÜºÃµØ½â¾öÁËÕâЩÐèÇó¡£
ÐèÇóÒ»£ºÍøÂç¸ôÀë¡£ÎïÀíÍøÂç¹ÜÀíÔ±ÔçÒÑÏ°¹ßÁ˰Ѳ»Í¬µÄÓû§×é·ÅÔÚ²»Í¬µÄVLANÖУ¬ÀýÈçÑз¢²¿ÃÅ¡¢ÏúÊÛ²¿ÃÅ¡¢²ÆÎñ²¿ÃÅ£¬×öµ½¶þ²ãÍøÂç¸ôÀë¡£Open vSwitchͨ¹ýÔÚhostÉÏÐéÄâ³öÒ»¸öÈí¼þ½»»»»ú£¬µÈÓÚÔÚÎïÀí½»»»»úÉϼ¶ÁªÁËһ̨еĽ»»»»ú£¬ËùÓÐVMͨ¹ý¼¶Áª½»»»»ú½ÓÈ룬ÈùÜÀíÔ±Äܹ»ÏñÅäÖÃÎïÀí½»»»»úÒ»Ñù°Ñͬһ̨hostÉϵÄÖÚ¶àVM·ÖÅäµ½²»Í¬VLANÖÐÈ¥£»
ÐèÇó¶þ£ºQoSÅäÖá£ÔÚ¹²Ïíͬһ¸öÎïÀíÍø¿¨µÄÖÚ¶àVMÖУ¬ÎÒÃÇÆÚÍû¸øÿ̨VMÅäÖò»Í¬µÄËٶȺʹø¿í£¬ÒÔ±£Ö¤ºËÐÄÒµÎñVMµÄÍøÂçÐÔÄÜ¡£Í¨¹ýÔÚOpen vSwitch¶Ë¿ÚÉÏ£¬¸ø¸÷¸öVMÅäÖÃQoS£¬¿ÉÒÔʵÏÖÎïÀí½»»»»úµÄtraffic queuingºÍtraffic shaping¹¦ÄÜ¡£
ÐèÇóÈý£ºÁ÷Á¿¼à¿Ø£¬Netflow£¬sFlow¡£ÎïÀí½»»»»úͨ¹ýxxFlow¼¼Êõ¶ÔÊý¾Ý°ü²ÉÑù£¬¼Ç¼¹Ø¼üÓò£¬·¢ÍùAnalyzer´¦Àí¡£½ø¶øʵÏÖ°üÀ¨ÍøÂç¼à¿Ø¡¢Ó¦ÓÃÈí¼þ¼à¿Ø¡¢Óû§¼à¿Ø¡¢ÍøÂç¹æ»®¡¢°²È«·ÖÎö¡¢»á¼ÆºÍ½áËã¡¢ÒÔ¼°ÍøÂçÁ÷Á¿Êý¾Ý¿â·ÖÎöºÍÍÚ¾òÔÚÄڵĸ÷Ïî²Ù×÷¡£ÀýÈ磬NetFlowÁ÷Á¿Í³¼Æ¿ÉÒԲɼ¯µÄÊý¾Ý·Ç³£·á¸»£¬°üÀ¨£ºÊý¾ÝÁ÷ʱ´Á¡¢Ô´IPµØÖ·ºÍÄ¿µÄIPµØÖ·¡¢ Ô´¶Ë¿ÚºÅºÍÄ¿µÄ¶Ë¿ÚºÅ¡¢ÊäÈë½Ó¿ÚºÅºÍÊä³ö½Ó¿ÚºÅ¡¢ÏÂÒ»ÌøIPµØÖ·¡¢ÐÅÏ¢Á÷ÖеÄ×Ü×Ö½ÚÊý¡¢ÐÅÏ¢Á÷ÖеÄÊý¾Ý°üÊýÁ¿¡¢ÐÅÏ¢Á÷ÖеĵÚÒ»¸öºÍ×îºóÒ»¸öÊý¾Ý°üʱ´Á¡¢Ô´ASºÍÄ¿µÄAS£¬¼°Ç°ÖÃÑÚÂëÐòºÅµÈ¡£
xxFlowÒòÆä·½±ã¡¢¿ì½Ý¡¢¶¯Ì¬¡¢¸ßЧµÄÌص㣬ΪԽÀ´Ô½¶àµÄÍø¹ÜÈËÔ±Ëù½ÓÊÜ£¬³ÉΪ»¥ÁªÍø°²È«¹ÜÀíµÄÖØÒªÊֶΣ¬ÌرðÊÇÔڽϴóÍøÂçµÄ¹ÜÀíÖУ¬¸üÄÜÌåÏÖ³öÆä¶ÀÌØÓÅÊÆ¡£ û´í£¬ÓÐÁËOpen vSwitch£¬×÷ΪÍø¹ÜµÄÄ㣬¿ÉÒÔ°ÑxxFlowµÄÇ¿´óÁÜÀ쾡ÖµØÓ¦ÓÃÔÚVMÉÏ£¡
ÐèÇóËÄ£ºÊý¾Ý°ü·ÖÎö£¬Packet Mirror¡£ÎïÀí½»»»»úµÄÒ»´óÂôµã£¬µ±¶Ôijһ¶Ë¿ÚµÄÊý¾Ý°ü¸ÐÐËȤʱ£¨for trouble shooting , etc£©£¬¿ÉÒÔÅäÖø÷ÖÖspan£¨SPAN, RSPAN, ERSPAN£©£¬°Ñ¸Ã¶Ë¿ÚµÄÊý¾Ý°ü¸´ÖÆת·¢µ½Ö¸¶¨¶Ë¿Ú£¬Í¨¹ý×¥°ü¹¤¾ß½øÐзÖÎö¡£Open vSwitch¹ÙÍøÁгöÁ˶ÔSPAN, RSPAN, and GRE-tunneled mirrorsµÄÖ§³Ö¡£
Ö»ÊÇÔÚOpen vSwitchÉÏʵÏÖÎïÀí½»»»»úµÄÏÖÓй¦ÄÜ£¿ÄǾø¶Ô²»ÊÇNiciraµÄ·ç¸ñ¡£
ÔÆÖеÄÍøÂ磬¾ø²»½ö½öÐèÒª´«Í³ÎïÀí½»»»»úÒÑÓеŦÄÜ¡£ÔƶÔÍøÂçµÄÐèÇó£¬Íƶ¯ÁËSoftware Defined NetworkÔ½À´Ô½»ð¡£¶øÔÚ¸÷ÖÖSDN½â¾ö·½°¸ÖУ¬OpenFlowÎÞÒÉÊÇ×îÒýÈËÖõÄ¿µÄ¡£Flow Table + ControllerµÄ¼Ü¹¹£¬ÎªÐ·þÎñÐÂÐÒéÌṩÁ˾ø¼ÑµÄ¿ª·ÅÐÔƽ̨¡£Nicira°Ñ¶ÔOpenflowµÄÖ§³ÖÒýÈëÁËOpen vSwitch¡£ÒýÈëÒÔÏÂÄ£¿é£º
¡¤ ovs-openflowd --- OpenFlow½»»»»ú£» ¡¤ ovs-controller --- OpenFlow¿ØÖÆÆ÷£» ¡¤ ovs-ofctl --- Open Flow µÄÃüÁîÐÐÅäÖýӿڣ» ¡¤ ovs-pki --- ´´½¨ºÍ¹ÜÀí¹«Ô¿¿ò¼Ü£» ¡¤ tcpdumpµÄ²¹¶¡ --- ½âÎöOpenFlowµÄÏûÏ¢£»
²»ÔÙÕ¹¿ª£¬´ó¼Ò¸ÐÐËȤµÄ»°¿ÉÒÔGoogleÖ®¡£ ͼ2 £ºOpen FlowʾÒâͼ -- Õª×ÔOpen Flow°×ƤÊé ÐèÇó¾ö¶¨²úÆ·£¬ÕýÊÇÓÉÓÚÔÚÆóÒµ¼¶ÔÆÖУ¬ÐèÒª¸÷ÖַḻµÄÍøÂ繦ÄÜ£¬VMware²ÅÓÚnÄêÇ°¾ÍÍƳöÁËvSwitch¡¢vDSµÈÐéÄâ½»»»»ú¡£ÕýÊÇ¿´µ½ÁËÔÆÖеÄÍøÂçÊÇÒ»¿é´óÊг¡£¬Cisco²ÅÓëVMware½ôÃܺÏ×÷£¬ÒÔpartnerµÄÐÎʽ»ùÓÚVMware kernel API¿ª·¢³öÁË×Ô¼ºµÄ·Ö²¼Ê½ÐéÄâ½»»»»úNexus 1000V£¨¹¦ÄܶÔÓ¦ÓÚVMwareµÄvDS£©¡£¿ÉϧµÄÊÇ£¬ÕâÁ½¿î²úÆ·¶¼ÊÇÊշѵġ£Citrixµ¹ÊÇ»ùÓÚOpen vSwitch¿ìËÙ×·¸Ï£¬ÍƳöÁË×Ô¼ºµÄDistributed Virtual Switch½â¾ö·½°¸¡£µ«ÊDz»ºÃÒâ˼£¬Ò²ÊÇÊշѵġ£¿ªÔ´ÔƵıê¸ËOpenStackÈ¥ÄêÏ°ëÄêÍƳöÁËÒ»Ïîºê´óµÄ¼Æ»®£¬Æô¶¯ÁËQuantumÏîÄ¿£¬Ö¾ÔÚͨ¹ýÒýÈëOpen vSwitch£¬ÎªOpen Stack NetworkÄ£¿é¹´ÀÕ³ö¡°Connectivity as a service¡±µÄ¶¯ÈËÇ°¾°¡£ÓÐʱ¼äµÄ»°£¬»áÔÙµ¥¶À¿ªÒ»ÆªÎÄÕÂÌÖÂÛ¡£ ¸Ðл¿ªÔ´£¬Open vSwitchÊÇ×ø¹«½»³µµÄ³É±¾£¬½ø¿ÚÅܳµµÄÌåÑ飡»¹µÈʲô£¬ÔÚÄãµÄ´óÐÍ¿ªÔ´ÔƼܹ¹ÖУ¬Ê¹ÓÃOpen vSwitch°É£¡
Ïà¹ØÌû×Ó£º
¿ª·¢ÈËÔ±±Ø¶ÁopenstackÍøÂç»ù´¡1:ʲôÊÇL2¡¢L3
¿ª·¢ÈËÔ±±Ø¶ÁopenstackÍøÂç»ù´¡2:½»»»»ú¡¢Â·ÓÉÆ÷¡¢DHCP
¿ª·¢ÈËÔ±±Ø¶ÁopenstackÍøÂç»ù´¡3: iptablesÏê½â
¿ª·¢ÈËÔ±±Ø¶ÁopenstackÍøÂç»ù´¡4:Dnsmasq¡¢ÍøÂç»ìÔÓģʽ
¿ª·¢ÈËÔ±±Ø¶ÁopenstackÍøÂç»ù´¡5:ÍøÂçµþ¼ÓģʽVLAN¡¢VxLAN¡¢GRE
¿ª·¢ÈËÔ±±Ø¶ÁopenstackÍøÂç»ù´¡6:ʲôÊÇTap/Tun¡¢ÍøÇÅ
|