使用脚本构建分布式文件系统

来源:chinaunix  作者:张友东
2012/7/16 11:14:43
上周末ADC,@明俨 主持TFS开源主题的讨论,居然有TFS外部用户到现场咨询使用过程中的问题,感觉这些小公司维护大系统挺不容易的,尤其是在对内部实现不清楚的情况下。

本文关键字: 脚本构建 分布式 文件系统

上周末ADC,@明俨 主持TFS开源主题的讨论,居然有TFS外部用户到现场咨询使用过程中的问题,感觉这些小公司维护大系统挺不容易的,尤其是在对内部实现不清楚的情况下。期间有人分享自己公司的做法,存文件的时候,存到多个server上,然后把文件跟server的对应关系记录到文档(不能丢,方便查找),当出现异常时,人工介入拷贝文件以增加文件副本数,然后更新文件跟server的对应关系;做法看起来很土,但对于小公司来说,只要维护者能“不厌其烦”,这也不失为一个好办法,毕竟一切在自己的掌握中。

目前很多互联网创业公司都面临数据存储的问题,比如服务过程中产生大批非结构化的数据(图片、音乐、视频、文档,结构化的的数据如注册信息等直接存mysql),数据量很尴尬,一般的服务器存不下,贵了的服务器买不起;于是大家都盯上了利用廉价PC构建分布式文件系统的开源方案,比如TFS、MooseFS等;但使用这些开源方案是有风险的,天天正常的跑当然皆大欢喜,一旦出问题,如果不对实现有所研究的话,根本无从解决,而在创业初期,你也没有人力去做这些研究工作,或是你根本招不到能干这活的人。

于是我想创业公司在需要存储大量文件时,能否考虑利用脚本构建一套存储方案,这样做的好处是使用脚本,学习成本低,研发成本低,并且自主研发,可控性强,相比上面提到的人工方案,利用脚本可以自动化处理很多情况,降低人工介入频度。具体需要考虑的点如下:

  • 在web服务器上,把存储服务器的存储目录(比如每个server的每个盘)通过NFS挂载到本地。
  • web服务器在存储文件时,从这些挂载目录中选择2或多个目录(不在一个server上),将文件存储在这些server,并把文件到disk的映射关系记录起来(mysql或本地+NFS等)。
  • 利用脚本(python、perl等)对server的disk进行监控(方法很多,自由发挥),当检测到磁盘或机器坏掉时(机器挂了通常重启就OK),就开始从映射信息中获取到磁盘上的文件列表,并将这些文件再增加一个拷贝。
  • web服务器在读的时候,随机选择一个存储目标文件的server;对于文件热点情况,可以人工介入,增加文件的拷贝数。
  • 上述很多功能点只需要很少的脚本代码就能完成,在初期也不需要特别完善,运维过程中再不断改善,没准最后会演化成一套很好的解决方案。
责编:赵龙
vsharing微信扫一扫实时了解行业动态
portalart微信扫一扫分享本文给好友

著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
最新专题
流动存储 为大数据而生

伴随信息技术的突飞猛进,更大量级的非结构化数据与结构化数据构成的大数据成为企业级存储所面临的最大挑战:一方..

磁盘阵列及虚拟化存储

利用数组方式来作磁盘组,配合数据分散排列的设计,提升数据的安全性。虚拟化存储,对存储硬件资源进行抽象化表现。

    畅享
    首页
    返回
    顶部
    ×
      信息化规划
      IT总包
      供应商选型
      IT监理
      开发维护外包
      评估维权
    客服电话
    400-698-9918