只要不是企业站和个人网站应该都会1台以上的服务器,问题就来了,多台服务器是如何保持代码一致的呢?这里就要用到数据同步或者数据共享技术。数据同步是指同样的数据在多处存在(rsync),数据共享是指只有一份数据(nfs)。
首先介绍数据共享NFS(network file system 网络文件系统)。它允许一个系统在网络上与它人共享目录和文件
nfs的优点:本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到。
常用的工作场景:图片共享。当线上有多台服务器提供上传图片服务时,有可能这个用户上传到A服务器,另一个用户上传到B服务器,那访问的时候有可能访问不到图片,此时我们需要将图片共享,这时使用nfs在合适不过啦!
NFS的工作原理说明:主服务器提供NFS服务,将目录或文件提供给指定的客户端,客户端挂载接受的目录或文件到相应的磁盘
NFS是如何工作的
NFS 至少包括两个主要的部分: 一台服务器, 以及至少一台客户机, 客户机远程地访问保存在服务器上的数据。 要让这一切运转起来, 需要配置并运行几个程序。
服务器必须运行以下服务:
服务 | 描述 |
---|---|
nfsd | NFS,为来自NFS客户端的 请求服务。 |
mountd | NFS挂载服务,处理nfsd(8)递交过来的请求。 |
rpcbind | 此服务允许 NFS 客户程序查询正在被 NFS 服务使用的端口。 |
portmap进程的主要功能是把RPC程序号转化为Internet的端口号.现在portmap改名为portreserve
配置NFS
/etc/exports
文件指定了哪个文件系统
NFS应该输出(有时被称为
“共享”)
/home/wwwroot 121.52.216.192(rw,sync,no_root_squash)
/home/wwwroot 121.52.216.206(rw,sync,no_root_squash)
这是相应的配置,下面说一下选项的意思
其中第一部分/home/wwwroot表示要共享的目录 ,第二部分121.52.216.192表示客户端的ip,第三部分
配置完成后,重启portreserve ,然后重启nfs(顺序不能错)
service portreserve restart
service nfs restart
客户端挂载
客户端的的挂载非常简单,只需要mount 服务器ip:/共享目录 /本地挂载地址
mount 121.52.216.189:/home/wwwroot /home/wwwroot
至此,nfs的配置已经完成。
question1 客户端需要安装nfs吗?不需要
qestion 2 了解mount的用法
question3 为什么我将服务器端的nfs服务停掉,客户端相应的挂载的上一级目录都没法访问了? 不可预知错误