安装配置NFS服务

超级好的配置centos下服务的链接

http://www.server-world.info/en/note?os=CentOS_6&p=nfs

http://linux.vbird.org/linux_server/0330nfs.php

开源的有freenas,openfilterhttp://blog.csdn.net/wwwlh/article/details/5989097

以下是NFS最显而易见的好处:

  • 本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一 台机器上而且可以通过网络访问到。

  • 用户不必在每个网络上机器里头都有一个home目录。Home目录 可以被放在NFS服务器上并且在网络上处处可用。

某些应用程序 (例如 mutt) 需要文件上锁支持才能正常运行。 在使用 NFS 时, 可以用 rpc.lockd 来支持文件上锁功能

典型情况下, NFS 会使用一个 “块” 为单位进行操作, 其尺寸是 8 K (虽然它可能会将操作分成更小尺寸的分片)。 由于最大的以太网包尺寸大约是 1500 字节, 因此 NFS “块” 会分成多个以太网包, 虽然在更高层的代码看来它仍然是一个完整的单元, 并在接收方重新组装, 作为一个整体来 确认。 高性能的工作站, 可以将构成 NFS 单元的包迅速发出, 其节奏会快到标准允许的最大限度。

Server端

1.rpm –qa|grep nfs

2.yum –y install nfs-utils rpcbind

   会自动增加用户nfsnobody

[root@rhel /]# id nfsnobody
uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)

3.如果Yum安装报错 [Errno 256] No more mirrors to try,则执行

  1. yum clean all
  2. yum makecache

4. 创建共享目录 mkdir /nfs_share

5. chown nfsnobody:nfsnobody /nfs_share

6.vi /etc/exports,增加

/nfs_share 192.168.1.*(rw,all_squash,anonuid=65534,anongid=65534)

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

root_squash 客户机用root访问该共享文件夹时,不映射root用户

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

7.启动服务

service rpcbind start

service nfslock start

service nfs start


[root@rhel /]# service nfs start
Starting NFS services:  [  OK  ]
Starting NFS quotas: [  OK  ]
Starting NFS mountd: [  OK  ]
Starting NFS daemon: [  OK  ]
[root@rhel /]#

8.rpcinfo –p

[root@rhel /]# rpcinfo -p
   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
    100024    1   udp  38041  status
    100024    1   tcp  52337  status
    100011    1   udp    875  rquotad
    100011    2   udp    875  rquotad
    100011    1   tcp    875  rquotad
    100011    2   tcp    875  rquotad
    100005    1   udp  24683  mountd
    100005    1   tcp  20579  mountd
    100005    2   udp  35399  mountd
    100005    2   tcp  46049  mountd
    100005    3   udp  61341  mountd
    100005    3   tcp  22087  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs  #NFS版本4
    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  54757  nlockmgr
    100021    3   udp  54757  nlockmgr
    100021    4   udp  54757  nlockmgr
    100021    1   tcp  39549  nlockmgr
    100021    3   tcp  39549  nlockmgr
    100021    4   tcp  39549  nlockmgr

9.

chkconfig rpcbind on

chkconfig nfslock on

chkconfig nfs on

10. showmount –e 列出共享的目录

showmount –a IP 用于server端查看哪些client

     exportfs –r -v 再次export

Exports [-aruv]

-a    全部mount或umount文件/etc/exports中的内容

-r     重新mount文件/etc/exports中的共享内容

-u   umount目录

-v    在export的时候,将详细的信息输出到屏幕上

例:

[root@localhost ~]#/usr/sbin/exportfs –rv        全部重新export一次

[root@localhost ~]#/usr/sbin/exportfs –au        全部卸载

   nfsstat  查看nfs状态

/root/share/  192.168.1.20 (rw,insecure,sync,all_squash)  表示共享服务器上的/root/share/目录只有192.168.1.20主机可以访问,且有读写权限;此主机用任何身份访问时,将客户机的用户都映射成服务器上的匿名用户(all_squash),相当于在服务器上用nobody用户访问该目录(若客户机要在该共享目录上保存文件(即写操作),则服务器上的nobody用户对该目录必须有写的权限)

/home/ljm/  *.gdfs.edu.cn (rw,insecure,sync,all_squash)   表示共享/home/ljm/目录,*.gdfs.edu.cn域中所有的主机都可以访问该目录,且有读写权限

/home/share/  .gdfs.edu.cn (ro,sync,all_squash,anonuid=student,anongid=math)     表示共享目录/home/share/,*.gdfs.edu.cn域中的所有主机都可以访问,但只有只读的权限,所有用户都映射成服务器上的uid为student、gid为math的用户

客户端

1.客户端还需要启动rpcbind服务.rpcbind一般预设会自动启动.

service rpcbind start

2.如果服务器端启动了nfslock,则客户端也要启动nfslock服务

service nfslock start

3.建立挂接目录

mkdir /client_nfs

chown nfsnobody:nfsnobody /client_nfs 如果有必要的话

4.查询有哪些目录被export出来

showmount –e ip地址

5.挂接

mount –t nfs 192.168.1.x:/nfs_share /client_nfs

注意:要注释掉server端/etc/hosts中的客户端IP-主机名,否则报错如下:

[root@hp ~]# mount -t nfs 192.168.1.80:/nfs /nfs_client
mount: 192.168.1.80:/nfs failed, reason given by server: Permission denied

原因:nfs server接到客户端的mount时,会先客户的IP做反解成域名,用域名(注意是用域名而不是IP)去和/etc/exports做比较,如果匹配不成功会失败

根本原因:规范的配置应是192.168.1.0/24或192.168.1.0/255.255.255.0。

客户端在挂载的时候遇到的一个问题如下,可能是网络不太稳定,NFS默认是用UDP协议,换成TCP协议即可:

mount -t nfs 192.168.1.225:/nfs  /nfs_client -o proto=tcp -o nolock

mount -t nfs 使用的是 nfsv3 协议,需要明确指出使用 nfsv4 协议挂载 mount -t nfs4:

df查看 是否骨架成功

6.rc.local中写入自动挂载脚本,开机后会自动挂载.

替换工具autofs,效果更好

 

 

解除挂载:

[root@localhost ~]# umount /nfs_client

 

 

其他网上摘录:

NFS 在 Solaris 上最稳定、功能最丰富;在 FreeBSD 上的性能最好,但是缺少一些功能,比如 FreeBSD 8.0 内核才增加了 NFS 文件锁的支持;NFS 在 Linux 上表现最一般了

vpsee,你这个是什么时候的测试结果,我近期测得结果NFS下Linux里写入速度最快,千兆网络中SAS硬盘RAID1能达到90M/s,基本达到网卡极限,而Solaris只能跑到50M/s左右,FreeBSD最低只有38M/s左右,另外BSD在本地硬盘的读写也较慢。 不知道是不是UFS文件系统效率问题。

原文地址:https://www.cnblogs.com/jjkv3/p/3825302.html