Linux运维之网络文件系统NFS介绍与部署(CentOS 7.2版本)
来源:互联网 发布:樱井知香番号合集 编辑:程序博客网 时间:2024/06/05 18:06
NFS概述
NFS(Network File System)即网络文件系统,是一款通过网络方式共享文件系统的通用共享解决方案。NFS目前有三个版本:NFSv2、NFSv3、NFSv4。CentOS 7.2默认使用的是版本4提供网络文件系统共享服务,NFS监听在TCP 2049端口。
当两台计算机需要通过网络建立连接时,双方主机需要通过IP、端口号等信息进行通信。当有100台客户端访问服务器时,服务器就需要记住这些计算机的IP、端口号这些信息,而这些信息是需要程序来管理的。在Linux中,这样的信息可以由某个特定服务自己来管理,也可以委托给RPC来帮助管理。RPC是远程过程中调用协议,RPC协议为远程通信双方所需的基本信息,这样NFS服务就专注于如何共享数据,至于通信连接以及连接的基本信息,则全权委托为RPC管理。CentOS 7系统由rpcbind服务来提供RPC协议的支持(在老版本上是portmap来提供RPC协议的),目前NFSv4虽然不需要于rpcbind直接交互,但是rpc.mountd依然是NFSv4所必需的服务。所以在CentOS 7 平台上实现NFS共享,需要同时启动NFS和rpcbind服务。
所需要的软件是:nfs-utils,rpcbind
NFS服务器配置
NFS服务器读取/etc/exports 配置文件,该文件可以设定哪些客户端可以访问NFS共享文件系统。
该文件的书写原则如下:
- 空白行将被忽略
- 以#符号开头的内容将为注释
- 配置文件中可以通过符号转义换行
- 每个共享的文件系统需要独立一行条目
- 客户端主机列表需要使用空格隔开
- 配置文件中支持通配符
一条完整的共享条目语法结构如下,其中,客户端主机可以是一个网段、单台主机或主机名
共享路径 客户端主机(选项)
共享路径 客户端主机1(选项) 客户端主机2(选项) …
不添加选项时,会使用默认配置,默认配置是:ro、sync、wdelay、no_root_squash
具体的选项配置如下:
- ro:共享目录只读;
- rw:共享目录可读可写;
- all_squash:所有访问用户都映射为匿名用户或用户组;
- no_all_squash:访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
- root_squash:将来访的root用户映射为匿名用户或用户组;
- no_root_squash:来访的root用户保持root帐号权限;
- anonuid=:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534);
- anongid=:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534);
- secure:限制客户端只能从小于1024的tcp/ip端口连接服务器;
- insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
- sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
- async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
- wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率;
- no_wdelay:若有写操作则立即执行,应与sync配合使用;
- subtree_check :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
- no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
NFS部署实例
服务器配置操作步骤为:安装软件、添加共享账户、创建共享目录、修改权限、设置NFS共享配置文件、启动共享服务。
服务器配置如下:
以上就是服务器端的配置,下面是客户端的访问和使用
NFS权限分析,由于共享数据实际是存储在NFS服务器上的,所以所有的操作实际是以服务器本机账户进行的,只是服务器会根据不同的情况将远程客户端的访问账户转换为不同的服务器本机账户。
- 客户端使用普通用户连接服务器时,默认情况下,如果客户端使用的账户的UID在服务器上也有相同账号的UID,则服务器将使用服务器本机上该UID账户进行读写操作,如果客户端访问服务器所使用的UID不在服务器上,该服务器自动将账号转换为nobody账号。此外,如果服务器端对共享属性配置了all_squash选项,则服务器会根据anonuid选项的值,将所有的账户自动转换为匿名账号。
- 客户端使用root连接服务器时,默认会将root转换为服务器上的nfsnobody账号,如果服务器端对共享属性配置了no_root_squash选项,则服务器会将远程root账户转换为本机root账户进行读写操作。
- Linux运维之网络文件系统NFS介绍与部署(CentOS 7.2版本)
- linux CentOS 6.4 NFS网络文件系统
- linux学习之旅(二十三)&NFS网络文件系统
- linux系统之nfs(网络文件系统)文件共享
- Linux-nfs网络文件系统
- nfs网络文件系统 iscsi网络存储部署
- NFS (网络文件系统)
- Linux运维笔记-文档总结-NFS文件共享(网络文件系统)
- linux 配置nfs网络文件系统
- Linux学习nfs网络文件系统
- Linux下NFS(网络文件系统)的建立与配置方法
- Linux下NFS(网络文件系统)的建立与配置方法
- Linux下NFS(网络文件系统)的建立与配置方法
- Linux下NFS(网络文件系统)的建立与配置方法
- Linux下NFS(网络文件系统)的建立与配置方法
- Linux下NFS(网络文件系统)的建立与配置方法
- Linux下NFS(网络文件系统)的建立与配置方法
- Linux下NFS(网络文件系统)的建立与配置方法
- error LNK2019: 无法解析的外部符号
- 觉得很有用,以后常看看
- 使用VS2017的跨平台项目对muduo进行编译
- C语言初步-第24讲:if语句的嵌套(个人所得税计算器if语句版)
- 创建型模式之工厂模式
- Linux运维之网络文件系统NFS介绍与部署(CentOS 7.2版本)
- 读书笔记-07随需而变:网站的可扩展架构
- iOS中JS与原生OC互相调用之问题总结二
- Didn't find class "com.google.firebase.provider.FirebaseInitProvider"
- The study of Higher-order function in Python(20170913)
- c++ 插入迭代器
- 数据结构和算法--二叉树的实现
- 总结 2017.9.13
- Java连接MnogoDb数据库