IBM Cloud Docs
从经典基础架构迁移虚拟服务器

从经典基础架构迁移虚拟服务器

您可以从经典基础架构迁移虚拟服务器实例,以满足 IBM Cloud VPC 基础架构需求。 然后,可以从实例创建映像模板,并将其部署在 VPC 环境中。

LinuxONE (s390x 处理器体系结构) 不支持从经典基础架构迁移虚拟服务器实例。

准备工作

在开始之前,请确保满足以下前提条件。

从经典基础架构迁移虚拟服务器

请完成以下步骤,将经典基础架构中与虚拟服务器关联的图像模板迁移到 IBM Cloud VPC 基础架构中。 定制映像在 IBM Cloud VPC 中可用后,即可以使用该映像来创建虚拟服务器。

以下列表概述了迁移步骤。

  1. 对于要迁移到 IBM Cloud VPC 基础设施的虚拟服务器,请创建一个镜像模板。 必须先创建映像模板,然后才能继续执行以下迁移步骤。
  2. 从映像模板中,供应要用作备份实例的虚拟服务器。
  3. 定制备份虚拟服务器以确保它满足要在 IBM Cloud VPC中部署的需求。
  4. 创建已修改虚拟服务器的映像模板。
  5. 将映像模板导出到 IBM Cloud Object Storage。
  6. 将定制映像导入到 IBM Cloud VPC 基础结构。
  7. 使用自定义图像在 IBM Cloud VPC 中创建虚拟服务器。

有关使用 shell 脚本迁移虚拟服务器的详细信息,请参阅 vpc-tutorials。 有关从 Classic 迁移到 IBM Cloud VPC 的更多信息,请参阅 开始 VPC+ Cloud Migration

步骤 1-标识要迁移和创建映像模板的虚拟服务器

如果要将经典基础架构中的虚拟服务器迁移到 IBM Cloud VPC 基础架构,可以基于该虚拟服务器创建映像模板。 映像模板捕获现有虚拟服务器的映像。 确保您了解有关映像模板的以下信息。

  • 只有具有单个主启动卷(或磁盘)和相关文件的图像模板才能导入到 IBM Cloud VPC 基础架构中。
  • 映像模板包含主引导磁盘上的操作系统以及您安装的项,例如 PHP 或 Python。 映像模板的数据可以在 10 GB 到 250 GB 之间。 10 GB 以下的映像将向上舍入为 10 GB。
  • 当您使用 IBM Cloud VPC 中的导入自定义图像创建虚拟服务器时,您可以选择新的配置文件、分配SSH密钥、指定用户数据并配置网络接口。

当图像模板作为自定义图像导入到 IBM Cloud VPC 时,不支持图像模板的辅助磁盘及其关联文件。

完成以下步骤,为要迁移的虚拟服务器创建映像模板。

  1. IBM Cloud 控制台中的“仪表板”中,通过单击 导航菜单 "菜单" 图标 > 经典基础结构 > 设备 > 设备列表来创建映像模板。
  2. 点击您要使用的虚拟服务器。
  3. 操作菜单中,选择创建映像模板。 请确保将其命名为您可以轻松识别的名称。 有关更多信息,请参阅创建映像模板

步骤 2-找到映像模板并供应虚拟服务器

从您创建的映像模板中,供应虚拟服务器。 此实例是备份。 您可以定制此备份虚拟服务器以满足 IBM Cloud VPC的需求。

完成以下步骤以根据映像模板创建新的虚拟服务器。

  1. 单击 设备> 管理> 映像 以查找您创建的映像模板。
  2. 通过单击映像模板的“操作”图标 "操作" 图标 并选择 订购公共虚拟服务器实例,从映像模板供应虚拟服务器。

步骤 3-定制 IBM Cloud VPC 的虚拟服务器

完成以下定制,为 IBM Cloud VPC 基础结构准备映像。 您的经典基础设施虚拟服务器实例可能已经满足了一些定制要求。

定制 Linux 虚拟服务器

遵循 创建 Linux 定制映像 中的指示信息以在 Linux 实例上进行定制。 您的实例需要满足以下要求。

  • 内核命令行上存在以下参数: nomodesetnofbvga=normalconsole=ttyS0
  • 安装了 Virtio 驱动程序 以及 Virtio 所需的任何代码。
  • 您的映像为 cloud-init enabled
  • 对于安装的任何辅助存储卷,必须包含 fstab 条目 nofail

定制 Windows 实例

在 Windows 虚拟服务器上完成以下定制以准备用于 IBM Cloud VPC的映像。

  1. 使用远程桌面访问经典 Windows 服务器。

  2. 在此服务器中下载并安装 Windows VirtIO 驱动程序。 virtio-win 驱动程序文件可以通过以下步骤从现有的 IBM Cloud VPC 虚拟服务器中获取。

    Microsoft 建议您从许可 RHEL V 8 或 9 实例获取驱动程序,因为从 Red Hat 获取的驱动程序已通过 Microsoft 认证。 建议的最低 Red Hat virtio-win 软件包版本为 virtio-win-1.9.24。 但是,使用最新的包是最好的。

    Red Hat virtio-win-1.9.24 ISO 包含以下特定驱动程序版本。

    100.84.104.19500 oem10.inf \vioprot.inf_amd64_af0659efdaba9e4b\vioprot.inf
    100.90.104.21400 oem11.inf \viofs.inf_amd64_c6f785e21f3f6f80\viofs.inf
    100.85.104.20200 oem12.inf \viogpudo.inf_amd64_b19dcf9947e73e5a\viogpudo.inf
    100.85.104.19900 oem13.inf \vioinput.inf_amd64_4505a789e17b5f89\vioinput.inf
    100.81.104.17500 oem14.inf \viorng.inf_amd64_ef304eab276a3e61\viorng.inf
    100.85.104.19900 oem15.inf \vioser.inf_amd64_cb4783c018c10eba\vioser.inf
    100.90.104.21500 oem2.inf  \vioscsi.inf_amd64_02a46a7a223648d1\vioscsi.inf
    100.90.104.21500 oem3.inf  \viostor.inf_amd64_520417bbc533faba\viostor.inf
    100.85.104.20700 oem4.inf  \balloon.inf_amd64_afa8c93081df5458\balloon.inf
    100.90.104.21400 oem5.inf  \netkvm.inf_amd64_0efff05c07fcee39\netkvm.inf
    100.85.104.19900 oem6.inf  \pvpanic.inf_amd64_b7028360ef636f8b\pvpanic.inf
    10.0.0.21000     oem9.inf  \qxldod.inf_amd64_6199f9ecf2339133\qxldod.inf
    
    1. 通过在 IBM Cloud VPC中供应或访问现有 RHEL 虚拟服务器,获取必需的 virtio-win 驱动程序。

    2. 在您在 IBM Cloud VPC中供应的 RHEL 虚拟服务器上,通过运行以下命令来安装 virtio-win 软件包。 在此示例中,virtio-win 软件包安装在 RHEL V 8 上。

      yum install virtio-win
      ```      {: pre}
      
      The output looks like the following example.
      
      ```text {: screen}
      Installed: virtio-win-1.9.24-2.el8_5.noarch
      
    3. 访问 /usr/share/virtio-win 目录中的 virtio-win ISO。

      cd /usr/share/virtio-win/
      
    4. 使用 WinSCP 实用程序将 virtio-win ISO 文件 (例如,virtio-win-1.9.24.iso ) 从 RHEL VPC 服务器复制到 Classic Windows 服务器。

    5. 找到下载的 ISO 并双击它以进行安装。

    6. 从已安装的 ISO 中,运行 virtio-win-guest-tools.exe 并完成安装。

      1. 找到下载的 ISO 并双击它以进行安装。
      2. 从已安装的 ISO 中,运行 virtio-win-guest-tools.exe 并完成安装。
  3. Cloudbase-Init 安装包安装并配置 cloudbase-init。

  4. 修改 cloudbase-init.conf 文件 (C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf) 以匹配以下值。 请勿从文件中除去任何其他内容。

    [DEFAULT]
    #  "cloudbase-init.conf" is used for every boot
    config_drive_types=vfat,iso
    config_drive_locations=hdd,partition
    activate_windows=true
    kms_host=kms.adn.networklayer.com:1688
    mtu_use_dhcp_config=false
    real_time_clock_utc=false
    bsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exe
    mtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\
    debug=true
    log_dir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\
    log_file=cloudbase-init.log
    default_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN
    local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\
    metadata_services=cloudbaseinit.metadata.services.configdrive.ConfigDriveService,
    # enabled plugins - executed in order
    plugins=cloudbaseinit.plugins.common.mtu.MTUPlugin,
              cloudbaseinit.plugins.windows.ntpclient.NTPClientPlugin,
              cloudbaseinit.plugins.windows.licensing.WindowsLicensingPlugin,
              cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin,
              cloudbaseinit.plugins.common.userdata.UserDataPlugin,
              cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin
    

    如果计划为定制映像自带许可证,请从 cloudbase-init.conf 文件中除去以下行。

    activate_windows=true
    kms_host=kms.adn.networklayer.com:1688
    
  5. 修改 cloudbase-init-unattend.conf 文件 (C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init-unattend.conf) 以匹配以下值。 请勿从文件中除去任何其他内容。

    [DEFAULT]
    #  "cloudbase-init-unattend.conf" is used during the Sysprep phase
    username=Administrator
    inject_user_password=true
    first_logon_behaviour=no
    config_drive_types=vfat
    config_drive_locations=hdd
    allow_reboot=false
    stop_service_on_exit=false
    mtu_use_dhcp_config=false
    bsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exe
    mtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\
    debug=true
    log_dir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\
    log_file=cloudbase-init-unattend.log
    default_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN
    local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\
    metadata_services=cloudbaseinit.metadata.services.configdrive.ConfigDriveService,
    # enabled plugins - executed in order
     plugins=cloudbaseinit.plugins.common.mtu.MTUPlugin,
              cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin,
              cloudbaseinit.plugins.windows.createuser.CreateUserPlugin,
              cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin,
              cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin,
              cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin
    
  6. 修改 Unattend.xml 文件 (C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\Unattend.xml) 并将 PersistAllDeviceInstalls 值设置为 false

  7. 从命令提示符使用以下命令来运行 Sysprep

    C:\Windows\System32\Sysprep\Sysprep.exe /oobe /generalize /shutdown "/unattend:C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\Unattend.xml"
    

    此命令关闭系统。

步骤 4-创建定制虚拟服务器的映像模板

在备份虚拟服务器上完成定制后,请使用以下步骤创建新的映像模板。

  1. IBM Cloud 控制台中的“仪表板”,单击 菜单 "菜单" 图标 > 经典基础结构 > 设备 > 设备列表 以创建映像模板。
  2. 单击先前定制的备份虚拟服务器。
  3. 操作菜单中,选择创建映像模板。 必须先创建映像模板,然后才能继续执行以下步骤。

步骤 5-将映像模板导出到 IBM Cloud Object Storage

要将您从已修改的虚拟服务器创建的映像模板导出到 IBM Cloud Object Storage,请完成以下步骤。

  1. 通过单击 设备> 管理> 映像,找到您在“映像模板”页面上创建的新映像模板。
  2. “图片模板”页面中,点击 …… 选择要导出的图片模板,然后选择“导出至 IBM Cloud Object Storage”。 有关更多信息,请参阅将映像导出到 IBM Cloud Object Storage

步骤 6-将定制映像导入到 IBM Cloud VPC 基础架构

  1. 在 IBM Cloud 控制台中,单击 导航菜单 图标 菜单图标 基础架构 VPC 图标 计算 > 图像
  2. 定制图像 选项卡上,单击 导入定制图像。 有关更多信息,请参阅导入定制映像

步骤 7-使用定制映像在 IBM Cloud VPC 中创建虚拟服务器

当您导入的图片出现在 “VPC图片”页面的 “自定义图片”选项卡上时,您就可以使用它来在 IBM Cloud VPC 基础设施中创建一个虚拟服务器实例。

  1. 定制映像 选项卡上,查找导入的定制映像的名称,单击“操作”"更多操作" 图标,然后选择 新建虚拟服务器
  2. IBM Cloud 控制台,转到 导航菜单 图标 菜单图标 > 基础设施 VPC 图标 > 计算 > 虚拟服务器实例
  3. 在“虚拟服务器实例”页面上,单击“操作”"更多操作" 图标。 停止然后启动虚拟服务器,然后再对其进行访问。
  4. 创建入站和出站安全组以授予对 RDP 流量端口 3389 的访问权。 有关更多信息,请参阅 为资源设置安全组
  5. 要生成密码以允许使用浮动 IP 访问 Windows 和 RDP,请参阅 连接到 Windows 实例