我目前有两个web服务器(CentOS 5.5),并且使用GlusterFS作为客户机/服务器,两者都使用自动文件复制。
对于这两个For服务器:
GlusterFS挂载点是:
/mnt/glusterfs/site1本地的GlusterFS砖是
/export/sdb1/glusterfs/site1我使用绑定挂载来指向Apache中的GlusterFS挂载:
/var/www/site -> /mnt/glusterfs/site1动态页面(缓存页面本身不是一个选项)需要在呈现页面之前读取许多小文件,使用GlusterFS的性能至少比使用本地文件系统慢5倍。即局部GlusterFS砖。
请注意,我使用的是option read-subvolume选项,以便从本地GlusterFS块读取文件,但我了解到元数据是通过网络在另一个砖块上检查的,这就是我认为正在减慢速度的地方。
不幸的是,我不能让Apache使用本地GlusterFS砖,就像Apache本身所做的那样。
由于/mnt/glusterfs/site1和/export/sdb1/glusterfs/site1实际上是相同的文件系统,那么有什么方法可以让GlusterFS直接从本地块读取,但却可以写入GlusterFS挂载呢?
这将大大提高业绩。
我知道NFS、OCFS、GFS2、Lustre和DRBD,但是如果可以这样做,这将是最简单的解决方案。
也许是Apache指令,Apache模块(甚至是自定义模块),甚至是系统级的?
如有任何建议/意见/方向,我将不胜感激。
发布于 2010-07-02 15:48:20
如果你直接写,它将不会复制通过谷蛋白。如果您直接阅读,您的风险,您的修理不能正常工作,如果您的驱动器故障。读取文件时,它会检查元数据,如果文件在本地不存在,则复制它,而不是在驱动器联机时复制文件系统。
如果这些文件是定期创建的,那么可以将它们写入非分布式挂载并将其用于文件吗?
你可以做你想做的事,但是,它可能会以一些非常奇怪的方式打破。一种情况是,如果您在一个节点上修改一个文件,另一个节点将不知道元数据更改并读取旧文件。您可能会在GlusterFS邮件列表前停下来,它们非常有用。
https://serverfault.com/questions/157034
复制相似问题