第5 科研设备

本研究组有四台供组员使用的计算服务器和一套网络存储。四台服务器分别为 Windows Server 远程桌面、Ubuntu 远程桌面、多节点高性能计算集群(SHUDHPC)和 GPU 服务器。

5.1 快速选择平台

如果你只想先知道“我现在该用哪个平台”,可以先看下面这份导读:

  • 想存文件、同步资料、共享数据:先看 NAS 网络存储
  • 想使用 Linux 图形界面做日常工作:先看 Ubuntu 服务器(uDesk)
  • 想使用 Windows 软件、Office、ArcGIS:先看 Windows 远程桌面
  • 想提交批量计算任务、跑长时间作业:先看 SHUDHPC 高性能计算集群
  • 想运行 GPU 任务、大模型或深度学习任务:先看 GPU 服务器

各服务器访问地址与 IP 如下:

平台 主机名 公网地址(域名/IP) 内网IP地址 端口转发地址 推荐用途
计算集群 xnode hpc.shud.vip; ssh.shud.vip (210.77.77.22) 10.0.1.100 210.77.77.25:318xx 批量计算、Slurm 任务、RStudio Server
GPU 计算服务器 gpu 10.0.1.98 GPU 计算、深度学习、模型推理
Ubuntu 远程桌面 uDesk udesk.shud.vip (210.77.77.23) 10.0.1.23 210.77.77.25:319xx Linux 图形桌面、R/QGIS、可视化操作
Windows 远程桌面 Win-Desk wdesk.shud.vip (210.77.77.24) 10.0.1.24 210.77.77.25:320xx Office、ArcGIS、Windows 图形软件
路由器 H3C router.shud.vip (210.77.77.25) 10.0.1.1 端口转发、外网入口
NAS 共享网盘 shudxyz nas.shud.vip (210.77.77.36) 10.0.1.26 文件同步、共享存储、数据备份

注意:SSH 登录端口统一为 32099。

SHUDHPC 与 uDesk 通过 NIS 共享同一套账户系统,因此,在 SHUDHPC 和 uDesk 上的登录账户和用户主目录完全相同;uDesk 支持 Linux 图形桌面,方便用户进行可视化操作。

所有主机照片
所有主机照片

5.2 NAS 网络存储

本组使用群辉 DS1821+ 搭建了 100 TB 的网络存储空间,供组内成员和合作者使用。

本组 NAS 网络存储支持以网络磁盘方式远程访问,也可以使用 SFTP、Synology Drive、rsync、SMB、AFP、NFS 等方式访问。

5.2.1 账号开通/注销

  • 账号开通

    • 在加入本组后,向 PI 报告你的邮箱;由 PI 为你开通账号,并告知用户名和密码。
    • 账号的权限等级由个人身份决定,不同权限对 NAS 的读写权限略有不同。
    • 账号开通后,你会收到一封邮件,邮件中包含 NAS 服务的访问地址。请在收到邮件后登录 NAS 页面,并修改密码。
  • 账号注销

    • 成员离开本组后,账号会继续保留至少一年。
    • 你可以在一年内备份个人网盘内的数据。一年后,你的账号将被删除,无法再访问 NAS 系统。

5.2.2 NAS 文件结构

当前 NAS 的文件结构与读写权限见下图:

NAS上的文件结构与权限
NAS上的文件结构与权限

更具体的信息见下表:

文件夹 学生权限 合作者权限 容量 注意事项
homes 无限 所有用户文件都存放于此,普通用户无法访问
home 读写 读写 10TB 用户个人主目录,其他用户无法访问
SpatialData 只读 只读 10TB 仅特定用户有权更新
ForcingData 只读 只读 10TB 仅特定用户有权更新
SHUDgroup 读写 读写 10TB 组内成员间自动同步。勿随意存放文件
Shared 读写 读写 10TB 共享资源
Download 读写 读写 无限 文件临时存放。所有人可写,勿长期存放重要文件
Baomi 无限 保密数据,仅在特殊需要时共享给指定用户

5.2.3 访问 NAS

5.2.4 NAS 作为网络磁盘

  • macOS

    • 打开 Finder(访达),然后使用键盘 Cmd + K 访问网络地址。
    • 在打开的窗口中输入:afp://nas.shud.vip 或者 afp://210.77.77.36,然后点击 连接(Connect)
    • 然后系统会提示你输入 用户名和密码
    • 选择你需要加载的磁盘。
  • Windows

    1. 打开文件资源管理器,找到 映射网络驱动器(Map network drive)

    1. 在打开的窗口中输入需要加载的 磁盘 IP 和路径,例如 \\nas.shud.vip\home 或者 \\nas.shud.vip\ForcingData,点击 完成

    1. 根据提示框输入登录 NAS 使用的 用户名与密码,点击 OK

    1. 然后系统会加载指定的网络磁盘,映射其为本地磁盘。此后该网络磁盘将可以像一般本地磁盘一样操作。

:如果在 Windows 远程桌面(Win-Desk)上加载 NAS,使用本地 IP(10.0.1.x 段)可以显著提高网络磁盘的读写速度。

5.2.5 云盘 Synology Drive

这应该是进入本组后第一个要学会的软件。软件的安装和使用都非常简单,但你真正需要学会的是重新思考:

  • 如何组织自己的文件?
  • 如何高效地定位自己的文件?

加入本组后的工作文件原则上都在 Synology Drive 上进行同步。同步文件夹中的内容仅自己可见,其他用户无法看到。文件备份在 NAS 云端,因此你在任何地点、任何电脑上都可以查看或编辑云盘中的文件,不会出现 “电脑坏了,文件丢失”“文件染病毒打不开”“电脑忘记带了,没法交作业” 的情况。

注意:Synology Drive 使用中有 同步(sync)备份(backup) 两种模式,建议优先使用 同步模式,保证每一次保存的文件都能实时同步到云端。是否启用备份模式,可以自行选择。

5.3 Windows 远程桌面

适合使用 Office、ArcGIS、Windows 专用软件,以及需要图形界面的轻量交互式工作。

服务器硬件配置

类别 配件 参数 备注
平台 浪潮雷神SA5212 H5 12盘位2U机架式服务器
CPU 至强Xeon 金牌 6133 每CPU 20核40线程,2.5GHz 双CPU
内存 192GB DDR4 2666 MHz,12 x 16GB 6通道内存,12条
硬盘 U.2 NVME 2TB
网卡 10Gbps 光口

5.3.1 操作系统与软件

  • 操作系统:Windows Server 2019,支持远程 GUI 登录。
  • Office:Microsoft Office 365
  • 文本编辑器:Notepad++、vim
  • PS 工具:GIMP
  • GIS 软件:ArcGIS、QGIS
  • 编程:Visual Studio Code
  • R:R、RStudio
  • 计算:Octave
Windows系统基本信息
Windows系统基本信息

5.3.2 登录方式

  • 软件:Microsoft Remote Desktop
  • 登录地址:wdesk.shud.vip
  • 登录 IP:210.77.77.24
  • 端口:默认
  • 转发 IP:210.77.77.25
  • 转发端口:32010
  • 推荐在 Microsoft Remote Desktop 的 PC name 中直接填写域名或 IP

示例:

  • 域名方式:在 PC name 中填写 wdesk.shud.vip
  • IP 方式:在 PC name 中填写 210.77.77.24
Microsoft Remote Desktop界面
Microsoft Remote Desktop界面
Microsoft Remote Desktop登录配置
Microsoft Remote Desktop登录配置

5.4 Ubuntu 服务器

适合使用 Linux 图形界面开展日常科研工作,如 R、QGIS、可视化和一般开发。

服务器硬件配置

类别 配件 参数 备注
平台 浪潮雷神SA5212 H5 12盘位2U机架式服务器
CPU 至强Xeon 金牌 6133 每CPU 20核40线程,2.5GHz 双CPU
内存 16GB x12 DDR4 2666 MHz,16GB x12 6通道内存,12条
硬盘 U.2 NVME 2TB
网卡 10Gbps 光口 两路光纤

5.4.1 操作系统与软件

  • 操作系统:Ubuntu 20.04,支持远程 GUI 登录。
  • 远程桌面系统:xfce4
  • GIS软件:QGIS 3.10
  • R:R、RStudio
  • 计算:Octave
uDesk基本配置
uDesk基本配置

5.4.2 SSH 登录

公网IP登录

  • 登录地址:udesk.shud.vip
  • 登录 IP:210.77.77.23
  • 软件:ssh(命令行)
  • 端口:32099

示例(域名):

ssh <username>@udesk.shud.vip

示例(IP):

ssh <username>@210.77.77.23

路由器转发登录

  • 登录地址:router.shud.vip
  • 登录 IP:210.77.77.25
  • 软件:ssh
  • 端口:32022
访问端口 服务器SSH端口
32022 32099

示例(域名):

ssh -p 32022 <username>@router.shud.vip

示例(IP):

ssh -p 32022 <username>@210.77.77.25

5.4.3 VNC 远程桌面

  • 软件:VNC(远程桌面)
  • 端口:共 20 个端口,最多支持 20 个 VNC 远程桌面,端口对应关系如下表:
访问端口 服务器VNC端口
32001 5901
32002 5902
32003 5903
320xx 59xx
32020 5920

Ubuntu 服务器端配置:建立 VNC 密码,并修改 ~/.vnc/xstartup 文件。

vncpasswd
touch ~/.vnc/xstartup
chmod +x ~/.vnc/xstartup
vim ~/.vnc/xstartup

在文件中输入以下内容:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &

登录远程桌面:

  1. 在服务器端启动 vncserver-geometry 参数可以设置远程桌面的分辨率。以下命令三选一:

    vncserver -geometry 1440x900
    vncserver -geometry 1920x1080
    vncserver -geometry 2560x1440
  2. 然后使用 ss -ltn 查看当前 VNC 桌面的端口号。默认第一个 VNC 桌面端口号为 5901,第二个为 5902,以此类推;或者通过命令 vncserver -list 查看。使用路由器端口转发时,需要将 590x 端口转换为 320xx 端口,转换规则见前表。如果直接使用服务器公网 IP,则直接使用 590x 端口。

  3. 在客户端启动 VNC 工具,访问 [serverIP]:[端口号]。如使用公网域名或公网 IP,且 VNC 服务端口为 5904:

    域名方式:

    vnc://udesk.shud.vip:5904

    IP 方式:

    vnc://210.77.77.23:5904

    如使用路由器域名或路由器 IP,且 VNC 服务端口为 5904,则转发端口为 32004:

    域名方式:

    vnc://router.shud.vip:32004

    IP 方式:

    vnc://210.77.77.25:32004
  4. 完成远程桌面工作后,退出 vncserver 时,需要关闭相应的 VNC 服务器,请在远程服务器端输入:

    vncserver -kill :4

使用完远程桌面后,请主动关闭该 vncserver

5.5 GPU 服务器

适合需要 GPU 的训练、推理和高显存任务,不建议作为日常通用桌面环境使用。

GPU 服务器配置:

类别 配件 参数 备注
平台 浪潮雷神SA5212 H5 12盘位2U机架式服务器
CPU 至强Xeon 金牌 6133 每CPU 20核40线程,2.5GHz 双CPU
内存 32GB x12 DDR4 2666 MHz,384GB 6通道内存,12条
硬盘 U.2 NVME 2TB
GPU NVIDIA V100 24GB HBM2 4卡
网卡 10Gbps 光口 单光纤
网卡 100Gbps IB光口 IB

5.5.1 操作系统与软件

  • 操作系统:Ubuntu 22.04,支持远程 GUI 登录。
  • LLM 模型:Ollama

5.5.2 登录方式

  • 先通过 SSH 登录计算集群
  • 然后使用 ssh 登录 GPU 服务器:ssh gpu

5.6 SHUDHPC 高性能计算集群

高性能计算机(High-performance computer,HPC)是由多台计算机构成的服务器集群(cluster)。HPC 主要由计算服务器、管理服务器和存储服务器组成,但只设有一个登录入口。用户登录到 HPC 后,只需将需要计算的相关任务提交至超算平台,平台计算任务调度系统将根据任务需求和实际可用资源对任务进行排队和资源分配。

适合批量任务、并行计算和长时间计算;不适合作为日常图形桌面使用。

slurm集群基本结构(来自:https://slurm.schedmd.com/overview.html)
slurm集群基本结构(来自:https://slurm.schedmd.com/overview.html)

5.6.1 快速登录

  • 访问地址: hpc.shud.vip
  • 访问 IP:210.77.77.22
  • SSH 端口:32099
  • 网页 SSH 访问:ssh.shud.vip
  • RStudio Server 访问:rstudio.shud.vip

示例:

5.6.2 服务器硬件配置

大类 平台 参数 备注
平台 高性能计算集群 24 计算节点,1 登录节点,1 高速存储 56G IB 网络,10G 以太网
登录节点 超聚变2288 V6 2x 至强6318Y (56核),128G,2TB U.2 NVME
存储 超聚变2288 V6 14x 16TB, RAID 5 173TB可用
全闪存储 泰安3036 12x 3.76TB, ZFS RAIDZ2 34TB可用
计算节点 超微24节点高密计算平台 每节点:至强6133 40核(2x 20),192GB内存
IB交换机 SX6025 36x 56Gbps InfiniBand
万兆以太交换机 IBM 48x 10Gbps,4x 40Gbps 全光口
千兆以太交换机 H3C 48x 1Gbps 全光口

5.6.3 SHUDHPC IP 地址配置

节点 主机名 万兆IP InfiniBand IP地址
登录节点 xnode 10.0.1.100 10.0.2.100
全闪存储 flash 10.0.1.99 10.0.2.99
存储 stor 10.0.1.100 10.0.2.100
计算节点 cn\[01-24\] 10.0.1.101~124 10.0.2.101~124

5.6.4 操作系统与软件

  • 操作系统:Ubuntu 20.04,仅支持命令行登录。
  • 作业调度:Slurm
  • R:R
  • 计算:Octave

5.6.5 存储信息

假设用户名为 <username>

目录 所属 权限 使用规则
/volume/repo/<username> 用户冷数据空间 700 用于存放用户程序、文件等,限 10TB 容量
/users/<username> 用户主目录 700 仅用于编译、文件库等文件存放;禁止大文件,禁止计算。
/scratch/<username> 高速计算空间 700 可进行计算任务,任何超过 60 天的文件会自动删除
/volume/data 冷数据盘 777 公共空间。请勿存储个人数据
/tmp* 临时数据 777 公共临时目录;如需高速运算,输出数据可存在/tmp里面
/opt 软件安装/编译盘 755 公共程序安装目录

:每一个计算节点上都有 /tmp 目录,该磁盘属于计算节点的 U.2 NVMe 高速磁盘,写入速度约为 2000 MB/s,因此计算结果写入 /tmp 的速度最快。但是,当计算完成后,用户无法直接访问计算节点上的 /tmp。例如:用户在主节点 xnode 上提交任务(./shud -o /tmp/ccw.out ccw)给 cn01 节点,计算过程中,cn01 上的任务将结果保存在 cn01:/tmp/ccw.out 中。但是,当任务完成后,用户无法直接访问 cn01:/tmp 下的文件,只能访问到 xnode:/tmp 下的文件。因此,如果任务提交时选择写出到 /tmp,那么需要在任务脚本中加入将 /tmp/ccw.out 拷贝到用户个人目录的命令,以保证用户可以获得计算结果。

5.6.6 账户与使用规则

以下内容只保留相对稳定的使用原则。密码复杂度要求、账户冻结周期、目录清理周期、配额策略等可能随系统管理策略调整,最新要求以超算登录页面、系统公告和管理员通知为准。

  • 超算账号仅限本人使用,严禁将账号借给他人。
  • 首次登录后应立即使用 passwd 修改密码,并定期更新;密码长度、复杂度和更新周期以系统实时要求为准。
  • 计算任务应优先在 /scratch/<username> 目录中运行,不应在 /users/<username> 下进行正式计算。
  • /users/<username> 主要用于个人环境、脚本、小文件和配置,不适合作为计算目录。
  • /scratch/<username> 是高速计算空间,适合存放计算过程文件和中间结果;需要长期保留的数据应及时备份到 /volume/repo/<username>
  • 大规模计算任务应通过 Slurm 提交到计算节点,非必要不应在主节点直接运行。
  • 非必要不使用 Slurm 的 exclusive 选项。
  • 如遇登录异常、权限异常或容量异常,应先查看系统公告,再检查个人目录状态,并及时联系管理员或 PI。

5.6.7 用户管理

  • <username>:一般用户

研究组的每个成员将获得一个登录账号,账号类型为超算一般用户,具有提交任务的权限。如果任务需要特殊要求,请与PI进行沟通。

5.6.8 作业管理 Slurm

SLURM(Simple Linux Utility for Resource Management)是一个流行的开源作业调度和集群管理系统,主要用于高性能计算和科学计算领域。SLURM 的主要特点包括:灵活的资源管理、可扩展性、高可用性、高可靠性,以及多种作业调度算法和管理工具等。

在 SLURM 中,用户提交的作业会被分配到可用的计算节点上进行计算。SLURM 会根据可用资源情况,按照用户指定的优先级和作业调度算法安排作业的执行顺序,以最大化集群的利用率和性能。同时,SLURM 还提供了一系列管理工具,如节点管理、队列管理、用户管理、资源限制等,方便管理员对集群进行管理和监控。

SLURM 的使用十分广泛,被许多知名的超算中心采用。

当前 24 个计算节点全部归属同一个计算分区(partition):partition = suan

命令示例:

srun -N 5 -n 5 hostname  #5个节点,5个CPU
srun -N 5 -n 50 hostname  #5个节点,50个CPU

代码示例1:

#!/bin/bash
#SBATCH --job-name=hostname
#SBATCH --partition=suan # 计算分区名称。
#SBATCH -N 1 # 计算节点数量
#SBATCH --mail-type=end  
#SBATCH --mail-user=YOU@EMAIL.COM
#SBATCH --output=%j.out  # 屏幕输出文件
#SBATCH --error=%j.err  # 屏幕错误信息输出文件。

/bin/hostname

以上代码保存为 submit1.sh。然后在命令行中执行以下命令:

sbatch submit1.sh

代码示例2:

#!/bin/bash
#
#SBATCH --job-name=echo_number # 任务名称
#SBATCH --output=slurm_%j.out # 屏幕输出及错误信息输出文件。
#SBATCH --ntasks=30  # CPU数量。

for i in {2000..2030}
do
    srun -n1  --exact  echo  $i &
done
wait

开启交互模式:

srun --nodes=1 --ntasks-per-node=1 --time=01:00:00 --pty bash -i

最简单的 SHUD 模型 Slurm 任务案例:

slurm任务案例
slurm任务案例

Slurm 教程参考:

5.6.9 Slurm 使用注意事项

  1. 不要使用主节点进行计算工作,任务全部通过 Slurm 提交到计算节点。
  2. 不要使用 exclusive 选项。如果确实有必要,请提前告知 PI 和其他组员。
  3. 如果计算任务的数据写入量巨大,临时数据(药渣数据)请存放到 /tmp 目录下,该文件夹是计算节点的 /tmp;然后修改程序,在程序结束之后从 /tmp 目录下移动或复制数据到 /users/<username>/volume/repo/<username> 等个人文件夹,再做数据后处理。

注意,移动 /tmp 下文件的操作需要体现在提交 Slurm 的脚本或者程序中。因为如果 Slurm 计算任务结束之后,你在主节点上访问到的 /tmp 是主节点的 /tmp,将无法再访问计算节点的 /tmp 文件夹。

5.6.10 常见错误与提醒

  • 不要在 SHUDHPC 主节点上直接计算,所有正式任务都应通过 Slurm 提交。
  • /tmp 适合存放中间结果,但任务结束后需要主动拷回个人目录,否则后续可能无法访问。
  • 使用 vncserver 后请及时关闭,避免长期占用远程桌面端口。
  • Download、共享目录和公共目录不适合长期保存个人重要文件,重要文件应放在个人目录或同步目录中。
  • 访问服务器时,优先使用域名;在远程桌面或内网环境中访问 NAS 时,可改用内网 IP 提升速度。
  • SHUDHPCuDesk 共享同一套账户系统,请注意两者的主目录和账号信息是一致的。