跳到主要内容
版本:FCP 25.11

节点最小化依赖安装

FCP平台支持注册Linux操作系统的节点和Windows操作系统的节点,点击链接查看产集群支持的操作系统版本,点击链接查看桌面支持的操作系统版本 本地节点需要安装最小化依赖才能被添加至平台,请根据以下操作系统安装对应依赖

Linux操作系统节点最小化依赖按钮

前提条件

  • 本地Linux节点需要安装以下依赖才能被添加至平台
  • 如果对Linux节点有网络要求, 请参考FCP产品网络规划

通用依赖

# Ubuntu18.04,通常情况下系统自带python2.6/2.7,如果没有自行安装
sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y nfs-common autofs ntp nscd libpam-modules python-setuptools

# Ubuntu20.04/Ubuntu22.04,通常情况下系统自带任意版本python3,如果没有自行安装
sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y nfs-common autofs ntp nscd libpam-modules python-setuptools python3-pip

# CentOS7.x/RedHat7.x,通常情况下系统自带python2.6/2.7,如果没有自行安装
sudo yum install -y nfs-utils autofs ntp nscd redhat-lsb python-setuptools authconfig pam

# CentOS6.x/RedHat6.x,通常情况下系统自带python2.6/2.7,如果没有自行安装
sudo yum install -y rng-tools nfs-utils autofs ntp nscd redhat-lsb python-setuptools authconfig pam

# Rocky Linux 8.x/RedHat8.x,通常情况下系统自带任意版本python3,如果没有自行安装
sudo yum install -y nfs-utils autofs nscd redhat-lsb python3-setuptools authconfig pam chrony

其他依赖

当选择使用内置LDAP、外置LDAP/AD、OIDC作为用户认证时,需要安装以下依赖:

# Ubuntu18.04/Ubuntu20.04/Ubuntu22.04
sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y libnss-ldapd libpam-ldapd ldap-utils

# CentOS7.x/RedHat7.x/CentOS6.x/RedHat6.x/Rocky Linux 8.x/RedHat8.x
sudo yum install -y nss-pam-ldapd.x86_64 nss-pam-ldapd.i686 openldap-clients

当选择使用外置NIS作为用户认证时,需要安装以下依赖:

# Ubuntu18.04/Ubuntu20.04
sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y nis

# Ubuntu22.04
sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y nis libnss-nis

# CentOS7.x/RedHat7.x/CentOS6.x/RedHat6.x/Rocky Linux 8.x/RedHat8.x
sudo yum install -y ypbind rpcbind ypserv yp-tools

对于GPU节点,则需要安装GPU驱动和dcgm-exporter,才能保证主机的GPU监控正常:

提示

CentOS6.x/RedHat6.x不支持GPU监控

  • Ubuntu18.04/Ubuntu20.04/Ubuntu22.04,需要自行安装20.04及以上版本的docker,并执行以下脚本安装GPU驱动、运行dcgm-exporter容器
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
if [ ! -f /etc/apt/sources.list.d/nvidia-docker.list ]; then
sudo curl -o /etc/apt/sources.list.d/nvidia-docker.list -s -L https://nvidia.github.io/libnvidia-container/stable/$distribution/libnvidia-container.list
fi
sudo apt-get update
if ! dpkg -l | grep nvidia-container-toolkit > /dev/null; then
sudo apt-get install -y nvidia-container-toolkit
fi
if ! dpkg -l | grep nvidia-driver > /dev/null; then
# found latest version of driver
sudo DEBIAN_FRONTEND=noninteractive apt install -y $(apt-cache pkgnames nvidia-driver | grep server | grep -v open | sort -n | tail -n 1)
fi

sudo docker run --name dcgm-exporter --gpus all -p 9400:9400 -d --restart always nvidia/dcgm-exporter:latest
  • CentOS7.x/RedHat7.x,需要自行安装20.04及以上版本的docker,并执行以下脚本安装GPU驱动、运行dcgm-exporter容器
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
if [ ! -f /etc/yum.repos.d/nvidia-docker.repo ]; then
sudo curl -o /etc/yum.repos.d/nvidia-docker.repo -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.repo
sudo yum makecache -y
fi
if ! rpm -qa | grep nvidia-container-toolkit > /dev/null; then
sudo yum install -y nvidia-container-toolkit
fi

if grep -E "release 8\." /etc/redhat-release; then
if ! rpm -qa | grep xorg-x11-drv-nouveau.x86_64 > /dev/null; then
# found latest version of driver
sudo yum install -y xorg-x11-drv-nouveau.x86_64
fi
else
if ! rpm -qa | grep nvidia-x11-drv > /dev/null; then
# found latest version of driver
sudo yum install -y nvidia-x11-drv
fi
fi

sudo docker run --name dcgm-exporter --gpus all -p 9400:9400 -d --restart always nvidia/dcgm-exporter:latest
  • Rocky Linux 8.x,需要自行安装20.04及以上版本的docker,并执行以下脚本安装GPU驱动、运行dcgm-exporter容器
if [ ! -f /etc/yum.repos.d/nvidia-docker.repo ]; then
sudo curl -o /etc/yum.repos.d/nvidia-docker.repo -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo
sudo yum makecache -y
fi
if ! rpm -qa | grep nvidia-container-toolkit > /dev/null; then
sudo yum install -y nvidia-container-toolkit
fi

if grep -E "release 8\." /etc/redhat-release; then
if ! rpm -qa | grep xorg-x11-drv-nouveau.x86_64 > /dev/null; then
# found latest version of driver
sudo yum install -y xorg-x11-drv-nouveau.x86_64
fi
else
if ! rpm -qa | grep nvidia-x11-drv > /dev/null; then
# found latest version of driver
sudo yum install -y nvidia-x11-drv
fi
fi

sudo docker run --name dcgm-exporter --gpus all -p 9400:9400 -d --restart always nvidia/dcgm-exporter:latest

VNC

提示

此依赖仅需在FCP-SEFCP-Suite中安装.

桌面环境的安装

VNC依赖于底层桌面环境, 请确保系统安装了桌面环境, 例如:

  • KDE Plasma Desktop
  • Xfce Desktop
  • Gnome Desktop
注意

我们推荐系统中有且仅有一个桌面环境, 如果同时存在多个, 这意味着您需要正确地进行配置目标桌面环境以确保其能够被正常引导, 否则可能会导致多个桌面环境发生竞争从而导致桌面系统无法正常启动.
如果需要卸载多于的桌面环境, 请参考各个桌面环境的文档中提供的卸载步骤进行卸载.

如果系统中不存在桌面环境, 请执行Xfce安装脚本安装Xfce4

VNC Server组件安装

提示

在此脚本中, 首先会检查您的系统是否存在或存在多个桌面环境, 如果条件满足那么会发出警告, 警告信息会提示您需要正确地处理目标桌面环境.
然后会安装VNC Server组件, 并对VNC Server组件进行定制(例如高分辨率支持, 单用户多节点的共享存储中的会话隔离...).
最后会尝试启动VNC Server组件来验证VNC Server组件是否能够正常工作, 如果启动失败, 通常是桌面环境没有正确配置导致.
脚本默认会继续执行系统中文汉化(安装中文语言包/字体并配置中文Locale), 以保证VNC桌面可正常显示中文.

请执行此脚本安装VNC Server组件并完成中文汉化:

# 赋予脚本执行权限
chmod +x install-tigervnc.sh

# 安装VNC并执行中文汉化 (默认行为)
sudo ./install-tigervnc.sh

# 如需仅安装VNC并跳过中文汉化,可使用以下参数
sudo ./install-tigervnc.sh --skip-chinese
提示

执行完成后,建议重启系统以确保所有中文环境配置生效。

中文环境回滚

如果需要将系统语言环境恢复为英文,可以执行专门的中文环境回滚脚本。该脚本会自动将系统语言环境配置回滚为英文,并清理相关的中文语言环境文件。

注意

该脚本需要root权限执行。脚本会自动尝试使用sudo进行权限提升。

请执行中文环境回滚脚本进行系统英文环境恢复:

# 赋予脚本执行权限
chmod +x rollback-chinese.sh

# 执行中文环境回滚脚本 (使用 sudo 确保 root 权限)
sudo ./rollback-chinese.sh
提示

回滚完成后,同样建议重启系统以确保所有英文环境配置生效。

常见问题

注意

节点服务启动报failed to find loop device: could not attach image file to loop device: no loop devices available.

在使用定制镜像的裸机当做节点,fastone-remote-access服务遇到过此错误,解决方法是编辑/boot/efi/EFI/ubuntu/grub.cfg文件设置max_loop参数。 如果遇到此错误,请考虑添加max_loop参数,不同发行版本设置以及生效方式不同,此仅供参考.

Windows操作系统节点最小化依赖按钮

提示

不需要pbs调度器,请查看通用依赖章节
需要pbs调度器,请查看pbs依赖章节

前提条件

  • 本地windows节点需要安装以下依赖才能被添加至平台
  • 如果对windows节点有网络要求, 请参考FCP产品网络规划

通用依赖

下载安装包

  • 远程登录工具安装包:openssh-win64-8.1.zip
  • 监控工具安装包:wmi_exporter-0.11.0-386.msi
  • psexec工具安装包:PSTools.zip
  • nvidia-gpu-exporter安装包: nvidia_gpu_tools.zip
  • gpu监控依赖nvidia-smi获取监控信息,nvidia-driver自行依据节点配置安装

安装步骤

  1. 使用administrator用户登陆windows节点,下载的安装包复制到桌面目录下

  2. 创建fastone用户, 使用默认密码,不建议修改 需要在powershell里运行:

    • 添加用户
    • 添加到管理员组(请参考密码获取说明。如无法访问,请联系对应的客户服务经理、交付经理或技术支持人员。)
      net user fastone <FASTONE_PASSWORD> /add
      net localgroup administrators fastone /add

    在cmd里运行:

    • 设置密码过期时间为永不过期
    wmic.exe UserAccount Where Name='fastone' set PasswordExpires='false'
  3. 安装openssh 需要在powershell里运行:

    • 解压安装包

    • 重命名安装目录

    • 安装sshd

    • 开启防火墙

    • 设置开机自启

      Expand-Archive -Path C:\Users\Administrator\Desktop\OpenSSH-Win64-8.1.zip -DestinationPath "C:\Program Files\"
      Rename-Item "C:\Program Files\OpenSSH-Win64" "C:\Program Files\OpenSSH"

      powershell.exe -ExecutionPolicy Bypass -File "C:\Program Files\OpenSSH\install-sshd.ps1"

      New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

      Set-Service sshd -StartupType Automatic
      • 配置ssh config 进入C:\ProgramData\ssh目录(目录为隐藏目录,如果没有,则重启机器),打开ssh_config或者ssh_default_config文件,将文件中下列代码注释掉:
      #Match Group administrators
      # AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

      保存退出

  4. 安装wmi_exporter 直接双击安装即可

  5. 关闭防火墙(无网络要求), 如果对网络有要求,参考FCP产品网络规划

    • powershell运行
    Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
  6. 安装psexec工具

    • powershell运行
    Expand-Archive -Path C:\Users\Administrator\Desktop\PSTools.zip "C:\Users\Administrator\Desktop\pstools"
    Move-Item -Path C:\Users\Administrator\Desktop\pstools\PsExec64.exe "C:\Windows\System32\"
    Move-Item -Path C:\Users\Administrator\Desktop\pstools\PsExec.exe "C:\Windows\System32\"
  7. 安装nvidia-gpu-exporter

    • powershell运行
    Expand-Archive -Path C:\Users\Administrator\Desktop\nvidia_gpu_tools.zip "C:\Users\Administrator\Desktop\"
    Move-Item -Path C:\Users\Administrator\Desktop\nvidia_gpu_tools\nvidia_gpu_exporter.exe "C:\Windows\System32\"
    Move-Item -Path C:\Users\Administrator\Desktop\nvidia_gpu_tools\nssm.exe "C:\Windows\System32\"
    nssm.exe install nvidia_gpu_exporter "C:\Windows\System32\nvidia_gpu_exporter.exe"
    Start-Service nvidia_gpu_exporter
  8. 配置fastonessh 使用fastone用户登录windows节点, 因为要创建fastone用户目录

    • powershell里运行
    • 生成ssh密钥与config文件(ssh-keygen命令一直回车,默认即可)
    • 配置sshconfig文件
    cd C:\"Program Files"\OpenSSH

    ssh-keygen

    Add-Content -Path $HOME\.ssh\config -Value 'Host *
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null'
  9. 重启windows节点

  10. 至此,windows节点的基础依赖安装完成,只用做图形桌面的单个windows节点,无调度器。

  11. fastone平台主机管理页面添加windows节点, 输入节点用户时请使用管理员组administrators内的用户。

pbs依赖

前提条件

  • 需要使用pbs调度器执行任务的机器需要安装pbs依赖
  • 集群头节点:Ubuntu 18.04
  • 集群计算节点:windows server 2019
  • 如果对windows节点有网络要求, 请参考FCP产品网络规划
  • 依赖samba服务如何启动smaba服务,用于共享文件与任务输出

集群头节点依赖安装

  1. 下载安装包

请联系速石技术人员获取 pbs安装包:pbspro-19.0.0-2.tar.gz

  1. 安装依赖 执行如下脚本安装依赖:
#!/bin/bash

set -ex

if [ ! -e /etc/apt/sources.list ]; then
echo "No only works under ubuntu. Exiting."
exit 0
fi

sudo dpkg --configure -a
sudo apt-get clean
sudo apt-get --fix-broken install -y
sudo apt-get autoremove -y -qq
sudo apt-get update -y -qq
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -yq

sudo apt-get install -y aptitude

sudo aptitude install -y gcc make libtool libhwloc-dev libx11-dev \
libxt-dev libedit-dev libical-dev ncurses-dev perl \
postgresql-server-dev-all postgresql-contrib python3-dev tcl-dev tk-dev swig \
libexpat-dev libssl-dev libxext-dev libxft-dev autoconf \
automake expect
  1. 安装pbs 将下载的安装包解压到/opt/tmp目录下,执行如下脚本进行安装:
#!/bin/bash

set -ex

if [ ! -e /etc/apt/sources.list ]; then
echo "No only works under ubuntu. Exiting."
exit 0
fi

# add private ip and hostname to hosts file, solve `qmgr: cannot connect to server`
# get hostname
HOSTNAME=$(hostname)

# get private ip
PRIVATE_IP=$(hostname -I | awk '{print $1}')

# check if private ip exists
if [[ -z "$PRIVATE_IP" ]]; then
echo "cannot get private ip. Exiting."
exit 1
fi

file='/etc/hosts'

if grep -q "^$PRIVATE_IP\s*$HOSTNAME" $file; then
echo "$PRIVATE_IP $HOSTNAME already exists in $file"
else
# write private ip and hostname to hosts file
echo "$PRIVATE_IP $HOSTNAME" >> $file
echo "added $PRIVATE_IP $HOSTNAME to $file"
fi


# change postgres ports
sudo sed -i -e 's/port = .*/port = 25432/' -- /etc/postgresql/*/main/postgresql.conf
sudo systemctl stop postgresql # we are not using the default one

# install pbspro
sudo tar -zxvf /opt/tmp/pbspro-19.0.0-2.tar.gz --keep-old-files -C /

# run installer
# sudo /usr/bin/pbs.install
sudo chmod 4755 /usr/sbin/pbs_iff /usr/sbin/pbs_rcp
sudo rm -vf /etc/pbs.conf
sudo /usr/libexec/pbs_postinstall
sudo sh -c 'echo PBS_DATA_SERVICE_PORT=15432 >> /etc/pbs.conf'
START=$SECONDS
while ! sudo systemctl restart pbs; do
systemctl status pbs || true
systemctl status postgresql || true
sudo netstat -antp
ELAPSED=$(expr $SECONDS - $START)
if [ $ELAPSED -gt 300 ]; then
exit 1;
fi
sleep 5
done

START=$SECONDS
while ! sudo /usr/bin/qmgr -c "set server single_signon_password_enable=true"; do
echo "=================== syslog ====================="
sudo tail -n 100 /var/log/syslog
echo "=================== netstat ====================="
sudo netstat -antp
echo "=================== status ====================="
sudo systemctl start postgresql || true
sudo systemctl start pbs || true
ELAPSED=$(expr $SECONDS - $START)
if [ $ELAPSED -gt 300 ]; then
exit 1;
fi
done

# disable pbspro
sudo systemctl disable pbs
sudo systemctl disable postgresql
sudo systemctl stop postgresql

windows节点依赖安装

  1. 下载安装包
  • 远程登录工具安装包:openssh-win64-8.1.zip
  • 监控工具安装包:wmi_exporter-0.11.0-386.msi
  • psexec工具安装包:PSTools.zip
  • PBSPro安装包:pbspro-19.0.0-2.msi
  • fsagent安装包:fsagent.windows.exe
  1. 安装步骤

  2. 使用administrator用户登陆windows节点,下载的安装包复制到桌面目录下

  3. 创建fastone, pbsadmin用户, 使用默认密码,不建议修改 需要在powershell里运行:

    • 添加用户
    • 添加到管理员组(请参考密码获取说明。如无法访问,请联系对应的客户服务经理、交付经理或技术支持人员。)
      net user fastone <FASTONE_PASSWORD> /add
      net user pbsadmin <PBSADMIN_PASSWORD> /add
      net localgroup administrators fastone /add
      net localgroup administrators pbsadmin /add

    在cmd里运行:

    • 设置密码过期时间为永不过期
    wmic.exe UserAccount Where Name='fastone' set PasswordExpires='false'
    wmic.exe UserAccount Where Name='pbsadmin' set PasswordExpires='false'
  4. 安装openssh 需要在powershell里运行:

    • 解压安装包

    • 重命名安装目录

    • 安装sshd

    • 开启防火墙

    • 设置开机自启

      Expand-Archive -Path C:\Users\Administrator\Desktop\OpenSSH-Win64-8.1.zip -DestinationPath "C:\Program Files\"
      Rename-Item "C:\Program Files\OpenSSH-Win64" "C:\Program Files\OpenSSH"

      powershell.exe -ExecutionPolicy Bypass -File "C:\Program Files\OpenSSH\install-sshd.ps1"

      New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

      Set-Service sshd -StartupType Automatic
      • 配置ssh config 进入C:\ProgramData\ssh目录(目录为隐藏目录,如果没有,则重启机器),打开ssh_config或者ssh_default_config文件,将文件中下列代码注释掉:
      #Match Group administrators
      # AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

      保存退出

  5. 安装wmi_exporter 直接双击安装即可

  6. 关闭防火墙(无网络要求), 如果对网络有要求,参考FCP产品网络规划

    • powershell运行
    Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
  7. 安装psexec工具

    • powershell运行
    Expand-Archive -Path C:\Users\Administrator\Desktop\PSTools.zip "C:\Users\Administrator\Desktop\pstools"
    Move-Item -Path C:\Users\Administrator\Desktop\pstools\PsExec64.exe "C:\Windows\System32\"
    Move-Item -Path C:\Users\Administrator\Desktop\pstools\PsExec.exe "C:\Windows\System32\"
  8. 安装PBSPro 直接双击安装即可

  9. 移动fsagentC:\Windows\System32\

    Move-Item -Path C:\Users\Administrator\Desktop\fsagent.windows.exe -Destination C:\Windows\System32\fsagent.exe
  10. 配置fastonessh

    • 使用fastone用户登录windows节点,并在powershell里运行
    • 生成ssh密钥与config文件(ssh-keygen命令一直回车,默认即可)
    • 配置sshconfig文件
    cd C:\"Program Files"\OpenSSH

    ssh-keygen

    Add-Content -Path $HOME\.ssh\config -Value 'Host *
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null'
  11. 重启windows节点

  12. fastone平台主机管理页面添加windows节点, 输入节点用户时请使用管理员组administrators内的用户。

启动smaba服务

共享目录的主机上节点上,执行如下命令启动smaba容器服务:

Parameters

OptionUsageExample
SHARE_NAMEname of the sharefastone
SHARE_PATHpath to export/fastone
USER_NAMEusername to access the share
USER_IDuser id of the specified username
GROUP_NAMEgroup to map the share
GROUP_IDgroup id of the specified group id
SMB_PASSWORDpassword to access the share<SMB_PASSWORD>密码获取方式请参考密码获取说明。如无法访问,请联系对应的客户服务经理、交付经理或技术支持人员。

Usage

以下仅为fastone用户的示例,请根据实际情况修改参数

docker run -it --restart always --name smb-server --network=host -e SHARE_NAME=fastone -e SHARE_PATH=/fastone  -e USER_NAME=fastone -e USER_ID=$(id -u fastone)   -e GROUP_NAME=fastone   -e GROUP_ID=$(id -g fastone) -e SMB_PASSWORD='<SMB_PASSWORD>' --mount type=bind,source=/fastone,target=/fastone,bind-propagation=rslave hub.fastonetech.com/cce/fs-smb-server:24.05

运行docker ps -a, 服务状态为Up即为启动成功,否则是用docker logs smb-server查看日志.

NOTE:

  1. 必须使用host网络
  2. 必须挂载SHARE_PATH到容器,使用--mount参数,使用bind-propagation=rslave参数,以确保文件权限正确
-- mount type=bind,source=/fastone,target=/fastone,bind-propagation=rslave

验证配置

为了确保配置正确, 请在完成windows节点的配置后进行相应的验证, 以确保Fastone平台能够对节点进行控制

  • 能够通过RDP客户端(例如mstsc)连接到节点
  • 挂载时使用SHARE_PATH目录(例如:fastone)如下命令,期望成功挂载
net use z: \\host_name\fastone "<SMB_PASSWORD>" /user:"fastone"

接入AD

提示

Active Directory (AD)不是平台托管Windows节点的必要条件,但接入AD将带来以下诸多优势:

  • 集中身份认证: 统一不同系统中的身份认证.
  • 身份的统一管理: 只需要接入AD即可完成对组织内部成员身份的管理.

请根据您的实际情况决定是否需要接入AD.
若需要接入 AD,请参考以下文档以完成AD的接入:

  1. FCP平台配置AD
  2. 请根据Windows节点集成AD文档完成AD域的加入.

samba家目录自动挂载设置

若需要将samba家目录自动挂载到windows节点,请参考以下文档:

  1. 编辑samba-mount.bat文件,内容如下:

    @echo off
    :: 自动挂载Samba共享(使用当前登录用户的域凭据)
    net use Z: \\samba_server\share_name /user:domainname\%USERNAME% /persistent:yes

    :: 检查挂载状态
    if %errorlevel% equ 0 (
    echo [INFO] Samba共享Z:已成功挂载。
    ) else (
    echo [ERROR] 挂载失败,错误码:%errorlevel%
    )
  2. 自动执行samba-mount.bat脚本

    • 登陆启动:文件复制到windows节点上,win + R -> shell:startup -> 粘贴到shell:startup目录下
    • 其他方法:计划任务或者组策略等