集群节点文件共享和NIS通信 您所在的位置:网站首页 服务器装系统没有找到硬盘 集群节点文件共享和NIS通信

集群节点文件共享和NIS通信

2023-06-23 01:41| 来源: 网络整理| 查看: 265

node2的系统崩溃了,需要安装新系统,决定更换成ubuntu,但是替换后的兼容稳定性,运算效率等都是未知数,并且我没有配置集群的经验。这次使用node02实践一下,争取可以形成生产力

配置和选型

集群系统: node00, node01, node03, node04 CentOS release 6.7 (Final)node02 新系统:ubuntu 20.04 LTS (待加入集群)权限:超级用户 集群主节点node00: 共享主目录,磁盘挂载节点登录节点node01: 登录节点,NIS通信服务器SSD Samsung 870 EVO SATA 2.5 1TB 系统安装和配置

这里准备了官网下载的ubuntu 20.04 LTS桌面版,使用rufus-3.18.1877制作U盘启动:

插入node02,开机,按DEL进入启动选项-> boot ->U盘启动。安装系统,选择新系统安装,覆盖掉原来的引导选项,分区大小如下

100G /100G [SWAP]4G /boot剩下700+G /home

这些信息回被写入/etc/fstab,你也可以使用lsblk命令查看磁盘的分区。

系统初始化登录时填写机器名为node02,这个操作实际上是将其写入/etc/hostname,这个别名设置会在后续节点通讯的别名设置中用到。初始的高级权限用户可以是lirui,并设置密码;进入系统以后,为root账户设置密码,创建用户,安装vim:

lirui@node02:~ $ sudo passwd root密码已更新lirui@node02:~ $ su root root@node02:/home/lirui #root@node02:/home/lirui # useradd -u 516 hjh -c 'jiheng hu' -m -s /bin/bash root@node02:/home/lirui # groupmod -g 516 hjhroot@node02:/home/lirui # cat /etc/passwd······hjh:x:516:1001:jiheng hu:/home/hjh:/bin/bash······root@node02:/ # apt updateroot@node02:/ # apt install vim 网络设置

按照目前的网络架构,一个网卡enp6s0连入校园网,具有公网IP地址;另一个网卡enp7s0链接局域网路由器,其包括node00~node05以及两个磁盘阵列共八台机器组成的局域网。安装net-tools并查看网络信息:

lirui@node02:~/桌面$ sudo apt updatelirui@node02:~/桌面$ sudo apt install net-toolslirui@node02:~/桌面$ ifconfig enp6s0: flags=4163 mtu 1500 inet 222.146.88.88 netmask 255.255.255.0 broadcast 222.146.88.255 ······enp7s0: flags=4163 mtu 1500 inet netmask broadcast ······ lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 ······

可以看到,enp6s0已自动获取公网IP 222.146.88.88 。enp7s0则是无法连接状态。此时,需要配置网络和固定公网IP和局域网IP,直接在桌面上打开网络设置:

enp6s0配置直接把自动获取的ip地址进行固定即可,更换ip会导致联网失败: IPv4方式 地址 子网掩码 网关 DNS服务器 手动 222.146.88.88 255.255.255.0 222.146.88.254 202.38.64.56, 202.38.64.17 enp7s0配置这个网卡连接局域网,按照集群结构,node02节点的局域网ip为192.168.1.102: IPv4方式 地址 子网掩码 网关 DNS服务器 手动 192.168.1.102 255.255.255.0 192.168.1.1 192.168.1.1

这样网络就设置好了,使用ifconfig查看:

enp6s0: flags=4163 mtu 1500 inet 222.146.88.88 netmask 255.255.255.0 broadcast 222.146.88.255 ······enp7s0: flags=4163 mtu 1500 inet 192.168.1.102 netmask 255.255.255.0 broadcast 192.168.1.255 ······lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 ······

或者,此处的配置也可以在/etc/netplan/01-network-manager-all.yaml中进行修改并使用sudo netplan apply命令生效。

开启远程服务

安装openssh服务:

root@node02:/etc# apt install ssh查看ssh服务状态,发现是active的状态:root@node02:/etc# service ssh status● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2023-06-17 21:54:34 CST; 13h ago ······6月 17 22:01:10 node02 sshd[11139]: Accepted password for hjh from 192.168.1.101 port 59088 ssh26月 17 22:01:10 node02 sshd[11139]: pam_unix(sshd:session): session opened for user hjh(uid=516) by (uid=0)root@node02:/etc# service ssh [restart][stop]

可以使用ssh user@ip来访问其他服务器。节点间登录可以使用局域网ip和公网ip,但是外部登录必须使用公网ip:

[hjh@node02] ~ $ssh [email protected][hjh@node01] ~ $ssh [email protected] 7 (Build 0122)[C:\~]$ ssh [email protected]

集群中各节点在局域网中都有自己的ip地址,如192.168.1.101,可以使用ssh命令登录到对应的ip来实现切换。但是节点间每次切换都需要输入ip,较为不方便,所以需要设置别名访问。

节点别名通信

设置别名的原理就是,每个节点都保留一个清单,约定好每台机器的别名和对应的ip地址,做法如下:每台机器给自己取号名字,放在/etc/hostname中,比如node01、node02、node05、dataserver1,这个不是必须,但是决定了当前节点命令行的显示,如[hjh@node02],[rootrui@node02],[user@dataserver2] ;每台机器需要知道其他机器的别名,设置如下的别名列表,并各自保存在/etc/hosts:

[hjh@node02] ~ $ cat /etc/hosts192.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

这个方法,你甚至可以将非局域网内的服务器加进去,进行别名访问。从此,无论是互相登录,文件系统的共享,还是用户信息通讯,都可使用node02这样的别名来代替IP地址

[hjh@node02] ~ $ssh hjh@node01[hjh@node01] ~ $ssh node02 文件系统挂载,节点磁盘共享

这一步的目的是在node02上也可以访问替他节点的磁盘,需要设置文件共享系统。安装nfs-kernel-server服务:

$su root# apt install nfs-kernel-server 作为客户端的文件共享设置

nfs-kernel-server服务也是S/C模式,这里只使用客户端配置,需要挂载来自node00和磁盘阵列的文件系统。超级权限编辑/etc/fstab,文末追加如下内容

### nfs mount infosdataserver1:/data00 /data00 nfs default 0 0dataserver2:/home/d1 /data04 nfs default 0 0node00:/data01 /data01 nfs default 0 0node00:/data02 /data02 nfs default 0 0node00:/data03 /data03 nfs default 0 0

这里计划挂载了两个磁盘阵列和三个来自node00的磁盘。创建挂载点sudo mkdir /data00 /data01 /data02 /data03 /data04。使用命令sudo mount -a生效,查看磁盘挂载情况:

$df -h文件系统 大小 已用 可用 已用% 挂载点/dev/sda3 375G 11G 346G 3% //dev/sda1 9.3G 187M 8.7G 3% /bootnode00:/data03 3.6T 3.0T 465G 87% /data03node00:/data01 11T 9.7T 88G 100% /data01node00:/data02 3.6T 3.3T 175G 95% /data02dataserver1:/data00 131T 121T 3.7T 98% /data00dataserver2:/home/d1 328T 244T 84T 75% /data04 作为服务器的文件共享设置

本实践只涉及到挂载其他节点的共享文件系统,如果需要将本节点的文件系统共享出去,需要做如下设置:修改exportfs配置文件/etc/exports,这里使用dataserver2节点(磁盘阵列)作为展示:

user@user-RS540-E9-RS36-E:~$ cat /etc/exports ······/home/d1 192.168.1.1/24(rw,no_root_squash,async,no_subtree_check)

这里的意思是将dataserver2节点挂载在/home/d1下的300TB磁盘阵列共享出去,后面是网关/掩模(权限设置)。使用sudo exportfs -ra命令执行生效,即可用上述的方法在其他节点挂载这个共享资源。详细可以参考从零开始挂载磁盘阵列的操作实践。

NIS用户同步

在完成集群节点间的通信和/home主目录共享以后,发现为在本节点(node02)上注册的用户,无法通过其他节点登录进来,或者无法再本节点切换到该用户下:报错: su: 用户 qyliu 不存在这是因为,node02作为分子节点,虽然已经挂载了主节点node00的主目录,但是管理用户信息的如/etc/passwd等配置文件并没有同步,在node00下注册的用户无法登陆node02节点。这里要使用NIS服务来进行用户信息的共享,使得宿主节点(node00)用户即使不存在子节点(如node02)的/etc/passwd文件信息上,也可以登录进来。NIS是使用S/C模式实现,也就是宿主和客户端模式:NIS服务的应用结构分为NIS服务端和NIS客户端两种角色,NIS服务端集中维护用户的帐号信息(数据库)供NIS客户机进行查询,用户登录任何一台NIS客户端设备都会从NIS服务端进行登录认证,可实现用户帐号的集中管理。

在本案例中,node00做我NIS服务器,node01/node03/node04都已经完成了NIS通信,所以仅对新加入的node02进行NIS客户端安装和配置,也就是客户端的配置。别问我怎么知道大师兄怎么配置的,不听的百度+去老系统里面翻配置文件,才确定了他10年前的做法。

node02联科大校园网:

hjh@node02 /etc$ wget --post-data="name=user&password=passwd&cmd=set&type=1&exp=0" http://wlt.ustc.edu.cn/cgi-bin/ip -O -

安装NIS相关服务:

hjh@node02 /etc$ su rootroot@node02 /etc# apt install nis

会弹出图形界面,此处作为客户端需要填写server的domian为 lirui,这个操作是新建/etc/defaultdomian并写入lirui。如果没有图形界面弹出,则手动添加:

#echo lirui>/etc/defaultdomain

在/etc/yp.conf 中追加:domain lirui server node01:

#echo domain lirui server node01>>/etc/yp.conf

修改/etc/default/nis,做如下修改:

# Are we a NIS server and if so what kind (values: false, slave, master)?NISSERVER=false# Are we a NIS client?NISCLIENT=true# NIS master server. If this is configured on a slave server then ypinit# will be run each time NIS is started.NISMASTER=node01 做如下修改:备份/etc/nsswitch.conf,修改内容如下:#passwd: files systemdpasswd: files nis#group: files systemdgroup: files nis#shadow: filesshadow: files nisgshadow: files#hosts: files mdns4_minimal [NOTFOUND=return] dnshosts: files dns nis

重启ypserv服务:

# service ypbind restart

发现qyliu已经可以登录node02了,如果在node01上ssh node02提示 NASTY警告,删除/home/qyliu/.ssh/known_hosts文件中的node02的过期指纹,重新登录会提示保留指纹,ok

主目录共享

登录node02以后会提示找不到/home/qyliu 主目录,因为node02挂载了本地磁盘分区作为/home目录:df -h 查看挂载信息:

/dev/sdb3 1.9G 251M 1.5G 15% /boot/dev/sdb4 783G 183M 743G 1% /homedataserver1:/data00 131T 121T 3.7T 98% /data00dataserver2:/home/d1 328T 242T 86T 74% /data04node00:/data01 11T 9.7T 88G 100% /data01node00:/data02 3.6T 3.3T 175G 95% /data02node00:/data03 3.6T 3.0T 465G 87% /data03

这时需要共享主目录操作,超级权限编辑/etc/fstab

······# /home was on /dev/sdb4 during installation#UUID=e47e7003-f0ef-49a3-88c0-6f422c8c430a /home ext4 defaults 0 2······node00:/home /home nfs defaults 0 0

命令行执行sudo mount -a

df -h 发现已经挂载了node00:/home :

/dev/sdb3 1.9G 251M 1.5G 15% /bootnode00:/home 74G 29G 42G 41% /homedataserver1:/data00 131T 121T 3.7T 98% /data00dataserver2:/home/d1 328T 242T 86T 74% /data04node00:/data01 11T 9.7T 88G 100% /data01node00:/data02 3.6T 3.3T 175G 95% /data02node00:/data03 3.6T 3.0T 465G 87% /data03

登出用户,重新进入node02

[qyliu@node01] ~ $ ssh node02[qyliu@node02] ~ $

发现qyliu在node02下面可以直接进入node01的主目录,实际上都是node00:/home的内容,这些节点都会对其同步修改。

至此,已经全部完成了节点的文件挂载、共享和用户信息通信。

生产环境

安装netcdf,hdf5-helpers,NCL:

# apt install netcdf-bin# apt install hdf5-helpers# apt install ncl-ncarg

以下内容可以忽略

使用的NCL来自于node01 用户主目录下的NCL,直接运行会报错,提示共享出问题,缺少SSL相关依赖libssl.so.10:

[qyliu@node02] ~ $which ncl/home/hjh/ncl/bin/ncl[qyliu@node02] ~ $nclncl: error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory

查看 Linux Ubuntu 20.04LTS 自带 openssl 的版本为 1.1.1f:

[qyliu@node02] ~ $openssl OpenSSL> versionOpenSSL 1.1.1f 31 Mar 2020

下载安装 libssl-dev即可解决 (最简单推荐此方法,不会对系统本身依赖openssl产生任何影响)

root@node02:/home/hjh# apt install libssl-dev 踩坑

在没有设置好网络的情况下,卸载了本地/home, 远程修改了/etc/netplan/0*.xml网络配置文件,导致网络中断,无法共享远程/home,本地也无法登录桌面解决办法是登录界面按ALT+CTRL+F2进如命令行模式,挂载本地的/home,即可登录本地,进一步设好网络。教训:一定要先设置好网络再进行各项操作,远程不要修改网络相关设置。

完成最后一步,在修改libssl.so.10依赖时,系统崩了,之前就各种提示内核转储,这下彻底登不上了,从安装系统开始。经验:系统坏了没办法,我也不会修复,找新蓝科的来试图修复,连recovery模式都进不去。我自己重装了系统,避免以后爆雷,我自己安装的系统十分顺畅。

参考资源 - 基于Ubuntu 12.04搭建NIS Slave服务 - 集群并行环境配置——NIS服务配置 - 在Ubuntu上配置NIS帐号 - 【Linux缺失库】libssl.so.10 - 通过NIS+NFS实现/home文件夹的共享(集群服务器共享文件节点) (很详细,但是没用到) - NIS用户同步 (很详细,也没用到,学习一下NIS的原理) - 从零开始挂载磁盘阵列



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有