天天看点

简述NFS服务器搭建

简单罗列基础命令,只分享我的想法!

NFS网络文件系统,和FTP文件传输协议不一样,NFS主要依靠rpcbind进程,通过rpcbind把命令传递到NFS服务器(这一点就与FTP不一样,FTP的client是发送对具体资源的请求,而NFS是要把某个函数的调用作为请求发送到服务器端,你可以挂载共享目录、vim共享文件等,就好像你在NFS服务器实机操作一样),再由NFS服务器的nfsd进程向NFS服务器的kernel发起系统调用,在把调用之后的结果通过rpcbind发到client。

client和server端都要启用rpcbind进程,因为NFS需要临时开启某些端口,所有的这些端口都要向portmapper(111端口)服务进行注册,告知portmapper那些nfs的服务和端口的对应表(如图1),client也通过rpcbind去获得server端的那些已经注册了端口,进而可以通信。

简述NFS服务器搭建

图1

就好像你去发送一个快递(顺丰),你就相当于那个client而快递哥就是rpcbind,你要邮寄到的目标就是server区下的那个已经在rpcbind登记过的某个端口,你只要告诉快递哥我要找server区下的mountd就ok了,肯定也是server所在区域的顺丰快递哥(负责server区的那个快递哥rpcbind)找到mountd这个端口。意思差不多,向server端的rpcbind进程注册的服务同样也只有client端的rpcbind进程才能知道。

client访问server共享的文档与两个权限有关,分别是NFS服务器有开放可写入的权限,和实际档案的权限是否可读写。

client是向server端发起的rpc所以,client的那个用户的id必须在server端有,否则将会以匿名的形式显示,因为文件本身就是server的。所以,权限的更改需要仔细斟酌。

配置较为简单,如下:

1)server端

需要安装nfs-utils,用来提供rpc.nfsd及rpc.mountd等nfs监控程序与基本命令,可以自己rpm -ql nfs-utils看一下是否提供。

vim /etc/exports      

//格式directory(or file system)   client1(option1,option2)  client2(option1, option2)

/mnt 172.16.49.5(rw)      

通知nfsd重新读取/etc/exports中的共享目录或文件系统

exportfs –arv      

2)client端

ps aux |grep rpc| grep –v grep      

确定是否rpcbind和rpc.statd这两个进程开启

查看NFS server服务器共享的目录

showmount –e 172.16.49.1      

挂载到本地

mount –t nfs 172.16.49.1:/mnt /mnt      

3)client可以对共享目录有写权限

nfs已经放行rw

在server端

因为在server端client的root用户被压缩为nfsnobody(uid为6534)

chmod o+x /mnt      

你也可以使用setfacl这个命令,因为会更加安全一些,本文就直接对其它用户开放写权限了。

客户端复制passwd文件到共享目录下,server的视图为图2

简述NFS服务器搭建

图2

Client的视图如下图3

简述NFS服务器搭建

图3

注意:在nfs服务器端可以看到nfs服务器有的系统账户的账户名,否则全部都是nfsnobody,而在client则全部都是nobody用户。

注意:常用在/etc/exports中共享目录的选项说明

secure:这个选项是缺省选项,它使用了 1024 以下的 TCP/IP 端口实现 NFS 的连接。指定 insecure 可以禁用这个选项。

rw:这个选项允许 NFS 客户机进行读/写访问。缺省选项是只读的。

async:这个选项可以改进性能,但是如果没有完全关闭 NFS 守护进程就重新启动了 NFS 服务器,这也可能会造成数据丢失。

no_wdelay:这个选项关闭写延时。如果设置了 async,那么 NFS 就会忽略这个选项。

nohide:如果将一个目录挂载到另外一个目录之上,那么原来的目录通常就被隐藏起来或看起来像空的一样。要禁用这种行为,需启用 hide 选项。

no_subtree_check:这个选项关闭子树检查,子树检查会执行一些不想忽略的安全性检查。缺省选项是启用子树检查。

no_auth_nlm:这个选项也可以作为 insecure_locks 指定,它告诉 NFS 守护进程不要对加锁请求进行认证。如果关心安全性问题,就要避免使用这个选项。缺省选项是 auth_nlm 或 secure_locks。

继续阅读