Linux----------nfs服务器的搭建及常识
一、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服务器的搭建及常识的更多相关文章
- 自学linux——21. NFS服务器的搭建
NFS服务器的搭建 1.NFS的认识 NFS(Network File System即网络文件系统)服务最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享文件,可以将远程 Linu ...
- 4、nfs服务器的搭建
4.1.nfs服务介绍: samba服务器一般互联网企业不会使用 nfs服务的端口是不固定的,需要先启动rpc服务对nfs服务端口进行注册 4.2.安装nfs: rpm -qa nfs-utils r ...
- Linux NFS服务器的安装与配置方法(图文详解)
这篇文章主要介绍了Linux NFS服务器的安装与配置方法(图文详解),需要的朋友可以参考下(http://xb.xcjl0834.com) 一.NFS服务简介 NFS 是Network File S ...
- Linux NFS服务器的简明配置6.8
Linux NFS服务器的简明配置6.8 Linux NFS服务器的简明配置 一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的 ...
- Linux NFS服务器搭建
1.NFS:NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源. 在NFS的应用中,本地N ...
- Linux下NFS服务器的搭建与配置
一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...
- Linux下NFS服务器的搭建与配置(转载)
一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...
- Linux下NFS服务器的搭建与配置(转)
一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...
- 4412开发板学习笔记-NFS服务器的搭建
转自iTOP-4412讨论群: http://www.topeetboard.com 先来介绍一下NFS: NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件 ...
随机推荐
- JAVAEE 第七周
JSON语法: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集 ...
- java web后台工作原理
多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它们是怎样处理来自全世界的http请求的?它们在幕后做了什么动作?Java Servlet API(例如Se ...
- @EnableHystrix
@EnableHystrix 启动熔断降级服务 @Component把普通的pojo类实例到spring容器中去,相当于配置文件中的<bean id="" class=&qu ...
- SQLServer学习记录
use TestDataBase;go -- 派生表-- 第3页,每页5条数据select * from (select ROW_NUMBER() over(order by stuId) as nu ...
- 基于.NET平台常用的框架整理<转载>
转载来自:http://www.cnblogs.com/hgmyz/p/5313983.html 基于.NET平台常用的框架整理 自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大 ...
- C++面试笔记(3)
20. 浅拷贝与深拷贝 如何理解C++中的浅拷贝与深拷贝 深拷贝和浅拷贝 在进行对象拷贝时,当对象包含对其他资源的引用,如果需要拷贝这个独享所引用的对象,那就是深拷贝,否则就是浅拷贝 *** 21.构 ...
- 20165214 2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 Week6
<网络对抗技术>Exp3 免杀原理与实践 Week5 一.实验目标与内容 1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp ...
- DELL H730P写策略write-through和write-back配置说明
write-through 数据在写入存储的同时,要写入缓存,这种方式安全但是会牺牲写性能,因为只有等数据完全落入硬盘后,才算是一次io完成,这个过程会造成cpu的iowait. write-back ...
- java DOM
使用DOM解析XML文档的步骤 1.创建解析器工厂对象 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 2 ...
- vue--http请求的封装--token
export const FetchHandler = function (url,opt) { let paramStr = ''; let token = ''; for(key in opt){ ...