Снимки занимают место
Симптом
Свободное место в пуле сокращается быстрее ожидаемого при активной работе со снимками.
Причина
В момент создания снимок не занимает места, но начинает потреблять ёмкость по мере расхождения данных тома с зафиксированным состоянием. Долгоживущие снимки накапливают эти расхождения.
Кроме снимков ёмкость держат клоны. Клон это copy-on-write-копия: сразу после
создания он почти не занимает места, но существует за счёт данных источника.
Пока клон жив, источник нельзя удалить: удаление отвечает -2604 и перечисляет
мешающие клоны.
Как проверить
- Сколько снимков у машины и какого они размера: карточка ВМ, таблица Snapshots с колонками Name, Date of creation, Size (GB). Долгоживущий снимок виден по дате создания.
- Сколько осталось в пуле:
Provider Data Center→Storage Resources, таблица ZFS pools, колонка Capacity (RAW). В карточке пула то же число разложено подробнее в разделе Properties. - Порог заполнения, на который настроен кластер: опция
pool_capacity_tresholdв ответеget-statusmap. Кластер работает со значениями 11…94, по умолчанию держит 60. Значения 10 и 95, как и всё за пределами диапазона, кластер молча заменяет на 60, отказа при этом нет. В ответе видна исходная запись из базы, поэтому подмену по нему не разглядеть. - Нет ли у машины клонов, удерживающих её данные: попытка удаления такой машины
отвечает
-2604со списком клонов.
Решение
Удаляйте снимки, которые больше не нужны, и не держите долгоживущие снимки без надобности; следите за свободной ёмкостью пула.
Порядок при нехватке места такой: сначала уберите клоны, потом снимки, потом машины. Обратный порядок не сработает, потому что клон держит данные источника.
Профилактика
Регулярно чистите устаревшие снимки и отслеживайте свободное место пула, чтобы расхождения не накапливались незаметно.
Полезно помнить, что число снимков это ещё и проверка после переноса: у машины, перенесённой в другой пул, оно должно совпасть с замером до миграции.
Методы API
Операции этой страницы в API: vm-snapshot-list, snapshot-list,
vms-snapshot-remove, pools-get, get-statusmap — см.
Справочник API.
См. также
- Снимки и откат — как создать снимок, откатиться и удалить.
- Как посмотреть пулы кластера — где смотреть ёмкость и состояние пула.
- Свойства датасетов — как ёмкость считается на уровне датасета.
- Перенос и клонирование ВМ — что делает клон и чем он держит источник.