SDN及云计算平台中的网络性能优化
你知道吗?当你部署IaaS云计算平台时,就已在利用SDN了。你知道吗?云计算平台可以在vSwitch和physicalSwitch之间无缝切换。你知道吗?当前的云计算平台的网络部份有很大的优化空间。本文就带你了解这一切。
SDN起源于校园网络,发扬光大于数据中心。但现在看来很多人对后一句话并没有真正理解,如果你不服气,你能回答我这个问题吗:为啥说SDN很合适数据中心?我相信很多人对此都不甚了解。我这么说有一个根据,由于工作的关系,我跟国内很多做云平台的技术和管理人员聊过,包括提供公有云、私有云服务的公司和企业内部私有云网络的研发和运维部门的员工,有很多人跟我说过这样一句话:我们目前还没有开始使用SDN,但正在研究,或许以后会斟酌吧。这句话暴露了当前很多从事云计算网络研发和运维的技术人员,对SDN在云计算网络中的利用其实不清楚。
实际上,当你的数据中心在部署云计算平台(如OpenStack)时,就已在利用SDN了。先来看看OpenStack的网络组件Neutron的整体架构(如图1所示)。
这个架构,逻辑上可以分为三个部份。最上面的一部份是OpenStack的控制平台,它通过用户操作直接还是间接向网络组件Neutron发送标准的命令。第二层是Neutron组件,它通常是位于一个独立的控制节点上(一台服务器),它有一套标准的API对应上层利用发给它的每一个命令,这些API包括create_network、create_port、create_subnet等创建多租户网络和创建Firewall、LoadBalancer等各种业务的API。这套API从SDN的架构来看属于北向接口。在Neutron组件内部有很多个不同的插件(plugin),这些插件大多数都是vSwitch插件,例如OVS、LinuxBridge和OpenFlowController等,也有部份硬件交换机插件,目前已存在的包括Cisco、Arista和Mellanox,相信后面还会有公司会提交。用户可以选择自己的网络使用哪一种方式,然后选择相应的插件,这些插件会处理NeutronAPI调用,将它们转换为每种插件对应的switch所提供的API调用,然后通过各自定义的方式,发消息去调用虚拟交换机还是物理交换机提供的API,这套API从SDN的架构来看属于南向接口。
我们再回过头来看看SDN的定义。SDN有很多属性,每一个人理解都不同,正是由于如此,所以很多人对某一项技术是否是是SDN看法不同。实际上,有很多属性是伪属性,它们其实不影响对某项技术是否是是SDN的判断,比如是否是用了OpenFlow,是否是有标准化的编程接口,是否是使用了物理交换机,都跟是否是是SDN无关。在我看来,SDN有三个核心属性可以用来判断一个技术是否是是SDN,这三个属性包括控制与转发分离、开放的编程接口、集中化的网络控制(关于这点会有歧义,这里集中化网络控制,其实不意味着Controller一定要是集中式架构,也能够是散布式的,只是说,所有参与控制的Controller,在被控制的交换机看来,逻辑上只有一个)。
然后我们再来看一下OpenStack(别的云平台也一样)是否是符合这三个要求。
第一,OpenStack架构中,控制面都是在OpenStack逻辑中(图1中的第一层和第二层),而转发面则在虚拟交换机还是物理交换机中,绝对的控制与转发分离。
第二,不管是南向或北向,都有开放的编程接口。
第三,集中化的OpenStack控制平台控制着网络中多台服务器和交换机。所以不管从哪一个方面看,OpenStack都是标准的SDN架构,OpenStack就是一个超级Controller。
可以说如果没有SDN的理念,就没有OpenStack,你能想象交换机(物理还是虚拟)如果不提供编程接口出来,OpenStack怎样灵活控制网络吗?特别是网络虚拟化的引入更是离不开SDN的协助(但网络虚拟化不等于SDN,不要弄混了)。而SDN确切为包括OpenStack在内的云平台提供了无可替换的便利,让云平台的自动化操作成为可能。所以现在可以回答最开始的问题了:为啥说SDN非常合适用在数据中心?其实更准确地说,是合适部署了云计算网络的数据中心,由于云计算网络要调和的资源非常多,引入一个业务要履行的操作非常复杂,靠手工去操作,一方面容易出错,另外一方面耗时太长,所以需要借助工具进行自动化部署,而使用了SDN的云管理平台使得这一切成了可能。以后如果再有人问你SDN到底作用在哪里,有甚么是SDN能做而传统网络装备做不了的,给他讲讲这个例子。
但为啥或有很多做云计算平台的人不认为自己使用了SDN呢?我归纳了一下,大致有三种缘由。
第一种,这些人不了解OpenStackNeutron的架构和工作原理,自然就不清楚。就像我在没有深入研究Neutron之前,也不清楚这一点。
第二种,很多人潜意识里面觉得没有用到OpenFlow,就不能算用了SDN。前面提到,用不用OpenFlow并不是是否是是SDN的判断根据,由于OpenFlow只是SDN的其中一种实现方式。
第三种,有人潜意识里面觉得我都用的是OVS,没有触及到物理交换机,就觉得不能算是SDN,还是是觉得没有全网都用SDN,只是在网络边沿用到了,不能算是部署SDN了。这一切都是误解,归根结柢或属于对SDN的本质还是OpenStack架构看得不透彻。
对云计算网络的用户来讲,他们看不到SDN,但这其实不代表他们没有享遭到SDN带给他们的好处。现在大多数公有云平台的用户都是自助服务的,他们自己创建虚机,自己创建虚拟网络,自己创建虚拟路由器,自己创建防火墙等,谁在底层支持着这些动作的顺利履行呢?是SDN架构!没有SDN,就没有这一切!SDN的最高境地就是用户在享受着SDN带来的便利却并没成心识到自己使用了SDN。
TikTok千粉号购买平台:https://tiktokusername.com/
TOP