Oracle® VM Server for SPARC 3.3 管理指南

退出打印视图

更新时间: 2015 年 10 月
 
 

配置域依赖关系

可以使用 Logical Domains Manager 建立域之间的依赖关系。如果域具有一个或多个依赖于它的域,则该域称为主域。如果域依赖于其他域,该域称为从属域

通过设置 master 属性,每个从属域最多可以指定四个主域。例如,pine 从属域在以下用逗号分隔的列表中指定其四个主域:

# ldm add-domain master=alpha,beta,gamma,delta pine

alphabetagammadelta 主域全都指定故障策略 stop

每个主域都可以指定在主域发生故障时对其从属域产生何种影响。例如,如果主域发生故障,它可能会要求其从属域发生紧急情况。如果某个从属域有多个主域,则每个主域都必须有相同的故障策略。因此,第一个主域发生故障将触发其所有从属域上定义的故障策略。

    主域的故障策略是通过将以下任一值设置为 failure-policy 属性来控制的:

  • ignore 将忽略所有从属域

  • panic 使所有从属域都发生紧急情况(类似于运行 ldm panic 命令)

  • reset 立即停止,然后重新启动所有从属域(类似于运行 ldm stop -f,然后运行 ldm start 命令)

  • stop 停止所有从属域(类似于运行 ldm stop -f 命令)

在此示例中,主域按如下所示指定其故障策略:

primary# ldm set-domain failure-policy=ignore apple
primary# ldm set-domain failure-policy=panic lemon
primary# ldm set-domain failure-policy=reset orange
primary# ldm set-domain failure-policy=stop peach
primary# ldm set-domain failure-policy=stop alpha
primary# ldm set-domain failure-policy=stop beta
primary# ldm set-domain failure-policy=stop gamma
primary# ldm set-domain failure-policy=stop delta

可以使用此机制创建域之间的显式依赖关系。例如,来宾域隐式依赖于服务域以提供其虚拟设备。当来宾域所依赖的服务域未启动并运行时,来宾域的 I/O 将被阻止。通过将来宾域定义为其服务域的从属域,可以指定来宾域在其服务域关闭时的行为。如果未建立此类依赖关系,来宾域只会等待其服务域返回到服务状态。


注 - Logical Domains Manager 不允许创建会产生依赖关系循环的域关系。有关更多信息,请参见依赖关系循环

有关域依赖关系 XML 示例,请参见Example 23–6

域依赖关系示例

以下示例说明如何配置域依赖关系。

示例 17-1  使用域依赖关系配置故障策略

第一个命令创建名为 twizzle 的主域。此命令使用 failure-policy=reset 来指定如果 twizzle 域发生故障,从属域将重置。第二个命令修改名为 primary 的主域。此命令使用 failure-policy=reset 来指定如果 primary 域发生故障,从属域将重置。第三个命令创建名为 chocktaw 的从属域,该从属域依赖于 twizzleprimary 两个主域。从属域使用 master=twizzle,primary 来指定其主域。如果 twizzleprimary 域发生故障,则 chocktaw 域将重置。

primary# ldm add-domain failure-policy=reset twizzle
primary# ldm set-domain failure-policy=reset primary
primary# ldm add-domain master=twizzle,primary chocktaw
示例 17-2  修改域以分配主域

本示例说明如何使用 ldm set-domain 命令修改 orange 域,以将 primary 分配为主域。第二个命令使用 ldm set-domain 命令将 orangeprimary 分配为 tangerine 域的主域。第三个命令列出有关所有这些域的信息。

primary# ldm set-domain master=primary orange
primary# ldm set-domain master=orange,primary tangerine
primary# ldm list -o domain
NAME             STATE      FLAGS   UTIL
primary          active     -n-cv-  0.2%

SOFTSTATE
Solaris running

HOSTID
    0x83d8b31c

CONTROL
    failure-policy=ignore

DEPENDENCY
    master=

------------------------------------------------------------------------------
NAME             STATE      FLAGS   UTIL
orange           bound      ------

HOSTID
    0x84fb28ef

CONTROL
    failure-policy=ignore

DEPENDENCY
    master=primary

------------------------------------------------------------------------------
NAME             STATE      FLAGS   UTIL
tangerine        bound      ------

HOSTID
    0x84f948e9

CONTROL
    failure-policy=ignore

DEPENDENCY
    master=orange,primary
示例 17-3  显示可解析的域列表

以下显示了一个列有可解析输出的示例:

primary# ldm list -o domain -p

依赖关系循环

Logical Domains Manager 不允许创建会产生依赖关系循环的域关系。依赖关系循环是指两个或多个域之间的一种关系,其中,从属域可能会依赖于其本身或主域可能会依赖于其从属域之一。

Logical Domains Manager 在添加依赖关系之前确定是否存在依赖关系循环。Logical Domains Manager 自从属域开始沿着主阵列指定的所有路径进行搜索,直到到达路径的终点。沿途所发现的任何依赖关系循环都将被报告为错误。

以下示例说明了如何会产生依赖关系循环。第一个命令创建名为 mohawk 的从属域,该从属域将其主域指定为 primary。因此,在下图所示的依赖关系链中,mohawk 依赖于 primary

图 17-1  单个域依赖关系

image:图中显示了域依赖关系链,其中 mohawk 域依赖于其主域 primary。

第二个命令创建名为 primary 的从属域,该从属域将其主域指定为 counter。因此,在下图所示的依赖关系链中,mohawk 依赖于 primary,而 primary 又依赖于 counter

图 17-2  多个域依赖关系

image:图中显示了域依赖关系链,其中 mohawk 依赖于 primary,而 primary 又依赖于 counter。

第三个命令将尝试创建 countermohawk 域之间的依赖关系,这种依赖关系将产生下图所示的依赖关系循环。

图 17-3  域依赖关系循环

image:图中显示了域依赖关系循环,其中 mohawk 依赖于 primary,primary 依赖于 counter,而 counter 又依赖于 mohawk。

ldm set-domain 命令将失败,并显示以下错误消息:

# ldm add-domain master=primary mohawk
# ldm set-domain master=counter primary
# ldm set-domain master=mohawk counter
Dependency cycle detected: LDom "counter" indicates "primary" as its master