在气隙 DGX A100 系统上安装软件#

出于安全目的,某些安装要求系统与互联网或外部网络隔离。由于大多数 DGX A100 软件更新都是通过与 NVIDIA 服务器的网络连接过程完成的,因此本节解释了在使用网络方法不可行时如何进行更新。它还包括安装 Docker 容器的流程。

安装 NVIDIA DGX A100 软件#

在气隙 DGX A100 系统上安装 DGX A100 软件有两种方法。

更新气隙 DGX A100 系统上的 DGX A100 软件的一种方法是下载 ISO 镜像,将其复制到可移动介质,然后从介质重新映像 DGX A100 系统。此方法仅适用于可作为 ISO 镜像下载的软件版本。

或者,您可以通过从本地存储库执行网络更新来更新 DGX A100 软件。此方法仅适用于可通过网络更新的软件版本。

重新映像系统#

以下是关于如何重新映像 DGX A100 系统的一些信息。

注意

此过程将销毁您在 DGX A100 系统上进行的所有数据和软件自定义设置。请务必备份您要保留的任何数据,并将您要保留的任何 Docker 镜像推送到可信的注册表。

  1. 从 NVIDIA 企业服务获取 ISO 镜像。

    1. 登录到 NVIDIA 企业支持 站点,并在公告选项卡上,找到 DGX OS Server 镜像 ISO 文件。

    2. 下载镜像 ISO 文件。

  2. 有关其他说明,请参阅 恢复 DGX A100 软件镜像

创建 NVIDIA 和 Canonical 存储库的本地镜像#

以下过程描述了如何下载所有必要的软件包,以创建更新 NVIDIA DGX 系统所需的存储库镜像。这些步骤特定于 4.0.X 和 4.1.X 版本,但可以编辑以与其他版本一起使用。有关 DGX OS 版本和可用发行说明的更多信息,请访问 https://docs.nvda.net.cn/dgx/dgx-os-server-release-notes/index.html#dgx-os-release-number-scheme。有关如何从 4.0.x 版本升级到 4.1.x 版本的更多信息,请查看发行说明:https://docs.nvda.net.cn/dgx/pdf/DGX-OS-server-4.1-relnotes-update-guide.pdf

注意

这些过程仅适用于同一主要版本内的升级,例如 4.x → 4.y。它不支持跨主要版本的升级,例如 3.x → 4.x。

创建本地镜像#

本节中的说明将在具有网络访问权限的系统上执行。

以下是先决条件

  • 需要安装 Ubuntu OS 的系统来创建镜像,因为需要使用几个 Ubuntu 工具。

  • 您必须以管理员用户身份登录到安装了 Ubuntu OS 的系统,因为此过程需要 sudo 权限。

  • 系统必须包含足够的存储空间,以便将存储库复制到文件系统。空间要求可能高达 250 GB。

  • 需要一种有效的方式来移动大量数据,例如,DMZ 中的共享存储,或可以带入气隙区域的便携式 USB 驱动器。

    数据将需要移动到需要更新的系统。确保任何便携式驱动器都使用 ext4 或 FAT32 格式化。

  1. 确保存储设备已连接到具有网络访问权限的系统,并确定设备的挂载点。

    这些说明中使用的示例挂载点:/media/usb/repository

  2. 安装 apt-mirror 软件包。

    $ sudo apt update
    $ sudo apt install apt-mirror
    
  3. 将目标目录的所有权更改为 apt-mirror 组中的 apt-mirror 用户。

    $ sudo chown apt-mirror:apt-mirror /media/usb/repository
    

    目标目录必须由用户 apt-mirror 拥有,否则复制将无法工作。

  4. /etc/apt/mirror.list 中配置目标目录的路径,并使用下面包含的存储库列表来检索 Ubuntu 基础操作系统和 NVIDIA DGX OS 软件包的软件包。

    DGX OS 5#
    ############# config ##################
    #
    set base_path /media/usb/repository #/your/path/here
    #
    # set mirror_path $base_path/mirror
    # set skel_path $base_path/skel
    # set var_path $base_path/var
    # set cleanscript $var_path/clean.sh
    # set defaultarch <running host architecture>
    # set postmirror_script $var_path/postmirror.sh
    set run_postmirror 0
    set nthreads 20
    set _tilde 0
    #
    ############# end config ##############
    # Standard Canonical package repositories:
    deb http://security.ubuntu.com/ubuntu focal-security main multiverse universe restricted
    deb http://archive.ubuntu.com/ubuntu/ focal main multiverse universe restricted
    deb http://archive.ubuntu.com/ubuntu/ focal-updates main multiverse universe restricted
    #
    deb-i386 http://security.ubuntu.com/ubuntu focal-security main universe multiverse restricted
    deb-i386 http://archive.ubuntu.com/ubuntu/ focal main multiverse universe restricted
    deb-i386 http://archive.ubuntu.com/ubuntu/ focal-updates main multiverse universe restricted
    #
    # CUDA specific repositories:
    deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /
    #
    # DGX specific repositories:
    deb http://repo.download.nvidia.com/baseos/ubuntu/focal/x86_64/ focal common dgx
    deb http://repo.download.nvidia.com/baseos/ubuntu/focal/x86_64/ focal-updates common dgx
    #
    deb-i386 http://repo.download.nvidia.com/baseos/ubuntu/focal/x86_64/ focal common dgx deb-i386
    http://repo.download.nvidia.com/baseos/ubuntu/focal/x86_64/ focal-updates common dgx
    #
    # Clean unused items
    clean http://archive.ubuntu.com/ubuntu
    clean http://security.ubuntu.com/ubuntu
    
    DGX OS 4#
    ############# config ##################
    #
    set base_path /media/usb/repository #/your/path/here
    #
    # set mirror_path $base_path/mirror
    # set skel_path $base_path/skel
    # set var_path $base_path/var
    # set cleanscript $var_path/clean.sh
    # set defaultarch <running host architecture>
    # set postmirror_script $var_path/postmirror.sh
    set run_postmirror 0
    set nthreads 20
    set _tilde 0
    #
    ############# end config ##############
    # Standard Canonical package repositories:
    deb http://security.ubuntu.com/ubuntu bionic-security main
    deb http://security.ubuntu.com/ubuntu bionic-security universe
    deb http://security.ubuntu.com/ubuntu bionic-security multiverse
    deb http://archive.ubuntu.com/ubuntu/ bionic main multiverse universe
    deb http://archive.ubuntu.com/ubuntu/ bionic-updates main multiverse universe
    #
    deb-i386 http://security.ubuntu.com/ubuntu bionic-security main
    deb-i386 http://security.ubuntu.com/ubuntu bionic-security universe
    deb-i386 http://security.ubuntu.com/ubuntu bionic-security multiverse
    deb-i386 http://archive.ubuntu.com/ubuntu/ bionic main multiverse universe
    deb-i386 http://archive.ubuntu.com/ubuntu/ bionic-updates main multiverse universe
    #
    # DGX specific repositories:
    deb http://international.download.nvidia.com/dgx/repos/bionic bionic main restricted universe multiverse
    deb http://international.download.nvidia.com/dgx/repos/bionic bionic-updates main restricted universe multiverse
    deb http://international.download.nvidia.com/dgx/repos/bionic bionic-r418+cuda10.1 main multiverse restricted universe
    deb http://international.download.nvidia.com/dgx/repos/bionic bionic-r450+cuda11.0 main multiverse restricted universe
    #
    deb-i386 http://international.download.nvidia.com/dgx/repos/bionic bionic main restricted universe multiverse
    deb-i386 http://international.download.nvidia.com/dgx/repos/bionic bionic-updates main restricted universe multiverse
    # Only for DGX OS 4.1.0
    deb-i386 http://international.download.nvidia.com/dgx/repos/bionic bionic-r418+cuda10.1 main multiverse restricted universe
    # Clean unused items
    clean http://archive.ubuntu.com/ubuntu
    clean http://security.ubuntu.com/ubuntu
    
  5. 运行 apt-mirror 并等待它完成下载内容。

    这将花费很长时间,具体取决于网络连接速度。

    $ sudo apt-mirror
    
  6. 弹出包含所有软件包的可移动存储。

    $ sudo eject /media/usb/repository
    

配置目标气隙 DGX OS 4 系统#

本节中的说明将在目标气隙 DGX 系统上执行。

以下是先决条件

  • 目标气隙 DGX 系统已安装,已完成首次启动过程,并准备好使用最新的软件包进行更新。

  • 在其上创建镜像的 USB 存储设备已连接到目标 DGX 系统。

    还有其他数据传输方式未在本文件中涵盖,因为它们将取决于气隙环境的数据中心策略。

  1. 将存储设备挂载到气隙系统上的 /media/usb/repository 以保持一致性。

  2. 通过修改以下行,配置 apt 命令以使用文件系统作为文件 /etc/apt/sources.list 中的存储库。

    deb file:///media/usb/repository/mirror/security.ubuntu.com/ubuntu bionic-security main
    deb file:///media/usb/repository/mirror/security.ubuntu.com/ubuntu bionic-security universe
    deb file:///media/usb/repository/mirror/security.ubuntu.com/ubuntu bionic-security multiverse
    deb file:///media/usb/repository/mirror/archive.ubuntu.com/ubuntu/ bionic main multiverse universe
    deb file:///media/usb/repository/mirror/archive.ubuntu.com/ubuntu/ bionic-updates main multiverse universe
    
  3. 在文件 /etc/apt/sources.list.d/dgx.list 中配置 apt 以使用 NVIDIA DGX OS 软件包。

    deb file:///media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic main multiverse restricted universe
    
  4. 如果存在文件 /etc/apt/sources.list.d/docker.list,请将其删除,因为它不再需要,并且删除它将消除更新过程中的错误消息。

  5. (仅适用于 DGX OS 4.1 及更高版本) 在文件 /etc/apt/sources.list.d/dgx-bionic-r418-cuda10-1-repo.list 中配置 apt 以使用 NVIDIA DGX OS 软件包。

    $ echo "deb file:///media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic/ bionic-r418+cuda10.1 main multiverse restricted universe" | sudo tee /etc/apt/sources.list.d/dgx-bionic-r418-cuda10-1-repo.list
    
  6. (仅适用于 DGX OS 4.5 及更高版本) 如果您想使用 R450 NVIDIA 显卡驱动程序和 CUDA Toolkit 11.0,请在文件 /etc/apt/sources.list.d/dgx-bionic-r450-cuda11-0-repo.list 中配置 apt 以使用 NVIDIA DGX OS 软件包。

    $ echo "deb file:///media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic/ bionic-r450+cuda11.0 main multiverse restricted universe" | sudo tee /etc/apt/sources.list.d/dgx-bionic-r450-cuda11-0-repo.list
    

    注意

    如果您想继续使用早期版本,例如 R418 NVIDIA 图形驱动程序和 CUDA Toolkit 10.1,请忽略此步骤。

  7. 编辑文件 /etc/apt/preferences.d/nvidia 以更新 Pin 参数,如下所示。

    Package: *
    #Pin: origin international.download.nvidia.com
    Pin: release o=apt-pin-parameter-air-gap
    Pin-Priority: 600
    
  8. 更新 apt 存储库并确认没有错误。

    $ sudo apt update
    

    此命令的输出类似于以下示例。

    Get:1 file:/media/usb/repository/mirror/security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
    Get:1 file:/media/usb/repository/mirror/security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
    Get:2 file:/media/usb/repository/mirror/archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
    Get:2 file:/media/usb/repository/mirror/archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
    Get:3 file:/media/usb/repository/mirror/archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
    Get:4 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic-r418+cuda10.1 InRelease [13.0 kB]
    Get:5 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic-r450+cuda11.0 InRelease [7070 B]
    Get:5 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic-r450+cuda11.0 InRelease [7070 B]
    Get:6 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic InRelease [13.1 kB]
    Get:3 file:/media/usb/repository/mirror/archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
    Get:4 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic-r418+cuda10.1 InRelease [13.0 kB]
    Get:6 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic InRelease [13.1 kB]
    Hit:7 https://download.docker.com/linux/ubuntu bionic InRelease
    Get:8 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic-r418+cuda10.1/multiverse amd64 Packages [10.1 kB]
    Get:9 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic-r450+cuda11.0/multiverse amd64 Packages [17.4 kB]
    Get:10 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic-r418+cuda10.1/restricted amd64 Packages [10.3 kB]
    Get:11 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic-r450+cuda11.0/restricted amd64 Packages [26.4 kB]
    Get:12 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic-r418+cuda10.1/restricted i386 Packages [516 B]
    Get:13 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic/multiverse amd64 Packages [44.5 kB]
    Get:14 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic/multiverse i386 Packages [8,575 B]
    Get:15 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic/restricted i386 Packages [745 B]
    Get:16 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic/restricted amd64 Packages [8,379 B]
    Get:17 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic/universe amd64 Packages [2,946 B]
    Get:18 file:/media/usb/repository/mirror/international.download.nvidia.com/dgx/repos/bionic bionic/universe i386 Packages [496 B]
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    249 packages can be upgraded. Run 'apt list --upgradable' to see them.
    $
    
  9. 使用新配置的本地存储库升级系统。

    $ sudo apt full-upgrade
    

    如果您在文件 /etc/apt/sources.list.d/dgx-bionic-r450-cuda11-0-repo.list 中配置了 apt 以使用 NVIDIA DGX OS 软件包,则 NVIDIA 显卡驱动程序将升级到 R450 驱动程序,并且软件包源将更新为从 R450 驱动程序存储库获取未来的更新。

  10. (仅适用于 DGX OS 4.5 及更高版本) 如果您在文件 /etc/apt/sources.list.d/dgx-bionic-r450-cuda11-0-repo.list 中配置了 apt 以使用 NVIDIA DGX OS 软件包,并且想要使用 CUDA Toolkit 11.0,请安装它。

    $ sudo apt install cuda-toolkit-11-0
    

    注意

    如果您未在文件 /etc/apt/sources.list.d/dgx-bionic-r450-cuda11-0-repo.list 中配置 apt 以使用 NVIDIA DGX OS 软件包,请忽略此步骤。如果您尝试安装 CUDA Toolkit 11.0,则尝试将失败。

配置目标气隙 DGX OS 5 系统#

本节中的说明将在目标气隙 DGX 系统上执行。

以下是先决条件。

  • 目标气隙 DGX 系统已安装,已完成首次启动过程,并准备好使用最新的软件包进行更新。

  • 在其上创建镜像的 USB 存储设备已连接到目标 DGX 系统。

    还有其他数据传输方式未在本文件中涵盖,因为它们将取决于气隙环境的数据中心策略。

  1. 将存储设备挂载到气隙系统上的 /media/usb/repository 以保持一致性。

  2. 通过修改以下行,配置 apt 命令以使用文件系统作为文件 /etc/apt/sources.list 中的存储库。

    deb file:///media/usb/repository/mirror/security.ubuntu.com/ubuntu focal-security main multiverse universe restricted
    deb file:///media/usb/repository/mirror/archive.ubuntu.com/ubuntu/ focal main multiverse universe restricted
    deb file:///media/usb/repository/mirror/archive.ubuntu.com/ubuntu/ focal-updates main multiverse universe restricted
    
  3. /etc/apt/sources.list.d/dgx.list 文件中配置 apt 以使用 NVIDIA DGX OS 软件包。

    deb file:///media/usb/repository/mirror/repo.download.nvidia.com/baseos/ubuntu/focal/x86_64/ focal main dgx
    deb file:///media/usb/repository/mirror/repo.download.nvidia.com/baseos/ubuntu/focal/x86_64/ focal-updates main dgx
    
  4. /etc/apt/sources.list.d/cuda-compute-repo.list 文件中配置 apt 以使用 NVIDIA CUDA 软件包。

    deb file:///media/usb/repository/mirror/developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /
    
  5. 更新 apt 存储库。

    $ sudo apt update
    

    此命令的输出类似于以下示例。

    Get:1 file:/media/usb/repository/mirror/security.ubuntu.com/ubuntu focal-security InRelease [107 kB]
    Get:2 file:/media/usb/repository/mirror/archive.ubuntu.com/ubuntu focal InRelease [265 kB]
    Get:3 file:/media/usb/repository/mirror/archive.ubuntu.com/ubuntu focal-updates InRelease [111 kB]
    Get:4 file:/media/usb/repository/mirror/developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  InRelease
    Get:5 file:/media/usb/repository/mirror/repo.download.nvidia.com/baseos/ubuntu/focal/x86_64 focal InRelease [12.5 kB]
    Get:6 file:/media/usb/repository/mirror/repo.download.nvidia.com/baseos/ubuntu/focal/x86_64 focal-updates InRelease [12.4 kB]
    Get:7 file:/media/usb/repository/mirror/developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  Release [697 B]
    Get:8 file:/media/usb/repository/mirror/developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  Release.gpg [836 B]
    Reading package lists... Done
    
  6. 使用新配置的本地存储库升级系统。

    $ sudo apt full-upgrade
    

安装 Docker 容器#

此方法适用于 NVIDIA NGC 容器注册表上托管的 Docker 容器,并且要求您拥有有效的 NGC 帐户。

  1. 在具有互联网访问权限的系统上,输入以下命令和凭据登录到 NGC 容器注册表。

    $ docker login nvcr.io
    

    用户名

    $oauthtoken
    

    密码

    apikey
    
  2. 完全按照所示的 $oauthtoken 输入作为用户名。

    这是一个特殊的用户名,启用 API 密钥身份验证。在 apikey 的位置,粘贴您从 NGC 网站获得的 API 密钥文本。

  3. 输入 docker pull 命令,指定镜像注册表、镜像存储库和标签

    $ docker pull nvcr.io/nvidia/repository:tag
    
  4. 使用 docker images 验证镜像是否在您的系统上。

    $ docker images
    
  5. 将 Docker 镜像另存为存档。

    $ docker save nvcr.io/nvidia/repository:tag > framework.tar
    
  6. 使用可移动介质(例如 USB 闪存驱动器)将镜像传输到气隙系统。

  7. 加载 NVIDIA Docker 镜像。

    $ docker load –i framework.tar
    
  8. 验证镜像是否在您的系统上。

    $ docker images