设为首页 收藏本站
查看: 892|回复: 1

[经验分享] NFS网络文件系统安装配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-8-21 08:47:18 | 显示全部楼层 |阅读模式

简介

   NFS(Network File System)FS是由Sun开发并发展起来的一项用于在不同机器,不同操作系统之间通过网络共享数据。客户端用mount命令把远程的NFS文件系统挂载到本地即可,操作远程服务端的文件跟操作本地的文件几乎没什么区别。



一、NFS工作原理与RPC服务的关系

二、NFS服务的安装配置及文件介绍

三、客户端的使用


一、NFS工作原理与RPC服务的关系

1、NFS的工作原理如下图:

210040647.gif

1)、访问一个本地的文件还是NFS文件对客户端来说是透明的,当文件打开时,由内核决定。文件打开后,内核将本地文件的所有引用传递给-->本地文件访问框中,而将一个NFS文件的所有引用传递给-->NFS客户端框中。

2)、NFS客户端通过其TCP/IP模块向NFS服务器发送RPC请求,NFS主要使用UDP,最新的也可以使用TCP。

3)、NFS服务器在端口2049接收作为UDP数据包的客户端请求,尽管NFS可以被视为使用端口映射,允许服务器使用一个临时端口,但大多数都是直接指定UDP2049端口。

4)、当NFS服务器收到一个客户端请求时,它将这个请求传递给本地文件访问例程,然后访问服务器上的一个本地的磁盘文件。

5)、NFS服务器需花一定时间来处理一个客户端请求,访问本地文件系统一般情况也需一部分时间,在这段时间内,服务器不应该阻止其他客户端的请求。为了实现这一功能,大多数NFS服务器都是多线程--服务器内核中实际上有多个NFS服务器在NFS本身的加锁管理程序中运行,具体根据操作系统。大多数类Unix内核不是多线程,一个共同的技术就是启动一个用户进程(常为:nfsd)的多个实例。这个实例执行一个系统调用,使其作为一个内核进程保留在操作系统内核中。

6)、在客户端主机上,NFS客户端需花一定时间来处理一个用户进程的请求,NFS客户端向服务器主机发出一个RPC调用 ,然后等待服务器应答,为了给使用NFS客户端主机上的用户进程提供更多并发性,在客户端内核中一般运行多个NFS客户端,同样具体实现也根据操作系统。

2、RPC服务

   RPC最主要的功能就是指定每个NFS功能所对应的端口号,并且响应给客户端,让客户端可以连接到正确的端口上。当服务器在启动NFS时会随机选用数个端口,并主动地向RPC注册。因此RPC可以知道每个端口对应的NFS功能。然后RPC固定使用端口111来监听客户端的请求并回报客户端正确的端口,所以可以让NFS的启动更为容易。注意:启动NFS之前,要先启动RPC;否则NFS会无法向RPC注册。另外,重新启动RPC时原本注册的数据会不见,因此RPC重新启动后它管理的所有程序都需要重新启动以重新向RPC注册。

212401786.gif

客户端向NFS服务器请求数据的过程:

(1)客户端会向服务器端的RPC(port 111)发出NFS文件存取功能的询问请求。

(2)服务器端找到对应的已注册的NFS daemon端口后会回报给客户端。

(3)客户端了解正确的端口后,就可以直接与NFS守护进程来连接



二、NFS服务器的安装配置与文件介绍

1、NFS服务器的安装

服务器系统:CentOS6.4.x86_64

IP规划:NFS服务器IP地址:172.16.14.1  NFS客户端IP地地址:172.16.14.2

需要用到的软件包:



[Shell] 纯文本查看 复制代码
[iyunv@localhost ~]# yum -y install nfs-utils rpcbind  #YUM安装NFS服务端
rpcbind-0.2.0-11.el6.x86_64.rpm                       #NFS服务器所依赖的软件包
nfs-utils-1.2.3-36.el6.x86_64.rpm                     #NFS软件包

查看软件是否安装:

133650176.gif

2、文件介绍

   NFS服务脚本:/etc/rc.d/init.d/nfs

   NFS主配置文件:/etc/sysconfig/nfs

   配置文件:/etc/exports 默认此文件为空,需手动添加

   主配置文件书写格式: Export HOST(Options)  Export:共享的目录  HOST:主机地址 Options:选项

[backcolor=white !important]
[Shell] 纯文本查看 复制代码
Options:
    rw:                  #读写权限
    ro:                  #只读权限
    secure:              #要求客户端请求端口小于1024默认开启
    insecure:            #NFS通过1024以上的端口发送
    async:               #异步写入,性能好,数据可靠性差
    sync:                #同步写入,性能差,数据可靠性高         
    wdelay:              #写入延迟
    no_wdelay:           #不做写入延迟
    hide:                #在NFS共享目录中不共享其子目录
    nohide:              #共享NFS目录的子目录
    crossmnt:            #交叉挂载
    no_acl:              #关闭nfs支持acl功能
    root_squash:         #压缩root用户权限为nfsnobody
    no_root_squash:      #不压缩root用户的权限
    all_squash:          #所有的用户都压缩权限
    anonuid=nfsuser,anongid=nfsgroup: #指定用户帐号做匿名用户帐号
3、服务端使用命令:
showmount
    -a: 显示当前主机所共享的NFS文件系统中,有哪些已经被客户端挂载
    -d: 显示当前主机所共享的NFS文件系统中,每个挂载连接
exportfs
    -r: 重新导出
    -a: 操作所有文件系统
    -u: 取消导出
    -v: 显示详细信息
    -ra:重新共享所有目录
    -au:卸载所有共享目录
rpcinfo
    -p: 查看NFS注册使用的端口



4、启动NFS服务器

142914926.gif

注:RHEL5系统不是"rcpbind"服务,而是"portmap"服务.请大家做的时候注意.

5、配置NFS服务器




[Shell] 纯文本查看 复制代码
[iyunv@localhost ~]# mkdir /nfs_server         #创建nfs服务器端共享目录
[iyunv@localhost ~]# cat > /etc/exports << EOF
> /nfs_server 172.16.0.0/16(rw,root_squash)
> EOF   #共享nfs_server目录,只允许172.16.0.0网段访问,并且有可写权限,压缩root用户的权限


三、客户端的使用

[Shell] 纯文本查看 复制代码
1、查看NFS服务器共享了哪些目录
[iyunv@localhost ~]# showmount -e 172.16.14.1 #显示服务器共享了哪些文件系统列表
Export list for 172.16.14.1:
/nfs_server 172.16.0.0/16                    #NFS服务器共享的目录
2、客户端挂载使用NFS文件系统
[iyunv@localhost ~]# mkdir /nfs_client              #创建客户端挂载点
[iyunv@localhost ~]# mount -t nfs 172.16.14.1:/nfs_server /nfs_client #挂载NFS文件系统.-t:指定文件系统类型
[iyunv@localhost ~]# mount | grep nfs_client        #查看是否挂载成功
172.16.14.1:/nfs_server on /nfs_client type nfs (rw,vers=4,addr=172.16.14.1,clientaddr=172.16.14.2)

3、在NFS服务器和客户端分别创建普通用户"centos"与"redhat",这里需要说明一下,NFS做验证是基于用户ID,用户名相同是不能访问的,必须在ID相同的情况下可以才访问."root"用户默认权限是被压缩的.下面我们来做一下测试如:

   1)、先查看NFS服务器"nfsuser"用户是否对共享文件夹"/nfs_server"有可写权限,并设置好权限:

211446712.gif

   2)、在NFS服务器端和客户端分别创建一个用户为"nfsuser",且用户ID不同,如下图:


205453644.gif

205456299.gif

   3)、在客户端使用"nfsuser"用户来验证是否能写入,且保证服务端没有用户ID为601的,如下图:

205945940.gif

   4)、分别在NFS服务器端与客户端创建"centos"和"redhat"用户,且用户UID相同,如下图:


210533220.gif

210535977.gif

   5)、先查看NFS服务器"centos"用户是否对共享文件夹"/nfs_server"有可写权限,并设置好权限:

212021769.gif

   6)、在客户端使用"redhat"用户验证是否能写入;并在服务器端与客户端查看文件的属主及属组,如下图:

212903852.gif

212941647.gif

NFS网络文件系统到此结束,后续会添加一些其他认证功能;敬请关注...




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-8555-1-1.html 上篇帖子: RHEL6 DNS服务详解 下篇帖子: Memcached的安装和应用 网络

尚未签到

发表于 2013-12-13 02:17:37 | 显示全部楼层
你拿纸币换我的人民币,你以为我傻啊,这么明显我还上当

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表