Skip to content

storage_config.yml Reference

File path: /opt/omnia/input/project_default/storage_config.yml

This file configures shared storage for the cluster, including NFS mounts, Dell PowerScale/PowerVault and swap configuration.

Mounts Configuration

Parameter

Details

mounts

list / elements=dict

Cloud-init compatible mount configurations. Source must be known at boot time.

name

string / required

Unique identifier for this mount entry

source

string / required

Device name or network path (e.g., /dev/sdc, UUID=xxx, 192.168.1.100:/export/share, powervault:<name>)

mount_point

string / required

Mount point path

fs_type

string

Filesystem type. Overrides mount_params profile when specified.

Default: auto.

mnt_opts

string

Mount options. Overrides mount_params profile when specified.

dump_freq

string

Dump frequency (usually 0). Overrides mount_params profile when specified.

Default: 0.

fsck_pass

string

Fsck pass number (usually 0 or 2). Overrides mount_params profile when specified.

Default: 0.

mount_params

string

Named profile key from mount_params section. Must reference an existing profile defined in mount_params.

mount_on_oim

boolean

Whether to mount this filesystem on the OIM node. Default: false. Ensure the storage system is accessible to OIM

Default: False.

node_key

string

Directory name to be created under mount_point. cloud-init datasource variable accessible via 'cloud-init query <var_name>' (e.g., local_hostname, ds.meta_data.instance_data.local_ipv4). Optional

Default: local_hostname.

node_mount_point

list / elements=string

List of bind mount target paths. Required when node_key is set.

functional_group_prefix

list / elements=string

List of oChaMI functional group prefixes to apply this mount to. Mutually exclusive with group.

groups

list / elements=string

List of GROUP_NAME values from pxe_mapping_file.csv. Mutually exclusive with functional_group_prefix.

permissions

dict

Directory ownership and mode applied to mount_point after mount (chown + chmod via runcmd)

owner

string

User owner of the mount point (name or numeric UID)

Default: root.

group

string

Group owner of the mount point (name or numeric GID)

Default: root.

mode

string

Octal permission mode (e.g., 0755, 1777)

Default: 0755.

Mount_params Configuration

Parameter

Details

mount_params

dict

Named mount parameter profiles. Each profile provides defaults for fs_type, mnt_opts, dump_freq, fsck_pass. Custom fields are allowed for backend-specific metadata.

<mount_params_key>

dict

Dynamic key matching pattern: ^[a-zA-Z0-9_-]+$

fs_type

string / required

Default filesystem type

mnt_opts

string / required

Default mount options

dump_freq

string

Default dump frequency

fsck_pass

string

Default fsck pass number

PowerVault Configuration

Parameter

Details

powervault_config

list / elements=dict

List of PowerVault iSCSI volume connection definitions. Processed via runcmd script because device path is only known after iSCSI login + multipath scan.

name

string / required

Unique identifier for this PowerVault volume

ip

list / elements=string / required

List of target controller IP addresses for iSCSI discovery

port

integer

TCP port for iSCSI target (default 3260)

Range: 1-65535.

iscsi_initiator

string / required

iSCSI initiator IQN

volume_id

string / required

Volume identifier (hex string / WWN) for multipath device matching

mount_point

string / required

Where the discovered device gets mounted

fs_type

string

Filesystem type. Overrides mount_params profile when specified.

Default: xfs.

mnt_opts

string

Mount options. Overrides mount_params profile when specified.

dump_freq

string

Dump frequency (usually 0). Overrides mount_params profile when specified.

Default: 0.

fsck_pass

string

Fsck pass number (usually 0 or 2). Overrides mount_params profile when specified.

Default: 0.

mount_params

string

Named profile key from mount_params section. Must reference an existing profile defined in mount_params.

node_key

string

cloud_init variable for per-node bind mounts (e.g., local_hostname, ds.meta_data.instance_data.local_ipv4). When present, generates bind mounts under mount_point/<node_key_value>/

Default: local_hostname.

node_mount_point

list / elements=string

List of bind mount target paths. Required when node_key is set. Each gets: mount_point/<node_key_value>/<target_stripped_slash> -> <target>

functional_group_prefix

list / elements=string / required

List of functional group prefixes for node targeting. Mutually exclusive with group.

permissions

dict

Directory ownership and mode applied to mount_point after mount (chown + chmod via runcmd)

owner

string

User owner of the mount point (name or numeric UID)

Default: root.

group

string

Group owner of the mount point (name or numeric GID)

Default: root.

mode

string

Octal permission mode (e.g., 0755, 1777)

Default: 0644.

Swap Configuration

Parameter

Details

swap

list / elements=dict

Swap file configurations

filename

string / required

Path to the swap file to create

size

string / required

Size in bytes, 'auto', or human-readable format (e.g., 2G, 512M)

maxsize

string

Maximum size (used with size: auto)

functional_group_prefix

list / elements=string / required

List of oChaMI functional group prefixes to apply this swap to. Mutually exclusive with group.

S3 Configuration

Parameter

Details

s3_configurations

dict / required

S3-compatible storage configuration for OpenCHAMI image repository.

provider

string / required

S3 storage provider: 'powerscale' (Dell PowerScale) or 'minio' (local MinIO container)

Default: powerscale.

endpoint_url

string

S3 endpoint URL. Required for powerscale (e.g., https://10.43.1.11:9021). Leave empty for minio.

Usage example

File: /opt/omnia/input/project_default/storage_config.yml
---
mounts:
  - name: "nfs_slurm"
    source: "172.16.107.168:/mnt/share/omnia"
    mount_point: "/share_omnia"
    fs_type: "nfs"
    mnt_opts: "nosuid,rw,sync,hard,intr"
    mount_on_oim: true
    functional_group_prefix: ["slurm", "login"]

  - name: "nfs_k8s"
    source: "172.16.107.121:/mnt/share/omnia_k8s"
    mount_point: "/opt/omnia/k8s_mount"
    fs_type: "nfs"
    mnt_opts: "nosuid,rw,sync,hard,intr"
    mount_on_oim: true
    functional_group_prefix: ["service_kube"]

  - name: "vast_storage"
    source: "172.16.107.77:/share/vast"
    mount_point: "/mnt/vast"
    mount_params: "vast_rdma"
    mount_on_oim: true
    functional_group_prefix: ["slurm_node", "login"]

mount_params:
  # Default NFS mount
  nfs_default:
    fs_type: "nfs"
    mnt_opts: "nosuid,rw,sync,hard"
    dump_freq: "0"
    fsck_pass: "0"

  # VAST NFS RDMA storage over IB - standard configuration
  vast_rdma:
    fs_type: "nfs"
    mnt_opts: "proto=rdma,nconnect=8,timeo=600,retrans=2,rsize=1048576,wsize=1048576,hard"

  vast_tcp:
    fs_type: "nfs"
    mnt_opts: "nosuid,rw,sync,hard"

powervault_config:
  - name: powervault1
    ip:
      - 172.1.2.3
    port: 3260
    iscsi_initiator: iqn.2025-01.com.dell:scontrol-node
    volume_id: 00c0ff4343f1f1f1001c8c4e6901000000
    # mount params
    mount_point: "/mnt/slurm"
    mount_params: "powervault_iscsi"
    node_key: "local_hostname" # per_node_id,node_subdir_key
    node_mount_point: # bind_paths, sub_mounts
      - "/var/lib/mysql" # /mnt/slurm/<local_hostname>/var/lib/mysql
      - "/var/spool/slurm" # /mnt/slurm/<local_hostname>/var/spool/slurm
    functional_group_prefix: ["slurm_control_node"]
    permissions:
      owner: "slurm"
      group: "slurm"
      mode: "0750"

swap:
  - name: "compute_swap"
    filename: "/swapfile"
    size: "2G"
    maxsize: "4G"
    functional_group_prefix: ["slurm_node"]

s3_configurations:
  provider: "powerscale"
  endpoint_url: ""

Info