可以将 vCenter Server 从一个 vSphere 域移至另一个 vSphere 域。诸如标记和许可等服务将保留并迁移到新的域。

支持以下用例:

在没有复制合作伙伴的情况下将单个 vCenter Server 节点重新指向另一个现有域

可以在没有复制合作伙伴的情况下将单个 vCenter Server 从一个 Single Sign-on 域重新指向另一个现有 Single Sign-On 域。每个 Single Sign-on 域都包含单个 vCenter Server

有关将单个 vCenter Server 从一个域重新指向另一个现有域的示例,请参见 将单个 vCenter Server 从一个域重新指向另一个现有域。这是创建增强型链接模式节点的诸多方法之一。在这种情况下,不存在复制。
图 1. 将单个 vCenter Server 从一个域重新指向另一个现有域
从一个域重新指向现有域之前和之后的 vCenter Server 节点。

前提条件

  • vCenter Server 6.7 Update 1 及更高版本支持重新指向。
  • 您必须重新指向相同版本的 vCenter Server,以及具有相同版本和内部版本号的节点。
  • 为确保不发生数据丢失,请先对每个节点进行基于文件的备份,然后再继续对 vCenter Server 执行重新指向。

过程

  1. 在开始重新指向过程之前,请确保两个 vCenter Server 节点均已打开电源。
  2. (可选) 运行预检查模式命令。预检查模式将从 vCenter Server 提取标记数据(标记和类别)和授权数据(角色和特权)。预检查不会迁移任何数据,但会检查源和目标 vCenter Server 之间发生的冲突。例如,使用以下 CLI 运行预检查:
    cmsso-util domain-repoint -m pre-check --src-emb-admin Administrator --replication-partner-fqdn FQDN_of_destination_node --replication-partner-admin PSC_Admin_of_destination_node --dest-domain-name destination_PSC_domain
    注: 如果复制合作伙伴不存在(重新指向新创建的域),则不需要预检查。
    有关 cmsso-util domain-repoint 命令的参数定义,请参见 域重新指向命令的语法
    预检查将冲突写入 /storage/domain-data 目录。
  3. (可选) 查看冲突,然后针对所有冲突应用解决方法或针对每个冲突应用单独的解决方法。
    冲突解决方法包括:
    • 复制:在目标域中创建数据副本。
    • 跳过:跳过将数据复制到目标域。
    • Merge:合并冲突但不创建副本。
    注: 标记和授权冲突的默认解决方法模式为“复制”,除非在预检查期间生成的冲突文件中被替代。
  4. 运行 execute 命令。在执行模式下,在预检查模式期间生成的数据将读取并导入到目标节点。然后将 vCenter Server 重新指向目标域。例如,在没有复制合作伙伴的情况下重新指向时,请运行带以下选项的 execute 命令:
    cmsso-util domain-repoint -m execute --src-emb-admin Administrator --replication-partner-fqdn FQDN_of_destination_node --replication-partner-admin PSC_Admin_of_destination_node --dest-domain-name destination_PSC_domain
    有关 cmsso-util domain-repoint 命令的参数定义,请参见 域重新指向命令的语法

在存在复制合作伙伴的情况下将 vCenter Server 节点重新指向另一个现有域

可以在使用复制合作伙伴的情况下将 vCenter Server 从一个 Single Sign-on 域重新指向另一个现有域。

有关重新指向现有域的示例,请参见 将 vCenter Server 从一个域重新指向另一个现有域。在这种情况下,存在复制。
图 2. 将 vCenter Server 从一个域重新指向另一个现有域
从一个域重新指向具有复制合作伙伴的现有域之前和之后的 vCenter Server 节点。

前提条件

  • vCenter Server 6.7 Update 1 及更高版本支持重新指向。
  • 您必须重新指向相同版本的 vCenter Server,以及具有相同版本和内部版本号的节点。
  • 为确保不发生数据丢失,请先对每个节点进行基于文件的备份,然后再继续对 vCenter Server 执行重新指向。

过程

  1. 关闭要重新指向(移动到其他域)的节点(例如,节点 C)。
  2. 取消配置要重新指向的 vCenter Server 节点。例如,要取消配置节点 C,请登录到节点 B(在原始域上),然后运行以下命令:
    cmsso-util unregister --node-pnid Node_C_FQDN --username Node_B_sso_administrator@sso_domain.com --passwd Node_B_sso_adminuser_password
    取消注册节点 C 后,重新启动服务。对节点 C 的引用将从节点 B 以及与原始域中的节点 C 链接的任何其他节点中删除。
  3. 打开节点 C 的电源以开始重新指向过程。
  4. (可选) 运行预检查模式命令。预检查模式将从 vCenter Server 提取标记数据(标记和类别)和授权数据(角色和特权)。预检查不会迁移任何数据,但会检查源和目标 vCenter Server 之间发生的冲突。例如,使用以下 CLI 运行预检查:
    cmsso-util domain-repoint -m pre-check --src-emb-admin Administrator --replication-partner-fqdn FQDN_of_destination_node --replication-partner-admin PSC_Admin_of_destination_node --dest-domain-name destination_PSC_domain
    注: 如果复制合作伙伴不存在(重新指向新创建的域),则不需要预检查。
    有关 cmsso-util domain-repoint 命令的参数定义,请参见 域重新指向命令的语法
    预检查将冲突写入 /storage/domain-data 目录。
  5. (可选) 检查冲突,然后针对所有冲突应用解决方法或针对每个冲突应用单独的解决方法。
    冲突解决方法包括:
    • 复制:在目标域中创建数据副本。
    • 跳过:跳过将数据复制到目标域。
    • Merge:合并冲突但不创建副本。
    注: 标记和授权冲突的默认解决方法模式为“复制”,除非在预检查期间生成的冲突文件中被替代。
  6. 运行执行命令。在执行模式下,在预检查模式期间生成的数据将读取并导入到目标节点。然后将 vCenter Server 重新指向目标域。例如,使用以下 CLI 运行 execute 命令:
    cmsso-util domain-repoint -m execute --src-emb-admin Administrator --replication-partner-fqdn FQDN _of_destination_node --replication-partner-admin destination_node_PSC_Admin_user_name --dest-domain-name destination_PSC_domain
    有关 cmsso-util domain-repoint 命令的参数定义,请参见 域重新指向命令的语法

vCenter Server 节点重新指向新域

可以将 vCenter Server 从现有域重新指向新创建的域。

有关重新指向新域的示例,请参见 将 vCenter Server 从一个域重新指向新域。在这种情况下,无复制合作伙伴。
图 3. 将 vCenter Server 从一个域重新指向新域
从一个域重新指向没有复制合作伙伴的新域之前和之后的 vCenter Server 节点。

前提条件

  • vCenter Server 6.7 Update 1 及更高版本支持重新指向。
  • 您必须重新指向相同版本的 vCenter Server,以及具有相同版本和内部版本号的节点。
  • 为确保不发生数据丢失,请在每个节点的关闭电源状态下进行基于文件的备份并生成快照,然后再继续对 vCenter Server 执行重新指向。

过程

  1. 关闭要重新指向(移动到其他域)的节点(例如,节点 C)。
    注:

    如果 vCenter Server 属于 vCenter Server HA 集群,请先移除 vCenter Server HA 配置,然后再继续域重新指向。有关详细信息,请参见 vSphere 可用性

  2. 取消配置要重新指向的 vCenter Server 节点。例如,要取消配置节点 C,请登录到节点 B(在原始域上),然后运行以下命令:
    cmsso-util unregister --node-pnid Node_C_FQDN --username Node_B_sso_administrator@sso_domain.com --passwd Node_B_sso_adminuser_password
    取消注册节点 C 后,重新启动服务。对节点 C 的引用将从节点 B 以及与原始域中的节点 C 链接的任何其他节点中删除。
  3. 打开节点 C 的电源以开始重新指向过程。
  4. 运行执行命令。在执行模式下,在预检查模式期间生成的数据将读取并导入到目标节点。然后将 vCenter Server 重新指向目标域。例如,在没有复制合作伙伴的情况下重新指向(重新指向新域)时,请运行带以下选项的执行命令:
    cmsso-util domain-repoint -m execute --src-emb-admin Administrator  --dest-domain-name destination_PSC_domain
    有关 cmsso-util domain-repoint 命令的参数定义,请参见 域重新指向命令的语法

域重新指向命令的语法

可以使用命令实参来设置域重新指向命令的执行形参。

cmsso-util domain-repoint CLI 将 vCenter Server 从一个域重新指向另一个域。

可以向 CLI 重新指向命令添加用空格分隔的参数列表。

使用以下命令可将 vCenter Server 重新指向另一个 vCenter Server 节点:
cmsso-util domain-repoint -m execute --src-emb-admin Administrator --replication-partner-fqdn FQDN _of_destination_node --replication-partner-admin destination_node_PSC_Admin_user_name --dest-domain-name destination_PSC_domain
参数 描述
-m, --mode mode 可以是 pre-checkexecutepre-check参数在预检查模式下运行命令。execute参数在执行模式下运行命令。
-spa, --src-psc-admin vCenter Server 的 SSO 管理员用户名。不要附加 @domain
-dpf, --dest-psc-fqdn 要重新指向的 vCenter Server 的 FQDN。
-dpa, --dest-psc-admin 目标 vCenter Server 的 SSO 管理员用户名。不要附加 @domain
-ddn, --dest-domain-name 目标 vCenter Server 的 SSO 域名。
-dpr, --dest-psc-rhttps (可选)目标 vCenter Server 的 HTTPS 端口。如果未设置,将使用默认端口 443
-dvf, --dest-vc-fqdn 指向目标 vCenter ServervCenter Server 的 FQDN。将使用 vCenter Server 在预检查模式下检查组件数据冲突。如果未提供,则会跳过冲突检查,并为导入过程中发现的任何冲突应用默认解决方法 (COPY)。
注: 仅当目标域没有 vCenter Server 时,此参数才是可选的。如果目标域中存在 vCenter Server,则此参数是必需的。
-sea, --src-emb-admin 具有嵌入式 vCenter Server 部署的 vCenter Server 的管理员。请勿将 @domain 附加到管理员 ID。
-rpf, --replication-partner-fqdn (可选)vCenter Server 复制到的复制合作伙伴节点的 FQDN。
-rpr, --replication-partner-rhttps (可选)复制节点的 HTTPS 端口。如果未设置,默认值为 443
-rpa, --replication-partner-admin (可选)复制合作伙伴 vCenter Server 的 SSO 管理员用户名。
-dvr, --dest-vc-rhttps (可选)指向目标 vCenter ServervCenter Server 的 HTTPS 端口。如果未设置,将使用默认端口 443
--ignore-snapshot (可选)忽略快照警告。
--no-check-certs (可选)忽略证书验证。
--debug (可选)检索命令执行详细信息。
-h, --help (可选)显示 cmsso-util domain repoint 命令的帮助消息。

了解标记和授权冲突

在预检查模式下运行域重新指向命令时,将导出并检查来自 vCenter Server 的数据,而且会将冲突写入到文件中。

以下数据会导出到 /storage/domain-data/ or ProgramData/VMWare/vCenterServerdata/domain-data 文件夹:

  • All_Privileges.json
  • All_Roles.json
  • All_TagCategories.json
  • All_Tags.json

这些文件包含来自运行该命令的 vCenter Server 的所有数据(授权和标记)。

如果使用 -dvf --dest-vc-fqdn 选项提供辅助 vCenter Server,则任何冲突也会导出到同一个文件夹:

  • Conflicts_Roles.json
  • Conflicts_TagCategories.json
  • Conflicts_Tags.json

以下是示例冲突文件:

<---- Sample Conflict file code block --->
	 {
  "global" : {
    "resolution" : "MERGE|SKIP|COPY",
    "description" : "Default resolution option used to resolve Role Conflicts is COPY. The 
conflicts list describes the differences between Role entities on source and target vCenter Server. If 
the source information represents an empty JSON array, it simply means that all the entity 
attributes from source and target are identical. If the source lists few entries, it means 
that only these entity attributes are missing from the target. If the target lists few entries, 
it means that only these entity attributes are missing from the source. Though a global resolution 
can be set, it can also be overridden at each conflict level by providing individual resolution 
mode."
  },
  "conflicts-count" : 1,
  "conflicts-list" : {
    "NoCryptoAdmin" : {
      "source" : {
        "privileges" : "[]"
      },
      "target" : {
        "privileges" : "[Group-1.SamplePriv-1, Group-1.SamplePriv-4, Group-2.SamplePriv-10, 
Group-2.SamplePriv-3, Group-2.SamplePriv-7, Group-3.SamplePriv-2, Group-3.SamplePriv-9]"
      },
      "resolution" : ""
    }
}
<----- End of code block --->

以下是示例冲突文件的几个部分:

  • description.提供有关如何阅读和理解相应冲突文件的详细信息。
  • sourcetarget。JSON 对象,仅列出源和目标 vCenter Server 对象之间的差异。
  • resolution.用户需提供一个有效的解决方法。有效的解决方法为 MERGECOPYSKIP

要指定用于处理冲突的解决方法,可在 "global": "resolution" = "MERGE|SKIP|COPY" 部分中为所有冲突提供默认解决方法选项。如果没有为 resolution 提供有效的全局解决方法类型或没有对其进行任何编辑,系统将使用 COPY 作为默认解决方法选项。

还可以通过在每个冲突级别编辑 resolution 属性为每个冲突提供有效的解决方法选项,该解决方法选项将替代全局解决方法选项。

冲突类型中列出了冲突类型。

表 1. 冲突类型
冲突 用于比较类别对象的属性 冲突类型 有冲突的属性 冲突解决方法选项
角色冲突
  • name:类别的名称。
  • privilegeId:角色的特权列表。

导入角色时,如果目标 vCenter Server 中存在具有相同名称但具有不同特权的角色时,将发生 RoleName 冲突。

对于 RoleName 冲突类型,有冲突的属性可以是 Privileges
  • COPY.将在目标 vCenter Server 中创建有冲突角色的副本,并将 –-copy 附加到角色名称。将使用新的角色 ID 创建具有相同特权 ID 集的新角色。新的角色 ID 会更新到 VPX_ACCESS 表中。新的角色 ID 同时适用于角色名称冲突和角色 ID 冲突。
    注:
    用于解决角色冲突的默认解决方法选项是 COPY
  • MERGE。将按以下顺序解决 MERGE 选项:
    1. 如果源 vCenter Server 中的角色与目标 vCenter Server 中的角色具有相同的名称和特权列表,但角色 ID 不同,则会使用目标 vCenter Server 中的角色 ID 并将其更新到 VPX_ACCESS 表中。
    2. 如果源 vCenter Server 中的角色与目标 vCenter Server 中的角色具有相同的名称,但特权列表不同,则会合并两个角色的特权列表。
  • SKIP.不执行任何操作。将跳过特定角色。

标记类别冲突:类别名称在 vCenter Server 中必须是唯一的。
  • name:类别的名称。
  • cardinality:类别的基数,可以是 Single 或 Multiple。
  • associableEntityType:可与该类别的标记相关联的 vCenter Server 对象的列表。值 All 表示所有 vCenter Server 对象。
导入标记类别时,只会出现一种冲突类型,即 CategoryName 冲突。此冲突指示目标 vCenter Server 中存在具有相同名称但具有不同属性(cardinalityassociableEntityType)的类别。 对于 CategoryName 冲突类型,有冲突的属性可以是以下一种或两种类型:CardinalityAssociableTypes
  • COPY.将在目标 vCenter Server 中创建有冲突类别的副本,并将 –-copy 附加到类别名称。将创建具有与源 vCenter Server 中相同的属性名称的新类别。该类别下存在的所有标记会导入到新创建的 CategoryCopy 下。
    注:
    用于解决 CategoryName 冲突的默认解决方法选项是 COPY
  • MERGE.有冲突的属性将与 SSO 中已存在的类别合并。将按如下所示合并属性:
    1. Description.将使用已存在的描述。
    2. Cardinality.不能缩小基数。如果存在基数冲突,基数会设置为 multiple。基数不能缩小为 single。
    3. AssociableTypes。如果 associableEntityType 值为 null,则会将其设置为 null。否则会合并 Objects 类型。
  • SKIP.不执行任何操作。所有标记会导入到存在的类别下。

标记冲突:tag 对象始终属于 category 对象。标记名称在类别中必须是唯一的。
  • name
  • description
导入标记时,只会出现一种冲突类型,即 TagName 冲突。此冲突指示目标 vCenter Server 中的相同类别下存在具有相同名称但具有不同属性的标记。 对于 TagName 冲突类型,有冲突的属性可以是 Description
  • COPY.将在目标 vCenter Server 中创建有冲突标记的副本,并将 –-copy 附加到标记名称。采用新创建的标记的 MoRef(内部标记 ID)并根据需要更新标记关联。
    注:
    用于解决 CategoryName 冲突的默认解决方法选项是 COPY
  • MERGE。保留现有描述。采用 MoRef(内部标记 ID)并根据需要更新一个或多个标记关联。

  • SKIP.不执行任何操作。不会创建该标记。清理任何标记关联。

vCenter Server 域重新指向许可证注意事项

域重新指向会将许可证密钥复制到新域。复制许可证密钥可确保重新指向后保留所有资产的有效许可。

vCenter Server 将基于域跟踪许可证使用情况。如果某个密钥在多个域中使用,必须确保该密钥的使用量总和不超过其容量。要简化许可证管理工作,请移除复制到另一个域的每个许可证,然后为资产分配新的许可证。

请考虑以下两种情况:
  • 重新指向后,原始域中不再使用(即,分配给资产)的许可证密钥。
  • 在多个域中使用(即,分配给资产)的许可证密钥。

未在域中使用的许可证密钥

如果在完成重新指向后,某个许可证密钥显示在多个域中,但未在其中的某些域中使用,则可从不使用该许可证密钥的任何域中移除它。有关如何在 vCenter Server 中移除许可证的说明,请参见《vCenter Server 和主机管理》中的“移除许可证”。

在多个域中使用的许可证密钥

如果在完成重新指向后,某个许可证密钥在多个域中使用(即,分配给资产),那么要从一个域以外的所有其他域移除该许可证密钥,首先必须为将从中移除许可证密钥的域中的每个资产分配一个不同的许可证密钥。两种常见方法:
  • 如果您有具有足够未使用容量的其他许可证密钥可用,则可以使用这些其他密钥代替要移除的许可证密钥。请参见《vCenter Server 和主机管理》中的“将许可证分配给多个资产”,以在 vCenter Server 中分配许可证。
  • 您可能会将在多个域中使用的许可证密钥拆分为单独的许可证密钥,并为每个域分配一个。要拆分许可证密钥,请参见 VMware 知识库文章,网址为 http://kb.vmware.com/kb/2006972。要确定要在原始许可证密钥拆分成的每个许可证密钥中包含的容量,请参见《vCenter Server 和主机管理》中的“查看许可信息”,以查看 vCenter Server 中每个域的许可证密钥使用情况。

    然后,可将生成的每个许可证密钥添加到一个不同的域,并在 vCenter Server 中分配给先前使用原始许可证密钥许可的资产。请参见《vCenter Server 和主机管理》中的“创建新许可证”创建许可证,并参见《vCenter Server 和主机管理》中的“将许可证分配给多个资产”将许可证分配给多个资产。

    在将不同许可证分配给所有资产后,可使用 vCenter Server 从所有域中移除不再有效的原始许可证密钥。请参见《vCenter Server 和主机管理》中的“移除许可证”。