将 Data Science Virtual Machine 升级到 Ubuntu 20.04

注意

本文引用了 CentOS,这是一个处于生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。

如果你的 Data Science Virtual Machine (DSVM) 运行的是旧版本,例如 Ubuntu 18.04 或 CentOS,则应将该 DSVM 迁移到 Ubuntu 20.04。 这种迁移会确保你获取最新的操作系统补丁、驱动程序、预安装软件和库版本。 本文档介绍如何从旧的 Ubuntu 版本迁移或从 CentOS 迁移。

先决条件

  • 熟悉 SSH 和 Linux 命令行

概述

有两个迁移选项:

  • 就地迁移,也称为“同服务器”迁移。 此选项升级现有 VM,但不创建新虚拟机。 就地迁移是从 Ubuntu 18.04 迁移到 Ubuntu 20.04 的较简单方法。
  • 并行迁移,也称为“服务器间”迁移。 此选项将数据从现有虚拟机传输到新创建的虚拟机。 并行迁移是从 Centos 迁移到 Ubuntu 20.04 的方式。 如果认为旧安装不必要地变得混乱,首选做法是在 Ubuntu 版本之间进行并行迁移,而不是升级。

如果需要回滚,请为你的 VM 创建快照

在 Azure 门户中,使用搜索栏查找快照功能。

显示 Azure 门户和搜索栏的屏幕截图,其中突出显示了“快照”。

  1. 选择“添加”,随即你会转到“创建快照”页。 选择你的虚拟机的订阅和资源组。 对于“区域”,请选择目标存储所在的区域。 选择 DSVM 存储磁盘和其他备份选项。 标准 HDD 是适用于此备份方案的存储类型。 显示“创建快照”选项的屏幕截图。
  2. 填写详细信息并通过验证后,选择“查看 + 创建”以验证并创建快照。 快照成功完成后,会出现一条消息,告知部署已完成。

就地迁移

若要迁移旧的 Ubuntu 版本,可以选择就地迁移选项。 此迁移不会创建新的虚拟机,并且与并行迁移相比步骤更少。 若要获得更好的控制度,或者要从不同的发行版(例如 CentOS)进行迁移,请考虑使用并行迁移。 有关详细信息,请跳到本文档的并行迁移部分。

  1. 从 Azure 门户启动 DSVM,然后使用 SSH 登录。 为此,请选择“连接”和“SSH”并按照连接说明进行操作。

  2. 连接到 DSVM 上的终端会话后,运行以下升级命令:

    sudo do-release-upgrade
    

升级过程需要一段时间才能完成。 完成后,程序将请求你允许重启虚拟机。 回答“是”。 当系统重启时,你将从 SSH 会话断开连接。

如有必要,请重新生成 SSH 密钥

重要

升级并重启后,可能需要重新生成 SSH 密钥。

VM 升级并重启后,请尝试通过 SSH 再次访问它。 IP 地址可能会在重启期间发生变化,因此在尝试连接之前请先确认。

如果收到“远程主机标识已更改”错误,则必须重新生成 SSH 凭据。

显示 PowerShell 远程主机标识已更改警告的屏幕截图。

为此,请在本地计算机上运行以下命令:

ssh-keygen -R "your server hostname or ip"

你现在应能通过 SSH 进行连接。 如果仍然遇到问题,请单击“连接”页上的“排查 SSH 连接问题”链接

并行迁移

若要从 CentOS 迁移或进行全新的操作系统安装,可以执行并行迁移。 这种迁移类型的步骤更多,但你可以更好地控制所要转移的确切文件。

从基于同一组上游源包(例如 FAQ/CentOS3)的其他系统进行迁移应该相对简单。

可以升级文件系统的操作系统部分,并保留用户目录(例如 /home)。 如果你将旧的用户主目录保留在原来的位置,那么 GNOME/KDE 菜单和其他桌面项预期会出现一些问题。 创建新用户帐户并将旧目录装载到文件系统中的其他某个位置可能更方便。 这样做是为了在迁移后引用、复制或链接用户的材料。

迁移概览

  1. 前文所述创建现有 VM 的快照。
  2. 基于该快照创建一个磁盘。
  3. 创建新的 Ubuntu DSVM。
  4. 在新虚拟机上重新创建用户帐户。
  5. 将快照 VM 的磁盘装载为新 DSVM 上的数据磁盘。
  6. 手动复制相关数据。

基于 VM 快照创建磁盘

如前所述创建 VM 快照(如果尚未执行此操作)。

  1. 在 Azure 门户中,搜索“磁盘”并选择“添加”。 这会打开“磁盘”页

Azure 门户的屏幕截图,其中显示了搜索“磁盘”时的页面和“添加”按钮。

  1. 将“订阅”、“资源组”和“区域”设置为你的 VM 快照的值。 为要创建的磁盘选择一个名称

  2. 选择“快照”作为“源类型”,并选择 VM 快照作为“源快照”。 查看并创建磁盘

磁盘创建对话框的屏幕截图,其中显示了可用选项。

创建新的 Ubuntu Data Science Virtual Machine

使用 Azure 门户ARM 模板创建新的 Ubuntu Data Science Virtual Machine。

在新的 Data Science Virtual Machine 上重新创建用户帐户

由于只会从旧计算机复制数据,因此必须重新创建要在新计算机上使用的用户帐户和软件环境。

Linux 具有足够的灵活性,允许在新的安装上自定义目录和路径,以镜像旧计算机。 但一般情况下,更方便的做法是使用新式 Ubuntu 的首选布局,并修改用户环境,同时修改脚本以适应环境。

有关详细信息,请访问快速入门:设置适用于 Linux (Ubuntu) 的 Data Science Virtual Machine

在新的 Data Science Virtual Machine 上装载快照 VM 的磁盘作为数据磁盘

  1. 在 Azure 门户中,确认你的 Data Science Virtual Machine 正在运行
  2. 在 Azure 门户中,转到 DSVM 的页面。 选择左侧导轨上的“磁盘”边栏选项卡。 选择“附加现有磁盘”
  3. 在“磁盘名称”下拉列表中,选择基于旧 VM 的快照创建的磁盘 DSVM 选项页的屏幕截图,其中显示了磁盘附加选项。
  4. 选择“保存”以更新你的虚拟机。

重要

在你附加数据磁盘时,你的 VM 应当正在运行。 如果 VM 未运行,则可能会按不正确的顺序添加磁盘。 这会导致系统混乱并可能无法启动。 如果在 VM 关闭的情况下添加数据磁盘,请选择数据磁盘旁边的 X,启动 VM,然后重新附加它。

手动复制所需的数据

  1. 使用 SSH 登录到正在运行的虚拟机

  2. 运行以下命令,确认已附加基于旧 VM 快照创建的磁盘:

    lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i 'sd'
    

    结果应如下图所示。 在图中,磁盘 sda1 装载到根目录上,sdb2/mnt 暂存磁盘。 基于旧 VM 的快照创建的数据磁盘会被标识为 sdc1 但尚不可用,表现为缺少装载位置。 你的结果可能具有不同的标识符,但你应当会看到类似的模式。

    lsblk 输出的屏幕截图,其中显示了未装载的数据驱动器。

  3. 若要访问数据驱动器,请为其创建一个位置并装载它。 请将 /dev/sdc1 替换为 lsblk 返回的相应值:

    sudo mkdir /datadrive && sudo mount /dev/sdc1 /datadrive
    
  4. /datadrive 资源包含旧 DSVM 的目录和文件。 根据需要将所需的目录或文件从数据驱动器移动或复制到新 VM。

有关详细信息,请访问使用门户将数据磁盘附加到 Linux VM

连接并确认版本升级

对于就地迁移或并行迁移,请验证升级是否成功。 从终端会话中,运行:

cat /etc/os-release

终端应显示你正在运行 Ubuntu 20.04。

Ubuntu 终端的屏幕截图,其中显示了 OS 版本数据。

Azure 门户还会显示版本更改。

Azure 门户的屏幕截图,其中显示了 DSVM 属性,包括 OS 版本。

后续步骤