问题描述
longhorn环境中PV actual size过大,实际的数据空间确很小,比如一个pv的 actual size是400G,
实际上使用的数据仅有60G。 这个可能是longhorn本身的机制导致,有没有办法优先这个现象?PV actual size在使用过程逐渐变大,将导致存储空间严重不足。
重现步骤
预期结果
期待PV actual size的大小接近PV使用时间大小
[/details]
环境信息
- Longhorn 版本: V1.2.3
- 安装方法 (e.g. Rancher Catalog App/Helm/Kubectl): Rancher Catalog App
- Kubernetes 发行版 (e.g. RKE/K3s/EKS/OpenShift) 和版本: RKE V1.20.14
- 集群管理节点个数: 3
- 集群 worker 节点数: 10
- Node 配置
- 操作系统类型和版本: redhat 7.9
- 每个节点的CPU: 104
- 每个节点的内存: 320
- 磁盘类型(e.g. SSD/NVMe): SAS
- 节点间网络带宽:: 10G
- 底层基础设施 (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal): 物理机
- 集群中Longhorn卷的个数: 145
附加上下文
在主机系统上块设备占用的大小是等同于actual size的大小。
已知问题:https://github.com/longhorn/longhorn/issues/836
后面版本会进行优化。
当前,你可以用过LH Recurring Job控制快照数量来适当控制磁盘空间占用。
我这边也看到了确实是快照导致的,确认下 如果不做快照是不是不会出现这个问题,且实际数据占用等同于actual size的大小?
不做快照也会有这个问题,可以看longhorn官方文档有一节详细讲解了出现这个问题的原因。但这个actual size并不影响你的使用,它不表示你当前使用的容量,而是“使用过”的最大容量。举个例子,你有一个10G的PV,你以前使用到了8G,那actual size就会一直显示8G,直到你再次使用到超过8G。而如果你删除了数据,使这个PV的实际使用量只有2G了,那从2G开始指导你继续存储数据到8G,这个actual size都不会有任何变化。当然如果你有快照的话,可能会和我上面说的有些出入,快照的相关细节我还没有仔细看。
修改预分配空间设置,保证预分配空间小于磁盘容量,避免出现节点出现磁盘压力的污点导致无法调度。如果要使用快照的话,预分配空间要更小留给快照。
解决了么,宿主机上实际对应的pvc太大。文件是img,不知道如何弄,容器实际只有几个G