使用 DGX 软件自定义 Ubuntu 安装#

本节介绍在 DGX 系统上安装和配置 Ubuntu 以及 NVIDIA DGX 软件堆栈的步骤。

DGX OS 提供自定义的 Ubuntu 安装,并包含 NVIDIA 的附加软件,从而为运行 AI 和分析工作负载提供开箱即用的解决方案。附加软件 NVIDIA DGX 软件堆栈包含特定于平台的配置、诊断和监控工具以及驱动程序,这些是稳定、经过测试和支持的操作系统在 DGX 系统上运行 AI、机器学习和分析应用程序所必需的。

您还可以选择在纯 Ubuntu 发行版之上安装 NVIDIA DGX 软件堆栈,同时仍然受益于高级 DGX 功能。此安装方法支持更高的灵活性,例如自定义分区方案。

集群部署也受益于此安装方法,因为它利用了 Ubuntu 标准化的自动化和非交互式安装过程。从 Ubuntu 20.04 开始,安装程序引入了一种新的自动化安装机制,允许系统管理员以无人值守和非交互方式安装系统。您可以在cloud-init配置文件中找到有关创建此类配置文件的信息,请参阅Cloud-init 配置文件。有关更多信息,请参阅Ubuntu 自动化服务器安装

目标受众是管理 DGX 系统集群的 IT 专业人员和集成合作伙伴。

先决条件#

以下是必需或推荐的先决条件(在指示的情况下)。

Ubuntu 软件要求#

DGX 软件堆栈需要以下软件版本

  • Ubuntu 24.04

  • Linux 内核 6.8

访问软件存储库#

DGX 软件堆栈可从互联网访问的存储库获得。如果您的安装不允许连接到互联网,请参阅附录气隙安装,了解有关在“气隙”系统上安装和升级软件的信息。

如果您正在使用代理服务器,请按照网络配置部分中的说明设置代理配置。

安装注意事项#

在 Ubuntu 上安装 NVIDIA DGX 软件堆栈允许您从额外的配置选项中进行选择,这些选项在使用预配置的 DGX OS 安装程序时不可用。这包括驱动器分区、文件系统选择和软件选择。

在开始安装 Ubuntu 和 NVIDIA DGX 软件堆栈之前,您应该评估以下选项。安装和配置说明将在本文档的相应部分中介绍。

数据驱动器 RAID-0 或 RAID-5#

DGX 系统配备了多个数据驱动器,可以配置为 RAID-0 以获得性能,或配置为 RAID-5 以获得弹性。RAID-0 提供最大的存储容量和性能,但不提供任何冗余。如果阵列中的单个 SSD 发生故障,则阵列上存储的所有数据都将丢失。

RAID-0 建议用于数据缓存。您可以使用 cachefilesd 为 NFS 共享提供缓存。网络文件系统 (NFS) 是利用缓存文件系统所必需的。RAID-5 应使用于持久数据存储。

您可以选择在初始 Ubuntu 安装之后使用nvidia-config-raid工具或在 Ubuntu 安装期间配置 RAID 和数据缓存。建议手动安装使用 nvidia-config-raid 工具。

系统驱动器加密 [可选]#

根文件系统加密是一种基于软件的方法,通过动态加密数据来保护系统分区中存储的内容免受未经授权的访问。它要求用户在每次启动时解锁文件系统,可以手动输入密码,也可以使用集中式密钥服务器自动解锁。

系统驱动器加密只能在安装 Ubuntu 期间启用。

数据驱动器加密 [可选]#

数据驱动器加密仅在配备自加密驱动器 (SED) 的 DGX B200、DGX H100/H200 和 DGX A100 系统上受支持。可以在安装 Ubuntu 后使用nv-encrypt工具启用它。它需要将密钥存储在 TPM 或外部密钥管理中。

系统驱动器分区#

默认情况下,Ubuntu 仅为整个文件系统使用单个分区。对于需要更细分的分区方案以满足安全部署需求,可以在 Ubuntu 安装期间配置此项。建议的分区方案是仅对 Linux 根分区使用单个分区,文件系统为 ext4。

安装 Ubuntu#

安装 Ubuntu 有几种方法,如Ubuntu 服务器指南中所述。

为了方便起见,本节提供了特定于 DGX 的额外说明,用于按照基本安装来安装 Ubuntu。如果您有首选的 Ubuntu 安装方法,请跳过本节。

本节涵盖的步骤

  • 连接到 DGX 系统

  • 从安装介质启动

  • 运行 Ubuntu 安装程序(包括网络和存储配置步骤)

从安装介质启动#

在安装和配置步骤中,您需要连接到 DGX 系统的控制台。有关更多详细信息,请参阅连接到 DGX 系统

通过以下方式之一启动 Ubuntu ISO 映像

运行 Ubuntu 安装程序#

启动 ISO 映像后,Ubuntu 安装程序应启动并引导您完成安装过程。

注意

以下步骤中的屏幕截图取自 DGX A100。其他 DGX 系统在驱动器分区和网络方面存在差异。

在 ISO 映像的启动过程中,您可能会看到一些由于旧驱动程序等引起的错误消息。可以安全地忽略它们。

_images/iso-boot-error.png
  1. 在欢迎屏幕上选择您的语言,然后按照说明选择是否更新安装程序(如果提供)并选择您的键盘。

    _images/ubuntu-select-language.png
  2. 在“网络连接”屏幕上,配置您的网络。

    _images/network-connections.png

    安装程序尝试自动检索所有网络接口的 DHCP 地址,因此您应该能够继续,无需进行任何更改。但是,您也可以选择手动配置接口。

  3. 引导式存储配置屏幕上,配置分区和文件系统。所有 DGX 系统都预装了 DGX OS。因此,驱动器已经分区和格式化。DGX OS 安装程序除了 EFI 启动分区外,还为根分区配置了单个 ext4 分区。您有以下选项

    • 保留当前分区布局和格式 [推荐]。

    • 创建自定义分区方案 [高级]。

    • 使用带有默认 Ubuntu 分区方案的单个磁盘。

    创建带有 RAID 配置的新自定义分区方案是一个更复杂的过程,不属于本文档的范围。有关更多信息,请参阅 Ubuntu 安装指南。当您选择使用整个磁盘的选项时,Ubuntu 将仅使用两个冗余启动驱动器之一。

    注意

    数据驱动器的 RAID 级别可以在安装 Ubuntu 后更改。

    以下说明描述了保持当前分区布局的步骤。它仍然需要您重新创建和重新格式化分区。

    1. 选择“自定义存储布局”,然后单击完成

      _images/custom-storage-layout.png
    2. 识别系统驱动器。

      DGX A100、DGX H100/H200 和 DGX B200 上的系统驱动器是一个 RAID 1 阵列,您应该很容易找到它。

    3. 选择系统驱动器,然后单击格式化

      _images/storage-config-raid1-format.png
    4. 格式化设置为ext4

      不要选择保留格式化为 <文件系统>

      _images/storage-config-format.png
    5. 挂载点设置为/

      _images/storage-config-mount.png
    6. 在原始设备上设置启动标志。

      可用设备下识别系统驱动器(不是 RAID 阵列),然后为第一个设备选择用作启动设备。在具有两个驱动器的 DGX A100、DGX H100/H200 和 DGX B200 上,对第二个驱动器重复此过程,然后选择用作另一个启动设备

      _images/storage-configuration.png
    7. 完成配置。

      • RAID 0 阵列:在大多数情况下,数据驱动器的 RAID 0 阵列将已在出厂时创建。如果尚未创建,您可以选择在存储配置对话框中或在完成 Ubuntu 安装后使用config_raid_array工具创建阵列。

      • 启用驱动器加密(可选):加密只能在存储配置期间启用;安装后无法更改。要再次更改加密状态,您需要重新安装操作系统。要启用驱动器加密,您必须创建虚拟组和卷。这超出了本文档的范围。有关更多详细信息,请参阅 Ubuntu 文档。

      • 交换分区:默认安装未定义交换分区。当系统内存已满时,Linux 使用任何配置的交换分区来临时存储数据,这会产生性能损失。对于具有大内存的 DGX 系统,不建议使用交换。

      页面顶部的文件系统摘要应显示 RAID 1 驱动器上的根分区和boot/efi分区(两个驱动器将仅显示为一个条目)。

      _images/file-system-summary.png

      选择完成并接受所有更改。

  4. 按照说明完成剩余的任务。

    配置文件设置对话框中创建一个默认用户,然后在精选服务器 SNAP 包屏幕中选择您要安装的任何其他 SNAP 包。

  5. 等待安装完成。

    安装运行时会显示日志消息。

  6. 安装完成后,选择立即重启以重启系统。

    重启后,您可以使用上面创建的用户的用户名和密码登录。

安装 DGX 软件堆栈#

本节要求您已在 DGX 系统上安装 Ubuntu 并重启系统。

注意

通过安装 DGX 软件堆栈,您确认您已阅读并同意受DGX 软件许可协议的约束。您也确认您理解您选择在 DGX 中安装的任何预发布软件和材料可能无法完全正常运行,可能包含错误或设计缺陷,并且相对于 NVIDIA 软件和材料的商业版本而言,可能具有降低或不同的安全性、隐私性、可用性和可靠性标准,并且您自行承担使用预发布版本的风险。

安装 DGX 系统配置和工具#

NVIDIA DGX 软件堆栈包括特定于系统的配置和工具,以利用高级 DGX 功能。它们以软件包的形式从 NVIDIA 存储库提供,可以安装在典型的 Ubuntu 安装之上。所有特定于系统的软件组件都捆绑到特定于系统的元包中

  • system-configurations

  • system-tools

  • system-tools-extra

有关这些软件包内容的详细信息,请参阅发行说明

以下步骤启用 NVIDIA 存储库并安装特定于系统的软件包。

  1. 通过提取存储库信息来启用 NVIDIA 存储库。

    此步骤将 URI 和配置首选项添加到/etc/apt目录,以控制将要安装的软件包版本,并将 NVIDIA 存储库的 GPG 密钥添加到/usr/share/keyrings目录。

    curl https://repo.download.nvidia.com/baseos/ubuntu/noble/x86_64/dgx-repo-files.tgz | sudo tar xzf - -C /
    
  2. 使用所有软件包的最新版本信息更新内部 APT 数据库。

    sudo apt update
    
  3. 推荐:将所有软件包升级到最新版本。

    sudo apt upgrade
    
  4. 安装 DGX 系统工具和配置。

    • 安装性能所需的核心 DGX 系统软件包。

      sudo apt install nvidia-system-core
      
    • 安装 DGX 系统实用程序软件包,例如 NVSM。

      sudo apt install nvidia-system-utils
      
    • 安装 DGX 系统软件包,例如 automake、build-essential 和 vim 以进行开发。

      sudo apt install nvidia-system-extra
      
    • 对于 DGX Station A100 和 DGX Station A800 系统,安装nvidia-system-station软件包以获得完整的桌面环境,包括 gnome 桌面、xorg 和其他桌面软件包。

      sudo apt nvidia-system-station
      
  5. 安装linux-tools-nvidia软件包。

    sudo apt install -y linux-tools-nvidia
    
  6. 安装 NVIDIA peermem 加载程序软件包。

    sudo apt install -y nvidia-peermem-loader
    
  7. 推荐:禁用无人值守升级。

    Ubuntu 定期检查安全和其他错误修复程序,并通常在夜间自动安装更新的软件包。由于这可能会造成中断,因此您应定期检查更新并手动安装它们。

    sudo apt purge -y unattended-upgrades
    

配置数据驱动器#

DGX 系统中的数据驱动器可以配置为 RAID 0 或 RAID 5。RAID 0 提供最大的存储容量和性能,但不提供任何冗余。

RAID 0 通常用于数据缓存。您可以使用 cachefilesd 为 NFS 共享提供缓存。

重要提示

您可以稍后更改 RAID 级别,但这将破坏这些驱动器上的数据。

可以在 Ubuntu 安装期间配置 RAID 配置。如果您已在 Ubuntu 安装期间配置了 RAID 阵列,则可以跳过第一步,直接转到步骤 2。

  1. 配置/raid分区。

    所有 DGX 系统都支持 RAID 0 和 RAID 5 阵列。

    • 要创建 RAID 0 阵列

      sudo /usr/bin/configure_raid_array.py -c -f
      
    • 要创建 RAID 5 阵列

      sudo /usr/bin/configure_raid_array.py -c -f -5
      

    该命令创建/raid挂载点和 RAID 阵列,并在/etc/fstab中添加相应的条目。

  2. (可选)安装用于管理 DGX A100、DGX H100/H200 或 DGX B200 上数据驱动器的自加密驱动器 (SED) 的工具。

    有关更多信息,请参阅管理自加密驱动器

  3. (可选)要将 RAID 阵列用于 NFS 挂载的读取缓存,您可以安装cachefilesd并为 NFS 共享设置 cachefs 选项。

    1. 安装cachefilesdnvidia-conf-cachefilesd

      这将更新 cachefilesd 配置以使用/raid分区。

      sudo apt install -y cachefilesd nvidia-conf-cachefilesd
      

      cachefilesdnvidia-conf-cachefilesd可能已与nvidia-system-utils元包一起安装。

    2. 通过设置fsc标志在您要缓存的所有 NFS 共享上启用缓存。

      编辑/etc/fstab并将fsc标志添加到挂载选项,如本示例所示。

      <nfs_server>:<export_path> /mnt nfs rw,noatime,rsize=32768,wsize=32768,nolock,tcp,intr,fsc,nofail 0 0
      
    3. 挂载 NFS 共享。

      如果共享已挂载,请使用重新挂载选项。

      mount <mount-point> -o,remount
      
    4. 要验证是否已启用缓存,请发出以下命令。

      cat /proc/fs/nfsfs/volumes
      

      在命令的输出中查找文本FSC=yes。NFS 将在后续重启周期中启用缓存进行挂载。

安装 GPU 驱动程序#

您可以为 DGX 系统选择不同的 GPU 驱动程序分支。最新的驱动程序版本包含新功能,但可能无法提供与旧版本相同的支持持续时间。有关更多详细信息以及 GPU 架构所需的最低驱动程序版本,请参阅数据中心驱动程序发行说明

DGX B200 系统包括第五代 NVLink 和 NVLink Switch System (NVL5)。对于此版本的 NVLink,Base OS 7 包含其他软件包,以启用完整的 NVLink 功能。这些软件包包括nvlsmlibnvsdm等。执行 GPU 驱动程序更新时,需要同时更新驱动程序和相应的 NVL5 堆栈软件包。DGX B200 (NVL5) 系统的更新在 NVIDIA 开源 GPU 内核模块驱动程序的以下步骤中进行了描述。更新 DGX B200 时,也必须更新 DOCA 软件包。

使用以下命令显示已安装驱动程序的列表。

  1. 确保拥有最新的软件包数据库版本。

    sudo apt update
    
  2. 显示所有可用驱动程序的列表。

    sudo apt list nvidia-driver*server
    

    示例输出

    nvidia-driver-570-server/noble-updates,noble-security 570.86.19-0ubuntu0.24.04.1 amd64
    

    以下步骤安装 NVIDIA CUDA 驱动程序并配置系统。将用作示例的发行版本 (570) 替换为您要安装的发行版本。确保您要安装的驱动程序版本受系统中 GPU 的支持。

  3. 确保您拥有最新的软件包数据库版本。

    sudo apt update
    

    默认情况下,应安装 NVIDIA 开源 GPU 内核模块驱动程序和通用 Linux 内核。

  4. 确保您已安装最新的内核版本。

    驱动程序软件包依赖于内核,并且更新数据库可能已更新版本信息。

    sudo apt install -y linux-generic
    
  5. 支持 NVIDIA 开源 GPU 内核模块 GPU 驱动程序,应安装该驱动程序。

    • 对于 NVSwitch 版本 5 系统(NVL5),如 DGX B200

      sudo apt install nvidia-driver-570-open libnvidia-nscq-570 nvidia-modprobe nvidia-fabricmanager-570 datacenter-gpu-manager-4 nv-persistence-mode nvslm libnvsdm-570
      sudp apt upgrade doca-ofed
      
    • 对于 NVSwitch 版本 5 之前的系统,如 DGX A100 和 DGX H100/H200

      sudo apt install nvidia-driver-570-open libnvidia-nscq-570 nvidia-modprobe nvidia-fabricmanager-570 datacenter-gpu-manager-4 nv-persistence-mode
      
    • 对于非 NVSwitch 系统,如 DGX Station A100 和 DGX Station A800,请勿安装 NVIDIA Fabric Manager 服务

      sudo apt install nvidia-driver-570-open libnvidia-nscq-570 nvidia-modprobe datacenter-gpu-manager-4 nv-persistence-mode
      
  6. 启用持久守护程序和其他服务

    • 对于非 NVswitch 系统,如 DGX Station A100 和 DGX Station A800

      sudo systemctl enable nvidia-persistenced nvidia-dcgm
      
    • 对于 NVswitch 系统,如 DGX A100、DGX H100/H200 和 DGX B200,请务必也启用 NVIDIA Fabric Manager 服务

      sudo systemctl enable nvidia-fabricmanager nvidia-persistenced nvidia-dcgm
      
  7. 重启系统以加载驱动程序并更新系统配置。

    1. 发出重启命令。

      sudo reboot
      
    2. 系统重启后,验证驱动程序是否已加载并且正在处理 NVIDIA 设备。

      nvidia-smi
      

      输出应显示所有可用的 GPU 和持久模式开启

      +---------------------------------------------------------------------------+
      | NVIDIA-SMI 570.86.10  Driver Version: 570.86.10  CUDA Version: 12.8       |
      |----------------------------+----------------------+-----------------------+
      | GPU Name      Persistence-M| Bus-Id        Disp.A | Volatile Uncorr.  ECC |
      | Fan Temp Perf Pwr:Usage/Cap|         Memory-Usage | GPU-Util   Compute M. |
      |                            |                      |                MIG M. |
      |============================+======================+=======================|
      | 0 Tesla V100-SXM2...    On | 00000000:06:00.0 Off |                     0 |
      | N/A   35C  P0   42W / 300W |      0MiB / 16160MiB |   0%          Default |
      |                            |                      |                   N/A |
      +----------------------------+----------------------+-----------------------+
      | 1 Tesla V100-SXM2...    On | 00000000:07:00.0 Off |                     0 |
      | N/A   35C  P0   44W / 300W |      0MiB / 16160MiB |   0%          Default |
      |                            |                      |                   N/A |
      +----------------------------+----------------------+-----------------------+
      ...
      +----------------------------+----------------------+-----------------------+
      | 7 Tesla V100-SXM2...    On | 00000000:8A:00.0 Off |                     0 |
      | N/A  35C  P0   43W / 300W  |      0MiB / 16160MiB |   0%          Default |
      |                            |                      |                   N/A |
      +----------------------------+----------------------+-----------------------+
      +---------------------------------------------------------------------------+
      | Processes:                                                                |
      | GPU   GI   CI        PID     Type      Process name            GPU Memory |
      |       ID   ID                                                  Usage      |
      |===========================================================================|
      | No running processes found                                                |
      +---------------------------------------------------------------------------+
      

安装 DOCA-OFED 软件包#

DGX 系统包括高性能网卡,可通过 InfiniBand 或以太网连接到其他系统。NVIDIA DOCA™ OFED 软件提供与 MLNX_OFED 相同的功能,包括内核驱动程序、用户空间库和 NVIDIA 网络产品的管理工具。有关 DOCA-OFED 的更多信息,请参阅什么是 DOCA-OFED

注意

DGX Station A100 和 DGX Station A800 系统不需要 DOCA-OFED 软件包。

  1. 要安装 DOCA-OFED 驱动程序和关联的软件包,请安装元包nvidia-system-mlnx-drivers,它将安装doca-ofedmlnx-pxe-setupnvidia-mlnx-confignvidia-mstflint-loadernvidia-ib-umad-loader

    sudo apt install doca-repo
    sudo apt install nvidia-system-mlnx-drivers
    
  2. 重启系统。

安装 Docker 和 NVIDIA Container Toolkit#

容器提供隔离的环境,其中包含特定应用程序所需软件的完整文件系统。要在 DGX 和 GPU 上使用 NVIDIA 提供的用于 AI 和其他框架的容器,您需要安装 Docker 和 NVIDIA Container Toolkit。它负责为容器内运行的软件提供对 GPU 的访问。

请注意,固件更新容器也需要这些工具来升级系统固件。

  1. 安装 docker-ce、NVIDIA Container Toolkit 以及针对典型 DL 工作负载的优化。

    sudo apt install -y docker-ce nvidia-container-toolkit nv-docker-options
    
  2. 重启 docker 守护程序。

    sudo systemctl restart docker
    

要验证安装,请运行一个容器并检查它是否可以访问 GPU。以下说明假设已安装并加载 NVIDIA GPU 驱动程序。

注意

此验证从 NGC 注册表下载容器,并要求系统具有互联网访问权限。

  1. 执行以下命令以启动容器并在容器内运行 nvidia-smi 工具

    sudo docker run --gpus=all --rm nvcr.io/nvidia/cuda:12.6.2-base-ubuntu24.04 nvidia-smi
    
  2. 验证输出是否显示所有可用的 GPU,并且持久模式设置为“开启”。

DGX OS 安装的附加软件#

Ubuntu 和 NVIDIA 存储库为各种应用程序提供了许多额外的软件包。例如,DGX OS 安装程序安装了几个额外的软件包,以帮助系统管理和开发人员,这些软件包默认情况下未安装。

以下步骤安装 DGX OS 安装程序安装的附加软件包

  1. 安装用于系统管理任务的附加软件

    sudo apt install -y chrpath cifs-utils fping gdisk iperf ipmitool lsscsi net-tools nfs-common quota rasdaemon pm-utils samba-common samba-libs sysstat vlan
    
  2. 安装用于开发任务的附加软件

    sudo apt install -y build-essential automake bison cmake dpatch flex gcc-multilib gdb g++-multilib libelf-dev libltdl-dev linux-tools-generic m4 swig
    

NVIDIA CUDA Developer 存储库提供了一种简便的机制来部署 NVIDIA 工具和库,例如 CUDA 工具包、cuDNN 或 NCCL。

后续步骤和附加信息#

有关进一步的安装和配置选项,另请参阅以下章节