Kubernetes 中 ignite stateful set 的备份

Backup of ignite stateful set in Kubernetes

我正在尝试想出一个策略来备份我的 apache ignite 缓存中的数据,该缓存作为有状态集托管在 google 云 Kubernetes 中。 我的 ignite 部署使用 ignite 本机持久性并运行由 Kubernetes 中的持久性卷备份的 3 节点 ignite 集群。 我正在使用 binaryConfiguration 将二进制对象存储在缓存中。

我正在寻找一种可靠的方法来备份我的 Ignite 数据并能够恢复它。

到目前为止,我已经尝试只备份持久性文件,然后将它们恢复回来。 它还没有可靠地工作。 我面临的问题是恢复后,不是二进制对象的缓存数据被正确恢复,例如字符串或数字。我能够很好地访问数字或字符串数​​据。但是二进制对象是不可访问的。似乎二进制对象已恢复,但我无法获取它们。

奇怪的是,在恢复之后,一旦我将一个新的二进制对象添加到缓存中,所有恢复的数据似乎都可以正常访问。

任何人都可以建议一种可靠的方法来备份和恢复 ignite 本机持久性数据吗?

Apache Ignite 供应商ACID transactions which are pretty reliable. The cache also uses its own mechanism for primary backups and copies and assuming you have its WAL 启用了一些东西保存在内存中。

最有可能发生的事情是您进行了恢复,并且在您创建初始写入内存的那一刻开始填充,让您可以查看磁盘(缓存)上的内容。这并不是真正受支持的恢复机制(文档中没有)但它可以在恢复后你 运行 一个无关紧要的小样本写入的地方工作。不过,我建议彻底测试一下。

您应该备份 ${ignite.work.dir}/marshaller 目录,或者为缓存中的每种类型调用 ignite.binary().type(KeyOrValue.class) 以启动二进制编组器。