Kubernetes
Heketi - 使用現有數據添加設備
我有一個 OKD 集群,其中 GlusterFS 作為儲存類,Heketi 作為前端。一切正常,直到破壞 Heketi 數據庫。現在我無法對儲存進行任何更改,也無法添加新的持久卷。GlusterFS 仍然可以很好地為 Pod 提供現有的持久卷。
我嘗試使用載入拓撲文件重新創建 Heketi 數據庫,但我認為 Heketi 正在嘗試在已經包含具有工作 GlusterFS 的 LVM 的設備上的 LVM 上創建物理卷。當我嘗試載入拓撲時,我在 Heketi 日誌中看到以下行:
[kubeexec] DEBUG 2021/01/23 17:04:39 heketi/pkg/remoteexec/log/commandlog.go:34:log.(*CommandLogger).Before: Will run command [/usr/sbin/lvm pvcreate -qq --metadatasize=128M --dataalignment=256K '/dev/sdb'] on [pod:glusterfs-storage-vdm96 c:glusterfs ns:glusterfs (from host:okd-admdev-compute1 selector:glusterfs-node)]
Heketi 客戶端掛起將設備添加到集群,然後超時。
[root@heketi-storage-12-wn652 tmp]# heketi-cli topology load --json=topo.json Creating cluster ... ID: 6a65d3bce35760e5075db0cae6ed8e7e Allowing file volumes on cluster. Allowing block volumes on cluster. Creating node okd-admdev-compute1 ... ID: 7da6b2b1e4f9a723cfd769618ef36a51 Adding device /dev/sdb ... Unable to add device: Initializing device /dev/sdb failed (failed to check device contents): timeout Creating node okd-admdev-compute2 ... ID: e63f5366838492219a8f929ee4cc67a7 Adding device /dev/sdb ...
如何在不重新初始化設備的情況下重新創建 Heketi 數據庫並使用現有數據重用設備?
對此沒有解決方案,因為 Heketi 無法從 LVM 儲存重新創建自己的數據庫。但是有解決方法。
- 首先,我通過使用本機客戶端安裝卷來備份 GlusterFS 儲存上的所有數據。
- 銷毀 LVM 儲存。
- 讓我們從頭開始初始化 Heketi 整個集群。
- 重新創建卷。
- 使用本機客戶端裝載卷。
- 恢復數據。確保恢復所有屬性。