GOOGLE:
google号称内部好多服务使用这个解决方案,而且公布了好多相关设计文档。好人啊!
googlecluster : 集群
gfs :分布式文件系统
chubby:锁服务
bigtable:分布式表
mapreduce:计算
YAHOO:
关于yahoo和hadoop渊源网上已经说的很详细啦。hadoop也提供了几乎和google一样的架构服务
hadoop
所有的演讲:
http://wiki.apache.org/hadoop/HadoopPresentations
最新的全面介绍:
总结:
两者的分布式存储和计算更多服务于网页,比如网页保存,索引计算
本想试着用纯粹的分布式文件系统,发现速度慢,而且。而且多个动态namespace机器间同步状态很麻烦,需要太多同步。这也是分布式和集中式的优缺点。
分布式文件系统和单机文件系统原理是一样的,都是通过一份namespace管理分散的data。
两者都采用一台独立服务器作为namespace服务器(多机热备)。data可以任意放在其中一台dataspace机器。都是采用无规则的name映射。个人觉得每次数据读取都需要通过namespace服务器,增加了负担。可以适当增加下数据和dataspace的规则,访问者可以不通过namespace直接访问dataspace。当然google/yahoo可能都是大文件,无所谓这点损失。但是如果小文件多的话,就需要快速访问啦。
规则方案:
建立“文件name的hash值的取余值”到“dataspace机器”的1:N映射表,这个映射表在namespace服务器和访问者都存在,而且是全部动态产生的,可以自调整。
建立这个映射表后,就要求同一个hash值的取余值必须放在同一台dataspace机器,多台dataspace机器可以存放同一个取余值。