查看需要的软件包是否安装。
[root@test ~]# rpm -qa|grep -i nfs
nfs-utils-lib-1.0.8-7.2.z2
nfs-utils-1.0.9-40.el5
system-config-nfs-1.3.23-1.el5
nfs-utils-lib-1.0.8-7.2.z2
nfs-utils-1.0.9-40.el5
system-config-nfs-1.3.23-1.el5
[root@test ~]# rpm -qa|grep -i portmap
portmap-4.0-65.2.2.1
portmap-4.0-65.2.2.1
若系统没有安装所需软件,手工安装,方法在这里省略。
NFS服务的配置文件是/etc/exports
exports文件内容格式:
<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]
1.输出目录:
输出目录是指NFS系统中需要共享给客户机使用的目录;
2.客户端:
客户端是指网络中可以访问这个NFS输出目录的计算机
客户端常用的指定方式
指定ip地址的主机 192.168.10.20
指定子网中的所有主机 192.168.10.0/24
指定域名的主机 test.test.com
指定域中的所有主机 *.test.com
所有主机 *
指定子网中的所有主机 192.168.10.0/24
指定域名的主机 test.test.com
指定域中的所有主机 *.test.com
所有主机 *
3.选项:
选项用来设置输出目录的访问权限、用户映射等。NFS主要有3类选项:
访问权限选项
设置输出目录只读 ro
设置输出目录读写 rw
设置输出目录读写 rw
用户映射选项
all_squash 将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash 与all_squash取反(默认设置);
root_squash 将root用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash 与rootsquash取反;
anonuid=xxx 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx 将远程访问的所有用户组都映射为匿名用 户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
no_all_squash 与all_squash取反(默认设置);
root_squash 将root用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash 与rootsquash取反;
anonuid=xxx 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx 将远程访问的所有用户组都映射为匿名用 户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
其它选项
secure 限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
insecure 允许客户端从大于1024的tcp/ip端口连接服务器;
sync 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async 将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay 检查是否有相关的写操作,如果有则将这些写操作 一起执行,这样可以提高效率(默认设置);
no_wdelay 若有写操作则立即执行,应与sync配合使用;
subtree 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
insecure 允许客户端从大于1024的tcp/ip端口连接服务器;
sync 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async 将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay 检查是否有相关的写操作,如果有则将这些写操作 一起执行,这样可以提高效率(默认设置);
no_wdelay 若有写操作则立即执行,应与sync配合使用;
subtree 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
配置实例
[root@mailsvr1 ~]# mkdir /nfs
[root@mailsvr1 ~]# cd /nfs/
[root@mailsvr1 nfs]# mkdir test1
[root@mailsvr1 nfs]# mkdir test2
[root@mailsvr1 nfs]# mkdir test3
[root@mailsvr1 nfs]# mkdir test4
[root@mailsvr1 ~]# cd /nfs/
[root@mailsvr1 nfs]# mkdir test1
[root@mailsvr1 nfs]# mkdir test2
[root@mailsvr1 nfs]# mkdir test3
[root@mailsvr1 nfs]# mkdir test4
[root@huyb ~]# more /etc/exports
/nfs/test1 192.168.10.0/24(rw,async) *(ro)
/nfs/test2 192.168.10.253(rw,sync)
/nfs/test3 *.test.com(ro,no_root_squash)
/nfs/test4 *.test.com(rw,insecure,all_squash,sync,no_wdelay)
/mnt/cdrom 192.168.10.*(ro)
/nfs/test2 192.168.10.253(rw,sync)
/nfs/test3 *.test.com(ro,no_root_squash)
/nfs/test4 *.test.com(rw,insecure,all_squash,sync,no_wdelay)
/mnt/cdrom 192.168.10.*(ro)
维护NFS服务的输出目录列表
命令exportfs
-a 输出在/etc/exports文件中所定义的所有目录;
-r 重新读取/etc/exports文件,不需要重起服务;
-u 停止输出某一目录;
-v 在屏幕上显示过程;
-r 重新读取/etc/exports文件,不需要重起服务;
-u 停止输出某一目录;
-v 在屏幕上显示过程;
重新输出共享目录
[root@mailsvr1 ~]# exportfs -rv
exporting 192.168.10.0/24:/nfs/test1
exporting 192.168.10.253:/nfs/test2
exporting *.test.com:/nfs/test3
exporting *.test.com:/nfs/test4
exporting 192.168.10.*:/mnt/cdrom
exporting *:/nfs/test1
exporting 192.168.10.0/24:/nfs/test1
exporting 192.168.10.253:/nfs/test2
exporting *.test.com:/nfs/test3
exporting *.test.com:/nfs/test4
exporting 192.168.10.*:/mnt/cdrom
exporting *:/nfs/test1
查看NFS服务输出的共享目录
[root@mailsvr1 ~]# showmount -e 192.168.10.3
Export list for 192.168.10.3:
/mnt/cdrom 192.168.10.*
/nfs/test4 *.test.com
/nfs/test3 *.test.com
/nfs/test2 192.168.10.253
/nfs/test1 (everyone)
Export list for 192.168.10.3:
/mnt/cdrom 192.168.10.*
/nfs/test4 *.test.com
/nfs/test3 *.test.com
/nfs/test2 192.168.10.253
/nfs/test1 (everyone)
停止输出所有共享目录
[root@mailsvr1 ~]# exportfs -auv
[root@mailsvr1 ~]# showmount -e 192.168.10.3
Export list for 192.168.10.3:
[root@mailsvr1 ~]# showmount -e 192.168.10.3
Export list for 192.168.10.3:
启动或停止NFS服务器
[root@mailsvr1 ~]# /etc/init.d/nfs stop
Shutting down NFS mountd: [ OK ]
Shutting down NFS daemon: [ OK ]
Shutting down NFS quotas: [ OK ]
Shutting down NFS services: [ OK ]
Shutting down NFS mountd: [ OK ]
Shutting down NFS daemon: [ OK ]
Shutting down NFS quotas: [ OK ]
Shutting down NFS services: [ OK ]
[root@mailsvr1 ~]# /etc/init.d/nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]
查询nfs的状态
[root@mailsvr1 ~]# /etc/init.d/nfs status
rpc.mountd (pid 3123) is running...
nfsd (pid 3120 3119 3118 3117 3116 3115 3114 3113) is running...
rpc.rquotad (pid 3108) is running...
rpc.mountd (pid 3123) is running...
nfsd (pid 3120 3119 3118 3117 3116 3115 3114 3113) is running...
rpc.rquotad (pid 3108) is running...
[root@mailsvr1 ~]# /etc/init.d/portmap status
portmap (pid 2555) is running...
portmap (pid 2555) is running...
查询nfs服务器的共享目录
showmount 192.168.10.3 查询指定主机的nfs共享目录
showmount 查询本地主机的
showmount 查询本地主机的
-a 显示指定的nfs服务器的所有客户端主机及其所连接的目录;
-d 显示指定的nfs服务器中已被客户端连接的所有输出目录;
-e 显示指定nfs服务器上所有输出的目录;
-d 显示指定的nfs服务器中已被客户端连接的所有输出目录;
-e 显示指定nfs服务器上所有输出的目录;
客户端连接
[root@test /]# mount -t nfs 192.168.10.3:/nfs/test1 /mnt/
[root@test /]# mount | grep nfs
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
192.168.10.3:/nfs/test1 on /mnt type nfs (rw,addr=192.168.10.3)
[root@test /]# mount | grep nfs
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
192.168.10.3:/nfs/test1 on /mnt type nfs (rw,addr=192.168.10.3)
卸载共享
[root@test /]# umount /mnt/
转载于:https://blog.51cto.com/chenzhuo/190026