Appearance
服务器简介
该服务器由两台纯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工具
可以使用electerm或vscode 这些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以外,还可以用于科学计算仿真领域。但是该领域开源软件较少,需要用户自行配置安装相关商业软件。