NFS文件共享服务搭建
1、管理节点安装nfs服务端和设置
如果集群是内部使用,为了方便,可以采用关闭防火墙和selinux等,如果必须开防火墙,具体配置防火墙开放nfs端口,请百度之,这里不赘述。以下操作均为已关闭防火墙和selinux。
1.安装软件包
yum -y install nfs-utils rpcbind
2. 配置共享目录
假设我们需要把/data/apps目录通过计算网络共享出去,管理节点计算网络IP为(10.1.1.1)如下操作:
编辑export文件:
vi /etc/exports
// 添加如下内容:
/data/apps 10.1.1.1(rw,async,no_root_squash) 10.1.1.0/255.255.255.0(rw,async)
/data/apps 为共享的目录,使用绝对路径。10.1.1.0/255.255.255.0(rw,async)为计算节点的地址范围及权限,地址可以是一个网段(如:192.168.0.0/24),一个IP地址或者是一个域名,域名支持通配符,如:*.http://hpce.cn,地址与权限中间没有空格。
3. 使配置生效
exportfs -r
4. 权限说明:
- rw:read-write,可读写;
- ro:read-only,只读;
- sync:文件同时写入硬盘和内存;由于我们的日志需要同步写,所有用sync选项。
- async:文件暂存于内存,而不是直接写入内存;
- no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
- root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
- all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
- anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
- anongid:匿名用户的GID值。
5. 启动服务rpcbind、nfs服务
systemctl start rpcbind
systemctl start nfs
2、计算节点自动挂载共享目录
在计算节点以root账号登录,进行如下操作
1.创建挂载目录,假设我们要把登录共享的目录挂载到/data/apps目录下
mkdir -p /data/apps
2. 手动挂载
mount -t nfs 10.1.1.1:/data/apps /data/apps
3. 开机自动加载
编辑/etc/fstab文件,添加如下:
10.1.1.1:/data/apps /data/apps nfs defaults 0 0
这样在重启系统后,管理节点共享的目录会自动加载到计算节点上。
4、检查挂载点
①查看指定服务器的挂载点
showmount -e 192.168.27.15
②查看本机的挂载点
showmount -e
③给服务端设置权限
chown nfsnobody.nfsnobody /data/nfs-data
5、NFS客户端安装
1.安装nfs
1.安装nfs-utils
yum install nfs-utils -y
2.创建目录,赋予权限
mkdir /client-share
chomod 777 /client-share
3.执行nfs挂载
mount -t nfs 10.1.1.1:/data/apps /client-share
4.查看客户端挂载信息
df -h
5.查看本机挂载点
showmount -e
6.查看状态
nfsstat -crs:查看 NFS 运行状态,下面查看 RPC 信息。
rpcinfo -p:rpcinfo -p 看出 RPC 开启的端口所提供的程序有哪些。
nfs挂载报错误wrong fs type, bad option, bad superblock
mount: wrong fs type, bad option, bad superblock on 125.64.41.244:/data/img,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount. helper program)
In some cases useful info is found in syslog - try
dmesg | tail or so
根据错误提示,查看/sbin/mount.文件,果然发现没有/sbin/mount.nfs的文件,安装nfs-utils即可。
解决方案:
yum install nfs-utils -y