nfs(network filesystem):网络文件系统
filesystem:kernel space
mke2fs:user space 用户空间
lpc(local procedure call):本地过程调用
RPC(remote procedure call):远程过程调用
rpc的客户端程序stub(存根)
rpm的服务端程序rpc-server
nfs文件读写流程:进程向内核发起读写请求,内核发现读的文件系统是一个远端的文件系统。将请求交给了stub,stub将请求交给rpc-server,服务在本地完成客户的请求,
将请求结果交给stub,stub交给内核内核交给发起的进程
linux中提供rpcserver的程序:portmap tcp:111 udp:111
rpc-server:是个框架,可以提供给多个程序调用,每一个程序要使用rpcserver需要向它注册使用
nfs:只有在两台主机之间存取数据的时候才叫nfs,在服务器本地,还是extX文件系统
nfs:sun开发的一种文件系统,nfsV1是sun公司内部使用,v2公开了,流行的v3版 最新版本是v4版本
nfs:会启动三个进程
nfsd:nfs主服务 port:2049不会改变
mountd:接受客户端的挂载请求的 启动时会向rpc注册端口
quotad:限定磁盘配额的
配置文件格式:
/etc/exports
/filepath clentlist:
IP/NETMASK(mode) IP/NETMASK(mode)
多个客户端之间使用空白字符分割
每个客户端后面必须跟上小括号,里面定义了此客户访问的特性和权限
shoumount -e nfsipaddr 查看服务器共享出去的各文件夹
客户端使用nfs命令挂载
mount -t nfs NFS_SERVER:/PATH /LOCALPATH
shoumount -a nfsipaddr:查看nfs服务器所有被挂载的文件系统及客户端对应列表
shoumount -d nfsipaddr:显示nfs服务器 所有导出的文件系统中被客户端挂载了文件系统的列表
exportfs
-a:导出或取消导出所有的文件系统
-r:重新挂载文件系统
-u:取消导出文件系统
-v:显示过程
导出属性:
ro:只读
rw:读写
sync:同步
async:异步
root_squash:如果客户端账号的uid和gid为0那么服务端默认文件的属主和属组变更为nobody
no_root_squash:不转化root的身份
all_squash:不管是任何身份都转换成来宾账号
anonuid、anongid:指定映射来宾账号的uid和gid
注意:如果客户端账号的uid和gid服务端不存在。那么创建文件的属主和属组在服务端直接显示uid和gid的id号,如果服务端的账号正好和 客户端创建文件账号的gid和uid相同,那么文件的属主和属组就是服务器端的账号
————————来自马哥课程