Part 2: Importing the OS Image into BCM#
The steps in this part are the same for all distributions. The only
difference is the --distro flag passed to cm-image create. Supported
values are determined by the XML selection files provided by
cluster-tools and present on your head node. To see which distributions
your BCM installation supports, check:
# Command must be executed at the OS/shell level on the BCM head node, not within cmsh. ls /cm/local/apps/cluster-tools/config/
Each XML file in that directory corresponds to a supported distro.
The filename prefix is the value to pass to --distro. If a distro XML is not
present, it is not supported by your current cluster-tools version.
Verify the tarball integrity.
Run an integrity check before transferring to confirm the archive is not corrupted:
# Run command at the OS/shell level on the DGX host used for Phase 1-4 tar -tzf /srv/rhel9-dgx-image.tar.gz | tail -20 # Expected: the last 20 entries in the archive show familiar Linux paths. # If the command completes without errors, the tarball is good.
Transfer the tarball to the head node.
For B200 deployment context, refer to the NVIDIA DGX SuperPOD and BasePOD with DGX B200 Deployment Guide. From the DGX bare-metal node:
# Run command at the OS/shell level on the DGX host used for Phase 1-4 scp /srv/rhel9-dgx-image.tar.gz root@<head-node-ip>:/root/
Run
cm-image createon the head node.Using the tarball transferred in Step 2 as the source, run the following on the head node:
Important
Ensure
/cm/sharedis not being used by any services to allow BCM successfully migrate it to the new per-OS path (/cm/shared-rhel9-x86_64).Note
When adding a RHEL image to a BCM cluster that was originally Ubuntu-only,
cm-image create allfirst rebuilds the Ubuntu ramdisk and all existing image ramdisks before creating the RHEL ramdisk. This is expected because BCM is migrating the cluster from a single shared directory (/cm/shared) to a per-OS model (/cm/shared-ubuntu2404-x86_64,/cm/shared-rhel9-x86_64). All existing image paths are updated automatically. Do not interrupt this process.# Command must be executed at the OS/shell level on the BCM head node, not within cmsh cm-image --verbose \ --logfile cm-image-rhel9u6-$(date +%Y%m%d-%H%M%S).log \ create all \ --arch x86_64 \ --distro rhel9u6 \ --dgx \ --dgx-type dgx_b200 \ --source /root/rhel9-dgx-image.tar.gz # cm-image create will proceed through all phases automatically:
Note
For the NAS mount phase, indicate a mount path that has enough available space if the default path does not have adequate space.
1. Creating software image dgx-rhel9u6-x86_64........................[ OK ] 2. Locking software image dgx-rhel9u6-x86_64... 3. Creating node installer image.....................................[ OK ] 4. NAS mount from 10.96.2.34 detected 5. Please create/export a directory on the NAS to store /cm/shared-rhel9-x86_64 contents Enter NAS directory mount path (default: 10.96.2.34:/cm/shared-rhel9-x86_64, press Enter to use it): 10.96.2.34:/cm_shared/shared-rhel9-x86_64 6. Enter mount options, press Enter for defaults: 7. Enter filesystem type: (default: nfs): 8. Running mount -t nfs -o defaults 10.96.2.34:/cm/shared-rhel9-x86_64 /cm/shared-rhel9-x86_64 9. Creating cm-shared image at /cm/shared-rhel9-x86_64... 10. Unmounting /cm/shared-rhel9-x86_64 11. Adding fsmount for /cm/shared-rhel9-x86_64 from 10.96.2.34:/cm/shared-rhel9-x86_64 12. Adding cmshared entry /cm/shared-rhel9-x86_64 13. Adding cm-shared image entities...................................[ OK ] 14. Updating cmd entities 15. Updating head node fsmounts 16. Changing fspart /cm/shared to /cm/shared-ubuntu2404-x86_64 17. Unmounting network mount at /cm/shared 18. Successfully unmounted /cm/shared 19. Changing fspart /cm/node-installer to /cm/node-installer-ubuntu2404-x86_64 20. First run NAS setup on secondary Running while [ ! -d /cm/shared-ubuntu2404-x86_64 ]; do sleep 1; done; Running while [ -d /cm/shared ]; do mountpoint -q /cm/shared && umount -l /cm/shared || rm -rf /cm/shared; sleep 1; done Running ln -sf /cm/shared-ubuntu2404-x86_64 /cm/shared Running while [ ! -d /cm/node-installer-ubuntu2404-x86_64 ]; do sleep 1; done; rm -rf /cm/node-installer && ln -sf /cm/node-installer-ubuntu2404-x86_64 /cm/node-installer 21. Creating ramdisk for ubuntu2404/x86_64 (this may take a few minutes)... 22. Creating ramdisk for ubuntu2404/x86_64............................[ OK ] 23. Recreating other ramdisks (this may take a few minutes)... Creating ramdisk for dgx-image... Creating ramdisk for dgx-b200-slurm-image... Creating ramdisk for slogin-image... 24. Recreating other ramdisks.........................................[ OK ] 25. Adding fsmount for /cm/shared from 10.96.2.34:/cm_shared/shared-rhel9-x86_64 26. Added new category: dgx-rhel9-x86_64 Use this category for adding nodes 27. Unlocking software image dgx-rhel9u6-x86_64... 28. Creating ramdisk for rhel9u6/x86_64 (this may take a few minutes)... Creating ramdisk for rhel9u6/x86_64...............................[ OK ]The final line “Creating ramdisk for rhel9u6/x86_64……[ OK ]” confirmscm-image create allcompleted successfully.Remove entitlement certificates from the BCM-managed image.
Now that
cm-create imagehas completed, the Red Hat entitlement certificates are no longer needed inside the image. Remove them from the BCM-managed image path to ensure they are not distributed to provisioned nodes.# Command must be executed at the OS/shell level on the BCM head node, not within cmsh rm -f /cm/images/dgx-rhel9u6-x86_64/etc/pki/entitlement/<ID>.pem rm -f /cm/images/dgx-rhel9u6-x86_64/etc/pki/entitlement/<ID>-key.pem rm -f /cm/images/dgx-rhel9u6-x86_64/etc/rhsm/ca/redhat-uep.pem
Note
Each node should be registered with Red Hat independently using its own credentials after provisioning.