NFS服务器端:nfs-utils
nfs服务器启动的进程: nfsd(nfs服务主进程),mountd(挂载进程),quotod(磁盘配额进程)
nfsd端口:2049/tcp, 2049/udp
让mountd和quotod等进程监控在固定端口,编辑配置文件:/etc/sysconfig/nfs
nfs服务配置文档为/etc/exports格式为:
/path/to/somedir CLIENT_LIST
多个客户端之间使用空白字符分隔,每个客户端后面必须跟一个小括号,里面定义了此客户访问特性,
如访问权限等。
Usage:
172.16.0.0/16(ro,async) 192.168.0.0/24(rw,sync) #ro只读访问,rw,读写访问,async异步写入,sync同步写入
showmount -e NFS_SERVER: 查看NFS服务器到处的个文件系统
showmount -a NFS_SERVER: 查看NFS服务器所有被挂载的文件系统及其挂载的客户端对应列表
showmount -d NFS_SERVER: 显示NFS服务器所有导出的文件系统中被客户端挂载了文件系统列表
exportfs命令:
-a:跟-r或-u选项同时使用,表示重新挂载所有文件系统或取消导出所有文件系统;
-r: 重新导出
-u:取消导出
-v:显示详细信息
Usage: exportfs -rav
文件系统导出属性:
ro: 只读 rw: 读写 sync:同步写入 async: 异步写入
root_squash: 将root用户映射为来宾账号;(默认选项)
no_root_squash:root用户映射为root用户自身
all_squash:
anonuid,anongid:指定映射的来宾账号的UID和GID;
[root@johntest ~]# rpcinfo -p localhost #查看rpc进程占用本地端口情况
程序 版本 协议 端口
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 807 status
100024 1 tcp 810 status
100011 1 udp 871 rquotad
100011 2 udp 871 rquotad
100011 1 tcp 874 rquotad
100011 2 tcp 874 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100021 1 udp 47928 nlockmgr
100021 3 udp 47928 nlockmgr
100021 4 udp 47928 nlockmgr
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100021 1 tcp 48117 nlockmgr
100021 3 tcp 48117 nlockmgr
100021 4 tcp 48117 nlockmgr
100005 1 udp 910 mountd
100005 1 tcp 913 mountd
100005 2 udp 910 mountd
100005 2 tcp 913 mountd
100005 3 udp 910 mountd
100005 3 tcp 913 mountd
[root@johntest ~]# service nfs start
[root@johntest ~]# chkconfig --add nfs #增加到开机启动列表
[root@johntest ~]# chkconfig nfs on
[root@johntest ~]# chkconfig --list nfs
nfs 0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
[root@johntest ~]# mkdir /shared
[root@johntest ~]# vim /etc/exports
[root@johntest ~]#service nfs restart
关闭 NFS mountd: [确定]
关闭 NFS 守护进程: [确定]
关闭 NFS quotas: [确定]
关闭 NFS 服务: [确定]
启动 NFS 服务: [确定]
关掉 NFS 配额: [确定]
启动 NFS 守护进程: [确定]
启动 NFS mountd: [确定]
[root@johntest ~]# showmount -e 10.109.134.249 #查看10.109.134.249服务器共享了那些目录
Export list for 10.109.134.249:
/shared 10.109.0.0/16
客户端使用mount命令挂载:
mount -t nfs NFS_SERVER:/PATH/TO/SOME_EXPORT /PATH/TO/SOMEWHERE
登录到客户端10.109.134.237,进行挂载测试:
[root@mail ~]# showmount -e 10.109.134.249 #首先在客户端上查看134.249服务器共享了那些目录
Export list for 10.109.134.249:
/shared 10.109.0.0/16
[root@mail ~]# mkdir /mnt/nfs
[root@mail ~]# mount -t nfs 10.109.134.249:/shared /mnt/nfs
[root@mail nfs]# cp /etc/inittab /mnt/nfs #复制文件至远端共享目录,提示为只读
cp: 无法创建普通文件"/mnt/nfs/inittab": 只读文件系统 #因为nfs服务器端设置共享为ro
[root@mail nfs]# showmount -a 10.109.134.249 #查看NFS服务器所有被挂载的文件系统
及其挂载的客户端对应列表
All mount points on 10.109.134.249:
10.109.134.237:/shared
如何实现客户端开机自动挂载选项:
编辑/etc/fstab文件,增加一行内容如下:
[root@mail nfs]#
10.109.134.249:/shared /mnt/nfs nfs defaults,_rnetdev 0 0
#10.109.134.249:/shared网络共享的nfs /mnt/nfs本地挂载路径 nfs挂载类型
_rnetdev表示如果该网络路径不存在直接跳过该路径的挂载,直接进入系统,这样避免因为分区无法挂载而无法开机。