在气隙 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 镜像推送到可信的注册表。
从 NVIDIA 企业服务获取 ISO 镜像。
登录到 NVIDIA 企业支持 站点,并在公告选项卡上,找到 DGX OS Server 镜像 ISO 文件。
下载镜像 ISO 文件。
有关其他说明,请参阅 恢复 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 格式化。
确保存储设备已连接到具有网络访问权限的系统,并确定设备的挂载点。
这些说明中使用的示例挂载点:
/media/usb/repository
安装
apt-mirror
软件包。$ sudo apt update $ sudo apt install apt-mirror
将目标目录的所有权更改为
apt-mirror
组中的apt-mirror
用户。$ sudo chown apt-mirror:apt-mirror /media/usb/repository
目标目录必须由用户
apt-mirror
拥有,否则复制将无法工作。在
/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
运行
apt-mirror
并等待它完成下载内容。这将花费很长时间,具体取决于网络连接速度。
$ sudo apt-mirror
弹出包含所有软件包的可移动存储。
$ sudo eject /media/usb/repository
配置目标气隙 DGX OS 4 系统#
本节中的说明将在目标气隙 DGX 系统上执行。
以下是先决条件
目标气隙 DGX 系统已安装,已完成首次启动过程,并准备好使用最新的软件包进行更新。
在其上创建镜像的 USB 存储设备已连接到目标 DGX 系统。
还有其他数据传输方式未在本文件中涵盖,因为它们将取决于气隙环境的数据中心策略。
将存储设备挂载到气隙系统上的
/media/usb/repository
以保持一致性。通过修改以下行,配置 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
在文件
/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
如果存在文件
/etc/apt/sources.list.d/docker.list
,请将其删除,因为它不再需要,并且删除它将消除更新过程中的错误消息。(仅适用于 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
(仅适用于 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,请忽略此步骤。
编辑文件
/etc/apt/preferences.d/nvidia
以更新 Pin 参数,如下所示。Package: * #Pin: origin international.download.nvidia.com Pin: release o=apt-pin-parameter-air-gap Pin-Priority: 600
更新
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. $
使用新配置的本地存储库升级系统。
$ sudo apt full-upgrade
如果您在文件
/etc/apt/sources.list.d/dgx-bionic-r450-cuda11-0-repo.list
中配置了apt
以使用 NVIDIA DGX OS 软件包,则 NVIDIA 显卡驱动程序将升级到 R450 驱动程序,并且软件包源将更新为从 R450 驱动程序存储库获取未来的更新。(仅适用于 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 系统。
还有其他数据传输方式未在本文件中涵盖,因为它们将取决于气隙环境的数据中心策略。
将存储设备挂载到气隙系统上的
/media/usb/repository
以保持一致性。通过修改以下行,配置 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
在
/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
在
/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/ /
更新
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
使用新配置的本地存储库升级系统。
$ sudo apt full-upgrade
安装 Docker 容器#
此方法适用于 NVIDIA NGC 容器注册表上托管的 Docker 容器,并且要求您拥有有效的 NGC 帐户。
在具有互联网访问权限的系统上,输入以下命令和凭据登录到 NGC 容器注册表。
$ docker login nvcr.io
用户名
$oauthtoken
密码
apikey
完全按照所示的
$oauthtoken
输入作为用户名。这是一个特殊的用户名,启用 API 密钥身份验证。在 apikey 的位置,粘贴您从 NGC 网站获得的 API 密钥文本。
输入 docker pull 命令,指定镜像注册表、镜像存储库和标签
$ docker pull nvcr.io/nvidia/repository:tag
使用 docker images 验证镜像是否在您的系统上。
$ docker images
将 Docker 镜像另存为存档。
$ docker save nvcr.io/nvidia/repository:tag > framework.tar
使用可移动介质(例如 USB 闪存驱动器)将镜像传输到气隙系统。
加载 NVIDIA Docker 镜像。
$ docker load –i framework.tar
验证镜像是否在您的系统上。
$ docker images