### Example CSI Driver Deployment and Verification Source: https://docs.simplyblock.io/latest/deployments/kubernetes/install-csi A complete example showing environment variable setup, Helm installation, and verification of pod status. ```bash [demo@demo ~]# export CLUSTER_UUID="4502977c-ae2d-4046-a8c5-ccc7fa78eb9a" [demo@demo ~]# export CLUSTER_SECRET="oal4PVNbZ80uhLMah2Bs" [demo@demo ~]# export CNTR_ADDR="http://192.168.10.1/" [demo@demo ~]# export POOL_NAME="test" [demo@demo ~]# helm repo add simplyblock https://install.simplyblock.io/helm "simplyblock" has been added to your repositories [demo@demo ~]# helm repo update Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "simplyblock" chart repository Update Complete. ⎈Happy Helming!⎈ [demo@demo ~]# helm install -n simplyblock --create-namespace simplyblock simplyblock/spdk-csi \ --set csiConfig.simplybk.uuid=${CLUSTER_UUID} \ --set csiConfig.simplybk.ip=${CNTR_ADDR} \ --set csiSecret.simplybk.secret=${CLUSTER_SECRET} \ --set logicalVolume.pool_name=${POOL_NAME} NAME: simplyblock LAST DEPLOYED: Wed Mar 5 15:06:02 2025 NAMESPACE: simplyblock STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: The Simplyblock SPDK Driver is getting deployed to your cluster. To check CSI SPDK Driver pods status, please run: kubectl --namespace=simplyblock get pods --selector="release=simplyblock" --watch [demo@demo ~]# kubectl --namespace=simplyblock get pods --selector="release=simplyblock" --watch NAME READY STATUS RESTARTS AGE spdkcsi-controller-0 6/6 Running 0 30s spdkcsi-node-tzclt 2/2 Running 0 30s ``` -------------------------------- ### Install NVMe Client Package Source: https://docs.simplyblock.io/latest/deployments/linux-initiators Install the nvme-cli package on the host system. ```bash sudo dnf install -y nvme-cli ``` ```bash sudo apt install -y nvme-cli ``` -------------------------------- ### Create a Logical Volume Example Source: https://docs.simplyblock.io/latest/deployments/linux-initiators?q= Example command to create a logical volume named lvol01 with 1000G capacity in the test pool. ```bash sbctl volume add \ --data-chunks-per-stripe 2 \ --parity-chunks-per-stripe 1 \ --fabric tcp lvol01 1000G test ``` -------------------------------- ### Install Python and Pip Source: https://docs.simplyblock.io/latest/deployments/install-on-linux/install-sp Installs the necessary Python environment and utilities required for the Simplyblock CLI. ```bash sudo yum -y install python3-pip pciutils nvme-cli ``` -------------------------------- ### Install Simplyblock CSI Driver via Helm Source: https://docs.simplyblock.io/latest/deployments/kubernetes/install-csi Use these commands to add the repository and install the driver with required configuration parameters. ```bash CLUSTER_UUID="" CLUSTER_SECRET="" CNTR_ADDR="" POOL_NAME="" helm repo add simplyblock https://install.simplyblock.io/helm/csi helm repo update helm upgrade --install -n simplyblock \ --create-namespace simplyblock simplyblock/spdk-csi \ --set csiConfig.simplybk.uuid=${CLUSTER_UUID} \ --set csiConfig.simplybk.ip=${CNTR_ADDR} \ --set csiSecret.simplybk.secret=${CLUSTER_SECRET} \ --set logicalVolume.pool_name=${POOL_NAME} ``` -------------------------------- ### Install Simplyblock CLI Source: https://docs.simplyblock.io/latest/deployments/install-on-linux/install-cp Commands to install Python dependencies and the sbctl CLI tool. ```bash sudo yum -y install python3-pip ``` ```bash sudo pip install sbctl --upgrade ``` -------------------------------- ### Install pciutils Source: https://docs.simplyblock.io/latest/deployments/deployment-preparation/numa-considerations?q= Install the pciutils package to gain access to the lspci tool for hardware inspection. ```bash yum install pciutils ``` -------------------------------- ### Start replication Source: https://docs.simplyblock.io/latest/reference/cli/volume Triggers the replication process for a specified logical volume. ```bash sbctl volume replication-trigger ``` -------------------------------- ### Install Simplyblock CSI Driver via Helm Source: https://docs.simplyblock.io/latest/deployments/kubernetes/install-csi Initial installation command for the CSI driver requiring cluster UUID, IP, and secret. ```bash helm install simplyblock-csi ./ \ --set csiConfig.simplybk.uuid=${CLUSTER_ID} \ --set csiConfig.simplybk.ip=${CLUSTER_IP} \ --set csiSecret.simplybk.secret=${CLUSTER_SECRET} ``` -------------------------------- ### Example output of storage node configure Source: https://docs.simplyblock.io/latest/deployments/install-on-linux/install-sp This shows the expected output after running the storage node configuration command. ```text [demo@demo-3 ~]# sudo sbctl storage-node configure --nodes-per-socket=2 --max-lvol=50 2025-05-14 10:40:17,460: INFO: 0000:00:04.0 is already bound to nvme. 0000:00:1e.0 0000:00:1e.0 0000:00:1f.0 0000:00:1f.0 0000:00:1e.0 0000:00:1f.0 2025-05-14 10:40:17,841: INFO: JSON file successfully written to /etc/simplyblock/sn_config_file 2025-05-14 10:40:17,905: INFO: JSON file successfully written to /etc/simplyblock/system_info True ``` -------------------------------- ### Example output of adding a storage node Source: https://docs.simplyblock.io/latest/deployments/install-on-linux/install-sp Sample output showing the successful addition of a storage node to the cluster. ```text [demo@demo ~]# sudo sbctl storage-node add-node 7bef076c-82b7-46a5-9f30-8c938b30e655 192.168.10.2:5000 eth0 --data-nics eth1 2025-02-26 14:55:17,236: INFO: Adding Storage node: 192.168.10.2:5000 2025-02-26 14:55:17,340: INFO: Instance id: 0b0c825e-3d16-4d91-a237-51e55c6ffefe 2025-02-26 14:55:17,341: INFO: Instance cloud: None 2025-02-26 14:55:17,341: INFO: Instance type: None 2025-02-26 14:55:17,342: INFO: Instance privateIp: 192.168.10.2 2025-02-26 14:55:17,342: INFO: Instance public_ip: 192.168.10.2 2025-02-26 14:55:17,347: INFO: Node Memory info 2025-02-26 14:55:17,347: INFO: Total: 24.3 GB 2025-02-26 14:55:17,348: INFO: Free: 23.2 GB 2025-02-26 14:55:17,348: INFO: Minimum required huge pages memory is : 14.8 GB 2025-02-26 14:55:17,349: INFO: Joining docker swarm... 2025-02-26 14:55:21,060: INFO: Deploying SPDK 2025-02-26 14:55:31,969: INFO: adding alceml_2d1c235a-1f4d-44c7-9ac1-1db40e23a2c4 2025-02-26 14:55:32,010: INFO: creating subsystem nqn.2023-02.io.simplyblock:vm12:dev:2d1c235a-1f4d-44c7-9ac1-1db40e23a2c4 2025-02-26 14:55:32,022: INFO: adding listener for nqn.2023-02.io.simplyblock:vm12:dev:2d1c235a-1f4d-44c7-9ac1-1db40e23a2c4 on IP 10.10.10.2 2025-02-26 14:55:32,303: INFO: Connecting to remote devices 2025-02-26 14:55:32,321: INFO: Connecting to remote JMs 2025-02-26 14:55:32,342: INFO: Make other nodes connect to the new devices 2025-02-26 14:55:32,346: INFO: Setting node status to Active 2025-02-26 14:55:32,357: INFO: {"cluster_id": "3196b77c-e6ee-46c3-8291-736debfe2472", "event": "STATUS_CHANGE", "object_name": "StorageNode", "message": "Storage node status changed from: in_creation to: online", "caused_by": "monitor"} 2025-02-26 14:55:32,361: INFO: Sending event updates, node: 37b404b9-36aa-40b3-8b74-7f3af86bd5a5, status: online 2025-02-26 14:55:32,368: INFO: Sending to: 37b404b9-36aa-40b3-8b74-7f3af86bd5a5 2025-02-26 14:55:32,389: INFO: Connecting to remote devices 2025-02-26 14:55:32,442: WARNING: The cluster status is not active (unready), adding the node without distribs and lvstore 2025-02-26 14:55:32,443: INFO: Done ``` -------------------------------- ### Install Simplyblock Public Key Source: https://docs.simplyblock.io/latest/deployments/proxmox Downloads and installs the Simplyblock public key for apt signature verification. ```bash curl -o /etc/apt/keyrings/simplyblock.gpg \ https://install.simplyblock.io/simplyblock.key ``` -------------------------------- ### Get help for backup commands Source: https://docs.simplyblock.io/latest/reference/cli/backup?q= Displays the help menu for all available backup-related commands. ```bash sbctl backup --help ``` -------------------------------- ### Example Output of Driver Listing Source: https://docs.simplyblock.io/latest/deployments/linux-initiators?q= Expected output when verifying loaded NVMe drivers. ```text [demo@demo ~]# lsmod | grep 'nvme_' nvme_tcp 57344 0 nvme_keyring 16384 1 nvme_tcp nvme_fabrics 45056 1 nvme_tcp nvme_core 237568 3 nvme_tcp,nvme,nvme_fabrics nvme_auth 28672 1 nvme_core t10_pi 20480 2 sd_mod,nvme_core ``` -------------------------------- ### Install the control plane cluster Source: https://docs.simplyblock.io/latest/deployments/kubernetes/management-cluster-architecture Use Helm to add the Simplyblock repository and install the control plane components with the operator enabled. ```bash helm repo add simplyblock https://install.simplyblock.io/helm helm repo update helm upgrade --install simplyblock -n simplyblock simplyblock/spdk-csi \ --create-namespace \ --set operator.enabled=true ``` -------------------------------- ### Example output of NVMe device formatting Source: https://docs.simplyblock.io/latest/deployments/install-on-linux/install-sp Successful output confirmation after formatting an NVMe namespace. ```text [demo@demo-3 ~]# sudo nvme format --lbaf=4 --ses=0 /dev/nvme0n1 You are about to format nvme0n1, namespace 0x1. WARNING: Format may irrevocably delete this device's data. You have 10 seconds to press Ctrl-C to cancel this operation. Use the force [--force] option to suppress this warning. Sending format operation ... Success formatting namespace:1 ``` -------------------------------- ### Retrieve Logical Volume Connection Strings Source: https://docs.simplyblock.io/latest/deployments/linux-initiators Example output showing the connection strings generated by the CLI for attachment to a host. ```bash sbctl volume connect a898b44d-d7ee-41bb-bc0a-989ad4711780 sudo nvme connect --reconnect-delay=2 --ctrl-loss-tmo=3600 \ --nr-io-queues=32 --keep-alive-tmo=5 --transport=tcp \ --traddr=10.10.20.2 --trsvcid=9101 \ --nqn=nqn.2023-02.io.simplyblock:fa66b0a0-477f-46be-8db5-b1e3a32d771a:lvol:a898b44d-d7ee-41bb-bc0a-989ad4711780 sudo nvme connect --reconnect-delay=2 --ctrl-loss-tmo=3600 \ --nr-io-queues=32 --keep-alive-tmo=5 --transport=tcp \ --traddr=10.10.20.3 --trsvcid=9101 \ --nqn=nqn.2023-02.io.simplyblock:fa66b0a0-477f-46be-8db5-b1e3a32d771a:lvol:a898b44d-d7ee-41bb-bc0a-989ad4711780 ``` -------------------------------- ### Example Output for Graylog Password Source: https://docs.simplyblock.io/latest/maintenance-operations/monitoring/accessing-graylog Sample output showing the command execution and the resulting decoded password. ```bash [root@demo ~]# kubectl get secret -n simplyblock simplyblock-graylog-secret \ -o jsonpath="{.data.GRAYLOG_PASSWORD_SECRET}" | base64 --decode is6SP2EdWg0NdmVGv6CEp5h87d7g9sdassem4t9pouMqDQnHwXMSomas1qcbKSt5yISr8eBHv4Y7Dbswhyz84Ut0TW6kqsiPs ``` -------------------------------- ### Storage Pool Creation Output Source: https://docs.simplyblock.io/latest/deployments/kubernetes/install-csi Example output showing the successful creation of a storage pool and the returned pool ID. ```text [demo@demo ~]# sbctl storage-pool add test 4502977c-ae2d-4046-a8c5-ccc7fa78eb9a 2025-03-05 06:36:06,093: INFO: Adding pool 2025-03-05 06:36:06,098: INFO: {"cluster_id": "4502977c-ae2d-4046-a8c5-ccc7fa78eb9a", "event": "OBJ_CREATED", "object_name": "Pool", "message": "Pool created test", "caused_by": "cli"} 2025-03-05 06:36:06,100: INFO: Done ad35b7bb-7703-4d38-884f-d8e56ffdafc6 # <- Pool Id ``` -------------------------------- ### Prepare Secondary Management Node Source: https://docs.simplyblock.io/latest/deployments/install-on-linux/install-cp Commands to install necessary dependencies on secondary management nodes. ```bash sudo yum -y install python3-pip pip install sbctl --upgrade ``` -------------------------------- ### sbctl volume replication-start Source: https://docs.simplyblock.io/latest/reference/cli/volume Starts snapshot replication for a logical volume. ```APIDOC ## sbctl volume replication-start ### Description Start snapshot replication taken from lvol. ### Arguments - **LVOL_ID** (string) - Required - Logical volume id ### Parameters - **--replication-cluster-id** (string) - Optional - Cluster ID of the replication target cluster ``` -------------------------------- ### Output of lsblk with byte sizes Source: https://docs.simplyblock.io/latest/deployments/data-migration Example output displaying disk capacities in bytes. ```bash [root@demo ~]# lsblk -b NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 26843545600 0 disk ├─sda1 8:1 0 1127219200 0 part /boot/efi ├─sda2 8:2 0 2147483648 0 part /boot └─sda3 8:3 0 23566745600 0 part └─ubuntu--vg-ubuntu--lv 252:0 0 11781799936 0 lvm / sdb 8:16 0 26843545600 0 disk └─sdb1 8:17 0 26843513344 0 part /data/pg sr0 11:0 1 60225536 0 rom nvme0n1 259:0 0 26843545600 0 disk ``` -------------------------------- ### Example output of lsblk Source: https://docs.simplyblock.io/latest/deployments/install-on-linux/install-sp Displays the block devices attached to the system to identify NVMe drives. ```text [demo@demo-3 ~]# sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 30G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 29G 0 part ├─rl-root 253:0 0 26G 0 lvm / └─rl-swap 253:1 0 3G 0 lvm [SWAP] nvme3n1 259:0 0 6.5G 0 disk nvme2n1 259:1 0 70G 0 disk nvme1n1 259:2 0 70G 0 disk nvme0n1 259:3 0 70G 0 disk ``` -------------------------------- ### Start snapshot replication Source: https://docs.simplyblock.io/latest/reference/cli/volume Initiates replication for a snapshot taken from a logical volume to a target cluster. ```bash sbctl volume replication-start --replication-cluster-id= ``` -------------------------------- ### Example Cluster List Output Source: https://docs.simplyblock.io/latest/deployments/kubernetes/install-csi Sample output showing the cluster UUID and status information. ```text [demo@demo ~]# sbctl cluster list +--------------------------------------+-----------------------------------------------------------------+---------+-------+------------+---------------+-----+--------+ | UUID | NQN | ha_type | tls | mgmt nodes | storage nodes | Mod | Status | +--------------------------------------+-----------------------------------------------------------------+---------+-------+------------+---------------+-----+--------+ | 4502977c-ae2d-4046-a8c5-ccc7fa78eb9a | nqn.2023-02.io.simplyblock:4502977c-ae2d-4046-a8c5-ccc7fa78eb9a | ha | False | 1 | 4 | 1x1 | active | +--------------------------------------+-----------------------------------------------------------------+---------+-------+------------+---------------+-----+--------+ ``` -------------------------------- ### Example output of a storage cluster activation Source: https://docs.simplyblock.io/latest/deployments/install-on-linux/install-sp Sample output confirming the cluster status has transitioned to active. ```text [demo@demo ~]# sbctl cluster activate 7bef076c-82b7-46a5-9f30-8c938b30e655 2025-02-28 13:35:26,053: INFO: {"cluster_id": "7bef076c-82b7-46a5-9f30-8c938b30e655", "event": "STATUS_CHANGE", "object_name": "Cluster", "message": "Cluster status changed from unready to in_activation", "caused_by": "cli"} 2025-02-28 13:35:26,322: INFO: Connecting remote_jm_43560b0a-f966-405f-b27a-2c571a2bb4eb to 2f4dafb1-d610-42a7-9a53-13732459523e 2025-02-28 13:35:31,133: INFO: Connecting remote_jm_43560b0a-f966-405f-b27a-2c571a2bb4eb to b7db725a-96e2-40d1-b41b-738495d97093 2025-02-28 13:35:55,791: INFO: {"cluster_id": "7bef076c-82b7-46a5-9f30-8c938b30e655", "event": "STATUS_CHANGE", "object_name": "Cluster", "message": "Cluster status changed from in_activation to active", "caused_by": "cli"} ``` -------------------------------- ### Example output of NVMe namespace information Source: https://docs.simplyblock.io/latest/deployments/install-on-linux/install-sp Sample output showing available LBA formats (lbaf) for an NVMe device. ```text [demo@demo-3 ~]# sudo nvme id-ns /dev/nvme0n1 NVME Identify Namespace 1: ... lbaf 0 : ms:0 lbads:9 rp:0 lbaf 1 : ms:8 lbads:9 rp:0 lbaf 2 : ms:16 lbads:9 rp:0 lbaf 3 : ms:64 lbads:9 rp:0 lbaf 4 : ms:0 lbads:12 rp:0 (in use) lbaf 5 : ms:8 lbads:12 rp:0 lbaf 6 : ms:16 lbads:12 rp:0 lbaf 7 : ms:64 lbads:12 rp:0 ``` -------------------------------- ### Verify Operator Installation Source: https://docs.simplyblock.io/latest/deployments/kubernetes/k8s-control-plane?q= Checks the status of the pods in the simplyblock namespace to ensure the operator is running. ```bash kubectl get pods -n simplyblock ``` -------------------------------- ### Deploy Control Plane Source: https://docs.simplyblock.io/latest/deployments/install-on-linux/install-cp?q= Command to initialize the cluster and example output showing the resulting cluster ID. ```bash sbctl cluster create --ifname=eth0 --ha-type=ha ``` ```text [root@demo ~]# sbctl cluster create --ifname=eth0 --ha-type=ha 2025-02-26 12:37:06,097: INFO: Installing dependencies... 2025-02-26 12:37:13,338: INFO: Installing dependencies > Done 2025-02-26 12:37:13,358: INFO: Node IP: 192.168.10.1 2025-02-26 12:37:13,510: INFO: Configuring docker swarm... 2025-02-26 12:37:14,199: INFO: Configuring docker swarm > Done 2025-02-26 12:37:14,200: INFO: Adding new cluster object File moved to /usr/local/lib/python3.9/site-packages/simplyblock_core/scripts/alerting/alert_resources.yaml successfully. 2025-02-26 12:37:14,269: INFO: Deploying swarm stack ... 2025-02-26 12:38:52,601: INFO: Deploying swarm stack > Done 2025-02-26 12:38:52,604: INFO: deploying swarm stack succeeded 2025-02-26 12:38:52,605: INFO: Configuring DB... 2025-02-26 12:39:06,003: INFO: Configuring DB > Done 2025-02-26 12:39:06,106: INFO: Settings updated for existing indices. 2025-02-26 12:39:06,147: INFO: Template created for future indices. 2025-02-26 12:39:06,505: INFO: {"cluster_id": "7bef076c-82b7-46a5-9f30-8c938b30e655", "event": "OBJ_CREATED", "object_name": "Cluster", "message": "Cluster created 7bef076c-82b7-46a5-9f30-8c938b30e655", "caused_by": "cli"} 2025-02-26 12:39:06,529: INFO: {"cluster_id": "7bef076c-82b7-46a5-9f30-8c938b30e655", "event": "OBJ_CREATED", "object_name": "MgmtNode", "message": "Management node added vm11", "caused_by": "cli"} 2025-02-26 12:39:06,533: INFO: Done 2025-02-26 12:39:06,535: INFO: New Cluster has been created 2025-02-26 12:39:06,535: INFO: 7bef076c-82b7-46a5-9f30-8c938b30e655 7bef076c-82b7-46a5-9f30-8c938b30e655 ``` -------------------------------- ### Example Host Devices for a Shared Subsystem Source: https://docs.simplyblock.io/latest/deployments/nvme-namespaces-and-subsystems?q= Representation of how namespaces appear as separate block devices on a connected host. ```text /dev/nvme0n1 /dev/nvme0n2 ``` -------------------------------- ### Create Control Plane Cluster Source: https://docs.simplyblock.io/latest/deployments/install-on-linux/install-cp Example output of the command used to initialize the control plane cluster. ```bash [root@demo ~]# sbctl cluster create --ifname=eth0 --ha-type=ha 2025-02-26 12:37:06,097: INFO: Installing dependencies... 2025-02-26 12:37:13,338: INFO: Installing dependencies > Done 2025-02-26 12:37:13,358: INFO: Node IP: 192.168.10.1 2025-02-26 12:37:13,510: INFO: Configuring docker swarm... 2025-02-26 12:37:14,199: INFO: Configuring docker swarm > Done 2025-02-26 12:37:14,200: INFO: Adding new cluster object File moved to /usr/local/lib/python3.9/site-packages/simplyblock_core/scripts/alerting/alert_resources.yaml successfully. 2025-02-26 12:37:14,269: INFO: Deploying swarm stack ... 2025-02-26 12:38:52,601: INFO: Deploying swarm stack > Done 2025-02-26 12:38:52,604: INFO: deploying swarm stack succeeded 2025-02-26 12:38:52,605: INFO: Configuring DB... 2025-02-26 12:39:06,003: INFO: Configuring DB > Done 2025-02-26 12:39:06,106: INFO: Settings updated for existing indices. 2025-02-26 12:39:06,147: INFO: Template created for future indices. 2025-02-26 12:39:06,505: INFO: {"cluster_id": "7bef076c-82b7-46a5-9f30-8c938b30e655", "event": "OBJ_CREATED", "object_name": "Cluster", "message": "Cluster created 7bef076c-82b7-46a5-9f30-8c938b30e655", "caused_by": "cli"} 2025-02-26 12:39:06,529: INFO: {"cluster_id": "7bef076c-82b7-46a5-9f30-8c938b30e655", "event": "OBJ_CREATED", "object_name": "MgmtNode", "message": "Management node added vm11", "caused_by": "cli"} 2025-02-26 12:39:06,533: INFO: Done 2025-02-26 12:39:06,535: INFO: New Cluster has been created 2025-02-26 12:39:06,535: INFO: 7bef076c-82b7-46a5-9f30-8c938b30e655 7bef076c-82b7-46a5-9f30-8c938b30e655 ``` -------------------------------- ### Example Cluster Status Output Source: https://docs.simplyblock.io/latest/deployments/kubernetes/k8s-storage-plane Sample output showing an active storage cluster with its associated UUID and configuration status. ```text NAME STATUS UUID CONFIGURED AGE simplyblock-cluster active bfa260ce-06a7-4bcb-a843-813d0be633af true 10m ``` -------------------------------- ### sbctl volume get Source: https://docs.simplyblock.io/latest/reference/cli/volume Gets the logical volume details. ```APIDOC ## sbctl volume get ### Description Gets the logical volume details. ### Arguments - **VOLUME_ID** (string) - Required - The logical volume id or name. ### Parameters - **--json** (marker) - Optional - Print outputs in json format. ``` -------------------------------- ### Display QoS help Source: https://docs.simplyblock.io/latest/reference/cli/qos View the help documentation for QoS commands. ```bash sbctl qos --help ``` -------------------------------- ### GET /api/v2/clusters/{cluster_id}/ Source: https://docs.simplyblock.io/latest/reference/api/reference?q= Get details of a specific cluster. ```APIDOC ## GET /api/v2/clusters/{cluster_id}/ ### Description Retrieve detailed information about a specific cluster. ### Method GET ### Endpoint /api/v2/clusters/{cluster_id}/ ### Parameters #### Path Parameters - **cluster_id** (string) - Required - The unique identifier of the cluster. ``` -------------------------------- ### File-level migration setup and synchronization Source: https://docs.simplyblock.io/latest/deployments/data-migration Prepare a simplyblock volume by formatting and mounting it before using rsync to copy file contents. ```bash mkfs.ext4 /dev/simplyblock-device ``` ```bash mount /dev/simplyblock-device /mnt/simplyblock ``` ```bash rsync -avh --progress /source/data/ /mnt/simplyblock/ ``` -------------------------------- ### Deploy the new storage instance Source: https://docs.simplyblock.io/latest/maintenance-operations/migrating-storage-node?q= Execute the deployment command on the new storage host. ```bash sbctl storage-node deploy [--isolate-cores --ifname=] ``` -------------------------------- ### Install Simplyblock Proxmox Integration Source: https://docs.simplyblock.io/latest/deployments/proxmox Updates apt package information and installs the simplyblock-proxmox storage plugin. ```bash apt update apt install simplyblock-proxmox ``` -------------------------------- ### Example Output for Finalizing Cluster Expansion Source: https://docs.simplyblock.io/latest/maintenance-operations/scaling/expanding-storage-cluster?q= Sample output showing the log messages and status change confirmation after running the completion command. ```text [demo@demo ~]# sbctl cluster complete-expand e2cda3fe-e9f2-42ce-bb2d-eecd10f58ccf 2026-02-19 11:28:49,995: 139892426475328: INFO: Connecting to remote_jm_af8d10c1-6613-47a9-8ed0-ebdf1f873738 2026-02-19 11:28:50,133: 139892426475328: INFO: Connecting to remote_jm_e17ffb0c-89aa-496d-98ec-700e58cb831f 2026-02-19 11:28:50,786: 139892426475328: INFO: Connecting to remote_jm_86ccd3d3-378b-4ba1-ba26-a299e168a8cb 2026-02-19 11:28:50,933: 139892426475328: INFO: Connecting to remote_jm_e17ffb0c-89aa-496d-98ec-700e58cb831f 2026-02-19 11:28:51,357: 139892426475328: INFO: Creating hublvol on 86ccd3d3-378b-4ba1-ba26-a299e168a8cb 2026-02-19 11:28:52,467: 139892426475328: INFO: Connecting node af8d10c1-6613-47a9-8ed0-ebdf1f873738 to hublvol on 86ccd3d3-378b-4ba1-ba26-a299e168a8cb 2026-02-19 11:28:52,681: 139892426475328: INFO: Connecting to remote_jm_86ccd3d3-378b-4ba1-ba26-a299e168a8cb 2026-02-19 11:28:52,687: 139892426475328: INFO: Connecting to remote_jm_6bc978d0-84ba-4815-8b25-697cc4de5d5d 2026-02-19 11:28:52,841: 139892426475328: INFO: Connecting to remote_jm_e17ffb0c-89aa-496d-98ec-700e58cb831f 2026-02-19 11:28:53,319: 139892426475328: INFO: Connecting to remote_jm_af8d10c1-6613-47a9-8ed0-ebdf1f873738 2026-02-19 11:28:53,326: 139892426475328: INFO: Connecting to remote_jm_e17ffb0c-89aa-496d-98ec-700e58cb831f 2026-02-19 11:28:53,344: 139892426475328: INFO: Connecting to remote_jm_6bc978d0-84ba-4815-8b25-697cc4de5d5d 2026-02-19 11:28:53,873: 139892426475328: INFO: Creating hublvol on af8d10c1-6613-47a9-8ed0-ebdf1f873738 2026-02-19 11:28:54,953: 139892426475328: INFO: Connecting node 86ccd3d3-378b-4ba1-ba26-a299e168a8cb to hublvol on af8d10c1-6613-47a9-8ed0-ebdf1f873738 2026-02-19 11:28:55,098: 139892426475328: INFO: {"cluster_id": "e2cda3fe-e9f2-42ce-bb2d-eecd10f58ccf", "event": "STATUS_CHANGE", "object_name": "Cluster", "message": "Cluster status changed from in_expansion to active", "caused_by": "cli"} 2026-02-19 11:28:55,100: 139892426475328: INFO: Cluster expanded successfully True ``` -------------------------------- ### Apply and Monitor StorageNode Provisioning Source: https://docs.simplyblock.io/latest/deployments/kubernetes/k8s-storage-plane?q= Commands to apply the storage node configuration and monitor the pod creation process. ```bash kubectl apply -f storage-nodes.yaml ``` ```bash kubectl get pods -n simplyblock -w ``` -------------------------------- ### Install Simplyblock Operator via Helm Source: https://docs.simplyblock.io/latest/deployments/kubernetes/k8s-control-plane?q= Adds the Simplyblock Helm repository and installs the operator with the CSI driver enabled. ```bash helm repo add simplyblock https://install.simplyblock.io/helm/csi helm repo update helm upgrade --install simplyblock -n simplyblock simplyblock/spdk-csi \ --create-namespace \ --set operator.enabled=true ``` -------------------------------- ### Example output for connection string retrieval Source: https://docs.simplyblock.io/latest/maintenance-operations/reconnect-nvme-device This output provides the specific nvme connect commands required to re-establish paths to the storage nodes. ```bash [demo@demo ~]# sbctl volume connect 82e587c5-4a94-42a1-86e5-a5b8a6a75fc4 sudo nvme connect --reconnect-delay=2 --ctrl-loss-tmo=60 --nr-io-queues=6 --keep-alive-tmo=5 --transport=tcp --traddr=192.168.10.112 --trsvcid=9100 --nqn=nqn.2023-02.io.simplyblock:0f2c4cb0-a71c-4830-bcff-11112f0ee51a:lvol:82e587c5-4a94-42a1-86e5-a5b8a6a75fc4 sudo nvme connect --reconnect-delay=2 --ctrl-loss-tmo=60 --nr-io-queues=6 --keep-alive-tmo=5 --transport=tcp --traddr=192.168.10.113 --trsvcid=9100 --nqn=nqn.2023-02.io.simplyblock:0f2c4cb0-a71c-4830-bcff-11112f0ee51a:lvol:82e587c5-4a94-42a1-86e5-a5b8a6a75fc4 ``` -------------------------------- ### Example output of a storage node deployment Source: https://docs.simplyblock.io/latest/deployments/install-on-linux/install-sp This shows the expected output after running the storage node deployment command, including the control channel address. ```text [demo@demo-3 ~]# sudo sbctl storage-node deploy --ifname eth0 2025-02-26 13:35:06,991: INFO: NVMe SSD devices found on node: 2025-02-26 13:35:07,038: INFO: Installing dependencies... 2025-02-26 13:35:13,508: INFO: Node IP: 192.168.10.2 2025-02-26 13:35:13,623: INFO: Pulling image public.ecr.aws/simply-block/simplyblock:hmdi 2025-02-26 13:35:15,219: INFO: Recreating SNodeAPI container 2025-02-26 13:35:15,543: INFO: Pulling image public.ecr.aws/simply-block/ultra:main-latest 192.168.10.2:5000 ``` -------------------------------- ### Create a snapshot and back it up Source: https://docs.simplyblock.io/latest/usage/backup-recovery?q= Creates a volume snapshot and immediately triggers a backup process. ```bash sbctl snapshot add --backup ``` -------------------------------- ### Display snapshot help Source: https://docs.simplyblock.io/latest/reference/cli/snapshot?q= View the help documentation for snapshot commands. ```bash sbctl snapshot --help ``` -------------------------------- ### GET /api/v2/clusters/ Source: https://docs.simplyblock.io/latest/reference/api/reference?q= List all clusters. ```APIDOC ## GET /api/v2/clusters/ ### Description Retrieve a list of all clusters. ### Method GET ### Endpoint /api/v2/clusters/ ``` -------------------------------- ### GET /api/v2/management-nodes/ Source: https://docs.simplyblock.io/latest/reference/api/reference?q= Lists all management nodes in the system. ```APIDOC ## GET /api/v2/management-nodes/ ### Description Lists all management nodes in the system. ### Method GET ### Endpoint /api/v2/management-nodes/ ``` -------------------------------- ### Check System Prerequisites Source: https://docs.simplyblock.io/latest/deployments/install-on-linux/install-cp Run the automated script to verify system configuration before deployment. ```bash curl -s -L https://install.simplyblock.io/scripts/prerequisites-cp.sh | bash ``` -------------------------------- ### sbctl snapshot get Source: https://docs.simplyblock.io/latest/reference/cli/snapshot?q= Retrieves information about a specific snapshot. ```APIDOC ## sbctl snapshot get ### Description Gets a snapshot information. ### Arguments - **SNAPSHOT_ID** (string) - Required - Snapshot UUID. ``` -------------------------------- ### Configure the new storage host Source: https://docs.simplyblock.io/latest/maintenance-operations/migrating-storage-node?q= Prepare the new storage host by configuring storage parameters before migration. ```bash sbctl storage-node configure \ --max-lvol= \ --max-size= \ [--nodes-per-socket=] ``` -------------------------------- ### sbctl volume replication-trigger Source: https://docs.simplyblock.io/latest/reference/cli/volume?q= Starts replication for a logical volume. ```APIDOC ## sbctl volume replication-trigger ### Description Start replication for a logical volume. ### Parameters #### Arguments - **LVOL_ID** (string) - Required - Logical volume id ``` -------------------------------- ### Example output of NUMA configuration Source: https://docs.simplyblock.io/latest/deployments/deployment-preparation/numa-considerations Sample output showing a system with two NUMA nodes and their respective CPU ranges. ```text [root@demo ~]# lscpu | grep -i numa NUMA node(s): 2 NUMA node0 CPU(s): 0-31 NUMA node1 CPU(s): 32-63 ``` -------------------------------- ### sbctl cluster get Source: https://docs.simplyblock.io/latest/reference/cli/cluster Retrieves detailed information about a specific cluster. ```APIDOC ## sbctl cluster get ### Description Retrieves information for a specified cluster. ### Arguments - **CLUSTER_ID** (string) - Required - The unique identifier of the cluster. ``` -------------------------------- ### sbctl storage-pool get Source: https://docs.simplyblock.io/latest/reference/cli/storage-pool Retrieves the details of a specific storage pool. ```APIDOC ## sbctl storage-pool get ### Description Gets a storage pool's details. ### Parameters #### Arguments - **POOL_ID** (string) - Required - The storage pool id. #### Options - **--json** (marker) - Optional - Print outputs in json format. ``` -------------------------------- ### Get snapshot information Source: https://docs.simplyblock.io/latest/reference/cli/snapshot?q= Retrieves detailed information about a specific snapshot. ```bash sbctl snapshot get ``` -------------------------------- ### Display Storage Pool Help Source: https://docs.simplyblock.io/latest/reference/cli/storage-pool?q= View the help documentation for storage pool commands. ```bash sbctl storage-pool --help ``` -------------------------------- ### Display Cluster Help Source: https://docs.simplyblock.io/latest/reference/cli/cluster View the help documentation for the cluster command. ```bash sbctl cluster --help ``` -------------------------------- ### sbctl storage-node get Source: https://docs.simplyblock.io/latest/reference/cli/storage-node Retrieves detailed information about a specific storage node. ```APIDOC ## sbctl storage-node get ### Description Gets a storage node's information. ### Parameters #### Positional Arguments - **NODE_ID** (string) - Required - Storage node id ``` -------------------------------- ### Get rebalancing subtasks Source: https://docs.simplyblock.io/latest/reference/cli/cluster Retrieves the list of subtasks for a specific rebalancing task. ```bash sbctl cluster get-subtasks ``` -------------------------------- ### Get cluster information Source: https://docs.simplyblock.io/latest/reference/cli/cluster Retrieves detailed information for a specific cluster using its ID. ```bash sbctl cluster get ``` -------------------------------- ### Display storage-node help Source: https://docs.simplyblock.io/latest/reference/cli/storage-node View the available commands and options for the storage-node utility. ```bash sbctl storage-node --help ``` -------------------------------- ### Get storage pool capacity Source: https://docs.simplyblock.io/latest/reference/cli/storage-pool?q= Retrieves the capacity information for a specific storage pool. ```bash sbctl storage-pool get-capacity ``` -------------------------------- ### Deploy the storage node Source: https://docs.simplyblock.io/latest/deployments/install-on-linux/install-sp Execute the first stage of the deployment process using the specified network interface. ```bash sudo sbctl storage-node deploy --ifname eth0 ``` -------------------------------- ### Monitor cluster tasks Source: https://docs.simplyblock.io/latest/reference/operator?q= Example configuration for a Task resource to monitor cluster operations. ```yaml apiVersion: storage.simplyblock.io/v1alpha1 kind: Task metadata: name: cluster-tasks namespace: simplyblock spec: clusterName: production taskID: "abc123" # optional: filter to a specific task ``` -------------------------------- ### Example Cluster Secret Output Source: https://docs.simplyblock.io/latest/deployments/kubernetes/install-csi Sample output showing the retrieved cluster secret. ```text [demo@demo ~]# sbctl cluster get-secret 4502977c-ae2d-4046-a8c5-ccc7fa78eb9a oal4PVNbZ80uhLMah2Bs ``` -------------------------------- ### Set QoS during volume creation Source: https://docs.simplyblock.io/latest/usage/baremetal/quality-of-service Apply performance limits when initializing a new logical volume using the sbctl command. ```bash sbctl volume add \ \ \ \ --max-rw-iops MAX_RW_IOPS 3500 \ --max-rw-mbytes MAX_RW_MBYTES 125 ``` -------------------------------- ### Get storage pool details Source: https://docs.simplyblock.io/latest/reference/cli/storage-pool?q= Retrieves detailed information for a specific storage pool by its ID. ```bash sbctl storage-pool get --json ``` -------------------------------- ### Display help for volume commands Source: https://docs.simplyblock.io/latest/reference/cli/volume Use this command to view the help menu and available options for logical volume management. ```bash sbctl volume --help ``` -------------------------------- ### Mount block device and restart services Source: https://docs.simplyblock.io/latest/deployments/data-migration?q= Mount the new partition to the original mount point and restart the necessary services. ```bash [root@demo ~]# mount /dev/nvme0n1p1 /data/pg/ [root@demo ~]# service postgresql start ``` -------------------------------- ### PVC Status Output Source: https://docs.simplyblock.io/latest/deployments/kubernetes/k8s-storage-plane Example output showing the pending status of a newly created PVC. ```text NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE simplyblock-test-pvc Pending simplyblock-production-production-pool 5s ``` -------------------------------- ### Example StorageCluster Status Output Source: https://docs.simplyblock.io/latest/deployments/kubernetes/k8s-storage-plane Expected output format when checking the status of the storage cluster. ```text NAME STATUS UUID CONFIGURED AGE simplyblock-cluster unready 81932010-8c06-4acd-b14a-51f5c3fca425 true 1m ```