我无法在我的 Amazon Managed Streaming for Apache Kafka (Amazon MSK) 集群中增加 Amazon Elastic Block Store (Amazon EBS) 磁盘卷。
解决方法
此问题的最常见原因如下:
- 您没有修改 Amazon EBS 卷所需的权限。
- 与之前的 Amazon EBS 卷升级相比,您的集群处于正在优化状态。
您没有修改 Amazon EBS 卷所需的权限
确保您拥有修改集群的 EBS 磁盘卷所需的权限。确保将 AmazonMSKFullAccess 或 AmazonMSKClusterManagement 策略附加到您的 AWS Identity and Access Management (IAM) 用户或角色。
与之前的 Amazon EBS 卷升级相比,您的集群处于“正在优化”状态
在这种情况下,您会收到错误“正在根据先前的操作修改此集群中的 EBS 卷”。
当您增加附加到 Amazon MSK 代理节点的 EBS 卷的大小时,就可以立即使用新添加的存储空间。然而,优化集群需要 6 到 24 小时或更长时间。集群优化的持续时间与存储大小成正比。
增加 EBS 卷的大小时,请确保添加的卷足以满足接下来的 48 小时或更长时间。在此期间,您无法向集群添加更多卷。在优化集群之前,您无法进一步更新卷。
**重要事项:**假设您的集群正在优化中,并且您的磁盘空间已经用完。在这种情况下,如果您之前已启用自动扩缩,请务必将其关闭。否则,优化完成后,卷仅增加 10% 或 10 GB。这可能太低,导致卷修改出现类似问题。关闭自动扩缩后,请务必分析您的流量模式,并相应地增加存储空间。
如果您的集群正在修改中,并且 KafkaDataLogsDiskUsed 指标低于 94%,则可以删除未使用的主题或旧主题以释放空间。请运行以下命令来确定每个主题占用的空间:
kafka-topics.sh --command-config /tmp/client.properties --bootstrap-server $bservers --list | xargs -I{} sh -c "echo -n '{} - ' && kafka-log-dirs.sh --command-config /tmp/client.properties --bootstrap-server $bservers --topic-list {} --describe | grep '^{' | jq '[ ..|.size? | numbers ] | add' | numfmt --to iec " | tee /tmp/topics-by-size.list
然后,删除未使用的主题或旧主题以释放磁盘空间。
**注意:**如果 KafkaDataLogsDiskUsed 高于 94%,则此命令可能没有响应。在这种情况下,您无法删除主题。