Skip to content


服务器简介

该服务器由两台纯CPU节点与一台GPU节点构成,并最终通过交换机与外界通信。

服务器的CPU共216核,内存750GB+,硬盘50TB+,GPU为A800 80G显存

服务器运行的系统为Rocky8.7,是一种基于RedHat的Linux系统

服务器当前配置情况

交换机通过一根网线接入了609实验室的路由器。服务器局域网ip地址为192.168.10.101,路由器局域网ip地址为192.168.10.254。

由于服务器已经接入实验室WiFi,用户直接连接HealthLAB WiFi即可登录服务器,密码为>|wifi密码|<

公共用户

为了方便大家入门体验服务器,目前服务器设置了一个公用用户,用户名为health,health用户密码为>|health用户密码|<

该用户有权限登录各个计算节点。大家可以在health用户下直接进行体验。需要个人账户的请单独联系系统管理员。

health用户的环境中安装了CUDA-12.1、cuDNN 9.1.1、miniconda3,并配置了虚拟环境"torch",并在"torch"中安装了pytorch-2.3。此外,也安装了Qwen2和Llamma3大模型。

如果对部分软件版本有不同要求,请通过conda创建新的虚拟环境自行安装。

登录方法(ssh)

常用ssh工具

可以使用electermvscode 这些ssh工具可以直接使用sftp协议传输文件,将本地文件拖拽到目录即可实现上传。

具体操作

1.连接实验室的HealthLAB(_5G) wifi

2.打开ssh工具(win用户可以按下win+r然后输入cmd再enter即可打开命令行,本小节以win终端为例)

3.在命令行按照如下形式输入指令,并回车

bash
ssh health@192.168.10.101

第一次可能会弹出一个提示,按照指示输入yes并enter即可

bash
Are you sure you want to continue connecting? [yes/no/[fingerprint]]
> yes

接着就会让你输入密码,此时输入>|health用户密码|<

bash
health@192.168.10.101's password:

输入过程中密码不显示是正常的,输完再enter,就能进入manage节点了

bash
(base) [health@manage ~]$

集群的三个计算节点分别叫cpu1, cpu2, gpu1。如果我们想登录相应的计算节点,只需要输入ssh+节点命即可,比如

bash
(base) [health@manage ~]$ ssh gpu1
Last login: Thu May  9 21:01:52 2024 from 192.168.10.101
(base) [health@gpu1 ~]$

想要退出这个节点,有两种方法,一个是输入exit并enter,或者按下Ctrl+D即可退到上一层。

Linux用户系统与文件系统简介

使用Linux系统,我们需要了解root用户与普通用户之间的差别,以及一些重要文件夹的含义

root用户是最高权限,电脑上所有的文件都是它的,权限位设置对其无效。

非root用户默认只对自己的home目录有完全的控制权限,对/tmp目录有读写的权限。

/tmp目录如其名,应该只在其中存放临时性文件,该目录在系统重启时会被清空。

/var、/usr、/bin、/opt等常见文件夹及子目录,几乎所有用户都能访问其中的文件和内容,执行可执行程序,但只有root用户和属主有写入的权限。

了解完权限,我们可以说明一下普通用户安装软件的问题。大部分软件默认安装路径是 /usr/bin 或 /usr/local/bin,安装时需要将可执行文件复制到这些目录下。普通用户没有目录的写权限,于是提示无权限导致安装失败。切换到root模式后,才能安装成功。

本服务器管理员会将软件安装在/usr/share/目录下,这样所有用户都可以访问

由于用户无root权限,只能将软件安装在自己的目录下

为了方便,可以将执行程序所在目录加入到path环境变量里。如果不更新path变量,则运行程序的时候需要指明路径。

Linux系统操作快速入门

新手善用AI,编程可选通义灵码插件

bash
[health@manage ws]$
#这是命令行前固有的前缀,health代表用户名,manage代表节点,ws代表当前目录

[health@manage ws]$ cd /share/home/health/
#cd <目录>,切换到某个目录
#此外一个点"."代表当前目录,两个点".."代表上一级目录
#"~"代表用户的主目录,比如health用户的主目录就是/share/home/health/
#因此本条语句也可以写为cd ~

[health@manage ~]$ pwd
/share/home/health
#pwd 输出当前目录

[health@manage ~]$ mkdir test
#新建目录

[health@manage ~]$ ls
miniconda3  test  ws
#列出当前目录下所有非隐藏文件和目录

[health@manage ~]$ ls -l
drwxr-xr-x 19 health normalgroup 4096 May  9 18:35 miniconda3
drwxr-xr-x  2 health normalgroup    6 May 10 01:58 test
drwxr-xr-x  3 health normalgroup 4096 May 10 13:28 ws
#列出当前文件夹下所有非隐藏文件,以及其所属用户、用户组、读写以及执行权限

[health@manage ~]$ touch hello.py
#在当前目录下新建一个hello.py的空白文件

[health@manage ~]$ vim hello.py
#使用文本编辑器vim打开hello.py这个文件,若无该文件,则自动新建
#vim打开后想要退出,应当先按esc,再按:和q
#vim具体使用教程请参考<https://www.runoob.com/linux/linux-vim.html>
#vim操作不需要记住那么多按键,只需要记住i是进入插入模式,esc进入命令模式,然后在命令模式下按:w是保存,:wq是保存退出,按:q!是不保存强制退出即可

[health@manage ~]$ python hello.py
#使用Linux自带python解释器运行.py文件

[health@manage ~]$ wget <download_link>
#使用wget把下载文件到~文件夹。实际使用时,把<download_link>整体替换成下载链接即可

[health@manage ~]$ tar -xvf <file_name>
#对压缩文件<file_name>进行解压,需要提醒的是Linux系统中常见的一种压缩文件的后缀为".xz"

[health@manage ~]$ tree
#显示当前文件夹下的文件树结构

[health@manage ~]$ cp <file_name> <dir_name>
#把文件<file_name>复制到<dir_name>文件夹

[health@manage ~]$ mv <file_name> <dir_name>
#把文件<file_name>移动到<dir_name>文件夹

[health@manage ~]$ mv <file_name1 <file_name2>
#把文件<file_name1>重命名为<file_name2>

[health@manage ~]$ bash hello.sh
#运行hello.sh这个脚本

[health@manage ~]$ ./hello.sh
#运行hello.sh这个脚本

[health@manage ~]$ cat hello.py
#打印hello.py这个文件里的内容

[health@manage ~]$ top
#查看系统运行状态,显示进程与资源占用情况。按Q退出

[health@manage ~]$ ifconfig
#查看网络信息

[health@manage ~]$ find ~ -iname "hello*"
#在~文件夹下,搜索所有文件名包含hello的文件

[health@manage ws]$ chmod u+x hello.py
#对hello.py文件给当前用户(u)添加执行权限(x)
#chmod具体使用可以参考<https://www.runoob.com/linux/linux-comm-chmod.html>

配置.bashrc文件

.bashrc 文件是一个重要的配置文件,用于在用户登录 shell 启动时自动执行一系列命令和设置环境变量。比如我们使用vim编辑该文件

bash
vim ~/.bashrc
# 按下i进入编辑模式,写入echo "hello"
# 按esc退出编辑模式,再按:wq保存并退出
# 则每次重启终端会在终端打印hello
# 用同样的方法可以配置环境变量,比如添加环境变量PATH,在.bashrc文件最后写入export PATH=$PATH:/usr/share/miniconda3/bin

快速使用

远程登录

当前已经搭建好了内网穿透,直接使用如下命令登录. 用户名可以填写自己的或者公用用户名。

bash
ssh <用户>@>|域名|< -p >|frp端口号|<

内网穿透云服务器带宽有限,为不影响其他人使用,远程登录时请勿传输超大文件(如大于20G)

软件使用

预装软件

公用软件安装在/usr/share/目录下,部分可以直接使用,部分需要用户进行一些配置。

用户首先需要将/usr/share/目录加入到path环境变量里。具体就是在~/.bashrc里添加

bash
export PATH=$PATH:/usr/share

自行安装软件

下载程序到自己的目录下,并加入到path环境变量里。 建议多使用podman或docker等容器化技术,容器化可以减少安装软件的步骤,并且可以减少权限问题。此处更推荐podman,因为podman无需守护进程,对非root用户更友好。

需要指出的是,由于dockerhub访问困难。这里推荐使用其他电脑pull镜像,使用save打包,然后上传到服务器中再load。

CUDA与CUDNN

本小节需要登录gpu1主机才能操作

公共账号health已经安装好CUDA、cuDNN、Pytorch,无需重复安装。 管理员将gpu节点的cuda安装在了/usr/local/下,且已经在/etc/profile.d/目录下配置了环境变量脚本,并且设置了权限。所以对于新建的普通用户,如果需要使用CUDA,可以直接使用如下命令

source /etc/profile.d/cuda.sh

之后再使用nvcc -V,可以看到cuda正常启动

自行安装CUDA

如果root的CUDA版本无法满足自己要求,那就要自行安装CUDA

在安装CUDA时需要挑选适合显卡驱动的版本。具体可以通过以下命令查看当前显卡驱动版本以及支持的最高版本CUDA

bash
nvidia-smi

此外,通过如下命令可以确定当前CUDA版本

bash
nvcc -V

要指出的是,只有root用户有安装显卡驱动的权限。普通用户在安装自己版本的CUDA时,会遇到权限不足的情况。

此时应当在CUDA安装程序中选择Options,并分别将CUDA Toolkit安装路径以及Library的安装路径都修改到自己的用户目录下,例如

bash
/share/home/health/cuda-12.1/

安装完成后,在.bashrc文件中按照安装结束的提示添加环境变量。

bash
export PATH=/share/home/health/cuda-12.1/bin:$PATH
export  LD_LIBRARY_PATH=/share/home/health/cuda-12.1/lib64:$LD_LIBRARY_PATH

普通用户在安装cuDNN时,注意不要下载rpm文件,而应该选择resources中的Tarball and Zip Archive。复制下载链接,使用wget下载文件

bash
[health@gpu1 ws]$ wget <download_link>

然后对文件进行解压

bash
tar -xvf <file_name>

例如我这里解压得到如下文件

bash
[health@gpu1 ws]$ tree -L 1 cudnn-linux-x86_64-9.1.1.17_cuda12-archive
cudnn-linux-x86_64-9.1.1.17_cuda12-archive
├── include
├── lib
└── LICENSE

这里我们需要把include和lib文件夹的文件复制到cuda文件夹中相应位置,并赋予权限

bash
[health@gpu1 ws]$ cp ./cudnn-linux-x86_64-9.1.1.17_cuda12-archive/include/cudnn* ../cuda-12.1/include/
[health@gpu1 ws]$ cp ./cudnn-linux-x86_64-9.1.1.17_cuda12-archive/lib/libcudnn* ../cuda-12.1/lib64/
[health@gpu1 ws]$ chmod a+r ~/cuda-12.1/include/c* ~/cuda-12.1/lib64/libcudnn*

实验室数据备份

目前,单独设置了一个labserver用户,用于配置备份实验室重要数据。数据放在文件夹/share/home/labserver/_Backup/下。

命令行上传文件到服务器可以参考scp命令使用方法

ftp服务

已安装vsftpd服务,端口号21。目前ftp服务使用本地用户模式,当前有一个health用户,默认进入用户的主文件夹。

ftp使用方法

以windows为例,打开文件管理器,在文件管理器的搜素框内输入ftp://health@192.168.10.101:21 并enter,会提示输入health用户的账号与密码,输入后即可在windows的资源管理器中看到服务器中的文件,并可以进行编辑、新建、删除。

若创建了用户user01,则通过在文件管理器的搜素框内输入ftp://user01@192.168.10.101:21可以进入user01自己的主目录。

需要提示的是,切换用户时,应当在文件管理器中右键,选择“登录”,然后输入新的用户。 除此之外,还可以使用FileZilla这类更好用的开源ftp工具 FileZilla下载链接为https://filezilla-project.org/

手机上可以通过ftp工具直接与服务器进行通信,将手机文件上传至服务器,或从服务器下载相关文件。

此外,移动端同样可以使用ssh工具直接对主机进行管理

安卓可以下载FTP Client或ConnectBot等类似工具实现

其他计算业务

服务器除了进行存储、AI以外,还可以用于科学计算仿真领域。但是该领域开源软件较少,需要用户自行配置安装相关商业软件。