我的Elasticsearch数据单元当前在AKS上运行,并连接到使用高级SSD管理的磁盘存储类的永久卷,我想将其降级为标准SSD管理的磁盘,而不丢失当前使用的永久卷上的数据。我创建了一个新的存储类,该存储类定义为标准SSD管理的磁盘,但如果我从该文件创建一个新的PV,它显然不会保留旧数据,我需要以某种方式复制它,所以我想知道切换PV的存储类的最佳实践是什么。
1qczuiv01#
遗憾的是,创建PVC并为其调配PV后,您唯一可以更改的内容是卷的大小,而无需创建新的PVC在不利用CSI快照/克隆(您可能无法访问这些快照/克隆,具体取决于您如何创建PVC/PV AFAIK)的情况下,我能想到的唯一直接方法是创建一个新PVC,并在Pod具有root访问权限和rsync命令的部署上装载两个卷。在这样的Pod上运行rsync -a /old/volume/mount/path /new/volume/mount/path应该会得到你想要的。但是,您应确保在删除PVC或使用PV的任何其他资源之前执行此操作。默认情况下,大多数默认存储类创建的卷都具有回收策略,这些策略会在使用PV的所有资源消失后立即删除该PV,因此数据丢失的风险很小
rsync
rsync -a /old/volume/mount/path /new/volume/mount/path
n6lpvg4x2#
由于上述原因,在Kubernetes中无法更改PVC的存储类别。遗憾的是,您必须创建一个具有所需存储类别的新PVC。
juud5qan3#
实现此目的的一种方法是创建一个快照,然后从该快照创建新卷:https://kubernetes.io/docs/concepts/storage/volume-snapshots/另一种方法是利用CSI克隆:https://kubernetes.io/docs/concepts/storage/volume-pvc-datasource/两者都有效地促进了使用现有数据的拷贝创建新PV
3条答案
按热度按时间1qczuiv01#
遗憾的是,创建PVC并为其调配PV后,您唯一可以更改的内容是卷的大小,而无需创建新的PVC
在不利用CSI快照/克隆(您可能无法访问这些快照/克隆,具体取决于您如何创建PVC/PV AFAIK)的情况下,我能想到的唯一直接方法是创建一个新PVC,并在Pod具有root访问权限和
rsync
命令的部署上装载两个卷。在这样的Pod上运行
rsync -a /old/volume/mount/path /new/volume/mount/path
应该会得到你想要的。但是,您应确保在删除PVC或使用PV的任何其他资源之前执行此操作。默认情况下,大多数默认存储类创建的卷都具有回收策略,这些策略会在使用PV的所有资源消失后立即删除该PV,因此数据丢失的风险很小
n6lpvg4x2#
由于上述原因,在Kubernetes中无法更改PVC的存储类别。遗憾的是,您必须创建一个具有所需存储类别的新PVC。
juud5qan3#
实现此目的的一种方法是创建一个快照,然后从该快照创建新卷:https://kubernetes.io/docs/concepts/storage/volume-snapshots/
另一种方法是利用CSI克隆:https://kubernetes.io/docs/concepts/storage/volume-pvc-datasource/
两者都有效地促进了使用现有数据的拷贝创建新PV