跳转至

CentOS 7 部署指南

Warning

本指南适用于 CentOS 7,该系统已达到生命周期终止(EOL)。鹤思的未来更新依赖于现代编译器,因此本教程可能无法按预期工作,且不再保证得到维护。

1. 配置构建环境

以下所有命令应在构建节点上以 root 用户身份执行。

安装附加仓库:

yum install -y epel-release centos-release-scl-rh
yum install -y ninja-build patch devtoolset-11 rh-git218

添加到 ~/.bash_profile

source scl_source enable devtoolset-11
source scl_source enable rh-git218

2. 环境准备

2.1 禁用 SELinux

setenforce 0
sed -i s#SELINUX=enforcing#SELINUX=disabled# /etc/selinux/config

2.2 安装证书

yum -y install ca-certificates

2.3 同步系统时间

yum -y install ntp ntpdate
systemctl start ntpd
systemctl enable ntpd
timedatectl set-timezone Asia/Shanghai

2.4 配置防火墙

Tip

如果您有多个节点,请在每个节点上执行此步骤。否则,节点间通信将失败。

有关端口配置详细信息,请参阅配置文件 /etc/crane/config.yaml

systemctl stop firewalld
systemctl disable firewalld

如果您的集群需要保持防火墙处于活动状态,请开放以下端口:

firewall-cmd --add-port=10013/tcp --permanent --zone=public
firewall-cmd --add-port=10012/tcp --permanent --zone=public
firewall-cmd --add-port=10011/tcp --permanent --zone=public
firewall-cmd --add-port=10010/tcp --permanent --zone=public
firewall-cmd --add-port=873/tcp --permanent --zone=public
firewall-cmd --reload

3. 安装依赖

yum install -y openssl-devel curl-devel pam-devel zlib-devel zlib-static libaio-devel libcurl-devel systemd-devel

从源码安装 libcgroup:

yum install -y tar bison flex automake

wget https://github.com/libcgroup/libcgroup/releases/download/v3.1.0/libcgroup-3.1.0.tar.gz
tar -zxvf libcgroup-3.1.0.tar.gz

cd libcgroup-3.1.0
./configure
make -j
make install

4. 安装工具链

鹤思需要以下工具链版本:

  • CMake ≥ 3.24
  • libstdc++ ≥ 11
  • clang ≥ 19 或 g++ ≥ 14

4.1 CMake

sudo yum install -y wget
wget https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4-linux-x86_64.sh
bash cmake-3.26.4-linux-x86_64.sh --prefix=/usr/local --skip-license
cmake --version

4.2 GCC 14

鹤思需要 libstdc++ ≥ 11。CentOS 7 上的默认 GCC 4.8 太旧,因此我们需要从源码构建并安装 GCC 14。

yum install -y tar bzip2
wget https://ftp.gnu.org/gnu/gcc/gcc-14.1.0/gcc-14.1.0.tar.gz

tar -zxvf gcc-14.1.0.tar.gz
cd gcc-14.1.0

./contrib/download_prerequisites
mkdir build && cd build
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j
make install

如果您使用 clang,可以通过向 CMake 添加以下标志(步骤 6)来使用 GCC 14 的 libstdc++:

-DCMAKE_C_FLAGS_INIT="--gcc-toolchain=/usr/local" \
-DCMAKE_CXX_FLAGS_INIT="--gcc-toolchain=/usr/local"

5. 构建和安装

git clone https://github.com/PKUHPC/CraneSched.git
cd CraneSched

mkdir build && cd build
cmake -G Ninja -DCMAKE_C_COMPILER=/usr/bin/gcc \
               -DCMAKE_CXX_COMPILER=/usr/bin/g++ \
               -DCRANE_USE_SYSTEM_LIBCGROUP=ON \
               -DCRANE_ENABLE_CGROUP_V2=OFF ..
cmake --build .
ninja install

Info

如果您希望使用 RPM 软件包,请参阅打包指南获取说明。

对于多节点部署鹤思,请按照多节点部署指南

6. 安装和配置 MongoDB

MongoDB 仅在控制节点上需要。

请按照数据库配置指南获取详细说明。

Info

CentOS 7 最高支持 MongoDB 7.0。有关具体安装说明,请参阅数据库配置指南。

7. PAM 模块设置

PAM 模块配置是可选的,但建议用于生产集群。

请按照 PAM 模块配置指南获取详细说明。

8. 配置和启动服务

有关集群配置详细信息,请参阅集群配置指南

配置完成后,根据启动方式选择:

使用 systemd 启动(推荐)

仅控制节点需要先创建 crane 用户(RPM 包安装时自动创建):

sudo groupadd --system crane 2>/dev/null || true
sudo useradd --system --gid crane --shell /usr/sbin/nologin --create-home crane 2>/dev/null || true

然后启动服务:

systemctl start cranectld  # 控制节点
systemctl start craned     # 计算节点

直接运行二进制文件

cd build/src
CraneCtld/cranectld  # 控制节点
Craned/craned        # 计算节点