centos7之NFS使用

摘要:
NFS是NetworkFileSystem的缩写,即网络文件系统。因为NFS支持的功能很多,不同功能会使用不同程序来启动,因此,NFS对应的功能所对应的端口无法固定。NFS的RPC服务,在Centos5下名为portmap,Centos6下名称为rpcbind。

NFS是Network File System的缩写,即网络文件系统。客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下。

一、nfs为什么需要RPC?

因为NFS支持的功能很多,不同功能会使用不同程序来启动,因此,NFS对应的功能所对应的端口无法固定。

端口不固定造成客户端与服务端之间的通信障碍,所以需要RPC来从中帮忙。

NFS启动时会随机取用若干端口,然后主动向RPC服务注册取用相关端口和功能信息,RPC使用固定端口111来监听来自NFS客户端的请求,

并将正确的NFS服务端口信息返回给客户端,这样客户端与服务端就可以进行数据传输了。

二、NFS的工作流程

1、由程序在NFS客户端发起存取文件的请求,客户端本地的RPC(rpcbind)服务会通过网络向NFS服务端的RPC的111端口发出文件存取功能的请求。

2、NFS服务端的RPC找到对应已注册的NFS端口,通知客户端RPC服务。

3、客户端获取正确的端口,并与NFS daemon联机存取数据。

4、存取数据成功后,返回前端访问程序,完成一次存取操作。

所以无论客户端,服务端,需要使用NFS,必须安装RPC服务。

NFS的RPC服务,在Centos5下名为portmap,Centos6下名称为rpcbind。

三、安装配置

1、首先关闭centos7上的firewalld防火墙和iptables防火墙,让其开机不能自启,等安装完毕后可以打开相应的防火墙。

2、安装。

yum install -y  nfs-utils rpcbind 

3、安装完成后后首先启动,首先启动,首先启动rpcbind服务。

systemctl restart rpcbind.service

4、配置nfs配置文件(默认是空的)

首先我们应该建立一个数据文件夹,例如data文件夹也可以是单独的一个块硬盘风趣,都可以。

#mkdir data

#vim /etc/exports

/data   192.168.1.0/24(rw,no_root_squash,sync,fsid=0)
参数:
•ro:目录只读
•rw:目录读写
•sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
•async:将数据先保存在内存缓冲区中,必要时才写入磁盘
•all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)
•no_all_squash:与all_squash取反(默认设置)
•root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)
•no_root_squash:与rootsquash取反
•anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
•anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户

注:添加no_root_squash参数,表明此时客户端root用户的身份等同于NFS server上面的root用户,否则客户端只能同步到服务器的数据,无建立文件或文件夹等权限。

启动nfs

systemctl start nfs.service

客户端操作:

同样为了搭建顺利,可先关闭iptables和selinux、firewall。客户端只需要安装rpcbind服务即可,无需安装nfs或开启nfs服务。

#yum install -y rpcbind

#systemctl start rpcbind.service

在客户端建立文件夹,准备挂在nfs。

#cd /root

#mkdir nfstest

挂载

#mount -t nfs 192.168.1.238:/data nfstest

如果需要卸载的话,mount变成umount就行。

centos7之NFS使用第1张

如下正常操作没有问题。

centos7之NFS使用第2张

如上所示,这样的话在服务器或者在客户端写入对方都会发生变化。

注意:

服务器端:

1、先启动rpcbind,再启动nfs服务

2、如果配置文件发生变化可以使用exportfs -rv重新加载配置无需重启服务。

3、查看rpc服务器是否启动成功rpcinfo -p

4、查看共享目录是否存在showmount -e 192.168.1.238

5、如果开iptables防火墙的话可以使用rpcinfo -p命令查看都需要允许哪些端口。

客户端:

错误1,:Stale NFS file handle的解决方法

1、首先用umount卸载当前目录,如果卸载不了使用umount -f /root/nfstest强制卸载,然后再重新挂载即可。

错误2:touch: cannot touch ‘test2’: Permission denied nfs

1、这个是提醒你客户端挂载的nfs服务器的目录没有权限,你在nfs客户端给权限没用,要不就给nfs服务器目录777权限,这样显得啥,要不就配置文件里面如上加上no_root_squash参数。

免责声明:文章转载自《centos7之NFS使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[Oracle报错]TNS-12535: TNS:operation timed out、TNS-00505: Operation timed outubuntu编译linux kernel v2.6.30 各种错误排除下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

在VMware上制作一个简单的Linux

大体思路 boot root initrd.gzgrubvmlinuz-2.6.18-308.el5 bin sbin lib etc proc sys dev boot 有以上内容我们就可以运行一个非常简单的Linux,只需要往里面添加各种配置文件,就可以启动我们所需要的各种服务。在制作之前,我们先做一些准备工作。 1、在VMware上添...

Centos下堡垒机Jumpserver V3.0环境部署完整记录(2)-配置篇

前面已经介绍了Jumpserver V3.0的安装,基于这篇安装文档,下面说下Jumpserver安装后的的功能使用: 一、jumpserver的启动 Jumpserver的启动和重启 [root@test-vm001 install]# /opt/jumpserver/service.sh start/restart 二、按照Jumpserver部署过...

zabbix监控memcached服务

             zabbix监控memcached服务                                      作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 一.安装并配置memcached服务 1>.使用yum方式安装memcached [root@node201.yinzhengjie.org.c...

Flask web应用

Flask web应用一、介绍 最近开发要用一个测试环境,是这样的Nginx+uwsgi+flask 的一个结构。下面是一些记录,在Centos 系统上使用Flask 架构部署一个简单的Python应用。然后使用Nginx作为前端反向代理,设置uWSGI应用网关处理web应用程序。 二、条件 1) 环境要求 Server OS:最小化安装 Centos...

第七章 Python 盒子:模块、包和程序

前戏部分 模块,用一堆(很多行)代码实现了某个功能的代码集合。 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合。而对于一个复杂的功能来说,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块。 其实模块只是有很多 Python 代码的一个文...

Linux下状态查看相关命令

Linux下有一些命令是可以用来查看计算机运行状态的,包括进程、CPU、内存、网络状态等,下面记录一下。 进程相关 程序被加载到内存中,需要有一个标识用来区分和其他程序的区别,这个东西叫做PID即进程id。除了PID外还有程序执行权限,程序执行需要的材料等信息也保存在了内存中,在linux中进程分为临时进程和持久进程。 静态查询进程信息 (1)ps aux...