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

本文介绍了如何在云盘环境下利用ZFS自动部署KeyDB集群。通过制作包含KeyDB的镜像,挂载云盘,初始化ZFS文件系统,然后启动KeyDB并执行集群初始化。解决方案中,通过cloud-init的userdata脚本来实现,关键步骤包括等待块设备准备好再执行ZFS初始化,以确保KeyDB的flash特性得以利用。
摘要由CSDN通过智能技术生成

如何在云盘环境下,自动启用运行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 "
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值