【环境】
服务器:10.1.10.86
客户端:10.1.1.160 ... ... ...
一、安装NFS
NFS服务器安装配置:(在CentOS6.3当中,portmap服务由rpcbind负责)
[root@NFS~]# yum -y install nfs-utils rpcbind
NFS客户端安装配置:(安装无需启动NFS服务,直接挂目录)
[root@Client~]# yum -y install nfs-utils
二、服务器端配置
1、创建共享目录:
[root@NFS~]# mkdir /data/nfs_share
2、NFS文件配置:
[root@NFS~]# vim /etc/exports
#增加一行:
/data/nfs_share10.1.1.160(rw,sync,no_root_squash) *(ro) (解释:挂载/data/nfs_share目 录,只有160主机,读写权限,其它只有只读权限;)
:wq保存退出;
【说明】
/data/nfs_share |
表示共享服务器上的根目录 |
10.1.0.0/16 |
允许访问的主机(可以是一个IP也可以是一个IP段) |
rw |
读写 |
ro |
只读 |
sync |
同步模式,内存中数据时时写入磁盘 |
async |
不同步,把内存中数据定期写入磁盘中 |
no_root_squash |
root用户具有根目录的完全管理访问权限 |
no_all_squash |
保留共享文件的UID和GID(默认) |
root_squash |
root用户的所有请求映射成如anonymous用户一样的权限(默认) |
all_squash |
共享文件的UID和GID映射匿名用户anonymous,适合公用目录。 |
anonuid=xxx |
指定NFS服务器/etc/passwd文件中匿名用户的UID |
anongid=xxx |
指定NFS服务器/etc/passwd文件中匿名用户的GID |
使配置生效:
[root@NFS~]# exportfs -r
3、启动:
[root@NFS~]# /etc/init.d/rpcbind start
[root@NFS~]# /etc/init.d/nfs start
[root@NFS~]# chkconfig nfs on
[root@NFS~]# chkconfig rpcbind on
三、客户端挂载:
1、创建需要挂载的目录:
[root@Client~]# mkdir /home/zl
2、测试挂载:
[root@Client~]# showmount -e 10.1.10.86
Exportlist for 10.1.10.86:
/data/nfs_share(everyone)
-a |
以HostName :Directory格式显示所有远程客户机安装,其中HostName是客户机的名称,Directory是远程安装的目录路径名 |
仅列出客户机远程安装的目录 |
|
显示导出目录的列表 |
3、挂载:
[root@Client~]# mount -t nfs 10.1.10.86:/data/nfs_share /home/zl
[root@Client~]# mount
10.1.10.86:/data/nfs_share on /home/zltype nfs (rw,vers=4,addr=10.1.10.86,clientaddr=10.1.1.160)
nfsd on/proc/fs/nfsd type nfsd (rw)
如果信息如上显示则挂载成功!
4、测试:
客户端创建一个文件夹/home/zl
[root@Clientzl]# mkdir aa
[root@Clientzl]# ll
total4
drwxr-xr-x2 root root 4096 Dec 18 12:00 aa
服务端检查:
[root@NFSdata]# ll nfs_share/
total4
drwxr-xr-x2 root root 4096 Dec 18 12:00 aa
挂载成功!
四、解除挂载
[root@Client~]# umount /home/zl
问题:
[root@Clientzl]# umount /home/zl
umount.nfs:/home/zl: device is busy
解决方法:
退出到当前目录,可以解决。
五、开机启动自动挂载nfs文件系统
【格式】
serverIP:/nfs(服务器目录) /mnt/nfs(挂载目录) nfs defaults 0 0
[root@Client~]# vi /etc/fstab
10.1.10.86:/data/nfs_share /data/zl nfs defaults 0 0
六、NFS端口
rpc服务器启动,被rpc客户调用的过程:
a. 系统引导时,端口映射器首先启动,创建tcp和udp端点,被动打开tcp111端口,在udp111端口等待数据;
b. rpc服务器程序启动时,为所支持的程序的每一个版本绑定一个临时端口号,在端口映射器 注册;
c. rpc客户程序启动时,根据参数在端口映射器中查找指定过程绑定的端口号;
d. 如果是udp,rpc客户根据返回的端口号发送rpc调用报文;如果是tcp,rpc客户先在返回的端口号上执行主动打开,再发送rpc调用报文,大多数实现将NFS指定udp端口号2049。
[root@localhost~]# netstat -tunl |grep "111"
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0:::111 :::* LISTEN
udp 0 00.0.0.0:111 0.0.0.0:*
udp 0 0 :::111 :::*
[root@localhost~]# netstat -tunl |grep "2049"
tcp 0 00.0.0.0:2049 0.0.0.0:* LISTEN
tcp 0 0 :::2049 :::* LISTEN
udp 0 0 0.0.0.0:2049 0.0.0.0:*
udp 0 0 :::2049