问题描述
我在 Google Kubernetes 引擎中部署了一个启用持久性的 Gridgain 服务器。服务器以默认配置启动。我需要将 walMode 更改为 FSYNC。但这是不可能的,因为 WAL 目录给出了访问被拒绝的异常。然后我删除 wal 和 walarchive PersistenceVolumeClaim 对象并尝试重新启动它。但它给出了错误。
有什么方法可以用我现有的数据启动 GridGain 服务器。现在 wal 和 walarchive 目录被删除并创建新的目录。
除此之外,如果任何原因 wal 和 walarchive 数据损坏,任何原因都可以安全启动 Gridgain 服务器而不会丢失任何数据。
解决方法
参考 [1] 和 [2] 找到了解决方案。
作为[1]的答案1
必须清理位于 $IGNITE_HOME/work/db/$NODE_UUID/cp 的文件夹 向上。在此之后,节点应该以正常方式启动。
如果删除了wal和walArchive文件夹,则需要删除“cp”文件夹。如果在 Kubernetes 和服务器节点中运行的应用程序无法启动,请按照 [2] 创建带有挂载数据文件夹的新 pod。然后执行它并删除“cp”文件夹。
apiVersion: v1
kind: Pod
metadata:
name: task-pv-pod
namespace: gridgain
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: work-vol-gridgain-cluster-2 # persistent volume claim
containers:
- name: task-pv-container
image: nginx
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/gridgain/" # Mount to data folder
name: task-pv-storage
然后服务器启动没有错误。
[2]。 https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/