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:
2. 环境准备¶
2.1 禁用 SELinux¶
2.2 安装证书¶
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。
如果您的集群需要保持防火墙处于活动状态,请开放以下端口:
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
然后启动服务: