NFS 网络文件系统测试笔记
NFS(Network Files System),网络文件系统是1980年由SUN发展出来在UNIX&Linux系统间实现磁盘文件共享的一种方法。它是一种文件系统协议:支持应用程序在客户端通过网络存取位于服务器磁盘中的数据。NFS的基本原则是让不同的客户端及服务器通过一组RPCs共享相同的文件系统,它独立于操作系统,允许不同硬件及操作系统的系统共同进行文件的共享。
虽然NFS可以在网络中进行文件共享,但NFS在设计时并没有提供数据传输的功能。需要借助RPC(Remote Procedure Calls,远程过程调用)。RPC定义了一种进程间通过网络进行交互通信的机制,它允许客户端进程通过网络向远程服务进程请求服务,而不需要了解服务器底层的通信协议详细信息。
当一个RPC连接建立开始阶段,客户端建立过程调用,将调用参数发送到远程服务器进程,并等待相应。请求到达时,服务器通过客户端请求的服务,调用指定的程序。并将结果返回客户端。当RPC调用结束,客户端程序将继续进行下一步的通信操作。
NFS依赖RPC与外部通信,为保证NFS服务正常工作,其需要在RPC注册相应的服务端口信息,这样客户端向服务器的RPC提交访问某个服务的请求时,服务器才能够正确作出相应。
注册NFS服务时,需要先开启RPC,才能保证NFS注册成功。并且如果RPC服务重新启动,其保存的信息将丢失,需重新启动NFS服务以注册端口信息,否则客户端将无法访问NFS服务器。
NFS服务使用端口:
此外还使用以下RPC服务的随机端口:
RPC使用端口111:远程进程调用
rpc.lock:随机端口
rpc.mount:随机端口
rpc.stat:随机端口
不同的功能nfs.server使用不同模块,模块的端口不固定
客户端连接到nfs服务器都向rpc服务来请求端口,rpc为nfs模块分配端口
rpc 远程进程调用(rpc端口tcp 111)
客户端先连接到nfs的2049,但是不能正常工作,nfs还要连接相应的模块,才可以正常工作。
安装NFS软件包:
# yum install nfs-utils 该软件包默认已安装
防火墙如何开启不固定端口?
systemctl restart nfs
rpcinfo -p 192.168.100.1 #查看rpc注册的端口
rpcinfo -p localhost #查看本地rpc注册的端口
再次重启nfs,发现rpc端口发生变化
如何固定rpc端口?
vim /etc/sysconfig/nfs
LOCKD_TCPPORT= #修改
LOCKD_UDPPORT= #修改
systemctl restart nfs
防火墙规则需要允许所有相关服务和端口
netstat -antulp | grep -i rpc
firewall-cmd --permanent --add-port=/tcp
firewall-cmd --permanent --add-port=/udp
firewall-cmd --permanent --add-port=/tcp
firewall-cmd --permanent --add-port=/udp
firewall-cmd --permanent --add-port=/tcp
firewall-cmd --permanent --add-port=/udp
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd #即20048端口,二者填一个即可
firewall-cmd --reload
附加权限参数
参数 | 作用 |
ro | 只读 |
rw | 读写 |
root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 |
no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 |
all_squash | 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 |
sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 |
async | 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 |
RHEL7默认已安装NFS,所以在测试过程中不需要安装任何软件包,配置完成,启动即可。
[root@rhel1 ~]# rpm -qa | grep nfs-utils
nfs-utils-1.3.-0.48.el7.x86_64
[root@rhel1 ~]# rpm -qa | grep rpcbind
rpcbind-0.2.-.el7.x86_64
[root@rhel1 ~]#
实验1-普通挂载
在RHEL1上
vim /etc/sysconfig/nfs
LOCKD_TCPPORT= #修改
LOCKD_UDPPORT= #修改
systemctl restart nfs
#添加防火墙策略
firewall-cmd --permanent --add-port=/tcp
firewall-cmd --permanent --add-port=/udp
firewall-cmd --permanent --add-port=/tcp
firewall-cmd --permanent --add-port=/udp
firewall-cmd --permanent --add-port=/tcp
firewall-cmd --permanent --add-port=/udp
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd #即20048端口,都可以生效
firewall-cmd --reload
#创建需要共享出去的测试目录及文件
mkdir /share1
mkdir /share2
touch /share1/file{..)
touch /share2/file{..}
#修改exports配置文件
vim /etc/exports
/share1 192.168.100.0/(ro)
/share2 192.168.100.0/(ro)
systemctl restart nfs
NFS的安装配置很简单,总的来说,包括以下几步:
1、安装(在RHEL7上默认已安装)
2、添加防火墙策略
3、创建共享目录,并修改exports配置文件,指定共享权限
在RHEL2上
showmount -e 192.168.100.1 --查看RHEL1上共享出来哪些目录
mkdir /mnt/nfs1
mkdir /mnt/nfs2
mount 192.168.100.1:/share1 /mnt/nfs1 --挂载目录到本地
mount 192.168.100.1:/share2 /mnt/nfs2
ll /mnt/nfs1
ll /mnt/nfs2
实验2-fstab开机挂载
vim /etc/fstab
192.168.100.1:/share1 /mnt/nfs1 nfs defaults
mount -a
ll /mnt/nfs1
实验3-autofs自动挂载
yum install -y autofs
vim /etc/auto.master
/mnt/nfs2 /etc/auto.nfs2 --timeout= #增加
cp /etc/auto.misc /etc/auto.nfs2
vim /etc/auto.nfs2
nfs2 -fstype=nfs,ro 192.168.100.1:/share2 #增加
systemctl restart autofs
ll /mnt/nfs2 #发现什么都没有
cd /mnt/nfs2
cd nfs2
ll #发现自动挂载,退出目录后30秒自动卸载
NFS 网络文件系统测试笔记的更多相关文章
- NFS网络文件系统服务(配置实战)
NFS网络文件系统服务(实战) NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源.让不同的主机系统(NFS的客户端)可以透明地读写位 ...
- NFS网络文件系统安装配置
简介 NFS(Network File System)FS是由Sun开发并发展起来的一项用于在不同机器,不同操作系统之间通过网络共享数据.客户端用mount命令把远程的NFS文件系统挂载到本地即可,操 ...
- Linux实战教学笔记22:企业级NFS网络文件共享服务
目录 第二十二节 企业级NFS网络文件共享服务 第一章 NFS网络文件共享服务 1.1 NFS介绍 1.2 NFS系统原理介绍 1.3 NFS服务端部署环境准备 1.4 NFS server端的设置 ...
- Linux 学习笔记_12_文件共享服务_3_NFS网络文件服务
NFS网络文件服务 NFS---- Network File System 用于UNIX/Linux[UNIX类操作系统]系统间通过网络进行文件共享,用户可以把网络中NFS服务器提供的共享目录挂载到本 ...
- (转)企业级NFS网络文件共享服务
企业级NFS网络文件共享服务 原文:http://www.cnblogs.com/chensiqiqi/archive/2017/03/10/6530859.html --本教学笔记是本人学习和工作生 ...
- NFS网络储存系统
为什么用NFS网络文件存储系统? 1)实现数据信息统一一致 2)节省局域网数据同步传输的带宽 3)节省网站架构中服务器硬盘资源 NFS系统存储原理介绍 RPC服务类似一个中介服务,NFS服务端与NFS ...
- 【集群实战】NFS网络文件共享服务2-mount挂载(参数,优化)
1. NFS客户端挂载深入 1.1 NFS客户端挂载参数说明 在NFS服务端,可以通过cat /var/lib/nfs/etab查看NFS服务器端配置参数的细节. 在NFS客户端,可以通过cat /p ...
- atitit.网络文件访问协议.unc smb nfs ftp http的区别
atitit.网络文件访问协议.unc smb nfs ftp http的区别 1. 网络文件访问协议1 2. NETBios协议 2 3. SMB(Server Message Block)2 3 ...
- linux下如何挂接(mount)光盘镜像文件、移动硬盘、U盘、Windows网络共享和NFS网络共享
首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的. 命令格式: mount [-t vfstype] [-o options ...
随机推荐
- Doxygen简单经验谈。。。
Doxygen,大名鼎鼎的文档生成工具,被Boost.OpenCasCade等诸多项目作为文档生成的不二人选.人说,才华横溢往往是高深莫测,这句话放在 Doxygen这里显然是不适用的.十八般武艺样样 ...
- 组件化 得到 DDComponent JIMU 模块 插件 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Qt OpenGL:学习现代3D图形编程之四,透视投影浅析
一.非真实的世界 与之前几篇文章不同的是,这里要画12个三角形,这个12个三角形构造一个方形棱柱(这里为长方体).棱柱的每个四边形表面由两个三角形组成.这两个三角形其中的一条边重合,而且它们的六个顶点 ...
- Python 中parse.quote类似JavaScript encodeURI() 函数
from urllib import parse jsRet = 'roleO%2f'print(parse.unquote(jsRet))print(parse.quote(jsRet))输出: r ...
- 强化Linux安全的10个技能
1.找出不必要的服务 很明显,服务器上跑的服务,并不是每个都有用的.强烈建议检查并关掉不需要的服务,从而减少风险(多跑一个服务,就可能多几个漏洞). 查询运行在runlevel 3的服务列表: [af ...
- Linux Kernel系列三:Kernel编译和链接中的linker script语法详解
先要讲讲这个问题是怎么来的.(咱们在分析一个技术的时候,先要考虑它是想解决什么问题,或者学习新知识的时候,要清楚这个知识的目的是什么). 我在编译内核的时候,发现arch/arm/kernel目录下有 ...
- 10gocm->session3->数据备份与恢复
这个实验考查我们当数据库出现问题宕机.数据丢失的情况下怎样挽回我们的损失,怎样在最短时间内恢复我们的数据库服务. RMAN规划 host target库 catalog库 ocm01 ocmdb ...
- How to Redirect in ASPNET Web API
You could set the Location header: public HttpResponseMessage Get() { var response = Request.Creat ...
- wget获取整站
wget -m -e robots=off https://www.baidu.com -m是克隆整个网站,-e robots=off是让wget忽视robots.txt 如果网站有中文路径,最好用以 ...
- 刷完OpenWrt在浏览器无法访问的解决办法
其实问题很明显. 是因为刷了trunk版固件. 并没有集成luci. 那接下来就是装luci.但是装luci需要联网(不过其实不联网其实也是可以安装的.) 我说的联网是让路有联网.而不是网线接路由,路 ...