您的位置:首页 > 运维架构 > Linux

Linux NFS服务详解

2015-09-25 16:37 567 查看
大纲:一、NFS简介二、系统环境三、安装配置NFS四、NFS配置文件详解一、NFS简介NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。  NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。  NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。二、系统环境系统平台:CentOS release 6.5 (Final)NFS-Server端:172.16.1.103 node1 NFS-Client端:172.16.1.104 node2三、安装配置NFSNFS的安装是非常简单的,只需要两个软件包即可,而且在通常情况下,是作为系统的默认包安装的。nfs-utils-* :包括基本的NFS命令与监控程序 rpcbind :支持安全NFS RPC服务的连接1、先查看所需安装包(nfs-utils、rpcbind)是否已经安装
[root@node1 ~]# rpm -qa | grep "rpcbind"
rpcbind-0.2.0-11.el6.x86_64
[root@node1 ~]# rpm -qa | grep "nfs"
nfs-utils-1.2.3-64.el6.x86_64
nfs-utils-lib-1.1.5-11.el6.x86_64
2、没有安装的话则执行以下命令安装
[root@node1 ~]# yum -y install nfs-utils rpcbind
3、NFS配置文件及共享目录
[root@node1 data]# mkdir /www
[root@node1 data]# vim /etc/exports
/data/www    172.16.0.0/16(rw,no_root_squash)
[root@node1 data]# cd
4、先启动rpcbind,再启动NFS
[root@node1 ~]# service rpcbind start
Starting rpcbind:                                          [  OK  ]
[root@node1 ~]# netstat -tunlp | grep :111
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      60625/rpcbind
tcp        0      0 :::111                      :::*                        LISTEN      60625/rpcbind
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               60625/rpcbind
udp        0      0 :::111                      :::*                                    60625/rpcbind
[root@node1 ~]# service nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
[root@node1 ~]# rpcinfo -p                            # 可以看到NFS服务器端已向RPC注册端口
program vers proto   port  service
100000    4   tcp    111  portmapper
100000    3   tcp    111  portmapper
100000    2   tcp    111  portmapper
100000    4   udp    111  portmapper
100000    3   udp    111  portmapper
100000    2   udp    111  portmapper
100005    1   udp  34849  mountd
100005    1   tcp  53780  mountd
100005    2   udp  55188  mountd
100005    2   tcp  34271  mountd
100005    3   udp  52608  mountd
100005    3   tcp  35970  mountd
100003    2   tcp   2049  nfs
100003    3   tcp   2049  nfs
100003    4   tcp   2049  nfs
100227    2   tcp   2049  nfs_acl
100227    3   tcp   2049  nfs_acl
100003    2   udp   2049  nfs
100003    3   udp   2049  nfs
100003    4   udp   2049  nfs
100227    2   udp   2049  nfs_acl
100227    3   udp   2049  nfs_acl
100021    1   udp  41610  nlockmgr
100021    3   udp  41610  nlockmgr
100021    4   udp  41610  nlockmgr
100021    1   tcp  53871  nlockmgr
100021    3   tcp  53871  nlockmgr
100021    4   tcp  53871  nlockmgr

ps:如果要让开机自启动,则执行如下命令
chkconfig rpcbind on
chkconfig nfs on
5、客户端挂载(1).showmount查看NFS共享目录
[root@node2 ~]# mount -t nfs 172.16.1.103:/data/www /mnt                # 客户端挂载NFS
[root@node2 ~]# ls /mnt/
a.com  b.net  c.edu  d.org  node1.com                                   # 此时可以看到里面的文件了
[root@node2 ~]# showmount -d 172.16.1.103   # 显示NFS服务器所有导出的并且被客户端挂载了的文件系统列表
Directories on 172.16.1.103:
/data/www
[root@node2 ~]# showmount -a 172.16.1.103   # 查看NFS服务器所有被挂载的文件系统及其挂载的客户端对应列表
All mount points on 172.16.1.103:
172.16.1.104:/data/www
[root@node2 ~]# showmount -e 172.16.1.103     # 查看NFS服务器导出的各文件系统
Export list for 172.16.1.103:
/data/www 172.16.0.0/16
(2).exportfs导出目录
[root@node1 ~]# cat /etc/exports
/data/www	172.16.0.0/16(rw)                    # 此时只导出了/data/www
[root@node1 ~]# vim /etc/exports
[root@node1 ~]# cat /etc/exports
/data/www	172.16.0.0/16(rw)
/var/ftpshared	172.16.0.0/16(rw)                    # 增加了/var/ftpshared
[root@node1 ~]# exportfs -avr                        # 重新导出所有的文件系统
exporting 172.16.0.0/16:/var/ftpshared
exporting 172.16.0.0/16:/data/www
[root@node1 ~]#  showmount -e 172.16.1.103            # 可以看到刚刚新加的也被导出了
Export list for 172.16.1.103:
/var/ftpshared 172.16.0.0/16
/data/www      172.16.0.0/16
[root@node1 ~]# exportfs -avu                        # 取消所有的导出
[root@node1 ~]#  showmount -e 172.16.1.103
Export list for 172.16.1.103:                        # 可以看到所有的导出都撤销了
6、实现开机自动挂载NFS文件系统
[root@node2 ~]# vim /etc/fstab
[root@node2 ~]# cat /etc/fstab
/dev/VolGroup00/LogVol00 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0
172.16.1.103:/data/www	/mnt			           nfs	 defaults,_netdev	0 0
四、NFS配置文件详解NFS配置文件:/etc/exports共享目录 允许访问NFS的主机或网络地址(选项)下面列出一些常见的选项ro:默认选项,以只读的方式共享。 rw:以读写的方式共享。 root_squash:将客户端使用的是root用户时,则映射到NFS服务器的用户为NFS的匿名用户(nfsnobody)。 no_root_squash:将客户端使用的是root用户时,则映射到FNS服务器的用户依然为root用户。 all_squash:默认选项,将所有访问NFS服务器的客户端的用户都映射为匿名用户,不管客户端使用的是什么用户。 anonuid:设置映射到本地的匿名用户的UID anongid:设置映射到本地的匿名用户的GID sync:默认选项,保持数据同步,数据同步写入到内存和硬盘。 async:异步,先将数据写入到内存,在将数据写入到硬盘。 secure:NFS客户端必须使用NFS保留端口(通常是1024以下的端口),默认选项。 insecure:允许NFS客户端不使用NFS保留端口(通常是1024以上的端口)。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  NFS