今天突然发现Kafka集群所有机器都下线了,也算是一个不小的事故了。最后查看了主要原因是磁盘满了,惊不惊喜,意不意外?碰到Kafka的本次事故,主要是前期的查看问题,中期的分析问题,和后期的解决问题。查看问题,相对简单。查看Kafka的日志文件基本上能发现。分析问题阶段就要就事论事,仁者见仁,智者见智了。对于本次事故中,我们使用的是3台云端Kafka主机,配置了12个分区(partitions)和3个副本(replication)。数据盘只有可怜的100G,估计也是项目初期评估少了,现在数据量大增,把这茬事都忘了。还好用的是云主机,最简单的方案是扩容。Linxu云磁盘一般是可以弹性扩容的。但是由于初期买了100G已经投入使用,扩容到500G以后,需要卸载已经挂载的数据盘,并且把新增空间扩容到现有数据盘中,可能存在数据丢失风险。因此,这个操作还是需要谨慎应对的。
非常惨的是,我用的主机服务商并没有给非常明确且安全的操作方法。最后参考了腾讯云给出的方案,具体在此《扩展分区及文件系统(Linux)》。本文就不重复文章的操作过程了。主要是强调几点比较重要的步骤。
备份数据
这个是老生常谈的话题。云磁盘比较方便,直接做个镜像就好了。
明确当前数据盘文件系统
不同的文件系统格式,需要使用不同的磁盘工具。例如我的文件系统时EXT3,就需要使用fdisk/e2fsck/resize2fs了。使用以下命令查看自己的文件系统类型:
df -T
另外主机上需要安装Python2环境并下载腾讯提供的python脚本工具,这个工具默认帮忙完成所有的工作,非常简单。地址如下:
https://raw.githubusercontent.com/tencentyun/tencentcloud-cbs-tools/master/devresize/devresize.py
扫码联系船长