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 (Node 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 (dashed borders indicate optional components).
Optional Components
- cplugind: Only required on nodes that need plugin functionality.
- cfored: Only required on nodes where interactive jobs (e.g.,
calloc/crun) need to be submitted.
graph TB
%% === Node Definitions ===
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]
cfored_compute[cfored]
cplugind_compute[cplugind]
end
subgraph Storage Node
mongodb[(MongoDB)]
end
%% === Communication ===
CLIs --> cranectld
cfored_login --> cranectld
cfored_login <-->|streaming I/O| craned
cfored_compute --> cranectld
cfored_compute <-->|streaming I/O| craned
cranectld <-->|dispatch/response| craned
cranectld <--> mongodb
%% Plugin connections
cplugind_ctrl <-.-> cranectld
cplugind_login <-.-> cranectld
cplugind_compute <-.-> craned
%% === Style Definitions ===
%% Required components: dark gray solid border
classDef required stroke:#555,stroke-width:2px;
%% Optional components: dark gray dashed border
classDef optional stroke:#555,stroke-dasharray: 6 6, stroke-width:2px;
%% Specify optional components (all cplugind)
class cplugind_login optional;
class cplugind_ctrl optional;
class cplugind_compute optional;
class cfored_compute optional;
%% All others are required components
class CLIs,cfored_login,cranectld,craned,mongodb required;
Quick Start¶
For a simple single-node test environment:
- Install backend: Follow Rocky Linux 9 Guide
- Install frontend: Follow Frontend Deployment Guide
- 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