【问题标题】:Longhorn Volume a lot bigger than mounted driveLonghorn Volume 比已安装的驱动器大很多
【发布时间】:2022-07-15 16:28:17
【问题描述】:
我的 K3S 集群中运行了一个小型 InfluxDB 数据库。
作为存储类,我使用 Longhorn。
我知道在 Kubernetes 中运行数据库并不是最佳选择,但这仅适用于 Telegraf 的一些指标日志记录。
问题是在 pod 中安装的卷是 200 MB 大,但在 Longhorn 中它的实际大小是 2.5 GB。该卷只有 1 天。以这个速度,我的磁盘存储很快就会满了。
为什么是这样?这是我可以解决的问题吗?
【问题讨论】:
标签:
influxdb
k3s
longhorn
【解决方案1】:
我怀疑这是快照的原因。
Longhorn 卷具有不同大小的“属性”:
- 卷的大小 - 这是您在清单中定义的。实际文件系统内容不能超过该值
- 卷头上当前使用的存储量 - 这实际上是卷的填充量。在附加的 pod 中运行
df -h 或使用 df-pv 之类的工具来检查使用情况(这与您的音量已满时相关)
- 快照大小:快照有多大,在最后一个之上逐步构建。这可以在 longhorn UI 的快照部分查看
- 实际大小:卷在您的主机上真正使用了多少空间。由于多种原因,这可能大于卷的“定义”大小 - 其中最常见的是快照
Longhorn 将以前对卷的更改历史记录为快照。您可以从 UI 手动创建它们,也可以创建一个自动为您执行此操作的 RecurringJob。
当大量数据被(重新)写入卷时,拥有许多快照是有问题的。想象以下场景:
- 将 1GB 文件写入卷
- 拍摄快照(此快照现在 1GB 大)
- 删除文件(卷头仅包含“文件已删除”信息,之前的快照大小不受影响)
- 写入一个新的 1GB 文件。卷头现在是 1GB(新文件)+ 3. big 中的信息,但是您之前的快照是另一个 GB。这样一来,您的实际大小已经是卷内当前使用空间的 2 倍
还有一个关于自动回收空间的ongoing discussion