关于longhorn PV actual size存储空间大小的问题

问题描述

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