从年初到现在,经过大半年的奋战,康华(博客)在工作之余,带领西邮兴趣小组的同学进行弹性云存储项目的开发,目前终于完成了第一个版本,取名cloudxy,其中的xy意味着,任何感兴趣者都可以加入进来,或许因为您的加入,这个xy就有了未知的扩展。
Cloudxy立足于实现虚拟子网(以太网)的弹性云计算平台, 该项目主要包含有两个子项目:
HLFS - 虚拟机分布式镜像存储 (类似于亚马逊EBS,首先发布出来)
ECM - 虚拟环境管理系统 (后续发布)
源代码位于:http://code.google.com/p/cloudxy/
邮件列表为:cloudxy@googlegroups.com
------------------------------------------------------------------------------------
关于HLFS,康华写的相关文档在:
FAQ — http://code.google.com/p/cloudxy/wiki/HlfsFAQ
DESGIN — http://code.google.com/p/cloudxy/wiki/HlfsDesign
User-Manual — http://code.google.com/p/cloudxy/wiki/HlfsUserManual
Code - http://cloudxy.googlecode.com/svn/trunk/hlfs/
-----------------------------------------------------------------------------------------
关于HLFS,请优先阅读HlfS FAQ
hlfs (hdfs log structrue filesystem 的缩写)是一个在hadoop hdfs 文件系统之上实现的log structrue filesystem - like 系统。但要注意它并非一个实现完整posix语义的文件系统(支持目录操作、link等),而是仅仅实现了单一文件的基本管理(open,write,read,close)的系统,所以把它称为存储系统(block-level)可能更加合适。
hlfs 能做什么?
由于hlfs自身特色(高可用性、写透、快照、分布式、用户态),适合于做虚拟机镜像存储(类似亚马逊EBS)、在线网盘(金山快盘等)等虚拟块设备的存储架构。甚至发散一下思维,它也可以做为pnfs类似系统的后台存储等等。
注, 其实我们的这次发布中有一个在nbd基础上实现的网盘,完全可以做为一个在线网盘使用。
hlfs 来源自哪里?
hlfs 项目来自于我们当前正在研发的弹性云平台:基于erlang实现的一套虚拟机、虚拟网络管理系统,该系统有点像EC2,不过最终重点放在了管理虚拟子网(二层)上。这个项目也是一个开源项目,目前还处于开发初期。hlfs是该项目中的一个子项目,预先开源出来。
hlfs 如何实现的?
简单的讲,hdfs 的实现特点决定了它完全可以当做一个高可用性、几乎无限大的网络磁盘使用,
但不幸的是,它只能追加写入,无法随机写入(其实正是这种取舍保证了hdfs反熵、故障切换等简单可靠的特点),对于在线应用随机访问而言(如虚拟机磁盘镜像)无法直接使用。所以我们借助log structrure filesystem的特色,使用追加方式的元数据管理技术,在hdfs这个大磁盘上实现随机数据读写功能。 具体的实现方法见设计描述 http://code.google.com/p/cloudxy/wiki/HlfsDesign?ts=1322292067&updated=HlfsDesign。
hlfs 有哪些特点?
hlfs 继承了hadoop dfs 和 log structrue filesystem的诸多优点,同时也继承了其缺点。
优点:
高可用性 —— 继承dfs
高扩展性(可上大规模)、自动不停机扩容 —— 继承dfs
负载均衡 —— 继承dfs
用户态实现(便于调试、故障易隔离) ——继承dfs
稳定性、可管理性高 —— 得益于dfs成熟、普及
写速度优化 —— 继承lfs 和 dfs
支持运行态数据快照(便于数据污染后,执行回滚) —— 继承lfs
缺点:
需要数据合并(merge或者rewrite,已清除的旧数据回收存储空间)—— 遗传自lfs
响应速度打折(副本一致性是通过pipeline式串行实现保证,所以写速度受一定影响) —— 遗传自dfs
为什么开源?
集体智慧永远大于个人或者小团体智慧,因此希望能有更多朋友参与进来,贡献智慧,一同进步。
饮水思源,从来都是用别人开源软件,好歹也应该尝试加入潮流。