Storage configuration command and tools reference

Quick reference information about the storage provisioning script commands, options, and common values. Before you configure storage for IBM® Sovereign Core you must install required tools. Installation commands to help for the installation of prerequisite tools for storage configuration are included.

Commands for installing tools

# macOS
brew install jq

# RHEL/CentOS (Native Ceph mode)
sudo yum install jq ceph-common python3

# Ubuntu/Debian (Native Ceph mode) sudo apt-get install jq ceph-common python3

# For ODF mode, only jq is needed on the local machine

Install ODF-external-cluster-details-exporter.py (Native Ceph Mode Only)

The exporter script is required for standalone ODF mode (native). The script automatically searches in common locations, such as these.
  • /root/ceph-external-cluster-details-exporter.py
  • /usr/share/ceph/ceph-external-cluster-details-exporter.py
  • /usr/local/share/ceph/ceph-external-cluster-details-exporter.py
  • /opt/ceph/ceph-external-cluster-details-exporter.py
  • /usr/share/ceph-common/ceph-external-cluster-details-exporter.py
Option 1: Install from ceph-common package (may include the script)
# RHEL/CentOS
sudo yum install ceph-common

# Ubuntu/Debian
sudo apt-get install ceph-common
 
Option 2: Download manually from Rook GitHub
# Download the script
sudo wget https://raw.githubusercontent.com/rook/rook/master/deploy/examples/ceph-external-cluster-details-exporter.py \
  -O /usr/share/ceph/ceph-external-cluster-details-exporter.py

# Make it executable
sudo chmod +x /usr/share/ceph/ceph-external-cluster-details-exporter.py

# Verify it's accessible
ls -l /usr/share/ceph/ceph-external-cluster-details-exporter.py
Option 3: Place in /root directory
# Download to /root (checked first by the script)
sudo wget https://raw.githubusercontent.com/rook/rook/master/deploy/examples/ceph-external-cluster-details-exporter.py \
  -O /root/ceph-external-cluster-details-exporter.py

# Make it executable
sudo chmod +x /root/ceph-external-cluster-details-exporter.py
 

Minimum command syntax

./setup-storage.sh \
  --tenant NAME \
  --rbd-quota SIZE \
  --output-dir PATH \
  --mode MODE

Common command options

Table 1. Common commands to use when configuring storage.
Option Description Example
--tenant Unique tenant identifier (required) tenant-a, dev-team
--rbd-quota Block storage quota (required) 200G, 1T, 500G
--output-dir Secure output directory (required) ~/odf-configs, ~/ceph-configs
--mode Deployment mode (required) odf or native
--rgw-user-quota Object storage quota (optional) 1T, 5T
--region Object storage region (optional) us-east-1, eu-west-1
--pool-pgs Placement group count (optional) 128, 256
--log-level Logging level (optional) DEBUG, INFO
--resume Resume from failure (optional) No value needed
--start-phase Start from specific phase (optional) 1-8
--help Display help information No value needed

Common quota values

Table 2. Quota values for guiding configuration of storage.
Size Value
50 GB 50G
100 GB 100G
200 GB 200G
500 GB 500G
1 TB 1T
2 TB 2T

Recommended PG counts

Table 3. Pool sizes and PG count guidance.
Pool Size Recommended PG Count
Less than 100 GB 32
100 GB - 1 TB 64
1 TB - 5 TB 128
Greater than 5 TB 256

Output files

The script generates the following files in the directory specified by --output-dir:

  • TENANT-external-config.json - Configuration for target cluster (hand over this file)
  • TENANT-summary.txt - Deployment summary (for reference only)
  • TENANT-rgw-credentials.txt - RGW access/secret keys for NooBaa (if object storage configured, hand over to Control Plane)
Note: Files are automatically protected with restrictive permissions (600) due to the umask setting.

Common command examples

Block storage only (ODF)
./setup-storage.sh \
  --tenant tenant-a \
  --rbd-quota 200G \
  --output-dir ~/odf-configs \
  --mode odf
Block and object storage (ODF)
./setup-storage.sh \
  --tenant dev-team \
  --rbd-quota 500G \
  --rgw-user-quota 1T \
  --output-dir ~/odf-configs \
  --mode odf
Large deployment with custom PG count
./setup-storage.sh \
  --tenant tenant-large \
  --rbd-quota 2T \
  --output-dir ~/odf-configs \
  --mode odf \
  --pool-pgs 256
Standalone ODF mode
./setup-storage.sh \
  --tenant customer-a \
  --rbd-quota 1T \
  --output-dir ~/ceph-configs \
  --mode native
Resume after failure
./setup-storage.sh \
  --tenant tenant-a \
  --rbd-quota 200G \
  --output-dir ~/odf-configs \
  --mode odf \
  --resume \
  --start-phase 5
Debug mode
./setup-storage.sh \
  --tenant tenant-a \
  --rbd-quota 200G \
  --output-dir ~/odf-configs \
  --mode odf \
  --log-level DEBUG

Verification commands

Check pools (ODF)
oc exec -n openshift-storage deploy/rook-ceph-tools -- \
  ceph osd pool ls detail | grep tenant-a
Check quotas (ODF)
oc exec -n openshift-storage deploy/rook-ceph-tools -- \
  ceph osd pool get-quota tenant-a-rbd-pool
Check users (ODF)
oc exec -n openshift-storage deploy/rook-ceph-tools -- \
  ceph auth ls | grep tenant-a
Validate JSON configuration file
jq . ~/odf-configs/tenant-a-external-config.json