天天看点

实战NFS文件共享存储详解

NFS简介

NFS工作流程

使用NFS的好处

NFS应用环境

NFS服务器安装

NFS客户端配置

实例:创建web共享

NFS(Network File System)即网络文件系统,Sun公司开发,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
简单的说:NFS是Linux之间的一种文件共享系统(Linux与Windows之间的共享使用Samba是专业的),NFS配置完成之后,客户端访问这个共享就像访问本地文件一样!(NFS通过软件也可以实现与Windows之间的共享)

<a href="http://s1.51cto.com/wyfs02/M00/8A/7A/wKiom1gxqvzxUF7XAACNFXVYm5U648.png" target="_blank"></a>

<code>RPC,Remote Procedure Call Protocol</code>,远程过程调用协议,是实现本地调用远程主机实现系统调用的协议。 

<code>portmapper</code>:负责分配RPC服务器的端口,并在客户端请求时,负责响应目的RPC服务器端口返回给客户端,工作在tcp与udp的111端口上。 

<code>mountd</code>:是nfs服务的认证服务的守护进程,客户端在收到返回的真正端口时,就会去连接mountd,认证取得令牌。 

<code>nfsd</code>:nfs的守护进程,负责接收到用户的调用请求后与内核发出请求并得到调用结果响应给用户。 

<code>idmapd</code>:是NFS的一个程序,用来负责远程客户端创建文件后的权限问题。

<code>使用NFS的好处</code> 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用,而却通过Autofs可以实现目录漫游!(NIS,LDAP) 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。 强有力的权限控制
<code>NFS应用环境</code> 多个机器共享一台CDROM或者其他设备。这对于在多台机器中安装软件来说更加便宜跟方便。 在大型网络中,配置一台中心 NFS 服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录。家目录漫游 不同客户端可在NFS上观看影视文件,节省本地空间。 在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下。 NFS是运行在应用层的协议。随着NFS多年的发展和改进,NFS既可以用于局域网也可以用于广域网,且与操作系统和硬件无关,可以在不同的计算机或系统上运行。 控制统一存储,比如集群,这样当我们的访问集群提供的服务,我们拿到的数据怎么都是一致的!
NFS服务nfsd本身监听的端口是2049/tcp和2049/udp,但还会启动其它进程(如mountd,statd,rquotad等)以完成文件共享,这些进程的端口是不固定的;是每次NFS服务启动时向RPC服务注册的,RPC服务会随机分配未使用的端口

要安装NFS服务器必须安装两个软件包:rpcbind和nfs-utils

Rpcbind,是rpc主程序,  Nfs-utils,是nfs的主程序

/etc/exports 主配置文件

/usr/sbin/exportfs 维护NFS共享资源的指令,一般用于NFS服务器端

/usr/sbin/showmount 查看NFS共享出来的目录资源,一般用于NFS客户端

/var/lib/nfs/xtab NFS的日志文件,主要记录曾经连入NFS服务器端的客户端信息

/etc/exports文件是NFS主要的配置文件,该文件用于设置服务器的共享目录,以及目录允许访问的主机,访问权限,和其他选项,NFS安装后会在/etc/目录下创建一个空文件,用户需要自定编辑

<code>格式</code>

共享目录:即提供了NFS客户端使用的目录

客户端:可以访问共享目录的计算机,可以通过IP地址和主机名进行指定,也可以使用子网掩码指定网段

选项:指定该共享目录的访问权限

ro

该主机对该共享目录有只读权限 

rw

该主机对该共享目录有读写权限,要注意是针对nfs之外还有目录自己权限

root_squash

客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户

no_root_squash

客户机用root访问该共享文件夹时,不压制root用户身份 

all_squash

客户机上的任何用户访问该共享目录时都映射成匿名用户

anonuid

将客户机上的用户映射成指定的本地用户ID的用户 

anongid

将客户机上的用户映射成属于指定的本地用户组ID 

sync

资料同步写入到内存与硬盘中 

async

资料会先暂存于内存中,而非直接写入硬盘 

insecure

允许从这台机器过来的非授权访问

NFS服务启动后,会读取/etc/exports配置文件的内容,把文件中设置的共享目录输出,供客户端使用,在NFS后,如果对/etc/exports进行了修改,需要通过exportfs命令进行对共享目录输出,输入完成后,客户端才能访问新设置的共享目录
要在NFS客户端使用服务器的共享目录,需要在本地主机上启动rpcbind服务,还可以使用showmount命令查看NFS服务器共享的目录有哪些,使用mkdir命令在本地建立共享目录的挂载点,然后受用mount命令挂载到本地

卸载挂载目录

开机自动挂载NFS共享目录

<a href="http://s5.51cto.com/wyfs02/M02/8A/7A/wKiom1gxq5TzeYKcAAB8i3Z5RH0170.jpg" target="_blank"></a>

1、 创建web目录

2、共享web目录

3、启动nfs功能

<a href="http://s2.51cto.com/wyfs02/M00/8A/76/wKioL1gxq33SHw1qAAAyK_4yEWI337.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/8A/76/wKioL1gxq7GhkTeVAAAs2IiU6Ko483.jpg" target="_blank"></a>

本文转自 好笔记运维 51CTO博客,原文链接:http://blog.51cto.com/zhang789/1874840,如需转载请自行联系原作者