It has been 609 days since the last update, the content of the article may be outdated.
场景 之前课题组就有一个磁盘阵列,大概是2018年购置的,raid6的阵列,一共130TB的净存储空间。实话说已经不小了,奈何GPM DPR和ENV的数据太过巨大,原始数据迅速就塞满了,后来大家就到处找空间。我做一次反演,原始数据倒要分好几段存储,苦不堪言。 这次又添置了一个新的阵列,瞬间富裕起来了。36*12T的raid6,6块用于热备份,净空间有328T。 预装的系统为 Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-58-generic x86_64)
,大爱ubuntu。
要立即用起来,那就要挂载到计算节点上。之前是学校超算的老师过来操作的。当时不在场,小磁盘挂载还是操作过的,决定自己来。 机房的结构大致是这样的,机柜之间有一些飞线。pdu使用的美标,没有画出来,但是加机器时需要提前准备好特用的电源线。
机架结构
计算节点和存储阵列的网络关系如下,node01
和node05
是可以独立登录的,拥有静态互联网IP,可以校内访问。 两个Raid阵列也是可以校内登录的。所有节点和阵列使用静态局域网ip地址进行通讯。
集群网络
dataserver2有两个网线,一根接校园网交换机,自动获取ip 222.195.xxx.xxx。另一根插在局域网交换机上。
目前的任务: 1. 开启openssh服务 2. 设置静态局域网ip 3. 设置NFS系统共享 设置远程登录 user@dataserver2:~$sudo apt install openssh -server user @dataserver2 :~$sudo service ssh start |restart |status user @dataserver2 :~$ps -e | grep ssh 967 ? 00:00:00 sshd 2000 ? 00:00:00 ssh -agent 设置开机启动服务 user @dataserver2 :~$sudo systemctl enable ssh
这个时候一般就可以远程登录到22端口了,如果失败,无非是去配置中修改允许远程登录,允许密码登录等。
[C:\~]$ ssh usr@222 .195 .xxx.xxx
网络通远程登录 如果需要远程上网,需要登录学校网络通,LUG@USTC提供了各种版本的登录脚本。
一般wget
是自带的,所以用这个,更多方式请访问【USTC 网络通脚本】
wget --post-data="name=user&password=passwd&cmd =set &type =1 &exp=0 " http://wlt.ustc.edu.cn/cgi-bin/ip -O - #type :出口 #exp = 0 :永久 120 :动态 3600 : 1 小时 14400 :4 小时 39600 :11 小时 50400 : 14 小时
设置静态子网IP 校园网的IP地址是用于ssh远程登录用的,所以对于集群来说意义不大,可以暂时不用设成静态的。 但是局域网的ip就必须是静态的,否者变化会导致机器之间互联失败。
user@dataserver2:~$ sudo apt install net -tools user @dataserver2 :~$ ifconfig user @user -RS540 -E9 -RS36 -E :~$ ifconfig enp23s0f0 : flags =4163<UP ,BROADCAST ,RUNNING ,MULTICAST > mtu 1500 inet xxx.xxx.xxx.xxx netmask 255.255.255.0 broadcast xxx.xxx.xxx .255 inet6 xxxx:xxx :xxx:xxx :xxxx:xxxx :xxxx:xxxx prefixlen 64 scopeid 0x0 <global > inet6 xxxx:xxx :xxx:xxx :xxxx:xxxx :xxxx:xxxx prefixlen 64 scopeid 0x0 <global > enp23s0f1 : flags =4163<UP ,BROADCAST ,RUNNING ,MULTICAST > mtu 1500 ether xx:xx :xx :3x :8x:ax txqueuelen 1000 (以太网) ...... lo : flags =73<UP ,LOOPBACK ,RUNNING > mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 <host > ......
两个网卡:
enp23s0f0连接了互联网,有自动获取的IPv4 和IPv6地址,掩码,网关等。
enp23s0f1连接到局域网,没有IP地址,这里需要手动配置。
我选择的是在ubuntu的网络界面的手动的配置,参数如下:
选择手动 地址:192.168.1.106 子网掩码:255.255.255.0 网关:192.168.1.1 首选DNS服务器:192.168.1.1 备用DNS服务器:192.168.1.1
如果用脚本配置,ubuntu 17.10 之前采用的网络配置是编辑/etc/network/interfaces
auto lo iface lo inet loopback auto enp23s0f1 iface enp23s0f1 inet static address 192.168.1.106 netmask 255.255.255.0 gateway 192.168.1.1
然后重启网络sudo /etc/init.d/networking restart
这种方式我在在20.04版本中使用enp23s0f1直接没了,网上的经验设置一堆东西,裂开。。。
ubuntu 18.04开始在改成netplan方式,配置写在/etc/netplan/01-netcfg.yaml或者类似名称的yaml文件里。 修改yaml配置文件
network: ethernets: enp23s0f1: addresses: [192.168 .1 .l06/24 ] dhcp4: no optional: true gateway4: 192.168 .1 .1 nameservers: addresses: [192.168 .1 .1 ,192.168 .1 .1 ] version: 2 renderer: networkd
配置生效
$sudo netplan apply $ifconfig enp23s0f1: flags =4163<UP ,BROADCAST ,RUNNING ,MULTICAST > mtu 1500 inet 192.168.1.106 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80 ::8a1b:f67b :658a:b5d prefixlen 64 scopeid 0x20 <link >
NFS配置 下面的内容就是之前一篇文章说过的,但是要更细。 给dataserver2配置nfs文件
$sudo apt install nfs-kernel-server $sudo vim /etc/exports ##添加 /home/d1 192 .168 .1 .1 /24 (rw,no_root_squash,async,no_subtree_check)
/home/d1
就是要共享出去的磁盘。 磁盘阵列是通过UUID(Universally Unique Identifier)开机识别挂载在/home/d1
下的,如下。挂载点有点迷惑,懒得改了。
usr@dataserver2:~$ cat /etc/fstab # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/sdb3 during installation UUID=6a78e337-c489-4e02-89b4-475082eecc20 / ext4 errors=remount-ro 0 1 # /boot was on /dev/sdb1 during installation UUID=dc675322-a343-4f30-b6d2-dae3b520b031 /boot ext4 defaults 0 2 # /home was on /dev/sdb4 during installation UUID=2409b86a-5035-41d1-88be-3e4ba8f24a8e /home ext4 defaults 0 2 # /home/d1 was on /dev/sda1 during installation UUID=a5798281-8081-4ce6-b495-1d27412e6125 /home/d1 xfs defaults 0 0 # swap was on /dev/sdb2 during installation UUID=0b70f6a0-4b4e-48b6-a12c-fa710d085c39 none swap sw 0 0
关于(rw,no_root_squash,async,no_subtree_check)配置参数可以参考【NFS exports参数说明】
192.168.1.1/24
也就是192.168.1.1/255.255.255.0
ip地址192.168.1.1
至192.168.1.255
段所有的地址和子网掩码255.255.255.0
的与运算结果都是相同的。 由于192.168.1.1
是路由器的地址,192.168.1.255
广播地址,这两个地地址已经被占用。 从192.168.1.2-192.168.1.254
都可以访问你。如果是255.255.255.255
的话,代表这个网段只有你一个主机,任何人都访问不了你
生效sudo exportfs -ra
添加机器别名,nfs共享 进入计算节点node01,按照局域网ip地址给dataserver2 添加别名。
$cat /etc/hosts 127 .0 .0 .1 localhost.localdomain localhost.localdomain localhost4 localhost4.localdomain4 localhost::1 localhost.localdomain localhost.localdomain localhost6 localhost6.localdomain6 localhost 192 .168 .1 .100 node00192 .168 .1 .101 node01192 .168 .1 .102 node02192 .168 .1 .103 node03192 .168 .1 .104 node04192 .168 .1 .105 node05192 .168 .1 .201 dataserver1192 .168 .1 .106 dataserver2
正常情况应该是保存之后立即生效。此后就可以在node01下使用dataserver2的别名了,比如ssh usr@dataserver2
可以看到之前的计算节点和阵列都是在一个C类地址段内,按照255.255.255.0的掩码是可以互相访问的。
创建挂载点sudo mkdir /data04
开启nfs共享sudo mount -t nfs dataserver2:/home/d1 /data04
#df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 30G 7.2G 21G 26% / tmpfs 63G 84K 63G 1% /dev/shm /dev/sda3 74G 95M 70G 1% /localdisk node00:/home 74G 58G 13G 83% /home node00:/data01 11T 9.4T 358G 97% /data01 node00:/data02 3.6T 3.3T 167G 96% /data02 node00:/data03 3.6T 3.0T 465G 87% /data03 dataserver1:/data00 131T 122T 2.4T 99% /data00 /dev/sdb1 1.9T 1.2T 726G 62% /mnt/g2t dataserver2:/home/d1 328T 2.4T 326T 1% /data04
开机挂载 编辑开机挂载信息,追加/data04
#cat /etc/rc.d/mount.sh mount -t nfs -o nfsvers=3 node00:/home /home mount -t nfs -o nfsvers=3 node00:/data01 /data01 mount -t nfs -o nfsvers=3 node00:/data02 /data02 mount -t nfs -o nfsvers=3 node00:/data03 /data03 mount -t nfs -o proto=udp dataserver1:/data00 /data00 mount -t nfs -o proto=udp dataserver2:/home/d1 /data04
这个脚本是自己创建的,引用于/etc/rc.d/rc.local
开机执行
#cat /etc/rc.d/rc.local #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local /bin/sh /etc/rc.d/mount.sh
写得比较乱,以后再整理,目的是以后维护知道自己怎么搞的。
ubuntu固定内网ip地址 USTC 网络通脚本 NFS exports参数说明