NFS: Network File System
RPC:Remote Procedure Call

LPC:Local Procedure Call

 

Client先和RPC Server链接,再和程序通信,程序在本地操作,调用内核

 

NFS:由sun开发,版本NFSv1,NFSv2,NFSv3(rhel 5),NFSv4(rhel 6)

 


局限性

1)只能控制来源Ip,只验证UID,不验证用户名,安全性较低;

2)NFS只能工作于linux和unix


服务器端

centos 5 :

yum -y install nfs-utils portmap

centos 6(在CentOS 6.3当中,portmap服务由rpcbind负责) :

yum -y install nfs-utils rpcbind

nfs启动3个进程

nfs: nfsd(nfs服务), mountd(挂载), quotad(配额)

nfsd: 2049/tcp, 2049/udp
mountd: 端口
quotad: 端口
端口半随机的,可通过配置固定端口

portmap监听端口:111/tcp,udp/111

nfs要启动先要确保portmap服务先启动

# service portmap status

portmap (pid 2808) is running...


配置文件

/etc/exports
/path/to/somedir CLIENT_LIST
多个客户之间使用空白字符分隔

每个客户端后面必须跟一个小括号,里面定义了此客户访问特性,如访问权限等

172.16.0.0/16(ro,async) 192.16.0.0/24(rw,sync)

nfsv4默认映射到nfsnobody用户,也可以修改

172.16.0.0/16(ro,async) 192.16.0.0/24(rw,sync,all_squash,anonuid= ,anongid=)

文件系统导出属性:
 ro:
 rw:
 sync:
 async:
 root_squash: 将root用户映射为来宾账号,限制权限,更加安全;
 no_root_squash: 
 all_squash: 所有转换为来宾帐号
 anonuid, anongid: 指定映射的来宾账号的UID和GID;

showmount -e|--exports NFS_SERVER: 查看NFS服务器“导出”的各文件系统

showmount -a|--all NFS_SERVER: 查看NFS服务器所挂载的文件系统及其挂载的客户端对应关系列表

showmount -d|--directories NFS_SERVER: 显示NFS服务器所有导出的文件系统中被客户端挂载了文件系统列表


exportfs命令

 -a:跟-r或-u选项同时使用,表示重新挂载所有文件系统或取消导出所有文件系统;
 -r: 重新导出
 -u: 取消导出
 -v: 显示详细信息

常用:export -avr


客户端

yum install -y nfs-utils

客户端使用mount命令挂载

mount -t nfs NFS_SERVER:/PATH/TO/SOME_EXPORT  /PATH/TO/SOMEWHRERE

若挂载后速度较慢,可使用下面的选项

mount -t nfs -o nolock,nfsvers=3 192.168.24.111:/tmp/ /opt/

默认nfsvers=4


开机自动挂载

编辑/etc/fstab,增加

192.168.8.40:/var/shared    /var/nfs    nfs    default,_rnetdev 0 0

_rnetdev,如果开机挂载不上此文件系统,则忽略,否则会开不了机

让mountd和quotad等进程监听在固定端口,编辑配置文件/etc/sysconfig/nfs


固定端口


修改配置文件/etc/sysconfig/nfs

启用这几项,即可

LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769

RQUOTAD_PORT=875

MOUNTD_PORT=892

 

# rpcinfo -p localhost查看监听的端口


 



来自为知笔记(Wiz)