话说目前市面上绝大部分的集群文件系统都是从Linux上开发出来的,所以有一天我突然想到那些所谓企业化的套件,其实我们也是可以山寨出一个,然后自己出个发行版,比如效仿glusterFS或mooseFS那种做法,于是写下此文。最近由于"云"这个概念的崛起,各种分布式文件系统也如雨后春笋那般遍地发芽。在我的印象里,分为两大类。一种是以单台元数据服务器(MDS,MDC)和多台IO节点服务器组成的的架构,典型的比如Stornext和Lustre;另一种是没有独立的元数据服务器,而把元数据分散到各个IO节点中的架构,比如Ibrix和GlusterFS等。这两种结构也各有其优缺点。如今绝大部分的分布式文件系统都是基于*nix平台的,并且Linux下的居多,只有个别的除外(微软的DFS)。所以我灵光一闪,何不用各种开源的包和工具自己山寨出一个呢?底层的存储部分无论DAS或者SAN,我们均可以用Linux的LVM拼接出一个大卷;或者不使用MBR,而直接改用GPT来引导。这样,可以突破2TB容量的限制。利用device mapper来实现存储部分的linear,mirror,stripe等策略,以及multi-path机制。文件系统部分,我们可以先挂载ext3,然后用FUSE来实现用户层文件系统跨服务器的拼接。让一个单一的命名空间跨越多台IO节点服务器。FUSE通过RPC服务实现IO节点服务器和元数据服务器之间的通信。集群和高可用性可以这样设置,来达到容错的效果。各台IO节点服务器之间通过CVS来做集群;而元数据服务器可以设主备共两台,通过heartbeat来实现HA切换,active-standby模式。各个IO节点服务器安装DRBD,来实现file raid的功能,即每次写入一文件,会写两份,同时分散到2个节点服务器所抓的卷中。对于用户层,各台IO节点可以使用samba,nfs等手段进行共享,并且用户看到的应该是一个单一命名空间,这个空间跨越了所有的节点服务器。如果条件允许的话,甚至可以用python或perl配合apache或tomcat开发一个GUI,类似webmin那样的以简化用户的操作。剩下的便是那些附加的功能了。使用LDAP,或者winbind走NIS域与windows AD连接来达到对用户的账号控制;使用ACL和quota来达到对用户的权限和配额控制,等等。总体的框架如上,不过具体实施起来应该会碰到很多问题,撇开脚本和python先不说,光协调好如此多的系统服务,已经很难了...... Ubuntu 开启 NFS 与 开发板 连接基于 Linux 集群环境上 GPFS 的问题诊断相关资讯 Linux知识
- 时光总是太匆匆!Linux已经诞生23 (08/29/2014 14:12:03)
- Linux虚拟文件系统之文件打开(sys (02/14/2012 11:41:54)
- 2012 年 Linux 峰会时间表 (02/14/2012 06:47:27)
| - 报告称当前 Linux 人才抢手 高薪也 (02/15/2012 06:35:56)
- 解析企业为何选择Linux及其特别之 (02/14/2012 08:17:59)
- Linux禁用字符闪烁的方法 (11/02/2011 10:28:25)
|
本文评论 查看全部评论 (1)
评论声明- 尊重网上道德,遵守中华人民共和国的各项有关法律法规
- 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
- 本站管理人员有权保留或删除其管辖留言中的任意内容
- 本站有权在网站内转载或引用您的评论
- 参与本评论即表明您已经阅读并接受上述条款
|
|