产品迁移

1. 简介

产品迁移允许您将基于 SLE 的客户端系统从一个服务包 (SP) 级别升级到更高的级别。 例如,您可以将 SUSE Linux Enterprise Server 15 SP5 迁移到 SUSE Linux Enterprise Server 15 SP6。 您还可以将客户端如 Red Hat Enterprise Linux 或 CentOS 升级到 SUSE Liberty Linux。

要进行产品迁移,客户端上启用的以及应该迁移的所有储存库都必须有效,否则迁移将会中止。

SUSE Multi-Linux Manager 支持以下迁移路径:

1.1. 在同一主要版本中迁移

产品迁移用于在同一主要版本内进行升级。 您不能使用产品迁移从 SUSE Linux Enterprise Server 12 迁移到 SUSE Linux Enterprise Server 15。 有关主要升级的更多信息,请参见 主要版本升级

1.2. 将 openSUSE Leap 迁移到后续次要版本或对应的 SUSE Linux Enterprise Server SP

您还可以将 openSUSE Leap 迁移到更高的次要版本或对应的 SUSE Linux Enterprise Server SP 级别,例如:

  • openSUSE Leap 15.5 到 15.6

  • openSUSE Leap 15.6 到 SUSE Linux Enterprise Server 15 SP6

1.3. 将 SUSE Linux Enterprise Server 迁移到对应的 SUSE Linux Enterprise Server for SAP Applications SP

您还可以将 SUSE Linux Enterprise Server 迁移到对应的 SUSE Linux Enterprise Server for SAP Applications SP 级别,例如:

  • SUSE Linux Enterprise Server 15 SP5 到 SUSE Linux Enterprise Server for SAP Applications 15 SP5

在 SUSE Linux Enterprise Server 12 及更高版本中,SUSE 支持服务包跳过,如果 SUSE Customer Center 提供此功能。 例如,您可以从 SUSE Linux Enterprise Server 15 升级到 SP2,而无需安装 SP1。

  • 迁移时会自动启用所有建议的扩展。

  • 迁移期间,SUSE Multi-Linux Manager 会在安装前自动接受任何必要的许可协议 (EULA)。

2. 单系统迁移

开始迁移产品之前:

  • 确保没有待处理的更新或补丁。 检查客户端系统的 `System Status`详细信息  概述 页面上的,并安装所有提供的更新或补丁。 如果您的客户端系统未更新,产品迁移可能会失败。

  • 确保目标产品的所有通道已完全同步。 要检查 Web UI 中的同步状态,请导航到 管理员  设置向导  产品 页面。

  • 确保您有可用的系统备份,以备紧急情况。 产品迁移没有回滚功能。 当迁移过程开始时,无法回滚。

过程:升级执行单系统迁移
  1. 系统  概述 页面中选择一个客户端。

  2. 从客户端的系统详细信息页面,导航到 软件  产品迁移 选项卡。

  3. 选择目标迁移路径,然后单击 选择通道

  4. Product Migration - Channels 页面选择正确的基础通道,包括 Mandatory Child Channels 和任何附加的 Optional Child Channels

  5. 可选:选中 Allow Vendor Change 以允许安装已更改供应商的软件包。 如果发生这种情况,迁移开始前会显示包含详细信息的通知。

    要将 openSUSE Leap 迁移到 SUSE Linux Enterprise Server,您必须选中 Allow Vendor Change 选项。

  6. 正确配置您的通道后,单击 安排迁移

3. 产品大量迁移

如果您要将大量客户端迁移到下一 SP 版本,可以使用 SUSE Multi-Linux Manager API 调用。

spacecmd 命令行工具提供了一个 system_scheduleproductmigration 子命令,可用于为大量客户端安排迁移到下一个次要版本。

3.1. 执行产品大量迁移

产品大量迁移操作非常危险,该过程应经过全面测试。 至少应先进行试运行。

请务必小心,不要无意中升级系统。

过程:升级执行产品大量迁移
  1. 列出可用的迁移目标,并记下要迁移的系统 ID:

    spacecmd api -- system.listMigrationTargets -A 1000010001
  2. 针对每个系统 ID,调用 listMigrationTarget 并检查所需的目标产品是否可用。

    • 如果系统 ID 有可用的目标,请调用 system.scheduleProductMigration

    • 如果所需目标不可用,则跳过该系统。

  3. 根据您的环境调整以下模板:

    target = '[....]'
    basechannel = 'channel-label'
    system_ids = [1, 2, 3]
    
    session = auth.login(user, pass)
    for system in system_ids
      if system.listMigrationTargets(session, system).ident == target
        system.scheduleProductMigration(session, system, target, basechannel, [], False, <now>)
      else
        print "Cannot migrate to requested target -- skipping system"
      endif
    endfor

3.2. 示例:从 SLES 15 SP2 迁移到 SLES 15 SP3

对于此示例,将会创建一个组,以便于进行大量迁移。

过程:升级创建大量产品迁移组
  1. 在 SUSE Multi-Linux Manager Web UI 中,导航到 系统  系统组,然后点击 创建组

  2. 将组命名为 mpm-target-sles15sp3

    • 仅应将订阅相同基础通道的系统添加到创建的组中。 在示例中,仅应将订阅了 SLE-Product-SLES15-SP2-Pool for x86_64 的系统添加到该组中。

      有关将客户端添加到组的更多信息,请参见 系统组

过程:升级将系统添加到组
  1. 运行以下命令,以获取该组中所有系统的目标:

    spacecmd -- system_listmigrationtargets group:mpm-target-sles15sp3
  2. 命令的输出为由多个 ID 组成的字符串。

    • 请只选择一个目标,这样为 所有 系统报告的就是该目标。

    • 该字符串是另一个命令的 MIGRATIONTARGET 的标识符。

      spacecmd 子命令 system_scheduleproductmigrationsystem_listmigrationtargets 会循环遍历组中的所有系统。

      如果该组中有 100 个系统,您会发现安排了 100 个操作。

      该组中的所有系统都必须支持相同的迁移目标。

过程:升级运行大量迁移命令
  1. system_scheduleproductmigration 命令的语法如下:

    spacecmd -- system_scheduleproductmigration <SYSTEM> <BASE_CHANNEL_LABEL> \
        <MIGRATION_TARGET> [options]
  2. 对于此示例,要将组 mpm-target-sles15sp3 中的所有系统从 SLES 12 SP2 升级到 SLES 15 SP,请在命令行上输入:

    spacecmd -- system_scheduleproductmigration group:mpm-target-sles15sp3 \
        sle-product-sles15-sp3-pool-x86_64 "[190,203,195,1242]" -d

3.2.1. 命令语法说明

要查看 system_scheduleproductmigration 的语法用法和选项,请运行:

spacecmd system_scheduleproductmigration help
<SYSTEM>

对于此示例,我们将使用我们创建的组选择该组中的所有系统:

group:mpm-target-sles15sp3
<BASE_CHANNEL_LABEL>

这是目标基础通道的标签。 在这种情况下,系统将升级到 SLES 15 SP3,标签为 sle-product-sles15-sp3-pool-x86_64

要查看当前镜像的所有基础通道的列表,请运行以下命令:

spacecmd softwarechannel_listbasechannels

请注意,除非通道是当前基础通道的可用目标,否则您无法升级到该通道。

<MIGRATION_TARGET>

要识别组 group:mpm-target-sles15sp3 中系统的此值,请运行:

spacecmd -- system_listmigrationtargets group:mpm-target-sles15sp3

MIGRATION_TARGET 参数必须采用以下格式传递;请注意需要使用外壳引号将其括起来,以防括号产生副作用:

"[190,203,195,1242]"
选项
  • -s START_TIME

  • -d 如果您要执行试运行,请传递此标志(建议在实际执行迁移前执行试运行)

  • -c CHILD_CHANNELS(逗号分隔的不带空格的子通道标签)

    在本例中,我们包含了 -d 选项,在成功执行试运行后可以将其去除。

如果成功,安排的每个系统的命令输出将如下所示:

Scheduling Product migration for system mpm-sles152-1
Scheduled action ID: 66

您还可以在组内指定系统的 Web UI 中跟踪该操作,此处显示为试运行。 从客户端的系统详细信息页面,导航到 事件  历史。 如果在试运行期间出现任何故障,应对系统进行调查。

如果一切正常,则可从命令中去除 -d 选项,以运行实际的迁移。 完成迁移后,您可以从 SUSE Multi-Linux Manager Web UI 中重引导系统。