概述
2012年6月发布的OSS开源对象存储,使用Erlang语言开发,使用Apache V2许可,主要厂商有乐天等。它主要面向大数据中心,采用主打3H3V。
3H即高可靠性High Availability、高扩展性High Scalability、和高性价比High Cost Performance Ratio(采用少量资源开销即可获得相对更高的性能表现)。
-高可靠性,HA号称9个9,永不停止,基于在实际生产中已经被证明的Erlang/OTP,不存在单点故障。
- 高可扩展性,提供了快速增删节点的能力,弹性较好
- 高性能低造价,体现在使用10Gb/s网络性能高并且稳定,比其他存储系统花费少,并且易于管理和运维,提供简单的监控工具leofs-adm。
3V即Volume支持PB/EB级别,Varitey适用业务场景包含存储图片、电影和非结构化数据(leofs实际上面向的是大数据场景,构造data lake),Velocity低延迟。
除此之外提供功能特性有:
多协议支持(Multi Protocol)
支持RESTful接口、S3接口和NFS v3接口。提供NFS接口实现了向数据湖中存放个来自不同业务的不同类型的数据,如PaaS/IaaS的各类文档文件、图片共享服务的图片、分析应用产生的流式日志和事件数据,之后对接Cassandra/MySQL等进行分析处理。
大对象存储(Large Object Support)
大对象分为元数据部分和数据部分。数据部分由于较大将被打散为若干chunks(默认5MB),chunks分别存储使得节点之间更加均衡,提高IO效率。大对象的写分散和读聚合都是由网关节点进行处理。
多数据中心复制(Multi Data Center Replication)
基于乐天在全球部署数据中业务场景,集群之间采用异步的复制过程,事件一致性。
数据中心的管理节点相互复制对方的RING和系统配置。同步的数据先存放在本地中心的容器(container)中,达到阈值(默认32MB)后采用点对点传输的方式传递给其他中心。
传输数据采用LZ4压缩。通过leo_rpc传递到各个节点。当传递到各个数据中心的节点之后,再由相应的节点之心中心内的复制工作。数据中心之间通过比对对象的元数据保证中心之间数据的一致性。
目前版本为1.4.3.
架构
leofs架构包含3个部分:
LeoStorage 负责存储和执行由网管关节点发送来的、针对对象数据和元数据的GET、PUT、DELETE请求。组件采用复制器(replicator)、恢复器(Recoverer)和队列机制保证事件的一致性。写对象时节点采用点对点的方式自动复制,读时由和网关对接的存储节点负责异步自动修复不一致的对象。元数据存在元数据的存储上,数据存在数据存储上(数据存放时头部信息包含元数据的大部分内容)。底层采用日志文件系统。
LeoGateway 负责将客户端的RESTFul请求或S3请求转发。内建对象缓存机制(内存和磁盘缓存,使用缓存的好处减少存储节点和网关之间的交互)。采用由管理节点生成的RING(分布式哈希表)确定相关的存储节点。
LeoManager 存放集群配置信息,负责监控存储节点和网关节点,是集群高可靠性和数据一致性的保障。管理节点可以执行的操作包括查询(whereis)、状态查询(status)、节点暂停(suspend)、节点恢复(resume)等。
组件之间的通信采用Erlang RPC的方式。另外,可以通过TCP/IP或SNMP Trap等方式使用Nagios或Zabbix开源监控系统对集群进行监控。
应用场景
1、文件共享服务:采用后端leofs和前端ownCloud,认证用户采用ldap服务,配置管理mariadb,会话管理ROMA。
2、多数据中心:ganglia状态收集,nagios状态检查,采用端口和阈值的检查方式。














网友评论