序:
一旦存在多台实际服务器提供同样的web服务时,一个潜在的问题就是如何保证多台实际服务器的程序和文件一致呢?
13.1 网络共享
从使用角度看,共享文件系统几乎不用你考虑网络传输和访问的细节,完全可以像访问本地文件一样访问网络上其它服务器文件系统上的文件。这可以在一定程度上解决开始提的问题,即为集群中的多台实际服务器共享同一台物理存储设备。
刚才提到的同一台物理存储设备可以是独立的一台服务器如图片服务器,也可以是集群中某台实际服务器的磁盘。
共享文件系统并不是通常我们说的磁盘文件系统,它不能用于存储和管理磁盘数据,而只是定义了文件在网络上传输时的组织格式和传输协议。所以,一个文件从网络的一端到另一端需要进行两次转换,分别发生在进入网络和离开网络的时候。
对于共享文件系统的实现通常有NFS和Samba,其中NFS主要用于Linux/Unix平台下,而Samba用于将Linux/Unix平台下的文件映射到Window系统网络邻居上,用于实现Linux/Unix到Window平台的共享,当然,它也可以实现Linux/Unix平台之间的文件共享。
NFS和Samba实现完全不同,其性能存在较大的差异。
13.2 NFS
NFS是sun公司于1984年开发,直到现在,它一直是主流异构平台实现文件共享的首选方案之一。
共享文件系统主要包括文件格式和传输协议的定义,NFS并没有设计自己的传输协议,它是直接使用基于RPC的传协议,工作在应用层,负责客户端和服务器端之间请求和响应数据的传输控制。