使用分布式缓存系统

编译构建

$ git clone https://github.com/cubeFS/cubefs.git
$ cd cubefs
$ make server

启动flashnode

./cfs-server -c flashnode.json

示例 flashnode.json:

{
    "role": "flashnode",
    "listen": "18510",
    "prof": "18511",
    "logDir": "./logs",
    "masterAddr": [
        "127.0.0.1:17010",
        "127.0.0.2:17010",
        "127.0.0.3:17010"
    ],
    "readRps": 100000,
    "disableTmpfs": true,
    "diskDataPath": [
      "/path/data1:0"
      ],
    "zoneName":"default"
}

更多详细配置请参考 FlashNode Detailed Configuration.

分布式缓存配置

创建并启用flashGroup

通过cli工具的flashGroup create命令创建缓存组flashGroup,并分配到唯一识别该flashGroup的ID。

// fg的slot数量默认为32
./cfs-cli flashGroup create 

通过cli工具的flashGroup set命令启用flashGroup,参数为上一步被分配的ID。

// 创建后的flashGroup状态默认是inactive状态,需要设置成active状态
./cfs-cli flashGroup set 13 true

flashGroup添加flashNode

通过cli工具的flashGroup nodeAdd命令往刚创建的flashGroup中添加缓存节点flashNode

// flashGroup添加flashNode,指定flashGroup的ID以及要添加的flashNode
./cfs-cli flashGroup nodeAdd 13 --zone-name=default --addr="*.*.*.*:18510"

通过cli工具的flashNode list命令,查看刚添加的flashNode是否正确。默认新添加的flashNode的active和enable状态都为true。

./cfs-cli flashnode list

开启卷的分布式缓存能力

通过cli工具的vol update命令开启目标卷的分布式缓存能力,默认新建卷以及集群升级前已存在的卷都没有不是缓存能力。

// 打开目标卷test(已创建)的remoteCacheEnable开关。
./cfs-cli vol update test --remoteCacheEnable true

通过cli工具的vol info命令查看目标卷是否打开分布式缓存能力

./cfs-cli vol info test

remoteCacheEnable为false表示未开启分布式缓存能力,true则表示已开启。

确认分布式缓存生效

client挂载已经开启分布式缓存能力的卷。

对卷根目录下的文件进行读请求测试。默认情况下,分布式缓存会缓存根目录下所有大小小于128GB的文件。

通过client端的mem_stat.log查看是否有flashNode的条目,该条目记录了客户端从flashNode读取的次数与平均延时。所以如果有对应条目,说明client端尝试flashNode读取对应的缓存数据。

在github上编辑