天天看点

NFS network file system网络文件系统

NFS:network file system 网络文件系统

NIS:network information service :最主要的作用是提供用户登录的信息供客户端主机来查询之用

NFS服务器可以让PC来将网络远程的NFS主机共享的目录挂载到本地端的机器中,在本地端机器看来,那个远程主机的目录就好像是自己的一个磁盘一样!

NFS(网络文件系统)依赖于RPC(remote procedure call远程过程调用)进行!

RPC远程过程调用:最主要的功能是指定每个NFS功能所对应的端口号,并且传递该信息给客户端,让客户端可以连接到正确的端口上去。当服务器在启动NFS时会随机取用数个端口(小于1024),并主动向PRC注册,因此PRC可以知道每个端口对应的NFS功能,然后RPC固定使用port111来监听客户端的需求并应答客户端的正确端口。

启动NFS之前,RPC就要先启动,否则NFS会无法向PRC注册,另外PRC若重新启动则原来注册的端口数据就会不见,因此PRC重新启动之后,它管理的所有程序都需要重新启动来重新向PRC注册!

客户端访问NFS过程:

1)、客户端会向服务器端的PRC(port111)发出NFS文件存取功能的询问请求

2)、服务器端找到对应的已注册的NFS daemon端口后,会通知客户端

3)、客户端了解正确的端口后,就可以直接与NFSdaemon联机

使用的端口:

portmap启动的端口在111

NFS启动的端口在2049

一个NFS文件系统启动需要启动几个进程:

rpc.nfsd 管理Client是否能够登入主机

rpc.mountd 管理NFS的文件系统

rpc.lockd(非必要) 针对多客户端对同一文件读写时的锁定问题 rpc.statd(非必要)检查文件的一致性,检测并尝试恢复该文件

文件系统权限和共享权限交集

共享:rw

文件系统:ro

共享的文件本身有属主和属组,切忌共享文件的属主属组为root用户,因为远程来的用户共享文件时映射的用户权限为被共享文件的属主属组!

NFS服务器端软件包:

NFS主程序 nfs-utils

PRC主程序 portmap

使用的端口:

portmap启动的端口在111

NFS启动的端口在2049

配置文件的参数:

rw:可读写

ro:只读权限

sync;数据同步到磁盘中

async:数据先暂存在内存中,而非直接写入磁盘

no_root_squash:登入NFS主机使用共享目录的用户如果是root,那么对于这个共享目录来说他就具有root权限,极其不安全,不推荐使用!

root_squash: 登入NFS 的主机若是root 身份则这个用户的权限将压缩为匿名用户,他的UID GID都会变成nobody的系统账号的身份

all_squash:不论登陆的用户是什么身份,都将压缩为匿名用户nobody身份

anonuid:anon指匿名者anonymous,这里可以设置这个UID值,但是这个UID值必须存在于/etc/passwd中

anongid:同上,修改group ID

showmount -e 172.16.100.1 #多用在客户端查询NFS主机共享的目录资源

showmount -a 172.16.100.1

#显示NFS主机上被哪些客户端挂载使用

showmount -d 172.16.100.1 #用户显示当前NFS主机上已经被挂载的目录,一般在NFS服务器端使用

客户端挂载使用:

mkdir -p /mnt/nfs

mount -t nfs 172.16.100.1:/vhosts /mnt/nfs

#-t nfs 指定文件系统类型为nfs

IP:/dir 则是指定某个IP主机的某个目录

exportfs

-a #所有文件系统

-r #重新挂载文件系统也可以说是更新文件系统

-v #显示共享的目录详细信息

-u #卸载某一目录

步骤:

[[email protected] ~]# vim /etc/exports

/root/wangzhen *(rw,no_root_squash)

/root/Desktop 172.16.33.0/24(rw)

接着重启服务即可:

[[email protected] ~]# service portmap start

Starting portmap: [ OK ]

#启动portmap服务

或者/etc/init.d/portmap这样也可以开启

[[email protected] ~]# service nfs start

Starting NFS services: [ OK ]

Starting NFS quotas: [ OK ]

Starting NFS daemon: [ OK ]

Starting NFS mountd: [ OK ]

#启动nfs服务

转载于:https://blog.51cto.com/very1024/806121

继续阅读