想问一下使用nfs来做的话,能有多少台客户机?
我想用nfs来做两台web的数据共享,
以减少由于web出了问题而影响访问的情况
我现在每秒硬盘读最大在10M/S,写最大为8M/S
不知道可不可实现,有没有比较好的效果,
还想问一下,是不是只要把分区nfs出去,客户端挂上后,对文件的读,写控制是由nfs服务器进行的,对读,写的仲裁也是由nfs服务器进行了的?
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
象你这种情况,是想实现负载均衡,用linux做负载均衡。或用f5做负载均衡(价格太高)用第三方软件实现均衡,在或者买一个类似f5的硬件,如果有两个ip地址的话可以用双机软件的Active/Active模式,一个ip可以做一个双机,加个备机就行(缺点是还是只有一台服务器提供服务,就要求对服务器的配置相当高才行)这样都可以实现你要的结果。
[ 本帖最后由 xintao800 于 2006-6-7 10:33 编辑 ]
是的,这样在一台web出现问题后,还可访问
还有一个是单机对访问量吃不住
我的理解是楼主希望web应用的不间断性,或者??
学习
谢谢版主
windows下面CIFS共享的时候,一个人修改,另外一个用户打开的时候提是你只读,等你只读打开的时候,这个文件的数据是dirty data, 和那个人修改的无法实时联系起来.
举人的例子在进一步的讨论中是不恰当的,因为如果2个人没有关系,等等就好了,如果是分布在不同节点上的2个程序,dirty read/write就麻烦大了.
nfs export --> host VFS mount. 控制就是在host VFS的控制下面的, man mount 然后查 nfs 章节,你会看到仅有的几个限制,并不是你说的"不保护" 而是无法在集群环境下"感知"和处理.
你提到的NFS 对文件读写的保护,实际上并不是常规理解的"保护"动作,而是linux kernel为了保证nfs client 访问远程nfs 共享数据的时候,缓存的一致性,通过GETATTR系统调用来控制的.
GETATTR系统调用操作了具体的nfs mount之后数据读写的缓存的一致性动作,经常可以看到很多作优化的文章介绍可以在 mount nfs client 的时候 加上 nocto,就是跨过了GETATTR系统调用的控制,提高了访问性能,但是当来自多个不同客户端的nfs client 访问相同数据的时候,就容易造成并发的操作导致数据一致性破坏掉.
RHEL4用了改进的方法来做这个事情,具体可以查看redhat 站点的 kernel 2.6 doc.
不过这些都和我们谈的cluster filesystem没有多大关系. 如果你今天要多个client 同时访问一个数据源,并要求在保证数据一致性的前提下并发读写操作,呢么集群文件系统似乎是唯一的选择了.
当然你也可以用用ocfs2 :"))))), 我个人目前不推荐.
[ 本帖最后由 nntp 于 2006-6-6 02:21 编辑 ]
在win下做共享的话,当有人打开一个文件时,另一个打开会有一个提示,以只读方式打开,
NFS也只是把你要共享的共享出去,对文件读写保护是不管的,我这样理解对吗?
并发实现和兵法的支持,好像是2码事情吧.
你在windows环境,把自己的一个目录share CIFS方式出去,用户A和用户B都能访问这个目录,都可以同时访问,读写,但是你能保证一个single file 的数据一致性么? nfs 环境同理.
那如果只是用nfs来作共享的话,并不能支持多用户的并发读和写了?
谢了
1. 磁盘速度和你的硬件有关系的,这个时候nfs stack还没有加上去呢. 用高速的硬件当然吞吐会更大
优化磁盘子系统及I/O文件系统层面的工作和调优你的nfs性能本身就是相互独立的,能够在前者的调优部分有所效果当然会直接帮助到nfs的性能.
2. nfs export出去后,无论是nfs服务器还是client 都不会对你的并发读写作仲裁。这就是为什么有集群文件系统的意义所在.