【IT168 评论】在2012年, 网络界最热门的议题就是Software Defined Network, 但这是一个非常发散的议题. SDN就像很多年前我们谈Cloud一样, 知道怎么拼, 但老是搞不清楚这到底在搞些什么东西. 在2013年, 这些议题感觉稍微收敛了一点, 我们开始陆续听到, Network Virtualization或是Network Functions Virtualization或是其他类似的讨论. 在我所拜访的许多客户中, 许多人都问到这些技术的方向, 及未来展望. 当然我很有礼貌的回答了一些我个人的看法, 但根本的来说, 我也不知道那是什么!
一些新的网络名词在现今的市场上, 有不同的解释, 其实信息很不一致. 所以根本上, 我无法回复多数人的问题, 如果能有一个比较明确的想法, 而不单只是协议, 或是一个不知道应用支撑的网络架构规划. 那这样我们比较容易能激出一些讨论的火花.
对于我来说, 因为本身工作的关系. 网络虚拟化是一个很明确的主题, 就是”在高度服务器虚拟化的数据中心内, 建立可程序化的网络架构”, 并且”将原本在网络硬件上转送的intelligent, 转移到离服务最近的Server Hypervisor上”.
其实每次一谈到这个部分的时候, 大家都会对这个说法开始产生相当大的质疑. 就是~
1、这种作法让已经管理到快昏倒的网络变得更复杂了!
2、软件的性能怎么跟硬件相比?
3、为什么我们需要这种理念?到底对我的业务有什么好处?
说真的, 如果您是中小型的数据中心网络环境, 那第一件事就是, 恭喜你~ 你可以在这边选择要不要继续看下去. 因为你可能碰不到我们所针对的痛点. 如果您是运营商或是大中型的企业, 并且大量使用Server Hypervisor作为支撑业务的基础时, 那你可能已经遭遇我们所要谈的主题.
从数据上统计, 在虚拟环境上的虚拟网络端口已经超越物理网络端口的数量了. 所以也就是说, 你对虚拟网络的管理策略的复杂度, 已经远超于过去传统网络的认知及规模. 在我过去15年的工作生涯中, 看过不少大型网络, 也参与不少数据中心的项目的建立及运维, 唯独这两三年在网络的扩增速度是超越我过去10多年的经验. 当然这是拜高度虚拟化的结果所赐。
所以可想而知, 今天对于云端服务的提供商来说, 在大量使用虚拟化服务器之后, 其网络一般来说都在很短的时间走到瓶颈. 首当其冲的就是管理面的问题, 如何管理多租户的网络, 并保持隔离, 服务增值, 实时反应租户对于基础建设的需求. 这些需求在25年前, 是网络设计者所未考虑到的, 网络在经过多年演化后, 除了性能及部分功能的增加, 实质上并未有太明确的改变. (注:我在2003年第一次参加并且通过CCIE实验室的考试之后, 在这10年中, 我在网络部分空白了数年并专心在应用安全的议题上, 再回头发现, 其实现今的网络本质运作, 并没有革命性的概念改变.)
再来就是规模化的问题, 一般非营运商虚拟化的数据中心的环境, 很少遇到这个议题, 但简单来说, VLAN数量限制, 导致网络无法继续有效的扩张. ToR交换机TCAM的限制导致规模化环境的网络学习中断, 都些都是在大型虚拟化的数据中心常见的问题.并成为进退两难的问题.
就是因为如此, 开始有人想打破传统网络的管理框架, 建立一个新的机制, 让网络像写程序一样, 可以快速产出用户所需要的结果, 透过变量的定义, 可以自动计算新的需求并执行. 这个概念就是我们熟习的名词SDN. 但是SDN的发展并不如原先预期的顺利, 因为他主旨在于将control panel从硬件网络设备内脱离出来, 并未考虑到data panel的转发限制. 所以整个网络还是局限在一个特定的区域内, 并且所有data panel的学习都由openflow控制器管理, 所以规模化成为了另一个dead point. 但这样评论SDN(或是openflow协议), 并不是太公平. 他并非一无是处, 我也看过使用SDN作为流量工程应用的一些案例, 如 traffic redirection, security tap的应用模式, 所以只是在数据中心的整体架构来说, 这个概念在规模及投资的成本上不太适合而已.
但是对于网络虚拟化的概念来说, 我们可以思考它为创新的网络架构概念, 它利用今日网络IP通讯的特性, 并同时考虑SDN的经验所发展出的一个新的方式. 它依然遵循过去”传统” SDN将control panel 脱离的概念到x86为基础的controller上, 并且同时透过安装在Hypervisor内的虚拟交换机, 抽象化网络data panel的转发, 使用IP隧道作为端到端的通讯方式(VXLAN, STT, GRE) 等. 让网络在一个IP可通讯的物理条件上, 可透过API布署L2-L4的虚拟网络topology, 并且向上垂直整合L7的应用需求或是水平整合物理服务器的网络通讯. 所以从这个观点来思考, 你可以把你现在个IP网络, 视为一个大型的网络背板 (Network Backplane), 而每一个安装在Hypervisor内的虚拟交换机视为一张交换机内的Line Card. 这样, 网络虚拟化的模型因该在您的脑海里可以刻画出来了。
但是如果我们现在回头看前面大家对我提出的问题, 这样应该我就比较容易在这回答给各位读者了:
1、这种作法让已经管理到快昏倒的网络变得更复杂了!
正是因为如此, 你才需要把现在依靠在网络硬件上的intelligent脱离出来, 透过软件的模式, 根据用户/应用/架构的不同时空的需求, 去程序化的计算网络所需要的能力, 然后再交付虚拟交换机根据更新的flow table去建立网络通讯联机. 对于物理网络来说, 因为不再牵涉configuration的intelligent, 所以仅需要维持低延迟, 高转发的网络特性. 而于所建立的逻辑网络来说, 就像您常用的excel电子表格一样, 可以随意新增/修改/删除/拷贝您的设定, 然后计算后的结果回直接告诉你结果. 让服务来引导网络的设定, 跳脱让人推着服务上线的概念
2、软件的性能怎么跟硬件相比?
其实这是一个比较大的迷思, 网络虚拟化从来没有提及去replace现今传统网络设备的价值, 然后完全交付给软件作为转发的基础. 硬件的sillicon的开发在今日已经达到非常成熟的地步, 使用软件的方式去取代现在硬件的成果, 无疑是脑袋坏掉. 在今日虚拟交换机透过与网卡的driver的优化处理, 把原本在Server网卡上的效能做有效率的提升, 并且透过今日由成熟的硬件网络设备所搭建的高速IP交换, 将Tunnel端到端的转发变得更快速. 所以一台虚拟交换机在Hypervisor内所需要处理只是运行在Hypervisor内的VM, 并不是一个机柜或是一个区段的流量, 这并是分布式网络的概念. .
当然上述只提及到data panel转发的效能, 我这边也还想再强调control panel的部分. 因为传统网络的人员(我跟大家一样, 也没多新潮), 很在意data panel的效能. 但是在于网络虚拟化的议题中, 其实control panel才是关键的核心, 也是大家常常忽略的部分. 因为使用一台x86架构的服务器作为整个网络控制中心的中枢, 未免风险太大. 用两台x86服务器作为HA, 未免在规模化的条件下又显得不足, 所以Active-Active的Contrller Cluster便是一个网络虚拟化急迫需要的技术. 在把这个技术推向服务生产环境中, 我相信这因该是一个不可忽略的主题, 甚至我觉得这个部分是今日所有相关厂商最大痛点. 全世界现在可能仅有VMware/Nicira 或是极少数厂商具有这样的能力.
* 笔者现今工作于VMware/Nicira事业群, 上述说法可能有点老婆卖瓜, 但这些信息的确是在实战上经过了多次经验的检验, 及与市场调研的良心建议. 各位看官可斟酌参考.
3、为什么我们需要这种概念?到底对我的业务有什么好处?
对于营运商的云端服务来说, 有几个重点
● 自动化: 如果VM已经可以做到request on demand, 那网络需要跟随着服务的需求自动建立/更新/删除. 不同步服务的网络支持, 其实第一个影响的就是OPEX, 接下来可能又是客户在等待上使用经验, 最后累死的可能还是那些一起多年在这网络领域工作的乡亲父老们.
● 规模化: 软件定义网络架构的方式, 最大的优点就是它比今日任何一个以物理网络支撑的数据中心网络的规模来的更大, 透过分布式网络方式, 把负载分散到需要工作的单位, 对于营运商来说, 规模化成为商业成功不可或缺的一个要素
● 管理简化: 如果每一个交换机上的control plane是为一个大脑, 那网络管理员在一个数据中心内就需要管理千百个对话, 就像股市操盘手在开盘时跟股市交易员互动的那样疯狂. 透过网络虚拟化这种集中管理, 分散工作的机制, 就像交通的控制中心一样, 可以在Controller Cluster上就掌握整体网络的状态, 并且在错误发生的时候, 可以迅速寻址错误的原因及排除.
● 开放化: 因为营运商的数据中心内不再像过去只提供空间和带宽等基础的服务, 反而期待更多的基础建设服务的提供给用户使用. 每间商业产品公司有它私有领域的专长, 所以结合多家的产品技术并建构在开放的网络平台上, 成为丰富营运商云端服务一个很重要的卖点之一. 对于网络虚拟化概念来说, 这是因该也是必要的. 我想没有一个运营商乐意看到自己只能使用一家的产品线, 或是完全无法朝多元化的整合前进.
以上的功能都是针对运营商的, 对于企业来说, 有什么好处?
对于企业应用上来说, 今日主要都是针对它中大型的企业, 毕竟需求到达一定程度时候, 这个技术才显现出实际的价值. 我相信以上三点对于中大型企业来说. 或多或少都有应用的场景. 在过去两年密集的在亚太地区商务旅行里, 以访谈多数的企业用户的经验上, 看到了另一个可能性的机会。
****** 企业应用发展流程 ********
在我过去访谈的中大型客户里, 多数人有着一个共同的问题. 当我们准备一个新的服务时, 我们需要花费很多的时间在测试, 验证, 甚至上到生产环境上, 因为公司内部的网络是一个高度管控的策略, 所以平均一个项目可能需要浪费数个月的时间在等待而无法前进. 这对于企业来说的确是一个非常麻烦的问题, 这已经牵涉到生产力和效率的问题了. 更不用说上到生产环境之后, 连一个小的改动在考虑整体网络的顾虑下, 比需等待数日/周进行评估. 对于他们与时间竞赛的商业活动来说, 这的确成了累坠. 其实这个问题在eBay便曾是一个非常痛苦的问题, 无效率IT基础建设流程, 大幅拖延了项目的进行, 直到引入网络虚拟化的概念. 在不影响现行网络运作及安全规范下, 大幅缩短项目开发时程, 同时也加强了整体公司在IT管理的统合能力.
这篇以什么是网络虚拟化为主体的文章, 是希望藉由这个管道, 让大家能多了解现今实际技术的发展现状及方向. 虽然举了一些我比较熟悉的例子, 但不重在商业产品推广, 重点是希望能帮助大家不再在市场名词中迷惑. 透过我有限的知识帮助大家能更清楚的了解新一代网络的思考方式. 如果有任何的想法和意见, 都欢迎在我新建立的blog给予指教。