linux NFS网络文件系统
一、NFS服务简介
NFS是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由sun公司开发,于1984年向外公布。功能:通过网络让不同的机器、不同的操作系统能够彼此分享个别数据,让应用程序在客户端通过网络访问位于服务端磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS的基本原则是“容许不同的客户端及服务端通过一组RPC共享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用是能使客户端执行其他系统程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其他的传输协议。而这些传输协议用到这个RPC功能。可以说NFS本身就是使用RPC的一个程序。或者说NFS是一个RPC SERVER。所以只要NFS的地方必须启动RPC服务。总结:NFS只是一个文件系统,而rpc是负责信息的传输。
二、安装NFS服务
NFS需要两个软件包
nfs-utils-* 包括基本的NFS命令与监控程序
rpcbind-* 支持安全NFS RPC服务的连接
1.检查系统是否安装NFS
rpm -qa|grep nfs
rpm -qa|grep rpcbind
如果没有,先yum grouplist 再 yum groupinstall “NFS”
三、NFS服务器配置
NFS常用目录
/etc/exports NFS服务的主要配置文件
/usr/sbin/exportfs NFS服务的管理命令
/usr/sbin/showmount 客户端查看命令
/var/lib/nfs/etab 记录NFS分享出来的目录的完整权限设定值
/var/lib/nfs/xtab 记录曾经登录过的客户端信息
NFS服务的配置文件为/etc/exports,系统没有默认值,所以这个文件不一定会存在,可以使用vim手动建立,然后在文件里面写入配置内容。
/etc/exports文件内容格式:
<输出目录> 【客户端1 选项 (访问权限,用户映射,其他)】 【客户端2 选项(访问权限,用户映射,其他)】
a.输出目录:输出目录是指NFS系统中需要共享给客户机使用的目录
b.客户端:网络中可以访问这个NFS输出目录的计算机
客户端常用的指定方式:
指定ip地址的主机:192.168.0.200
指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0
指定域名的主机:david.bsmart.cn
指定域名中的所有主机:*.bsmart.cn
所有主机:*
c.选项:用来设置输出目录的访问权限,用户映射等
NFS主要有3类选项:
访问权限选项
设置输出目录只读:ro
设置输出目录读写:rw
用户映射选项
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或者用户组(nfsnobody)
no_all_squash:与all_squash相反(默认设置)
root_squash:将root用户及其所属组都映射为匿名用户or用户组
no_root_squash:与上相反
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组帐号,并指定该匿名用户组账户为本地用户组账户
其它选项(忽略,就用默认值)
四、NFS服务器的启动与停止
在对/etc/exports文件进行正确的配置后,就可以启动NFS服务器了。
1.启动NFS服务器
为了使nfs服务器能正常工作,需要启动rpcbind和nfs两个服务,并且rpcbind一定要先于nfs启动
service rpcbind start
service nfs start
2.查询nfs服务器状态
service rpcbind status
service nfs status
3.停止nfs服务器
要停止nfs,要先停止nfs再停止rpcbind服务,对于系统中有其他服务(如nis)需要使用时,不需要停止rpcbind服务
service nfs stop
service rpcbind stop
4.设置nfs服务器的自动启动状态
chkconfig --add
chkconfig --level 35
五、实例
1.将NFS server的/home/cairui 共享给192.168.66.128,权限读写
#vim /etc/exports
/home/cairui 192.168.66.128/24(rw)
2.重启rpcbind和nfs服务
service rpcbind restart
service nfs restart
exportfs
3.服务器端使用showmount命令查询NFS共享状态
showmount -e
showmount -a 显示已经与客户端连接上的目录信息
4.客户端使用showmount命令查询nfs的共享状态
showmount -e 服务端ip
5.客户端挂载nfs服务器中的共享目录
命令格式:mount NFS服务器IP:共享目录 本地挂载点目录
查看是否挂载成功:mount|grep nfs
查看文件是否与服务器端一致
6.NFS的共享权限和访问控制
在服务器/home/cairui修改权限使得客户端可写,可读
chmod 777 -R /home/cairui
6.卸载已挂载的NFS共享目录
格式:umount /tmp/cai
八.启动自动挂载nfs文件系统
格式:<server>:<remote/export>
</local/directory> nfs <option> 0 0
#vim /etc/fstab
最后一行为后加的
保存退出,重启系统
- BZOJ 1192: [HNOI2006]鬼谷子的钱袋(新生必做的水题)
- 快速傅里叶变换(FFT)算法【详解】
- Codeforces Round #416 (Div. 2)(A,思维题,暴力,B,思维题,暴力)
- 作为程序员的你在外行人眼里是一个怎样的群体?
- 高斯消元法(Gauss Elimination)【超详解&模板】
- [快学Python3]读写Excel - openpyxl库
- HDU 2147 kiki's game(规律,博弈)
- HDU 1847 Good Luck in CET-4 Everybody!(规律,博弈)
- [network][udp]你不要偷偷发包,我跟你讲
- [快学Python3]HTTP处理 - urllib模块
- 关小刷刷题08 – Leetcode 26. Remove Duplicates from Sorted Array 方法2、3
- C++课程设计类作业2
- C++课程设计类作业4
- [接口测试 - 基础篇] 01 你应该了解的协议基础
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- yii2.0框架使用 beforeAction 防非法登陆的方法分析
- PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
- php项目中类的自动加载实例讲解
- Yii框架参数配置文件params用法实例分析
- 使用Kotlin实现文字渐变TextView的代码
- thinkPHP5框架路由常用知识点汇总
- PHP实现一个限制实例化次数的类示例
- AndroidStudio中重载方法@Override的使用详解
- mysqli扩展无法在PHP7下升级问题的解决
- PHP通过文件保存和更新信息的方法分析
- PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
- PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
- android之json数据过长打印不全问题的解决
- PHP实现时间日期友好显示实现代码
- AndroidStudio插件GsonFormat之Json快速转换JavaBean教程