Network Virtualization --Bruce Davie (翻译)

Network Virtualization

Bruce Davie

原文链接:Network Virtualization

网络虚拟化已经以某种形式存在了很多年,但现在似乎比以往任何时候都受到更多的关注。在SDN领域尤其如此,我们经常听说网络虚拟化是SDN的主要使用案例之一。不幸的是,与SDN的大部分内容一样,讨论一直是混乱的,网络虚拟化既被与SDN混为一谈,又被描述为SDN的直接结果。然而,SDN绝对不是网络虚拟化。网络虚拟化不需要SDN。

毫无疑问,问题的一部分在于对于什么是网络虚拟化没有广泛的共识。因此,这篇文章试图为网络虚拟化构建一个合理的工作定义。特别是,我们希望将网络虚拟化与它有时会混淆的一些相关技术区分开来,并解释它与SDN的关系。

一个好的开始是退一步,看看虚拟化是如何在计算中定义的。历史上,计算资源(如CPU和内存)的虚拟化使程序员(和应用程序)摆脱了物理资源的限制。例如,虚拟内存允许应用程序在一种错觉下运行,即它拥有对大量连续内存的专用访问权,即使当物理现实是内存是有限的、在多个存储体上分区并与其他应用程序共享时也是如此。从应用程序的角度来看,虚拟内存的抽象与物理内存的抽象几乎无法区分,支持相同的地址结构和内存操作。

作为另一个例子,服务器虚拟化呈现了虚拟机的抽象,保留了物理机的所有细节:CPU周期、指令集、I/O等。

这里的一个关键点是,计算硬件的虚拟化保留了被虚拟化的资源所呈现的抽象。为什么这很重要?因为改变抽象通常意味着改变想要使用虚拟化资源的程序。服务器虚拟化非常有用,因为现有的操作系统可以在虚拟机管理程序之上运行,无需修改。内存虚拟化立即有用,因为编程模型不必改变。

Virtualization and the Power of New Abstractions

虚拟化不应该改变暴露于工作负载的基本抽象,但是它确实引入了新的抽象。这些新的抽象表示被虚拟化的实体的逻辑外壳(for example a process, a logical volume, or a virtual machine)。正是在这些新的抽象概念中,可以找到虚拟化的真正力量。

因此,虽然虚拟化最直接的好处是能够在多个工作负载之间复用硬件(通常是为了效率、故障遏制或安全性),但更长期的影响来自于新抽象改变操作模式的能力。

服务器虚拟化提供了最容易理解的例子。虚拟机管理程序产品的早期价值主张只是服务器整合。然而,服务器虚拟化带来的最大破坏不是整合,而是引入虚拟机作为基本操作单元对运营模式的根本性改变。

这是一个关键点。当虚拟化一些硬件资源时,引入了一个新的抽象,它将成为一个基本的操作单元。如果该单元粒度太细(例如,只公开逻辑处理器),对操作模型的影响将是有限的。然而,做对了,影响可能是巨大的。

事实证明,虚拟机是对数据中心运营产生巨大影响的正确抽象级别。虚拟机体现了操作人员想要对服务器做的事情的一个相当完整的目标:调配新的工作负载、移动工作负载、拍摄工作负载快照、及时回滚工作负载等。

Quick Recap:

  • 虚拟化展示了与物理基底分离的一些资源的逻辑视图,而不改变基本抽象。
  • 虚拟化还引入了新的抽象——虚拟化资源的逻辑容器。
  • 正是对这些新抽象的操作有可能改变操作范式。
  • 简化操作的新抽象的适用性很重要。

以此为背景,让我们转向网络虚拟化。

Network Virtualization, Then and Now

如上所述,网络虚拟化是一个极其宽泛且负担过重的术语,已经使用了几十年。覆盖层、多协议标签交换、虚拟专用网、虚拟局域网、LISP、虚拟路由器、VRFs都可以被认为是某种形式的网络虚拟化。布鲁斯·戴维(Bruce Davie)在早期的一篇博客文章中谈到了这些概念和网络虚拟化之间的关系,我们在这里对其进行了定义。这篇文章的要点是,当使用上述网络虚拟化原语之一时,我们是在虚拟化网络的某些方面(局域网段、L3路径、L3转发表等)。)但很少是一个具有所有属性的完整网络。

例如,如果您使用虚拟局域网来虚拟化L2网段,您将无法获得在虚拟机移动时保持同步的虚拟化计数器,或者无论虚拟机位于何处都能保持工作的虚拟ACL。对于这些功能,您需要一些其他机制。

在前面的讨论中,传统的网络虚拟化机制不能提供最合适的操作抽象。例如,调配新工作负载或移动工作负载仍然需要操作开销来更新网络状态,这通常是一个手动过程。

现代网络虚拟化方法试图解决这种脱节。今天的网络虚拟化不是提供一堆虚拟化组件,而是试图提供一个合适的基本操作单元。不出所料,抽象是一个“虚拟网络”。

完整地说,虚拟网络应该既支持当今物理网络提供的基本抽象(L2、L3、标签、计数器、ACL等)。)以及引入包含所有这些内容的逻辑抽象,作为操作的基础。
就像计算模拟一样,这种逻辑抽象应该支持虚拟化带来的所有操作细节:动态创建、删除、迁移、配置、快照和回滚。

Cleaning up the Definition of Network Virtualization

根据前面的讨论,我们将网络虚拟化描述如下:

  • 引入与物理网络分离的虚拟网络的概念。
  • 虚拟网络不会改变物理网络中的任何基本抽象概念。
  • 虚拟网络作为一个新的逻辑抽象被公开,它可以形成一个基本的操作单元(创建、删除、迁移、动态服务插入、快照、检查等等)。

Network Virtualization is not SDN

SDN是一种机制,网络虚拟化是一种解决方案。很有可能存在不使用SDN的网络虚拟化解决方案,并使用SDN来构建没有虚拟化属性的网络。

SDN提供网络虚拟化的方式与Python差不多——它是一种工具(而不是强制性的)。也就是说,作为网络虚拟化的一种机制,SDN确实可以提供一些东西。

思考网络虚拟化问题的一个简单方法是,解决方案必须将多个逻辑抽象映射到物理网络上,并随着逻辑和物理世界的变化保持这些抽象的一致性。由于这些逻辑抽象可能存在于网络的任何地方,这就成为一个相当复杂的状态管理问题,必须在网络范围内实施。

然而,用合理的一致性保证管理大量的状态是SDN特别擅长的事情。并非巧合的是,大多数网络虚拟化解决方案(来自使用各种方法的各种供应商)都有某种形式的逻辑集中式组件用于状态管理。

Wrapping Up

这篇文章的目的只是围绕网络虚拟化的讨论提供一些框架。简而言之,网络虚拟化的现代概念既保留了传统的抽象概念,又提供了一个基本的操作单元,即(完整的)虚拟网络。新的抽象应该支持与其计算模拟相同的操作抽象。

虽然SDN为构建网络虚拟化解决方案提供了一种有用的方法,但它不是唯一的方法。不要把工具和解决方案混为一谈。

在接下来的几年里,我们预计会看到各种实现虚拟网络的机制占据主导地位。一些基于硬件,一些基于软件,一些使用隧道,其他使用标签,一些更多地依赖于传统的分布式协议,其他依赖于SDN。

最终,市场将选择获胜机制。与此同时,让我们确保我们澄清了对话,以便做出明智的决定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值