Перейти к основному содержимому

Снимки занимают место

Симптом​

Свободное место в пуле сокращается быстрее ожидаемого при активной работе со снимками.

Причина​

В момент создания снимок не занимает места, но начинает потреблять ёмкость по мере расхождения данных тома с зафиксированным состоянием. Долгоживущие снимки накапливают эти расхождения.

Кроме снимков ёмкость держат клоны. Клон это copy-on-write-копия: сразу после создания он почти не занимает места, но существует за счёт данных источника. Пока клон жив, источник нельзя удалить: удаление отвечает -2604 и перечисляет мешающие клоны.

Как проверить​

  1. Сколько снимков у машины и какого они размера: карточка ВМ, таблица Snapshots с колонками Name, Date of creation, Size (GB). Долгоживущий снимок виден по дате создания.
  2. Сколько осталось в пуле: Provider Data Center → Storage Resources, таблица ZFS pools, колонка Capacity (RAW). В карточке пула то же число разложено подробнее в разделе Properties.
  3. Порог заполнения, на который настроен кластер: опция pool_capacity_treshold в ответе get-statusmap. Кластер работает со значениями 11…94, по умолчанию держит 60. Значения 10 и 95, как и всё за пределами диапазона, кластер молча заменяет на 60, отказа при этом нет. В ответе видна исходная запись из базы, поэтому подмену по нему не разглядеть.
  4. Нет ли у машины клонов, удерживающих её данные: попытка удаления такой машины отвечает -2604 со списком клонов.

Решение​

Удаляйте снимки, которые больше не нужны, и не держите долгоживущие снимки без надобности; следите за свободной ёмкостью пула.

Порядок при нехватке места такой: сначала уберите клоны, потом снимки, потом машины. Обратный порядок не сработает, потому что клон держит данные источника.

Профилактика​

Регулярно чистите устаревшие снимки и отслеживайте свободное место пула, чтобы расхождения не накапливались незаметно.

Полезно помнить, что число снимков это ещё и проверка после переноса: у машины, перенесённой в другой пул, оно должно совпасть с замером до миграции.

Методы API​

Операции этой страницы в API: vm-snapshot-list, snapshot-list, vms-snapshot-remove, pools-get, get-statusmap — см. Справочник API.

См. также​