Chinaunix首页 | 论坛 | 博客
  • 博客访问: 27887
  • 博文数量: 7
  • 博客积分: 912
  • 博客等级: 准尉
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-11 19:26
文章分类
文章存档

2010年(4)

2009年(3)

最近访客

分类:

2010-05-09 01:23:08

命名空间 -- 网络拓扑的设计?

人对一个文件系统最直观的感受,(元数据的访问)应该是目录树的形式。但是目录树
这种集权形式,确必然不适合分布式文件系统。因为这很可能要求在一台机器上存在整
个元数据的完整拷贝。否则会有什么后果呢? 由多台机器上的分支组成树,这样在一致
性,容错 性能? 上,似乎根本无能为例。

但是,我们希望树这种人类思维的逻辑,不要参与到这个系统中,得救之道还是分布式, 我们让
客户端更多的承担一致性,路径查找,甚至日志,缓存 方面的责任,而整个文件系统,将会是个
很简单的东西,简单到人类无法理解,如同010101一串数据。设计的原则一: 系统核心,与用户
的视图,逻辑无关! 
    fid = MD5(path)_NUM;
这样,对于文件系统来说,所有文件路径的长度都是一样的,没有什么 MAX_PATH 255 这种比较恶心的
东西。 文件路径由客户负责,用户请求文件的时候,只请求fid, 而不会请求别的!.  不再存在元数据
服务器,而只存在 元路径服务器。 什么意思呢? 当客户不存在这样的路径的时候,会需要向原路径
服务器load路径。但是原路径服务器,除了维护一颗目录树以外,其他啥也不干。这样的设计,想起来
是很优美的,但是至少会有下面一些问题:
    1.冲突
    2.一致
    3.这里的客户,指的是什么呢?
冲突比较好解决,一致性,只有代码写起来,才能明白。 客户是什么呢?
这里的客户定位于: 使用文件系统接口的应用程序。这里的一个问题是:假设是一个web服务器,作为文件系统嗯的客户端,来使用文件系统。 如果文件系统负责路径到文件 id的映射, 那么应用会很轻松,如果由应用来
维护文件系统的这个映射?这里肯定是不可能的? (关键是一个web server 无法承受这么大数据量的路径信息的维护? XX,这应该不是个问题。 这个大数据量路径信息的维护,交给本地文件系统维护?) 不过这样的设计,如果客户端更小,比如是一个手机终端用户,迅雷用户? 就好了。因为他需要维护的数据,是很有限制的。
(这个人如何访问别人的文件呢? 不允许他知道别人的路径,但他有可能知道别人的MD5,或者随意尝试MD5?? 
这个问题,也不由文件系统解决,而由文件系统,和 客户端之间的一个安全层来解决。这个安全层,仅仅负责:
验证,转发 消息。
。。。。待续
阅读(1206) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~