网络虚拟化和网络资源管理

作者:Detlef Drewanz

本文是虚拟化系列文章的第 5 部分,定义内部和外部网络虚拟化,然后讨论内部网络虚拟化和网络资源管理的特性。


2013 年 1 月发布(转载自 eStep 博客

OTN 旨在帮助您充分了解 Oracle 技术,以作出明智决策。本网站提供文章、软件下载、文档等。立即加入,获取完成工作所需的技术资源。
第 8 部分 — 使用 Oracle Enterprise Manager Ops Center 管理虚拟化
第 7 部分 — Oracle Virtual Desktop Infrastructure 在虚拟化战略中的作用
第 6 部分 — Oracle VM VirtualBox — 个人桌面虚拟化
第 5 部分 — 网络虚拟化和网络资源管理
第 4 部分 — 资源管理是虚拟化的必备技术
第 3 部分 — Oracle Solaris 区域和 Linux 容器在虚拟化战略中的作用
第 2 部分 — Oracle VM Server for x86 在虚拟化战略中的作用
第 1 部分 — Oracle VM Server for SPARC 在虚拟化战略中的作用


本系列前面的文章已经讨论了 Oracle VM、操作系统虚拟化和资源管理的某些方面,本文将介绍资源管理和资源虚拟化的一个特殊领域:网络虚拟化和网络资源管理。

内部网络虚拟化特性
网络资源管理特性
总结
另请参见
关于作者

网络是一种特殊的共享资源,将所有虚拟机 (VM)、区域和系统联结在一起并提供与外界的通信渠道。因此,网络是虚拟化体系中非常重要的一层。

网络虚拟化分为外部内部

  • 外部网络虚拟化将众多网络、交换机、网络端口、虚拟端口和虚拟网络接口组合成虚拟单元,我们称之为虚拟 LAN (VLAN)。使用 VLAN 标记 创建 VLAN,将不同的端口、交换机和物理网络组成一个常见的虚拟网络。VLAN 标记是一种标识符,随网络数据包一起发送,用于标识某个虚拟网络所属的数据包。虚拟网络也可称为广播域,即接收同一个网络广播的一组网络参与者。
  • 内部网络虚拟化是对网络体系、网络接口或一个系统内其他联网功能进行虚拟化。这种虚拟化功能由主机操作系统或虚拟机管理程序提供。有了内部网络虚拟化,众多 VM、区域和容器就可以共享使用数量有限的网络端口。所有虚拟化环境都需要自己的网络接口,采用内部网络虚拟化可以将某些物理网络接口卡 (PNIC) 分成许多虚拟网络接口卡 (VNIC)。这是内部网络虚拟化的基本功能之一。

由于众多使用者(如进程、VM、区域和容器)频繁使用共享资源网络,网络资源管理对网络虚拟化就显得非常重要。网络资源管理有助于为虚拟化环境提供强大、稳定的网络连接,并且可以在多个虚拟环境中更好地分配可用的网络宽带,以满足服务级别协议的要求。只有实现了良好的网络资源管理,才能考虑广泛使用网络虚拟化。

将基于虚拟机管理程序的虚拟化和 Oracle Solaris 区域与网络虚拟化和网络资源管理结合使用,可实现创建基于网络的架构所需的所有新功能。图 1 显示了一个例子,其中 Oracle Solaris 区域和虚拟交换机取代了物理系统和网络组件。

图 1

图 1. 基于网络的架构示例

本文结合一个系统内的虚拟机管理程序、容器和区域,重点介绍内部网络虚拟化和网络资源管理的功能和副作用。

内部网络虚拟化特性

以下基本特性是各种类型的虚拟机管理程序和区域技术所共有的;不过,具体实现各有不同。

  • 与大量 VM 或区域(我们称之为 VM 和区域使用者)共享少数 PNIC 需要 VNIC。每个使用者要求有自己的网络接口,使用起来要像物理端口一样。虚拟机管理程序、主机操作系统或全局区域负责提供此网络接口。管理员可以决定是将此网络接口映射到一个专用物理端口,还是作为一个分配给共享物理端口的 VNIC。如果是后者,该物理端口由多个 VNIC 共享,可利用资源管理特性限制每个 VNIC 可使用的带宽。

    图 2 举例说明如何在 Oracle Solaris 中基于物理接口构建 VNIC,然后交由 Oracle Solaris 区域使用。在此示例中,我们还为 VNIC 分配了带宽限制。

    图 2

    图 2. 基于 PNIC 构建的 VNIC

  • 虚拟网络交换机将一个物理接口上创建的多个 VNIC 连接在一起。这样,一个物理端口上的 VNIC 能够彼此通信,并且还能共享该物理接口。此特性在不同产品中的叫法不一样,但功能类似。在 Oracle VM Server for x86 中,该功能称为,只要在物理端口上创建一个 VNIC,就会自动创建一个桥。

    图 3

    图 3. Oracle VM Server for x86 和网桥

    对于 Oracle VM Server for SPARC,必须由管理员在服务域内创建一个虚拟交换机,与来宾域的网络接口相连。逻辑域通道 (LDC) 在虚拟交换机和来宾域之间建立链路。创建第一个 VNIC 时,Oracle Solaris 将在物理接口上创建一个交换机。Oracle VM VirtualBox 创建虚拟 PCIe 卡并将它们作为网络接口分配给 VM。这些接口可通过不同的方式与主机操作系统或外界通信(例如,NAT、桥接网络、内部联网和仅主机联网)。

    图 4

    图 4. Oracle VM Server for SPARC 和虚拟交换机

  • etherstub 是虚拟网络交换机的一种特殊实现,只在 Oracle Solaris 11 中可用(参见图 5)。这是一种特殊类型的数据链路,可用来代替物理 NIC 创建 VNIC 和连接这些 VNIC 的虚拟交换机。使用 etherstub,无需任何物理网络交换机即可创建和测试复杂网络架构或者一体化网络配置。

    图 5

    图 5. Oracle Solaris Etherstub

  • 如果使用 Oracle Solaris 区域,则由全局区域提供 IP 接口、VNIC 或物理接口。然后,Oracle Solaris 区域可以使用共享 IP 实例或专用 IP 实例与全局区域或外界通信,如图 6 所示。

    使用共享 IP 实例,区域可以共享内核中的一个 IP 堆栈基础架构,包括其 ARP 缓存、路由表和 IP 配置标志(但不包括 IP 地址)。包含专用 IP 实例的区域拥有自己的 IP 堆栈。要使用专用 IP 实例,需要一个专用物理接口或 VNIC。使用共享 IP 实例则无需专用网络接口。

    图 6

    图 6. 共享 IP 和专用 IP 实例

网络资源管理特性

网络始终是一个共享资源,要么在服务器机箱外面(通过中央电缆、交换机或路由器),要么在机箱内部(通过共享物理端口、网络堆栈,或者仅仅是通过执行校验和验算处理流量或处理网络适配器中断的 CPU)。为符合同一机箱内网络使用者的不同服务级别协议,需要网络资源管理。具体要求可基于可用网络带宽、网络延迟或网络数据丢失率。网络延迟和数据丢失率通常基于所使用的网络技术以及操作系统或虚拟机管理程序特定的实现,而可用带宽可通过资源管理来控制。存在与内部网络虚拟化相关的各种产品特定的实现:

  • 通过专用网络端口,主机或虚拟机管理程序可以为使用者分配单独的物理端口。这样,使用者可以获得该端口的整个带宽,但它可能需要许多网络端口和许多网络适配器,具体数量可能受可用 PCI 插槽的数量限制。
  • 可以为网络接口或 VNIC 分配一个特定的 CPU 来处理其设备中断,执行数据缓冲区处理和计算网络校验和。可以将这两项功能与本系列的上一篇文章中所述的资源管理特性资源分区 进行比较。
  • 创建 VNIC 期间,可以分配一个基于接口的网络带宽上限。这样,可用带宽将受配置的边界条件限制,从而可以通过限制每个使用者的可用带宽使多个网络使用者共享一个物理网络端口。此配置非常灵活,往往会动态改变。在本系列的上一篇文章中,我们讨论了这种资源限制 功能。
  • PNIC 和 VNIC 的网络带宽限制是基于接口的,但有时也需要基于逻辑网络连接控制带宽。可以用源 IP 地址、目标 IP 地址和协议来描述网络连接。在 Oracle Solaris 中,这被称作。可以使用配置的流基于连接控制网络带宽 — 与网络接口无关。图 7 显示了一个例子。

    在图 7 中,可以使用为网络数据类型“网络备份”配置的流在关键负载情况下为绿色和蓝色流量提供更多可用带宽。在上一篇文章中,我们讨论过这个资源调度 功能,因为如果“绿色”和“蓝色”没有带宽需求,“网络备份”可以获得最大可用带宽。

    图 7

    图 7. 配置流示例

总结

虚拟网络接口、虚拟桥、虚拟交换机和虚拟 PCIe 卡是作为虚拟化产品的一部分提供的基本内部网络虚拟化特性。这些联网特性将所有 VM、区域和容器“联结”在一起,为它们之间的通信以及它们与外界的通信提供支持。为使它们都能在共享资源网络上实现稳定的通信,建议使用网络资源管理特性。我们还看到了,对于网络使用了各种类型的资源管理,如约束、调度和分区。

另请参见

关于作者

Detlef 是首席销售顾问,居住在德国波茨坦。他是 Oracle 北欧服务器架构师团队的一名服务器和 Oracle Solaris 专家。他于 1998 年加入 Sun Microsystems,现在是 Oracle 的一员。在此之前,Detlef 在 Hitachi Internetworking Frankfurt 任职网络支持,并且是罗斯托克大学计算机科学系的一名科研人员。Detlef 拥有计算机科学硕士学位。

修订版 1.0,2013 年 1 月 2 日

facebook 横幅 twitter 横幅