首页 > 代码库 > nfs 是Network File System 网络文件系统

nfs 是Network File System 网络文件系统

 

NFS的基本原刚是容许不同的客户端及服务通过一组PRC分享相同的文件系统,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。NFS在文件传送过程中依赖于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是负责信息的传输。

服务端:

yum install -y rpcbind nfs-utils
# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
# cat /etc/exports 
/data *(rw)

上面框内容是要分享的目录

查看NFS服务状态:

# /etc/init.d/nfs status
rpc.svcgssd is stopped
rpc.mountd (pid 29497) is running...
nfsd (pid 29513 29512 29511 29510 29509 29508 29507 29506) is running...
rpc.rquotad (pid 29492) is running...
[root@NB Downloads]# /etc/init.d/rpcbind status
rpcbind (pid  2608) is running...

设置NFS服务在系统运行级别2和5自动启动

[root@NB Downloads]# chkconfig --level 35 nfs on
[root@NB Downloads]# chkconfig|grep nfs
nfs                0:off    1:off    2:off    3:on    4:off    5:on    6:off
nfs-rdma           0:off    1:off    2:off    3:off    4:off    5:off    6:off
nfslock            0:off    1:off    2:off    3:on    4:on    5:on    6:off

如果改变/etc/exports一定要重启nfs服务

服务器端使用showmount命令查询nfs的共享状态

[root@NB Downloads]# showmount -e
clnt_create: RPC: Unknown host
[root@NB Downloads]# showmount -e localhost
Export list for localhost:
/data *

默认查看自己共享的服务,前提是要DNS能解自己,不然会报错!!!如上面的内容

[root@GitLab ~]# mount -t nfs 192.168.1.3:/data /data_nfs/
[root@GitLab ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       38G  2.2G   34G   6% /
tmpfs                 939M     0  939M   0% /dev/shm
/dev/vda1             477M   38M  414M   9% /boot
192.168.1.3:/data     459G  127G  310G  29% /data_nfs

客户端使用showmount 命令查询NFS的共享状态:

[root@GitLab ~]# showmount -e 192.168.1.3
Export list for 192.168.1.3:
/data *

权限问题,客户端发生下面情况:

[root@GitLab data_nfs]# touch k
touch: cannot touch `k: Permission denied

无权限!!!!

是因为NFS 服务器端共享的目录本身的写权限没有开放给其他用户,在服务器端打开该权限。

开放权限

[root@NB /]# chmod -R 777 data/
# 还不行
[root@NB /]# chmod -R 755 /data/
[root@NB /]# cat /etc/exports 
/data *(rw,sync,all_squash,no_subtree_check)
[root@NB /]# exportfs -rv
exporting *:/data

问题解决!!!

 

nfs 是Network File System 网络文件系统