NFS配置及使用
什么是NFS
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享存储。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
NFS 的实现使用了RPC(Remote Procedure Call)的机制,远程过程调用使得客户端可以调用服务端的函数。由于有 VFS 的存在,客户端可以像使用其他普通文件系统一样使用 NFS 文件系统,由操作系统内核将 NFS 文件系统的调用请求通过 TCP/IP 发送至服务端的 NFS 服务,执行相关的操作,之后服务端再讲操作结果返回客户端。
FTP、NFS、Samba区别
FTP
FTP 是一个文件传输的协议,客户端需要使用专门的 ftp 客户端与服务器端进行通信,以完成文件的上传和下载,FTP 协议工作在应用层。它使用两个连接与客户端通信:
- 命令连接:用于传输文件管理类命令,此连接在客户端连接后会始终在线
- 数据连接:用于传输文件数据,此连接会按序创建
FTP 服务器会监听 TCP 21 号端口用于命令连接,而数据连接有两种模式:
- 主动模式,服务器使用 TCP 20 号端口主动创建连接到客户端的某随机端口
- 被动模式,客户端使用随机端口连接服务器端的随机端口
NFS
略
Samba
NFS 只能在 Unix 系统间进行共享,而 Windows 对其支持很有限。因此有人就在 Linux/Unix 系统中实现了 Windows 文件共享所使用的 CIFS 协议,也叫做 SMB(Simple Message Block)协议。这使得 Windows/Linux/Unix 间可以自由的进行文件共享。
系统环境
服务器系统平台:Ubuntu 16.04
- Server IP:192.168.64.130
- Client IP :192.168.64.129 (Ubuntu)
- Client IP :192.168.6.23 (Windows)
NFS服务器配置
Ubuntu安装NFS服务
[iceman@ubuntu]$: sudo apt-get install rpcbind nfs-kernel-server
NFS服务配置
配置NFS比较简单,主要是在/etc/exports文件中添加需要共享的文件目录和相应权限,
1.建立共享文件
[iceman@ubuntu]$: sudo mkdir /home/share
[iceman@ubuntu]$: sudo vim /etc/exports #编辑添加权限配置
/home/share 192.168.64.129(rw,sync,no_root_squash,no_all_squash,no_subtree_check)
2.exports配置选项简介
/etc/exports配置文件配置比较简单,只需要上面一行即可。该行分为3部分:
- 服务器上需要共享出去的文件目录
- 允许访问的客户端地址,可以是客户端IP地址也可以是一个网段(192.168.64.0/24)
- 括号中逗号分隔项,主要是一些权限选项
3.输出目录选项简介:
访问权限选项:
- rw:读写
- ro:只读
用户映射选项:
- no_root_squash:加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样。不安全,不建议使用
- root_squash:和上面的选项对应,root用户对共享目录的权限不高,只有普通用户的权限,即限制了root;
- all_squash:不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份
- anonuid/anongid:要和root_squash 以及 all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid
其他选项:
- sync:同步模式,内存中数据时时写入磁盘
- async:不同步,把内存中数据定期写入磁盘中
- secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置)
- insecure:允许客户端从大于1024的tcp/ip端口连接服务器
- wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置)
- no_wdelay:若有写操作则立即执行,应与sync配合使用
- subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置)
- no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
4.NFS服务器重启
[iceman@ubuntu]$: sudo /etc/init.d/rpcbind restart #重启rpcbind 服务(nfs是通过RPC端口映射)
[iceman@ubuntu]$: sudo /etc/init.d/nfs-kernel-server restart #重启nfs服务。
NFS客户端挂载
客户端配置本文主要从Ubuntu和Windows下进行文件系统挂载
Ubuntu挂载
[iceman@ubuntu]$: sudo apt-get install nfs-kernel-server
[iceman@ubuntu]$: sudo mount -t nfs 192.168.64.130:/home/share /home/foo
自动挂载NFS
[iceman@ubuntu]$: sudo vim /etc/rc.local #添加如下信息
mount -t nfs 192.168.64.130:/home/share /home/foo
exit 0
Windows挂载
在windows中默认NFS客户端服务是关闭的,需要开启服务
开启步骤:
- 打开控制面板->程序->打开或关闭windows功能->NFS客户端
- 勾选NFS客户端,即开启windows NFS客户端服务
开始挂载:
- win+R->cmd
- mount 192.168.64.130:/home/share X:
成功挂载,打开我的点脑,你即可在你网络位置看到 X:盘
取消挂载
Ubuntu取消挂载
[iceman@ubuntu]$: sudo umount /home/foo
Windows取消挂载
- 直接在 "我的电脑" 里面鼠标点击取消映射网络驱动器 X:
- 或者: win+R->cmd; 输入: umount X: #(umount -a 取消所有网络驱动器)
Showmount命令
- showmount –a IP 显示指定NFS服务器的客户端以及服务器端在客户端的挂载点
- showmount –d IP 显示指定NFS服务器在客户端的挂载点
- showmount –e IP 显示指定NFS服务器上的共享目录列表
偶遇问题
"mount.nfs: access denied by server while mounting"
当出现该问题时,记得在exports 添加insecure,如下:
[iceman@ubuntu]$: sudo vim /etc/exports #编辑添加权限配置
/home/share 192.168.64.129(insecure,rw,sync,no_root_squash,no_all_squash,no_subtree_check)
Windows7配置NFS服务器
在windows上配置NFS服务器,目前可以通过开源软件来进行搭建,目前只介绍下开源库,后期再详细分析
开源Windows NFS服务端库
NFS(C#)
WinNFSd(C++)
NFS配置及使用的更多相关文章
- NFS 配置服务
NFS 配置服务 北京市海淀区 张俊浩 一.NFS.即网络文件系统(Network File System,NFS).一种使用于分散式文件系统的协议,由升阳公司开发.于1984年向外发布.功能是通过 ...
- 某电商网站线上drbd+heartbeat+nfs配置
1.环境 nfs1.test.com 10.1.1.1 nfs2.test.com 10.1.1.2 2.drbd配置 安装drbd yum -y install gcc gcc-c++ make g ...
- Nginx负载均衡NFS配置
Nginx配置 首先在两台服务器上部署同一个项目,例如下: 测试网站节点1: http://192.168.168.61/nfstest/ 测试网站节点2: http://192.168.64.145 ...
- NFS配置不当导致的那些事儿
NFS(Network File System):是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源: NFS配置:(声明:以下NFS实验是在RedHat7上 ...
- Linux:NFS配置
NFS配置 1.创建分享的文件:touch /var/www/html/aa.txt2.查看是否安装NFS:rpm -qa|grep nfs3.查看IP地址:ifconfig4.配置NFS:vi /e ...
- Redhat Linux NFS配置
Linux下,All deviceis file,所有的设备都是文件.当我们需要把某些文件夹就或者文件共享给其他用户,就可以使用网络文件系统. 本文介绍Redhat Linux下的NFS配置. 在使用 ...
- NFS介绍 NFS服务端安装配置 NFS配置选项
NFS 介绍 • NFS是Network File System的缩写 • NFS最早由Sun公司开发,分2,,4三个版本,2和3由Sun起草开发,.0开始Netapp公司参与并主导开发,最新为4.1 ...
- CentOS6.6下DRBD+HeartBeat+NFS配置
一.DRBD配置 Distributed Replicated Block Device(DRBD)是一个用软件实现的.无共享的.服务器之间镜像块设备内容的存储复制解决方案. 我们可以理解为它其实就是 ...
- NFS介绍、服务端安装配置、NFS配置选项
6月21日任务 14.1 NFS介绍14.2 NFS服务端安装配置14.3 NFS配置选项 14.1 NFS介绍 14.2 NFS服务端安装配置 1.首先需要2台机器,一台是服务端,一台是客户端,分别 ...
- centos7下NFS配置
NFS是Network File System的缩写,即网络文件系统.客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下. 前言 四台机器: ,218三台机器的/root/filedi ...
随机推荐
- 跟我一起读postgresql源码(十三)——Executor(查询执行模块之——Join节点(上))
Join节点 JOIN节点有以下三种: T_NestLoopState, T_MergeJoinState, T_HashJoinState, 连接类型节点对应于关系代数中的连接操作,PostgreS ...
- java 数据类型间的转换
byte a = (byte)129; 129已经超过了byte数据类型的存储上限,所以需要在值的前面加括号需要转换的数据类型名. 但是从高往低转的时候数值精度会有丢失; 所以最后结果为 a = -1 ...
- SSL证书绑定成功
LNMPA一键安装包:装好后, 静态文件用nginx服务器,php文件用Apache服务器, 默认Apache端口为88:nginx为80: SSL证书装之前80端口, 装好后用443端口:
- Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。
例1:用Linux下的curl命令发送POST请求给Apache服务器上的HTML静态页 [root@new-host ~]# curl -d 1=1 http://www.sohu.com/inde ...
- Centos系统下Lamp环境的快速搭建(超详细)
lamp的搭建对于初学者是一件很头疼的事情,所以借此机会把自己当初快速搭建linux+apche+mysql+php的方法分享大家希望能到你. 工具/原料 虚拟机及Centos操作系统 Linux基本 ...
- protobuf 原理
Protobuf 的优点 Protobuf 有如 XML,不过它更小.更快.也更简单.你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构.你甚至可以在无需重新部署程序的情况下更新 ...
- UWP: 实现 UWP 应用自启动
在上一篇文章中,我们实现了使用命令行来启动 UWP 应用,在这一篇文章中,我们会实现 UWP 应用自启用的实现,也即开机后或用户登陆后,应用自己启动.这些特性原来都是 Win32 程序所具备的,UWP ...
- Python判断文件是否存在的三种方法【转】
转:http://www.cnblogs.com/jhao/p/7243043.html 通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先 ...
- AI_深度学习为何兴起?
深度学习和神经网络,在此技术背后的理念,已经发展了好几十年了,为何现在流行起来了? 最直接因素: 将帮助你在自己的组织中,发现好机会,来应用这些东西 为什么深度学习这么厉害? x轴表示完成任务的数据数 ...
- 爬取知名社区技术文章_items_2
item中定义获取的字段和原始数据进行处理并合法化数据 #!/usr/bin/python3 # -*- coding: utf-8 -*- import scrapy import hashlib ...