CraneSched Deployment Guide¶
Welcome to the CraneSched deployment documentation. This guide will walk you through setting up a high-performance computing cluster with CraneSched's job scheduling system.
Recommended OS
We strongly recommend Rocky Linux 9 for production deployments due to its stability, long-term support, and modern system components.
What You'll Deploy¶
CraneSched consists of three main components:
| Component | Description | Location |
|---|---|---|
| Backend | cranectld (scheduler) + craned (worker daemon) |
Control & Compute nodes |
| Frontend | CLI (cbatch, cqueue, etc.) + other services (cfored, cplugind) |
As needed |
| Database | MongoDB for storing jobs, accounts, and usage data | Control/Storage node |
The diagram below shows a typical placement of CraneSched components across node types.
graph TB
subgraph Login Node
CLIs[CLIs]
cfored_login[cfored]
cplugind_login[cplugind]
end
subgraph Control Node
cranectld[cranectld]
cplugind_ctrl[cplugind]
end
subgraph Compute Node
craned[craned]
cplugind_compute[cplugind]
end
subgraph Storage Node
mongodb[(MongoDB)]
end
%% Communication
CLIs --> cranectld
cfored_login --> cranectld
cfored_login <-->|streaming I/O| craned
cranectld <-->|dispatch/response| craned
cranectld <--> mongodb
%% Plugin connections
cplugind_ctrl <-.-> cranectld
cplugind_login <-.-> cranectld
cplugind_compute <-.-> craned
Quick Start¶
For a simple single-node test environment:
- Install backend: Follow Rocky Linux 9 Guide (Steps 1-5)
- Setup database: Follow Database Configuration Guide
- Configure cluster: Edit
/etc/crane/config.yaml(see Configuration Guide) - Start services:
systemctl start cranectld craned(And other frontend services as needed)
For production multi-node clusters, follow the complete deployment workflow below.
Deployment Workflow¶
Step 1: Build Backend Components¶
Choose your operating system and follow the corresponding guide:
-
Recommended for production. Includes environment setup, toolchain installation, and building from source.
-
Supported but not officially recommended.
-
Legacy support (End of Life). Use only for existing deployments.
All guides cover system preparation, dependencies, and compilation. After building:
- Packaging Guide - Create RPM/DEB packages for easier distribution across nodes
Step 2: Setup Database¶
MongoDB stores job history, user accounts, and resource usage data.
Install MongoDB on the control node, configure authentication, and connect CraneSched.
Step 3: Configure Cluster¶
Define your cluster topology, node resources, and scheduling policies.
Learn how to edit /etc/crane/config.yaml to configure:
- Cluster name and control machine
- Node definitions (CPU, memory, GPUs)
- Partitions and scheduling priorities
- Network settings and advanced options
Step 4: Deploy to Nodes¶
For multi-node clusters, distribute binaries and configurations efficiently.
Use SCP, PDSH, or package managers to deploy CraneSched across your cluster.
Step 5: Install Frontend Tools¶
Deploy user-facing tools and services for job submission and management.
Install Go-based frontend components: cbatch, cqueue, cinfo, cacct, and supporting daemons.
Optional Features¶
Plugin System¶
Extend CraneSched with plugins for monitoring, notifications, and more.
- Plugins Guide - Email notifications, resource monitoring, energy tracking
Access Control¶
Restrict SSH access to compute nodes for authorized jobs only.
- PAM Module - Configure PAM-based access control
Advanced Device Management¶
Enable GPU and device isolation with eBPF on systems using cgroup v2.
- eBPF Support - GRES support with eBPF device control