跳到主要内容
版本:FCP 24.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,通常情况下系统自带任意版本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

# CentOS7.x/RedHat7.x/CentOS6.x/RedHat6.x/Rocky Linux 8.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
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组件是否能够正常工作, 如果启动失败, 通常是桌面环境没有正确配置导致.

请执行此脚本安装VNC Server组件

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

提示

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

前提条件

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

通用依赖

下载安装包

  • 远程登录工具安装包:openssh-win64-8.1.zip
  • 监控工具安装包:wmi_exporter-0.11.0-386.msi
  • psexec工具安装包:PSTools.zip

安装步骤

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

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

    • 添加用户
    • 添加到管理员组
      net user fastone kJ!yRYJz /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. 配置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'
  8. 重启windows节点

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

  10. 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-19.0.0-2.msi
  1. 安装步骤

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

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

    • 添加用户
    • 添加到管理员组
      net user fastone kJ!yRYJz /add
      net user pbsadmin abc111. /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容器服务:

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='password' --mount type=bind,source=/fastone,target=/fastone,bind-propagation=rslave hub.fastonetech.com/cce/fs-smb-server:24.05

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

Usage

NOTE:

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

验证配置

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

  • 能够通过RDP客户端(例如mstsc)连接到节点

接入AD

提示

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

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

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

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