一、nfs简介

nfs(network file system)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。

nfs主要适用用linux与Unix系统间文件共享,由于是nfs是明文传输,无法加密,而且只能基于IP认证,所以一般用于公司或校园的局域网。

nfs的优点就是能大量节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,而且访问的时候就跟访问自己的家目录一样方便,而且数据同步非常稳定、迅速。

nfs是运行在应用层的协议,监听于2049/tcp端口和2049/udp套接字。

二、nfs的组成

nfs可以由一台nfs服务器和N台客户机组成

客户机通过tcp/ip协议网络远程访问存放在NFS服务器上的数据

在nfs服务器正式启用前,根据实际环境和需求,配置一些nfs参数

三、nfs的应用场景

多个机器共享一台CDROM或其他设备,这样比多台机器都装一台CDROM方便的多

大型局域网内,配置一台NFS服务器用于放置所有用户的home目录,不管你周围局域网哪台工作站上登录,都是同一目录,能给工作带来极大的方便

不同客户端如果通过NFS观看影视文件,能节省大量本地空间

在客户端完成的工作数据,可以备份到NFS服务器上自己的路径下

四、nfs的工作原理

nfs是通过rpc(远程过程调用协议)来实现网络文件系统共享的,rpc是通过网络从远程计算机上请求服务器,不需要通过底层网络技术的协议

nfs服务器端运行了四个进程:

nfsd

mountd

idmapd

portmapper

idmapd       ----实现用户账号的集中映射,把所有的账号都映射成NFSNOBODY,但在访问时却能以本地用户访问,所以需要目录的权限

mountd       ----用户验证客户端是否在允许访问此NFS文件系统的客户端列表中,在就允许访问

nfsd            ----nfs的守护进程,监听在2049端口上

portmapper ---nfs服务器的rpc服务,监听在111端口,用于管理远程过程调用

举个例子说明工作过程:

客户机A想查看file文件的信息,此信息存储在远程NFS服务器端主机B(挂载在本地目录/nfs中),A把查看文件信息的请求发给内核,内核通过NFS模块明白是远程主机B上的,内核通过RPC协议吧请求封装成rpc请求通过tcp111端口发给主机B的portmapper,portmapper告诉A主机B主机的mountd服务所在端口,然后A去找mountd请求验证,mountd看他有的允许列表,如果A在表内,就给一个令牌给A,A拿着这个令牌去找B主机的nfsd进程,请求查看需要的文件,B主机的nfsd进程发起本地调用,向B内核请求查看主机A要查看的文件信息,B内核执行系统调用,将结果返回给nfsd服务,nfsd服务器收到后将结果封装成rpc请求报文并用过tcp/ip协议发给主机A

五、配置文件

nfs的主配置文件是/etc/exports,此文件定位NFS系统的输出目录(共享目录),访问权限参数,允许访问的主机参数,该文件默认为空,文件每一行提供一个共享目录的使者,其格式为

《共享目录》 【 客户端1IP(权限参数)】 【客户端2IP(权限参数)】

共享目录为你想要共享出去的目录绝对路径

客户端ip为你想共享给哪些或哪个主机

权限参数为用户访问的权限,用户映射的选项

exportfs  -r 重读配置文件,使其立即生效,无需重启服务

访问权限选项:

访问权限选项 说明
ro 设置输出目录只读
rw 设置输出目录可读写

用户映射选项:

用户映射选项 说明
all_squash 将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)
no_all_squash 不将远程访问的所有普通用户及所属用户组都映射为匿名用户或用户组(默认设置)
root_squash 将root用户及所属用户组都映射为匿名用户或用户组(默认设置)
no_root_squash 不将root用户及所属用户组都映射为匿名用户或用户组
anonuid=xxx 将远程访问的所有用户都映射为匿名用户,并指定该匿名用户为本地用户帐户(UID=xxx)
anongid=xxx 将远程访问的所有用户组都映射为匿名用户组,并指定该匿名用户组为本地用户组(GID=xxx)

常用的其他选项:

其他选项 说明
secure 限制客户端只能从小于1024的TCP/IP端口连接NFS服务器(默认设置)
insecure 允许客户端从大于1024的TCP/IP端口连接NFS服务器
sync 将数据同步写入内存缓冲区或磁盘中,效率较低,但可保证数据一致性
async 将数据先保存在内存缓冲区中,必要时才写入磁盘
wdelay 检查是否有相关的写操作,如果有则这些写操作一起执行,可提高效率(默认设置)
no_wdelay 若有写操作则立即执行,应与sync配置使用
subtree_check 若输出目录是一个子目录,则NFS服务器将检查其父目录的权限(默认设置)
no_subtree_check 即使输出目录是一个子目录,NFS服务亦不检查其父目录的权限,可提高效率
nohide 若将一个目录挂载到另一个目录之上,则原来的目录通常就被隐藏起来或看起来像空的一样。要禁用这种行为,需启用hide选项

六、nfs使用:

nfs安装

yum -y install rpcbind nfs-utils

启动服务

systemctl  start rpcbind nfs-server

shoumount命令测试共享目录状态

-a  显示指定NFS服务器的所有客户端主机及其所连接的目录

-d  显示指定NFS服务器的已被客户端连接的所有输出目录

-e显示指定NFS服务器的所输出的共享目录

客户端临时挂载NFS文件系统

yum install rpcbind nfs-utils -y

mount -t nfs  ip:/path1    /path2

客户端设置自动挂载nfs

vim /etc/fstab

ip/path   /path2  nfs defaults,_netdev  0 0

mount -a

df -h

检查输出目录所使用的选项:
在配置文件/etc/exports中,即使在命令行中只设置了一两个选项,但在真正输出目录时,实际上还带有很多默认的选项。通过查看/var/lib/nfs/etab文件,可以看到具体使用了何选项

七、NFS使用实例:

1.手动搭建一个nfs服务器
开放/nfs/shared目录,供所有用户查阅资料
开放/nfs/upload目录为172.16.12.0/24网段的数据上传目录,并将所有用户及所属的用户组都映射为nfs-upload,其UID与GID均为300

服务器端
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
yum install rpcbind nfs-utils
mkdir /nfs
chmod 775 /nfs
groupadd -g 300 nfs-upload
useradd -u 300 -g 300 nfs-upload
echo " /nfs 172.16.12.0/24(ro,all-squash,root_squash,anonuid=300,anongid=300,sync)" > /etc/export
systemctl start rpcbind nfs-server
systemctl enable nfs-server
systemctl enable rpcbind
exportfs -r

客户端

mkdir /nfs
mount -t nfs 192.168.160.46:/data/nfs /nfs


vim /etc/fstab
192.168.160.46:/data/nfs /nfs nfs defaults,_netdev 0 0

mount- a
df -h

Linux----------nfs服务器的搭建及常识的更多相关文章

  1. 自学linux——21. NFS服务器的搭建

    NFS服务器的搭建 1.NFS的认识 NFS(Network File System即网络文件系统)服务最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享文件,可以将远程 Linu ...

  2. 4、nfs服务器的搭建

    4.1.nfs服务介绍: samba服务器一般互联网企业不会使用 nfs服务的端口是不固定的,需要先启动rpc服务对nfs服务端口进行注册 4.2.安装nfs: rpm -qa nfs-utils r ...

  3. Linux NFS服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了Linux NFS服务器的安装与配置方法(图文详解),需要的朋友可以参考下(http://xb.xcjl0834.com) 一.NFS服务简介 NFS 是Network File S ...

  4. Linux NFS服务器的简明配置6.8

    Linux NFS服务器的简明配置6.8   Linux NFS服务器的简明配置 一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的 ...

  5. Linux NFS服务器搭建

    1.NFS:NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.   在NFS的应用中,本地N ...

  6. Linux下NFS服务器的搭建与配置

    一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...

  7. Linux下NFS服务器的搭建与配置(转载)

    一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...

  8. Linux下NFS服务器的搭建与配置(转)

    一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...

  9. 4412开发板学习笔记-NFS服务器的搭建

    转自iTOP-4412讨论群: http://www.topeetboard.com 先来介绍一下NFS: NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件 ...

随机推荐

  1. MyLog

    using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;us ...

  2. Vue项目的打包

    vue项目的打包 更改config文件夹下的index.js里的assetsPublicPath路径    将 “/”  改为  “./” build: { env: require('./prod. ...

  3. 消息队列kafka集群搭建

    linux系统kafka集群搭建(3个节点192.168.204.128.192.168.204.129.192.168.204.130)    本篇文章kafka集群采用外部zookeeper,没采 ...

  4. jq解决a连接锚点平滑过渡

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  5. inner join on (程序测试验证结果。) _学习贴

    inner join on  两张表:机制就是第一张表的每一条数据,都会去和第二章表的每一条数据 依次进行匹配.匹配成功,就会显示出来. (程序测试验证结果.) 数据库连接 1 对 1 create ...

  6. tensorFlow入门实践(一)

    首先应用TensorFlow完成一个线性回归,了解TensorFlow的数据类型和运行机制. import tensorflow as tf import numpy as np import mat ...

  7. 学号 20175223 《Java程序设计》第9周学习总结

    目录 教材学习内容总结 教材学习中的问题和解决过程 1. 输出文件时过多输出. 代码调试中的问题和解决过程 1. 问题:费马素性检验程序. [代码托管] 学习进度条 参考资料 目录 教材学习内容总结 ...

  8. 第一条python语句!

  9. axis2设置soap1.1或soap1.2协议

    现在Axis.Axis2都是同时支持SOAP1.1和SOAP1.2的.即在服务器端发布一个WebService服务之后,客户端既可以通过SOAP1.1版本来访问服务器的服务,也可以通过SOAP1.2版 ...

  10. 【Python】*args和**kwargs的区别

    1.*args表示将参数作为元组传给函数 通过一个函数的定义来理解’*args’的含义 修改函数的定义: >>> def fun(*args): ... print args ... ...