1. Oracle VM Server for SPARC 软件概述
分配给 Logical Domains 的 MAC 地址范围
与 vnet 和 vsw 驱动程序的早期(巨型帧无感知)版本的兼容性
A. Oracle VM Server for SPARC 物理机到虚拟机转换工具
B. Oracle VM Server for SPARC Configuration Assistant
D. 将 XML 接口与 Logical Domains Manager 结合使用
Logical Domains 1.3 发行版引入了对具有虚拟网络设备且基于链路的 IPMP 的支持。配置具有虚拟网络设备的 IPMP 组时,请将该组配置为使用基于链路的检测。如果使用 Oracle VM Server for SPARC (Logical Domains) 软件的较旧版本,则只能对虚拟网络设备配置基于探测的检测。
下图显示了两个虚拟网络(vnet1 和 vnet2),它们分别连接到服务域中的不同虚拟交换机实例(vsw0 和 vsw1),而这两个虚拟交换机又使用两个不同的物理接口(nxge0 和 nxge1)。如果服务域中发生物理链路故障,则绑定到此物理设备的虚拟交换机设备会检测到链路故障。然后,虚拟交换机设备将故障传播到绑定到此虚拟交换机的相应虚拟网络设备。虚拟网络设备将此链路事件的通知发送到来宾 LDom_A 中的 IP 层,从而导致故障转移到 IPMP 组中的其他虚拟网络设备。
图 8-3 两个连接到不同虚拟交换机实例的虚拟网络
在逻辑域中,通过将每个虚拟网络设备(vnet0 和 vnet1)连接到不同服务域中的虚拟交换机实例(如下图所示),可获得更高的可靠性。这种情况下,除了物理网络故障外,LDom_A 可以检测到虚拟网络故障,并在服务域崩溃或关闭后触发故障转移。
图 8-4 连接到不同服务域的各个虚拟网络设备
有关如何配置并使用 IPMP 组的更多信息,请参阅 Oracle Solaris 10 《系统管理指南:IP 服务》。
可以在服务域中配置 IPMP,方法是将虚拟交换机接口配置到组中。下图显示了两个绑定到两个不同物理设备的虚拟交换机实例(vsw0 和 vsw1)。随后可以激活 (plumb) 这两个虚拟交换机接口并将其配置到 IPMP 组中。如果物理链路出现故障,则绑定到此物理设备的虚拟交换机设备会检测到链路故障。然后,虚拟交换机设备将此链路事件的通知发送到服务域中的 IP 层,从而导致故障转移到 IPMP 组中的其他虚拟交换机设备。
图 8-5 两个配置为属于 IPMP 组的虚拟交换机接口
自 Logical Domains 1.3 起,虚拟网络设备和虚拟交换机设备支持网络堆栈的链路状态更新。默认情况下,虚拟网络设备会报告其虚拟链路(到虚拟交换机的 LDC)的状态。默认情况下将启用此设置,不需要您执行其他配置步骤。
有时可能需要检测物理网络链路状态更改。例如,如果已将物理设备分配给虚拟交换机,即使从虚拟网络设备到其虚拟交换机设备的链路是连通的,从服务域到外部网络的物理网络链路也可能断开。在这种情况下,可能需要获取物理链路状态并将其报告给虚拟网络设备及其堆栈。
linkprop=phys-state 选项可用于配置虚拟网络设备以及虚拟交换机设备的物理链路状态跟踪。如果启用此选项,则当虚拟设备(虚拟网络或虚拟交换机)作为域中的接口激活 (plumb) 时,它会根据物理链路状态报告其链路状态。您可以使用标准 Oracle Solaris 网络管理命令(例如 dladm 和 ifconfig)来检查链路状态。请参见 dladm(1M) 和 ifconfig(1M) 手册页。此外,链路状态也记录在 /var/adm/messages 文件中。
注 - 您可以在 Logical Domains 系统上同时运行链路状态无感知和链路状态感知 vnet 和 vsw 驱动程序。但是,如果打算配置基于链路的 IPMP,则必须安装链路状态感知驱动程序。如果打算启用物理链路状态更新,则将 vnet 和 vsw 驱动程序都升级到 Oracle Solaris 10 9/10 OS,并且至少运行版本 1.3 的 Logical Domains Manager。
此过程显示如何启用虚拟网络设备的物理链路状态更新。
也可以按照类似的步骤操作并指定 ldm add-vsw 和 ldm set-vsw 命令的 linkprop=phys-state 选项来启用虚拟交换机设备的物理链路状态更新。
注 - 仅当虚拟交换机设备本身作为接口激活 (plumb) 时,才需要使用 linkprop=phys-state 选项。如果指定了 linkprop=phys-state 且物理链路断开,则虚拟网络设备会将其链路状态报告为断开,即使与虚拟交换机的连接是连通的也是如此。由于 Oracle Solaris OS 当前未提供接口来报告两种不同的链路状态,例如虚拟链路状态和物理链路状态,因此会发生这种情况。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置 RBAC(任务列表)"。
您可以通过以下方式来启用虚拟网络设备的物理链路状态更新:
运行 ldm add-vnet 命令时,通过指定 linkprop=phys-state 创建虚拟网络设备。
指定 linkprop=phys-state 选项可配置虚拟网络设备以获取物理链路状态更新并将其报告给堆栈。
注 - 如果指定了 linkprop=phys-state 且物理链路断开(即使与虚拟交换机的连接是连通的),则虚拟网络设备会将其链路状态报告为断开。由于 Oracle Solaris OS 当前未提供接口来报告两种不同的链路状态,例如虚拟链路状态和物理链路状态,因此会发生这种情况。
# ldm add-vnet linkprop=phys-state if-name vswitch-name ldom
以下示例启用在逻辑域 ldom1 上连接到 primary-vsw0 的 vnet0 的物理链路状态更新。
# ldm add-vnet linkprop=phys-state vnet0 primary-vsw0 ldom1
运行 ldm set-vnet 命令时,通过指定 linkprop=phys-state 修改现有虚拟网络设备。
# ldm set-vnet linkprop=phys-state if-name ldom
以下示例启用逻辑域 ldom1 上 vnet0 的物理链路状态更新:
# ldm set-vnet linkprop=phys-state vnet0 ldom1
要禁用物理链路状态更新,请运行 ldm set-vnet 命令指定 linkprop=。
以下示例禁用逻辑域 ldom1 上 vnet0 的物理链路状态更新:
# ldm set-vnet linkprop= vnet0 ldom1
示例 8-1 配置基于链路的 IPMP
以下示例显示了如何在启用和不启用物理链路状态更新的情况下配置基于链路的 IPMP:
以下示例在域中配置两个虚拟网络设备。每个虚拟网络设备连接到服务域中的独立虚拟交换机设备,以使用基于链路的 IPMP。
注 - 未在这些虚拟网络设备上配置测试地址。此外,使用 ldm add-vnet 命令创建这些虚拟网络设备时,您不需要执行其他配置操作。
下列命令将虚拟网络设备添加到域。请注意,由于未指定 linkprop=phys-state,因此只监视与虚拟交换机链路的状态更改。
# ldm add-vnet vnet0 primary-vsw0 ldom1 # ldm add-vnet vnet1 primary-vsw1 ldom1
以下命令在来宾域中配置虚拟网络设备并将其分配给 IPMP 组。请注意,未在这些虚拟网络设备上配置测试地址,原因是正在使用基于链路的故障检测。
# ifconfig vnet0 plumb # ifconfig vnet1 plumb # ifconfig vnet0 192.168.1.1/24 up # ifconfig vnet1 192.168.1.2/24 up # ifconfig vnet0 group ipmp0 # ifconfig vnet1 group ipmp0
以下示例在域中配置两个虚拟网络设备。每个域连接到服务域中的独立虚拟交换机设备,以使用基于链路的 IPMP。虚拟网络设备也配置为获取物理链路状态更新。
# ldm add-vnet linkprop=phys-state vnet0 primary-vsw0 ldom1 # ldm add-vnet linkprop=phys-state vnet1 primary-vsw1 ldom1
注 - 虚拟交换机必须分配有物理网络设备,域才能成功绑定。如果域已绑定而没有为虚拟交换机分配物理网络设备,则 ldm add-vnet 命令将失败。
以下命令激活 (plumb) 虚拟网络设备并将其分配给 IPMP 组:
# ifconfig vnet0 plumb # ifconfig vnet1 plumb # ifconfig vnet0 192.168.1.1/24 up # ifconfig vnet1 192.168.1.2/24 up # ifconfig vnet0 group ipmp0 # ifconfig vnet1 group ipmp0
在早于 1.3 的 Logical Domains 发行版中,虚拟交换机和虚拟网络设备不能执行链路故障检测。在这些发行版中,可以使用基于探测的 IPMP 设置网络故障检测和恢复。
如图 8-3 和图 8-4 中所示,可以将来宾域中的虚拟网络设备配置到 IPMP 组中。唯一的区别是,通过在虚拟网络设备上配置测试地址而使用基于探测的故障检测。有关配置基于探测的 IPMP 的更多信息,请参见《系统管理指南:IP 服务》。
在早于 1.3 的 Logical Domains 发行版中,虚拟交换机设备不能执行物理链路故障检测。在这种情况下,可以通过将服务域中的物理接口配置到 IPMP 组中来设置网络故障检测和恢复。要执行此操作,请在服务域中配置虚拟交换机,而不为其分配物理网络设备。即使用 ldm add-vswitch 命令创建虚拟交换机时,不要指定 net-dev (net-dev=) 属性的值。在服务域中激活 (Plumb) 虚拟交换机接口并将服务域本身配置为充当 IP 路由器。有关设置 IP 路由的信息,请参阅 Oracle Solaris 10 《系统管理指南:IP 服务》。
进行配置后,虚拟交换机将所有来自虚拟网络(目标是外部机器)的包发送到其 IP 层,而不是直接通过物理设备发送包。如果物理接口出现故障,IP 层会检测故障,并自动通过辅助接口对包进行重新路由。
由于物理接口被直接配置到 IPMP 组中,因此可以将该组设置为使用基于链路的检测或基于探测的检测。下图显示了两个配置为属于 IPMP 组的网络接口(nxge0 和 nxge1)。虚拟交换机实例 (vsw0) 已作为网络设备激活 (plumb),以便向其 IP 层发送包。
图 8-6 两个配置为属于 IPMP 组的网络接口
注 - 此过程仅适用于来宾域和早于 1.3 的发行版,其中仅支持基于探测的 IPMP。
如果没有为与 IPMP 接口对应的网络中的路由器配置显式路由,则需要配置一个或多个到目标系统的显式主机路由,以便 IPMP 基于探测的检测按预期方式工作。否则,探测检测可能无法检测网络故障。
# route add -host destination-IP gateway-IP -static
例如:
# route add -host 192.168.102.1 192.168.102.1 -static
有关更多信息,请参阅《系统管理指南:IP 服务》中的"配置目标系统"。