应用nfs挂载远端主机目录到本地
由于一个应用的需要,要使用这方面的知识。
就是两台机器,192.168.1.2和192.168.1.3,在192.168.1.2服务器上的
/home/apps/apache/htdocs/uploadFile 文件夹,所有上传的文件都需要写入到192.168.1.3服务器的相同目录里面。
正好NFS技术可以满足这个需求。
简单介绍一下:
NFS(Network File System)是一种分布式文件系统,允许网络中的安装不同操作系统的计算机间共享文件和外设,所以它的通讯协定设计与主机及作业系统无关. 它是由SUN公司于1984年推出,使得可以本地机一样的使用另一台联网计算机的文件和外设。NFS在文件传送或信息传送过程中依赖于RPC协议。NFS 的当前版本是V4(RFC3010)。
RPC, 远程过程调用 (remote procedure call) 是能使客户端执行其他系统中程序的一种机制。由于使用 RPC 的程序不必了解支持通信的网络协议的情况,因此 RPC 提高了程序的互操作性。常用于分布式客户端/服务器模型, 发出请求的程序是客户程序,而提供服务的程序是服务器。(RFC1831)
安装:
根据需求来分析,我们需要192.168.1.3来作为NFS服务端,192.168.1.2作为NFS客户端。
确保192.168.1.3这台服务器上已经装好了NFS软件,可以使用rpm -qa命令来查看。
NFS的两个软件包为nfs-utils和portmap,系统默认是会装上这两个软件的。(RHEL)
配置:
来到192.168.1.3服务器,修改/etc/exports文件,(exports为NFS服务的配置文件)。
如果没有做任何配置的话,这里应该是空的。
我们加入以下一行代码:
/home/apps/apache/htdocs/uploadFile 192.168.10/24(rw,sync,no_root_squash)
这句话的意思是允许192.168.10.0这个网段的所有机器挂载“/home/apps/apache/htdocs/uploadFile”这个目录,并且具有读写权限。sync为NFS服务器同步写磁盘。
关于 no_root_squash:
root_squash:在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份。
所以如果不是自己使用的话,最好这里设置为root_squash,以保证安全!
做完以上操作,服务端的配置就完成了。
来到客户端192.168.1.2,编辑/etc/fstab
在最后一行加入以下内容:
192.168.1.3: /home/apps/apache/htdocs/uploadFile /home/apps/apache/htdocs/uploadFile nfs rw,intr,tcp,vers=3 0 0
保存退出,然后mount -a,
将NFS上的目录挂载到本地。
即可完成上述需求,你可以往 /home/apps/apache/htdocs/uploadFile 文件夹里写内容进行一下实验。
关于/etc/fstab里的配置项说明,找个时间详细了解下。
睡觉去……Good Night.
参考:
1、http://www.cnblogs.com/licheng/archive/2008/02/17/1071275.html
2、http://bbs.chinaunix.net/thread-2015672-1-1.html