Apache可以直接读取GlusterFS块但写入GlusterFS挂载?

我目前有2个networking服务器(CentOS 5.5),并使用GlusterFS作为客户端/服务器都使用自动文件复制。

对于这两个networking服务器:

GlusterFS挂载点是:

/mnt/glusterfs/site1 

当地GlusterFS砖是

  /export/sdb1/glusterfs/site1 

我正在使用绑定挂载来指向Apache中的GlusterFS挂载:

 /var/www/site -> /mnt/glusterfs/site1 

dynamic页面(caching页面本身不是一个选项)需要很多小文件才能在页面呈现之前被读取,GlusterFS的性能至less比使用本地文件系统慢5倍。 即当地的GlusterFS砖。

请注意,我正在使用option read-subvolume选项,以便从本地GlusterFS块中读取文件,但是我知道在networking上的其他块上检查元数据,这是我认为会减慢速度的原因。

不幸的是,我不能让Apache使用本地GlusterFS砖,因为Apache本身做了一些写操作。

由于/mnt/glusterfs/site1/export/sdb1/glusterfs/site1实际上是相同的文件系统,Apache有没有办法直接从本地砖中读取,但写入到GlusterFS挂载?

这将显着提高性能。

我知道NFS,OCFS,GFS2,Lustre和DRBD,但是如果有可能做到这一点,这将是最简单的解决scheme。

也许是Apache指令,Apache模块(甚至自定义模块)甚至是在系统级别?

我将不胜感激任何build议/意见/方向。

如果你直接写,它不会被glusterfs复制。 如果直接读取,则如果驱动器出现故障,则可能会导致修复无法正常工作。 读取文件时,会检查元数据,如果文件不在本地,则复制文件,而不是在驱动器联机时复制文件系统。

如果这些文件是定期创build的,你可以将它们写入非分布式安装并将其用于文件?

你可以做你想做的事,但是可能会以一些非常奇怪的方式解决。 一种情况是,如果您在一个节点上修改文件,另一个节点将不知道元数据已更改,并且会读取旧文件。 你可以在GlusterFS邮件列表中停下来,他们非常有帮助。