nfs原理及安装配置
一、简介
二、工作原理
三、安装配置
一、简介
NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过网络共享资源。将NFS主机分享的目录,挂载到本地客户端当中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,在客户端端看起来,就像访问本地文件一样。
RPC,基于C/S模型。程序可以使用这个协议请求网络中另一台计算机上某程序的服务而不需知道网络细节,甚至可以请求对方的系统调用。
对于Linux而言,文件系统是在内核空间实现的,即文件系统比如ext3、ext4等是在Kernel启动时,以内核模块的身份加载运行的。
二、原理
NFS本身的服务并没有提供数据传递的协议,而是通过使用RPC(远程过程调用 Remote Procedure Call)来实现。当NFS启动后,会随机的使用一些端口,NFS就会向RPC去注册这些端口。RPC就会记录下这些端口,RPC会开启111端口。通过client端和sever端端口的连接来进行数据的传输。在启动nfs之前,首先要确保rpc服务启动。
具体过程如下:
- 本地用户要访问nfs服务器中文件,先向内核发起请求,内核处理调用nfs模块及rpc client
- rpc client向rpc server发起连接
- 在连接之前,NFS服务除了启动nfsd本身监听的端口2049/tcp和2049/udp,还会启动其它进程(如mountd,statd,rquotad等)以完成文件共享,这些进程的端口是不固定的;是每次NFS服务启动时向RPC服务注册的,RPC服务会随机分配未使用的端口
- 完成连接,接受访问请求
- nfs应用程序向内核发起请求
- 内核调用文件系统
然后client端通过获取的NFS端口来建立和server端的NFS连接并进行数据的传输。
以下为启动各服务的作用
rpc:远程过程调用协议,是实现本地调用远程主机实现系统调用的协议。
portmapper:负责分配rpc server的端口,并在client端请求时,负责响应目的rpc server端口返回给client端,工作在tcp与udp的111端口上。
mountd:是nfs服务的认证服务的守护进程,client在收到返回的真正端口时,就会去连接mountd,认证取得令牌。
nfsd:nfs的守护进程,负责接收到用户的调用请求后与内核发出请求并得到调用结果响应给用户,工作在tcp和udp的2049端口。
idmapd:是NFS的一个程序,用来负责远程client端创建文件后的权限问题。
quotad:用用于实现磁盘配额,当client端挂载nfs后可以限制磁盘空间的大小。
三、NFS服务配置安装
相关配置文件及命令的使用
/etc/exports
/path/to/somedir CLIENT_LIST
多个客户之间使用空白字符分隔
每个客户端后面必须跟一个小括号,里面定义了此客户访问特性,如访问权限等
172.16.0.0/16(ro,async) 192.16.0.0/24(rw,sync) *(ro)
权限属性:
ro:只读
rw:读写
sync:同步,数据同步写到内存与硬盘中
async:异步,数据先暂存内存
root_squash: 将root用户映射为来宾账号
no_root_squash: 有root的权限,不建议使用
all_squash: 全部映射为来宾账号
anonuid, anongid: 指定映射的来宾账号的UID和GID
exportfs命令:
-a:跟-r或-u选项同时使用,表示重新挂载所有文件系统或取消导出所有文件系统;
-r: 重新导出
-u: 取消导出
-v: 显示详细信息
showmount命令:
showmount -e NFS_SERVER: 查看NFS服务器"导出"的各文件系统
showmount -a NFS_SERVER: 查看NFS服务器所有被挂载的文件系统及其挂载的客户端对应关系列表
showmount -d NFS_SERVER: 显示NFS服务器所有导出的文件系统中被客户端挂载了文件系统列表
rpcinfo
-p hostname(orIP)
-p :显示所有的 port 与 program 的信息!
如果要让mountd和quotad等进程监听在固定端口,编辑配置文件/etc/sysconfig/nfs
客户端使用mount命令挂载
mount -t nfs NFS_SERVER:/PATH/TO/SOME_EXPORT /PATH/TO/SOMEWHRERE
安装配置
环境准备:
server端:192.168.1.222 centos 7
client端:192.168.1.200 centos 6.5
# yum install nfs-utils rpcbind -y
#systemctl start nfs
# mount -t nfs 192.168.1.222:/var/nfs /mnt
#showmount –e 192.168.1.222
将所有用户映射为来宾账号实验
- 在服务器端添加用户hot,并修改配置文件并重新挂载文件系统
添加用户
useradd –u 520 hot
修改/etc/exports
/var/nfs 192.168.1.0/24(rw,async,all_squash,anonuid=520)
重新挂载导出
exportfs –ra
- 在客户端上添加用户code,分别在code用户和root用户下创建文件,查看文件属性
可以看到文件属主都为服务器端设置好的来宾账号hot的uid
让mountd和quotad等进程监听在固定端口,编辑配置文件/etc/sysconfig/nfs,取消注释
重启nfs,查看端口
nfs原理及安装配置的更多相关文章
- NFS相关、NFS服务端安装配置、exportfs命令、nfs客户端的问题
1.NFS (network file system,基于RPC协议) 2.NFS服务端安装配置安装服务端:yum install nfs-utils rpcbind -y安装客户端:yum inst ...
- NFS介绍 NFS服务端安装配置 NFS配置选项
NFS 介绍 • NFS是Network File System的缩写 • NFS最早由Sun公司开发,分2,,4三个版本,2和3由Sun起草开发,.0开始Netapp公司参与并主导开发,最新为4.1 ...
- (转)使用LVS实现负载均衡原理及安装配置详解
使用LVS实现负载均衡原理及安装配置详解 原文:https://www.cnblogs.com/liwei0526vip/p/6370103.html
- LVS实现负载均衡原理及安装配置
LVS实现负载均衡原理及安装配置 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F ...
- LVS实现负载均衡原理及安装配置 负载均衡
LVS实现负载均衡原理及安装配置 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F ...
- Linux centosVMware NFS介绍、NFS服务端安装配置、NFS配置选项
一.NFS介绍 NFS是Network File System的缩写 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版 ...
- zookeeper工作原理、安装配置、工具命令简介
1.Zookeeper简介 Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等等. 2.zo ...
- LINUX下NFS系统的安装配置
准备:NFS系统服务器IP 192.168.135.1 ,NFS共享目录/mnt/NFS 一.安装NFS 查看nfs是否安装 #rpm -qa | grep nfs 若没有则安装nfs包 #yum i ...
- [转载] zookeeper工作原理、安装配置、工具命令简介
转载自http://www.cnblogs.com/kunpengit/p/4045334.html 1 Zookeeper简介Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到 ...
随机推荐
- FIFO、LRU、LFU的含义和原理
含义: FIFO:First In First Out,先进先出LRU:Least Recently Used,最近最少使用 LFU:Least Frequently Used,最不经常使用 以上三者 ...
- 2018-01-11 Antlr4的分析错误处理
中文编程知乎专栏原文地址 (前文通用型的中文编程语言探讨之一: 高考, 即使是这"第一步", 即使一切顺利达到列出的功能恐怕也需要个人数年的业余时间. 看到不少乎友都远更有资本和实 ...
- JS中数组去重的九方法
数组去重方法 方法一:运用set结构特点:存储的数据没有重复的,结果为对象,再用Array.from()转换成数组 var arr = [1,1,2,1,3,4,5] ...
- mysql学习目录
MySQL数据库 mysql 之库, 表的简易操作 mysql之行(记录)的详细操作 mysql之单表查询 mysql之多表查询 Navicat安装及简单使用 mysql之Navicat工具.pymy ...
- python之初识网络
一. C/S架构:客户端(client)/服务端(server)架构 B/S架构:浏览器(browser) / 服务端(server)架构 软件cs架构: 浏览器,qq,微信等等 硬件cs架构:打印机 ...
- Echarts简单案例
官网: http://echarts.baidu.com/index.html 文档: http://echarts.baidu.com/echarts2/doc/doc.html <html ...
- 移动端reset
* { margin: 0; padding: 0;}article, aside, details, figcaption, figure, footer, header, hgroup, main ...
- Android View 绘制流程
Android 中 Activity 是作为应用程序的载体存在,代表着一个完整的用户界面,提供了一个窗口来绘制各种视图,当 Activity 启动时,我们会通过 setContentView 方法来设 ...
- gson解析json
json介绍 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本 ...
- MySQL安全模式:sql_safe_updates讲解
什么是安全模式 在mysql中,如果在update和delete没有加上where条件,数据将会全部修改.不只是初识mysql的开发者会遇到这个问题,工作有一定经验的工程师难免也会忘记写入where条 ...