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
| 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
| Size | Value |
|---|---|
| 50 GB | 50G |
| 100 GB | 100G |
| 200 GB | 200G |
| 500 GB | 500G |
| 1 TB | 1T |
| 2 TB | 2T |
Recommended PG counts
| 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