Centos7 离线 NFS 文件共享服务实现

Posted supingemail

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7 离线 NFS 文件共享服务实现相关的知识,希望对你有一定的参考价值。

好记忆不如烂笔头,能记下点东西,就记下点,有时间拿出来看看,也会发觉不一样的感受.   

目录

一.准备依赖包

二、服务端操作

1.安装rpm依赖包

2.设置开机启动

3. 防火墙设置

4.关闭selinux

5.配置NFS服务器并生效

6.启动并查看服务

 三、客户端操作

1.软件安装

2.查看共享目录

3.客户端挂载目录

4.检验是否成功

5.解除挂载

6.永久挂载

7.查看挂载

一.准备依赖包

要在离线状态下安装NFS,那么就需要将使用到的安装包提前下载下来,所需的安装包主要有:


依赖包名称如下:

httpd-2.4.6-97.el7.centos.5.x86_64.rpm,libnfsidmap-0.25-19.el7.x86_64.rpm,libtirpc-0.2.4-0.16.el7.x86_64.rpm,nfs4-acl-tools-0.3.3-21.el7.x86_64.rpm,nfs-utils-1.3.0-0.68.el7.2.x86_64.rpm,rpcbind-0.2.0-49.el7.x86_64.rpm

当然如果是在有网络的情况下,可以使用yum命令进行在线安装,安装命令如下:

yum -y install httpd libnfsidmap  libtirpc nfs4-acl-tools  nfs-utils  rpcbind 


不要问为什么搭个NFS要这么多依赖,这都是在实践过后,踩完坑,才得到的最终可行性包。

二、服务端操作

1.安装rpm依赖包

在安装包的所在位置,执行如下命令进行安装

rpm -Uvh *.rpm --nodeps --force

2.设置开机启动

使用如下命令进行NFS服务的开机启动

for i in rpcbind nfs;do systemctl enable $i; done

也可以单独使用如下命令实现
systemctl enable rpcbind 
systemctl enable nfs

3. 防火墙设置

NFS在启动之后,会占用固定 111和2049 端口,那么就需要在防火墙设置端口信息

#NFS的防火墙特别难搞,因为除了固定的port111、2049外,还有其他服务如rpc.mounted等开启的不固定的端口,这样对防火墙来说就比较麻烦了。为了解决这个问题,我们可以设置NFS服务的端口配置文件。修改/etc/sysconfig/nfs文件,将下列内容的注释去掉,如果没有则添加:

RQUOTAD_PORT=1001
LOCKD_TCPPORT=30001
LOCKD_UDPPORT=30002
MOUNTD_PORT=1002

#保存好后,将端口加入到防火墙允许策略中。执行:

firewall-cmd --zone=public --add-port=111/tcp --add-port=111/udp --add-port=2049/tcp --add-port=2049/udp --add-port=1001/tcp --add-port=1001/udp --add-port=1002/tcp --add-port=1002/udp --add-port=30001/tcp --add-port=30002/udp --permanent

重新加载防火墙
firewall-cmd --reload

还可以执行如下:
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd

查看防火墙设置
firewall-cmd --list-all

4.关闭selinux

# 临时关闭selinux:
setenforce 0

# 永久关闭selinux:
sed -i 's/=enforcring/=disabled/' /etc/selinux/config

5.配置NFS服务器并生效

NFS 的配置文件是 /etc/exports ,在配置文件中加入一行:

允许所有:
/home/files/ *(rw,sync,no_root_squash)  //所有应用服务器都可以访问该NFS文件服务器

指定IP段:
/home/files/ 192.128.202.0/24(rw,sync,no_root_squash)  //192.128.202.0-24服务器可以访问该NFS文件服务器

#这行代码的意思是把共享目录/home/share/共享给192.128.202.0这个客户端ip,后面括号里的内容是权限参数,其中:
#rw 表示设置目录可读写。
#sync 表示数据会同步写入到内存和硬盘中,相反 rsync 表示数据会先暂存于内存中,而非直接写入到硬盘中。
#no_root_squash NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。
#no_all_squash 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。

注意项:
#如果有多个共享目录配置,则使用多行,一行一个配置。保存好配置文件后,需要执行以下命令使配置立即生效:

exportfs -r 

exportfs[-aruv] 
参数 含义 
a 全部挂载(或卸载)/etc/exports档案内的设定 
r 重新挂载/etc/exports 里面的设定,也同步的更新/etc/exports和/var/lib/nfs/xtab里面的内容 
u 卸载某一目录 
v 在export的时候,将分享的目录显示到荧屏上 
#exportfs -rv//重新export一次 
#exportfs -au//全部卸载 

6.启动并查看服务

可以使用联合命令进行启动,也可以单独一个个启动,主要启动命令是:

systemctl start rpcbind nfs-utils  
或者使用命令:
systemctl start rpcbind.service nfs-server.service

执行完命令之后,可以查看运行状态,使用命令:
 

systemctl status rpcbind nfs

如此证明已经安装成功了。

 三、客户端操作

1.软件安装

 在客户端,同样需要安装“准备依赖安装包”中的所有包,这样在客户端才会拥有NFS的能力,具体步骤参照服务端安装nfs 和rpcbind 操作。

2.查看共享目录

当nfs和rpcbind安装完成之后,使用如下命令查看NFS服务器共享的目录:

showmount -e nfs_server_ip //查看nfs服务端的可用挂载点

如果能看见: Export list for   xxx ,证明NFS服务器端已经正常共享了文件服务

3.客户端挂载目录

通过如下命令,实现挂载目录操作:

mount -t nfs nfs_server_ip:share_root_dict nfs_client_dict 
mount -t nfs NFS文件服务器:共享目录 客户端本地目录

例如:

mount -t nfs 192.168.18.100:/home/share  /home/share/ -o nolock,nfsvers=3,vers=3

4.检验是否成功

当实现完挂载之后,在客户端可以使用:cat 命令查看是否可以查看NFS服务器下的某个文件信息

例如:cat /home/share/test.txt

5.解除挂载

解除挂载只需要使用 umount 命令就行

umount /home/share/

如此就完成了NFS客户端文件目录的挂载操作。

6.永久挂载

由于每次开机都必须手动挂载以下,所以需要采用永久挂载的方式

1.编辑文件:
vim /etc/fstab



2.添加信息:
nfs_server_ip:share_root_dict nfs_client_dict  nfs     defaults,_netdev        0 0
NFS文件服务器:共享目录 客户端本地目录  nfs     defaults,_netdev        0 0

例如:
192.168.18.100:/home/share  /home/share/               nfs     defaults,_netdev        0 0

7.查看挂载

使用 df -h 命令进行挂载操作查看

以上是关于Centos7 离线 NFS 文件共享服务实现的主要内容,如果未能解决你的问题,请参考以下文章

Centos7 离线 NFS 文件共享服务实现

Linux通过NFS实现文件共享

Centos7 NFS共享储存服务详解

CentOS7基于NFS服务的文件共享

centos7配置nfs共享存储服务

Linux CentOS7系统NFS共享存储服务