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查看监听的端口