Centos下nfs+rpcbind实现服务器之间的文件共享

简介: Centos下nfs+rpcbind实现服务器之间的文件共享

这里服务器环境为Centos6.8 64位,并关闭了防火墙。


NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。


【1】安装nfs和rpcbind

① 检测是否已经安装

[root@localhost softinstall]# rpm -aq | grep nfs
[root@localhost softinstall]# rpm -aq | grep rpcbind

② 安装nfs和rpcbind

yum -y  install nfs-utils rpcbind

安装后检测如下:

[root@localhost softinstall]# rpm -aq | grep rpcbind
rpcbind-0.2.0-16.el6.x86_64
[root@localhost softinstall]# rpm -aq | grep nfs
nfs-utils-lib-1.1.5-13.el6.x86_64
nfs-utils-1.2.3-78.el6_10.1.x86_64

【2】配置nfs服务机

① 创建需要共享的目录

这里使用/mnt/app目录:

mkdir -p  /mnt/app

② 配置nfs的配置文件

命令:

vim /etc/exports

在这个文件中添加需要输出的目录,如:

/mnt/app 192.168.73.130(rw)
/mnt/app 192.168.73.131(rw,sync,no_root_squash,no_subtree_check)
#/mnt/app:表示的是nfs服务器需要共享给其他客户端服务器的文件夹
#192.168.73.130: 表示可以挂载服务器目录的客户端ip
#(rw):表示该客户端对共享的文件具有读写权限

关于其他权限说明:


rw:可读写的权限;

ro:只读的权限;

no_root_squash:登入到NFS主机的用户如果是root,该用户即拥有root权限;(不添加此选项ROOT只有RO权限)

root_squash:登入NFS主机的用户如果是root,该用户权限将被限定为匿名使用者nobody;

all_squash:不管登陆NFS主机的用户是何权限都会被重新设定为匿名使用者nobody。

anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中。

anongid:同anonuid,但是变成group ID就是了!

sync:资料同步写入存储器中。

async:资料会先暂时存放在内存中,不会直接写入硬盘。

insecure:允许从这台机器过来的非授权访问。


刷新配置立即生效

exportfs -r

③ 启动服务检测服务状态

设置开机启动

chkconfig nfs on 
chkconfig rpcbind on

启动rpcbind 服务

service rpcbind start

查看 RPC 服务的注册状况

[root@localhost mnt]# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100011    1   udp    875  rquotad
    100011    2   udp    875  rquotad
    100011    1   tcp    875  rquotad
    100011    2   tcp    875  rquotad
    100005    1   udp  52791  mountd
    100005    1   tcp  42294  mountd
    100005    2   udp  55511  mountd
    100005    2   tcp  54774  mountd
    100005    3   udp  50872  mountd
    100005    3   tcp  36770  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    2   tcp   2049  nfs_acl
    100227    3   tcp   2049  nfs_acl
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    2   udp   2049  nfs_acl
    100227    3   udp   2049  nfs_acl
    100021    1   udp  46920  nlockmgr
    100021    3   udp  46920  nlockmgr
    100021    4   udp  46920  nlockmgr
    100021    1   tcp  39362  nlockmgr
    100021    3   tcp  39362  nlockmgr
    100021    4   tcp  39362  nlockmgr

检测服务状态

service nfs status
service rpcbind status


查看服务开机启动状态

[root@localhost mnt]# chkconfig --list |grep nfs
nfs             0:off   1:off   2:off   3:off   4:off   5:off   6:off
nfs-rdma        0:off   1:off   2:off   3:off   4:off   5:off   6:off
nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off
[root@localhost mnt]# chkconfig --list |grep rpcbind
rpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off

可以手动设置服务运行级别,如下实例:

[root@localhost mnt]# chkconfig --level 2345 nfs on
[root@localhost mnt]# chkconfig --list |grep nfs
nfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off
nfs-rdma        0:off   1:off   2:off   3:off   4:off   5:off   6:off
nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off

④ 检测配置文件

如下所示,打印配置文件内容:

[root@localhost mnt]#  showmount -e
Export list for localhost.localdomain:
/mnt/app 192.168.73.130

注意:在执行这个命令的时候如果出现错误,说明DNS不能解析当前的服务器,那就是hosts文件没有配置。


【3】客户端挂载NFS中共享的目录

① 创建本地路径(也就是挂载点)

mkdir /mnt/app

② 安装并启动nfs与rpcbind服务

yum -y  install nfs-utils rpcbind
chkconfig nfs on
chkconfig rpcbind on
service nfs start
service rpcbind start

③ 查看服务器抛出的共享目录信息

[root@localhost ~]# showmount -e 192.168.73.129
Export list for 192.168.73.129:
/mnt/app 192.168.73.130

④ 挂载目录

为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议

mount -t nfs -o vers=3 192.168.73.129:/mnt/app /mnt/app -o proto=tcp -o nolock 
#服务器IP:服务器共享路径 本机挂载点
#192.168.73.129:/mount/app /mount/app

⑤ 测试验证

服务器(192.168.73.129)创建文件:

cd /mnt/app
touch test.txt

客户机验证:

cd /mnt/app
ll

⑥ 取消挂载

客户机执行命令

umount /mnt/app

这里可以联想服务器挂载磁盘,设置开机挂载、取消挂载同样操作。


⑦ 查看挂载的状态

命令:

mount | grep nfs

实例:

[root@localhost app]# mount | grep nfs
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
192.168.73.129:/mnt/app on /mnt/app type nfs (rw,vers=3,proto=tcp,nolock,addr=192.168.73.129)

【4】固定nfs服务端口

NFS启动时会随机启动多个端口并向RPC注册,这样如果使用防火墙对NFS端口进行限制就会有点麻烦,可以更改配置文件固定NFS服务相关端口。


分配端口,编辑配置文件:

[root@localhost app]# vim /etc/sysconfig/nfs

添加如下(或者可以直接从配置文件里面修改):

RQUOTAD_PORT=30001 
LOCKD_TCPPORT=30002 
LOCKD_UDPPORT=30002 
MOUNTD_PORT=30003 
STATD_PORT=30004 


重启nfs服务

[root@localhost app]# service nfs restart
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS quotas:                                  [  OK  ]
Shutting down NFS services:                                [  OK  ]
Shutting down RPC idmapd:                                  [  OK  ]
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]


查看服务注册状态

[root@localhost app]# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100011    1   udp  30001  rquotad
    100011    2   udp  30001  rquotad
    100011    1   tcp  30001  rquotad
    100011    2   tcp  30001  rquotad
    100005    1   udp  30003  mountd
    100005    1   tcp  30003  mountd
    100005    2   udp  30003  mountd
    100005    2   tcp  30003  mountd
    100005    3   udp  30003  mountd
    100005    3   tcp  30003  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    2   tcp   2049  nfs_acl
    100227    3   tcp   2049  nfs_acl
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    2   udp   2049  nfs_acl
    100227    3   udp   2049  nfs_acl
    100021    1   udp  30002  nlockmgr
    100021    3   udp  30002  nlockmgr
    100021    4   udp  30002  nlockmgr
    100021    1   tcp  30002  nlockmgr
    100021    3   tcp  30002  nlockmgr
    100021    4   tcp  30002  nlockmgr


【5】客户机设置系统开机挂载磁盘

通过修改/etc/fstab实现挂载,添加完成后执行mount –a 即刻生效。

vim /etc/fstab
#添加配置如下
192.168.73.129:/mnt/app /mnt/app                nfs     defaults        0 0

目录
相关文章
|
9月前
|
机器学习/深度学习 存储 监控
内部文件审计:企业文件服务器审计对网络安全提升有哪些帮助?
企业文件服务器审计是保障信息安全、确保合规的关键措施。DataSecurity Plus 是由卓豪ManageEngine推出的审计工具,提供全面的文件访问监控、实时异常告警、用户行为分析及合规报告生成功能,助力企业防范数据泄露风险,满足GDPR、等保等多项合规要求,为企业的稳健发展保驾护航。
267 0
|
7月前
|
Unix 应用服务中间件 索引
服务器数据恢复—LUN映射出错导致文件系统共享冲突的数据恢复案例
SUN光纤存储系统中有一组由6个硬盘组建的RAID6,划分为若干LUN,MAP到跑不同业务的服务器上,这些服务器上运行的是SOLARIS操作系统。 服务器不存在物理故障。由于公司业务变化,需要增加一台服务器跑新的应用。服务器管理员在原服务器在线的状态下,将其中一个lun映射到一台新服务器上。实际上,这个刚映射过去的卷已经map到了solaris生产系统上的某个lun上了。映射到新服务器后,服务器对这个卷进行初始化的操作,原solaris系统上的磁盘报错,重启服务器后这个卷已经无法挂载。 服务器管理员寻求sun原厂工程师的帮助。sun工程师检测后执行了fsck操作。执行完成后文件系统挂载成功。查
|
11月前
|
弹性计算 Ubuntu Linux
阿里云服务器镜像怎么选?公共/自定义/共享/云市场/社区镜像区别与适用场景梳理
在购买阿里云服务器的过程中,选择合适的镜像(即云服务器的操作系统)是至关重要的一步。阿里云服务器镜像涵盖了公共镜像、自定义镜像、共享镜像、云市场镜像(镜像市场)和社区镜像等多种类型,对于新手用户来说,面对这些不同类型的镜像,往往会感到困惑,不知道它们之间的区别,更不知道如何根据自身需求进行选择。本文为大家解析这些镜像的特点、区别,并为大家提供选择参考。
1679 60
|
9月前
|
安全 Linux Shell
使用SCP命令在CentOS 7上向目标服务器传输文件
以上步骤是在CentOS 7系统上使用SCP命令进行文件传输的基础,操作简洁,易于理解。务必在执行命令前确认好各项参数,尤其是目录路径和文件名,以避免不必要的传输错误。
875 17
|
9月前
|
自然语言处理 Unix Linux
解决服务器中Jupyter笔记本的文件名字符编码问题
通过上述步骤,可以有效解决Jupyter笔记本的文件名字符编码问题,确保所有文件能在服务器上正常访问并交互,避免因编码问题引起的混淆和数据丢失。在处理任何编码问题时,务必谨慎并确保备份,因为文件名变更是
316 17
|
Python
使用Python实现multipart/form-data文件接收的http服务器
至此,使用Python实现一个可以接收 'multipart/form-data' 文件的HTTP服务器的步骤就讲解完毕了。希望通过我的讲解,你可以更好地理解其中的逻辑,另外,你也可以尝试在实际项目中运用这方面的知识。
567 69
|
8月前
|
Ubuntu 安全 小程序
服务器版本的CentOS和Ubuntu哪个更适合你?
但是以上的比较并不说明Ubuntu是不稳定的或者是不安全的,只是以上比较过程中,在稳定性方面Ubuntu稍微逊色了一点。由于Ubuntu在个人桌面电脑的使用率远远高于CentOS,用Ubuntu搭建服务器,如果遇到什么问题,寻找解决方案相对比较容易,这让Ubuntu在选择方面更优于CentOS。如果你是一个初学者,那么毫无疑问Ubuntu是更适合的选择。如果你正在经营自己的公司,在这两者之间,CentOS会更好一些。
|
9月前
|
安全 Linux 网络安全
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
本文介绍如何利用Python的http.server模块,通过一行命令快速搭建支持HTTPS的安全文件下载服务器,无需第三方工具,3分钟部署,保障局域网文件共享的隐私与安全。
2304 0
|
9月前
|
安全 关系型数据库 网络安全
安全加固:启动PostgreSQL 14服务器SSL加密的方法指南在CentOS 7环境中
通过上述步骤,你可以为PostgreSQL数据库服务器设置SSL加密,从而增加数据在传输中的安全性。确保维持证书的有效性,并且定期更新和管理密钥,以防止未授权访问。
437 0
下一篇
开通oss服务