Kafka磁盘扩容
起因
由于业务日志量不断变的庞大,当前2台kafka机器的磁盘占用过高,很快就不能正常使用,有两个解决方案。
(1) 添加机器
(2) 新增磁盘
由于考虑到目前使用的机器磁盘本身就比较小只有500G,于是我们选择了方案2,将磁盘扩容至1t,如果后期依旧不够使用,就需要考虑新增机器。
扩容步骤
(1) 迁移zookeeper(如果zk和kafka不再同一机器,无需考虑)。
(2) 选择扩容kafka集群中非controller节点,将历史数据拷贝到新磁盘中(使用rsync进行同步,考虑到历史数据过大,应该先进行拷贝,最后停止kafka节点,进行增量数据拷贝)。
(3) 重新扩容后的节点需要等到数据的同步成功后(可使用kafka_drop观察),继续操作下一台机器节点。
zookeeper迁移步骤:
(1) 关闭zk, ps -ef|grep zk|awk '{print $2}'|xargs kill
(2) zk数据迁移到新磁盘(使用rsync进行同步)
(3) 重启zk
(4) 检查zookeeper是否正常, ./zkServer.sh status
kafka迁移步骤:
(1) 进行数据拷贝到新磁盘 rsync -avPh /data/kafka /kafka_data/kafka。
(2) 关闭kafka 非controller 节点。
(3) 继续进行数据拷贝到新磁盘rsync -avPh /data/kafka /kafka_data/kafka 只需要copy kafka数据。
(4) 重启kafka节点(restart-server.sh)。
(5) 观察数据同步是否达到100%(可使用kafka_drop观察)。
(6) 继续下一台机器。
总结
迁移过程还算顺利,客户端无感知迁移。
赏
请到客户端“主题--自定义配置--配置”中填入leancloud_appID和key