简单计算集群的搭建
这是北师大理论宇宙学课题组的小型计算集群的使用说明以及搭建过程。
使用计算集群
分为普通用户的使用和管理者的使用。
普通用户
- 三个主机分别是novamaria、vivy和diva,需要使用校园网登录。三台主机之间互相知道对方的主机名,如果你已经登录到novamaria上,可以直接通过
ssh diva
或者ssh vivy
访问另外两台主机。 - 修改密码需要在三台主机上都进行修改。
- 三个主机的用户目录
/home
内容一致,在novamaria上编辑的脚本,在vivy上也能看到,普通用户只需要选择一个计算资源宽裕的主机进行计算。 - 文件夹
/data
是用来存放大型数据的(比如模拟等),程序脚本可以存放到各自用户目录下,/data
文件夹一共44T的存储空间,存放数据的时候注意用df -h
查看还有多少余量,不要超过存储上限,不然别人的数据就被覆盖了。 - 在
/share
文件夹里有常用的公共资源,比如Anaconda3和Anaconda2的安装包等。如果对共享资源有别的需要可以直接提意见。 - 如需连网可以使用深澜命令行客户端登录校园网关,在
/share
里也有资源。 - 服务器大家一起共享,请大家为其它跑程序的同学考虑一下!一个用户最多占用所有计算资源的70%,也就是占满两台服务器左右,发现非法占用直接杀死进程,如果要跑大型并行程序,到vivy和diva上跑,因为novamaria是集群主节点,很多数据传输的工作在此服务器上进行,跑满的话所有
/home
下的操作都会变慢。 - 有需要用
sudo
安装的包软件,直接提意见。
管理者
新建用户
因为没有NIS服务,所以创建新用户的时候需要在三个节点上都创建用户,具体操作
sudo adduser foo # 在三个主机上都新建同样的用户并查看UID和GID是否一致 |
删除用户
sudo deluser foo |
需要注意的是useradd
和adduser
并不一样,userdel
和deluser
并不一样。
搭建计算集群
搭建小组成员:刘晋弋,申嵩聿,王正一,韩嘉康,李竹海,贾涵筇,胡老师
服务器放置地点:科技楼A229小黑屋
三台服务器是一模一样的机型和配置,每个服务器有58个核,1T的固态硬盘和4T的机械硬盘,非常适合搭建计算集群。
TODO
- 在这里
/etc/update-motd.d
更改欢迎语 - 调整风扇转速,风扇转速上限解锁
- 免VPN校外登录
- 听说有一个只能在自己目录下面
sudo
的东西
准备工作
硬件准备
插线板
千兆交换机
显示器
键盘
五类网线四根
Ubuntu Desktop 18.04 LTS启动盘
系统重装
使用Ubuntu Desktop 18.04 LTS启动U盘重装系统。如果存在硬盘清理不干净的情况,可以使用Security Erase来清理所有固态和机械(耗时较长),再进行安装系统的过程。三台服务器健康状况良好。
网络配置
服务器之间使用千兆交换机连接(最大传输速度为125 Mb/s),所有服务器在校园网内随意连接。
Hostname | IP |
---|---|
novamaria | xx.xx.xx.133 |
vivy | xx.xx.xx.60 |
diva | xx.xx.xx.201 |
需要注意的是,尽量使用独立网卡,使用ifconfig
可以查看有几个网卡,独立网卡名称开头是enp,集成网卡名称开头是eno。
服务器最好使用静态IP(Static IP)而不是动态IP(DHCP),但是因为在校园网内部IP和网卡MAC是绑定的,IP够用的情况下不会出现IP被占用的情况,所以这里不进行设置,如果因为机器重启导致IP发生变化,直接修改机器配置即可。
软件安装
下面是一些之后需要用到的软件,先提前安装好
$ sudo apt-get update |
SSH
这一步使得三台服务器之间能够通过主机名直接访问,在/etc/hosts
中添加
# IP Hostname |
之后我们将novamaria称为主节点,作为各项服务的服务端,其它两个主机作客户端。如果需要进一步配置免密访问,可以先用ssh-keygen
生成密钥和公钥,然后再ssh-copy-id
将公钥复制到另外两台服务器上。
NFS
网络文件系统(Network File System)是用来在不同主机之间共享文件的,参考了How To Set Up an NFS Mount on Ubuntu 18.04和 Linux下配置NIS和NFS /home目录。
这里主要说明如何实现/home
文件夹的NFS部署过程。后续可以在vivy上部署/opt
文件夹用来共享一些比如OneAPI之类的计算包,也可以在diva上部署/share
文件夹用来存放公共资源,更好地利用三个服务器的固态。
NFS服务端
在novamaria上编辑/etc/exports
文件,添加下面两行
/home xx.xx.xx.60/24(insecure,rw,sync,no_root_squash,no_subtree_check) |
然后sudo exportfs -a
,重启NFS服务
sudo service nfs-kernel-server restart |
NFS客户端
先将原来的/home
进行备份(放置后续操作失误),在vivy和diva上编辑/etc/fstab
文件,添加下面一行就可以重启进行挂载
novamaria:/home /home nfs noatime,noauto,x-systemd.automount,x-systemd.device-timeout=10s 0 2 |
最后需要重启服务端和客户端。
GlusterFS
GlusterFS是分布式文件存储系统。首先将每个计算节点上的四块机械硬盘整合到一个逻辑卷中(如何在Linux中创建/配置LVM),可以通过lsblk
查看未挂载的机械硬盘的设备名,确认需要纳入逻辑卷中的设备名
sudo pvcreate /dev/sda /dev/sdb /dev/sdc /dev/sdd # create physical volumn |
然后在/etc/fstab
里添加
/dev/vg/lva /glusterfs xfs defaults 0 0 |
当每个计算节点上4块机械都整合到一个逻辑卷中之后,进行GlusterFS的搭建(如何在Ubuntu 18.04上使用GlusterFS设置高可用性存储),首先在每个节点上启动并查看GlusterFS的状态
sudo systemctl start glusterd |
在主节点novamaria上配置信任池
sudo gluster peer probe vivy |
此时信任池是空的,创建完之后可以在vivy或者diva上查看信任池状态。在novamaria上创建卷
sudo gluster volume create gfsv transport tcp {novamaria,vivy,diva}:/glusterfs/brick |
gfsv是GFS Volume的缩写,这里需要注意我们不需要进行备份,在创建卷的时候没必要加上replica这个参数。查看卷的信息,启动卷
sudo gluster volume info |
然后在主节点novamaria进行挂载,机械硬盘主要用于存储数据所以命名为/data
sudo mkdir /data |
在diva和vivy中的/etc/fstab
文件里添加下面这一行(NFS)
novamaria:/gfsv /data glusterfs defaults,_netdev 0 0 |
可以使用df -h
查看GlusterFS在novamaria上的挂载情况。
/data
平均读出速度达到220M/s,平均写入速度达到100M/s,对比之下非分布式的系统(也就是在同一个主机内进行读写操作)可以达到的读写速度分别是330M/s和180M/s,而远程文件系统(通过网线进行传输)受限于网卡、交换机的带宽,仅能达到读写速度110M/s和50M/s,GlusterFS总体而言是它们的平均值,也可以看到分布式存储的特点。
失败的NIS
网络信息服务(Network Infomation Service)提供共享用户信息,一个用户在Server上可以登录,那么在Client上也能登录,共享了用户、群组的信息。配置分为Server端和Client端。参考这些资源
NIS Installation and Configuration
[How-To] Automounting Home Directories with NIS and NFS
nstalling NIS server on Ubuntu 18.04 LTS
总结下最近建立集群的步骤以及NIS服务器搭建
因为有严重的BUG没有解决,做完NIS之后Client端登录会明显变慢,最终并未做成 NIS 服务!