Centos7 离线 NFS 文件共享服务实现
Posted supingemail
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7 离线 NFS 文件共享服务实现相关的知识,希望对你有一定的参考价值。
好记忆不如烂笔头,能记下点东西,就记下点,有时间拿出来看看,也会发觉不一样的感受.
目录
一.准备依赖包
要在离线状态下安装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 文件共享服务实现的主要内容,如果未能解决你的问题,请参考以下文章