前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在云盘环境下,自动启用运行keydb集群

如何在云盘环境下,自动启用运行keydb集群

原创
作者头像
扫地工程师
修改2020-05-13 18:05:46
1.1K0
修改2020-05-13 18:05:46
举报
文章被收录于专栏:微星极光微星极光微星极光

如何在云盘环境下,自动启用运行keydb集群

背景

keydb号称可以重复利用磁盘来节省内存的成本, 如果要启用flash功能的话, 必须使用btrfs或者zfs, 本文介绍基于一种zfs的方案。

大约这样的,制作一个带有keydb的镜像, 然后镜像启动的时候挂载云盘, 初始化zfs, 挂载到keydb的数据目录, 启动keydb进程, 然后再运行集群初始化命令, 一气呵成。

解决方案

首先制作镜像

通过packer先把安装有keydb功能的服务制作好镜像

其次挂载云盘

通过terraform绑定实例和云盘的关系

最后是集群初始化脚本(本文关键步骤)

初始化脚本是通过cloud-init的userdata来进行的, terraform有专门的模块暂不细表.

脚本有个关键的初始化zfs, 如下

zpool create -f keydb raidz ${device\_list}

zfs create keydb/data

zfs set mountpoint=/data keydb/data

但是这个device_list在脚本执行的时候, 还没挂载成功, 就会导致脚本失败, keydb没有启用flash特性

解决的思路是加一个检测步骤, 等待块设备ready了, 再执行

while [ ! -b ${device\_name} ]; do

    sleep 3

    echo "wait ${device\_name} ready"

done

完整代码如下

while [ ! -b ${device\_name} ]; do

    sleep 3

    echo "wait ${device\_name} ready"

done

zpool create -f keydb raidz ${device\_list}

zfs create keydb/data

zfs set mountpoint=/data keydb/data

参考

https://unix.stackexchange.com/a/313233

原文链接

https://www.wxhmf.com/posts/how-to-auto-run-keydb-cluster-with-zfs-enabled/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何在云盘环境下,自动启用运行keydb集群
    • 背景
      • 解决方案
        • 首先制作镜像
        • 其次挂载云盘
        • 最后是集群初始化脚本(本文关键步骤)
      • 参考
        • 原文链接
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档