现在我正在使用NFS(networking文件系统)将文件服务器的Web根挂载到两个Web服务器。
在我看来,NFS吃掉了很多资源。 有没有更好的方式来同步Web服务器上的文件? 我知道你可以每隔几秒钟运行rsync,但不知道这是最好的方法。
这两个文件是在两个地方修改还是集中pipe理?
如果可以在任何服务器上修改这些文件,那么NFS可能是明智的select。
如果要集中pipe理文件,那么你可以使用一些版本控制系统(如Subversion)来保存数据,并定期在服务器上检查更改。
如果在一台机器上修改了这些文件,并且希望它们在另一台机器上相同,那么可以使用rsync – 在更改之后或在crontab中。 没有任何更改传播时,Rsync将不会占用太多资源。
如果这是一个Linux系统(我猜是这样),我强烈build议DRBD 。 它允许您通过networking将文件系统复制到另一台机器。
您可以创buildGFS2或OCFS2 (群集)文件系统,并且可以在双主模式下安装这两个共享。 在其中一个系统上进行更改时,可立即在另一个系统上使用。
看看csync2,它更适合这种types的东西。
另一个select是unison,它非常类似于rsync。 Unison更适合双向同步。 例如:如果两个地方的文件都改变了,那么unison会比rsync做得更好。
两者都将通过ssh工作。 两者资源不足。
*我用它/他们超过200K文件的目录。 我每5分钟同步一次。 我已经使用了两个,看到没有性能差异。
共享存储怎么样? 您可以在另一个盒子上设置openfiler或freenas,并通过iSCSI挂载文件系统。 如果您仅将文件系统用于读取,则可以只使用ext3或xfs或任何类似的fs和mount文件系统。 对于rw访问,您需要群集的fs(如OCFS2或GFS2)(如果使用LVM,还可以selectclvmd)
正如Andy所说,你也可以使用DRDB。 但它有其局限性。 主要限制仅限于2台服务器(主从或主 – 主)。 添加第三台服务器是可能的,但是更复杂。