一 简介
Kumofs 是一款基于tokyo cabinet超高性能的分布式存储系统,继承了tc超高的读取和写入性能,并且遵循CAS,除此之外,他同样支持MEMCACHE协议,在众多的客户端中得到良好的支持。
除了拥有高效的存取特性外,他主要具备以下特性:
- 数据能够被均匀的拆分到所有的节点,同时具备分布式存储必须的功能:复本
- 随着节点数量的增加,系统整体的读取和写入效能成线性递增。
- 节点在系统无需重启的条件下,可自由上下架。
- 节点在系统不需要进行任何配置文件的修改,可自由上下架。
- 当节点出现故障,宕机时,不影响整个系统的正常运行。
- 当节点出现故障,需要恢复时,整个系统无需停止,下线。
- 通过一致性HASH策略(consistency control system)数据实现均衡分发
- Safe CAS operation support
- memcache协议支持
二 结构组成
- Kumofs主要的组成主要分为以下几个部分:
- 客户端:使用memcache协议的调用方
- kumofs代理:负责与客户端和服务节点的通信转发,对外看起来就像是一个memcache服务器。
- 存储服务节点:数据的读写实体。
- 管理节点管理调度器:节点的健康状况监视器,记录节点各个状态,同时负责数据均衡分发,当节点出现宕机时,下线操作和数据恢复由它来负责.
- 管理客户端:通过与调度器通讯,完成制定的操作。
三 性能,负载
通过上图,大家应该可以了解到同伏地魔系统在同等硬件配置,数量级和压力的条件下,Kumofs CPU的占用只有伏地魔的一半
当服务器的数量增加时,整体系统的读取性能也线性增加。
四 安装,部署
(1) 安装jemalloc
kumofs推荐使用jemalloc替代标准库中的malloc,可跳过安装
cd/usr/local/src
wget http://www.canonware.com/download/jemalloc/jemalloc-1.0.2.tar.bz2
tar xjvf jemalloc-1.0.2.tar.bz2
cd jemalloc-1.0.2
./configure
make
makeinstall
ldconfig
(2) 安装Tokyo Cabinet
cd/usr/local/src
wget http://cdnetworks-kr-1.dl.sourceforge.net/project/tokyocabinet/tokyocabinet/1.4.32/tokyocabinet-1.4.32.tar.gz
tar xvzf tokyocabinet-1.4.45.tar.gz
cd tokyocabinet-1.4.45
./configure
make
makeinstall
ldconfig
(3) 安装MessagePack for C/C++
cd/usr/local/src
wget http://downloads.sourceforge.net/project/msgpack/msgpack/cpp/msgpack-0.5.2.tar.gz
tar xzvf msgpack-0.5.2.tar.gz
cd msgpack-0.5.2
./configure
make
makeinstall
ldconfig
(4) 安装kumofs
cd/usr/local/src
wget http://github.com/downloads/etolabo/kumofs/kumofs-0.4.10.tar.gz
tar xzvf kumofs-0.4.10.tar.gz
cd kumofs-0.4.10
./configure --with-jemalloc
make
makeinstall
kumofs的一些管理工具是用Ruby开发的,你还需要安装Ruby和MessagePack for Ruby
(1) 安装Ruby
(2) 安装RubyGems
(3) 安装 MessagePack for Ruby
gem install msgpack