【问题排查过程】vm-backup的snapshots导致磁盘满

使用中发现,vm-storage节点仅仅过了6天,就占用了800GB的硬盘空间。很不正常。下面是排查过程:

1.查看磁盘占用情况:

先登录容器,执行:
df -h

/dev/vdb               1012.8G    870.2G    142.7G  86% /var/victoria-metrics/data

2.查看节点上的time series总数:

  • 为了方便使用,我在vm-storage节点上部署了vm-select:
    curl -G "http://127.0.0.1:8481/select/0/prometheus/api/v1/series/count"
{"status":"success","isPartial":false,"data":[71273032]}

才7000万,并不算多。

2.研究究竟是哪些文件夹占用空间多

du /var/victoria-metrics/data/ -h -d 4

3.3G    /var/victoria-metrics/data/data/small/2022_01
285.5G  /var/victoria-metrics/data/data/small/snapshots   #太多的快照了
288.8G  /var/victoria-metrics/data/data/small
110.9G  /var/victoria-metrics/data/data/big/2022_01
323.9G  /var/victoria-metrics/data/data/big/snapshots      #太多的快照了
434.8G  /var/victoria-metrics/data/data/big
723.6G  /var/victoria-metrics/data/data

很奇怪,我备份的时候,是指定了deleteURL的。备份脚本如下:

./vmbackup-prod \
  -configFilePath="/etc/cos/config.ini" \
  -credsFilePath="/etc/cos/creds.ini" \
  -customS3Endpoint="https://cos.ap-guangzhou.myqcloud.com" \
  -dst="s3://bucket-125800000/tenant/Production/formal/vm-storage/0/2022-01-06" \
  -origin="s3://bucket-125800000/tenant/Production/formal/vm-storage/0/2022-01-06" \
  -storageDataPath="/data" \
  -httpListenAddr="0.0.0.0:8420" \
  -memory.allowedBytes=2GB \
  -concurrency=5 \
  -maxBytesPerSecond=20MB \
  -snapshot.createURL="http://127.0.0.1:8482/snapshot/create" \
  -snapshot.deleteURL="http://127.0.0.1:8482/snapshot/delete" &

那么有可能备份完成后,vmbackup并没有去删除快照。

3.手动删除所有快照

curl -G "http://127.0.0.1:8482/snapshot/delete_all"
再看磁盘空间:

/dev/vdb               1012.8G    148.3G    864.6G  15% /var/victoria-metrics/data

这下正常了。

于是提了一个issue给VictoriaMetrics.

目前看来,备份完成后立即执行delete_all才行。

posted on 2022-01-11 20:09  ahfuzhang  阅读(336)  评论(0编辑  收藏  举报