Способы освобождения места на физических устройствах

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

Ниже приведены инструкции которые могут помочь добавить или освободить место на дисках.

Дефрагментировать VDisk

В ходе эксплуатации возникает внутренняя фрагментация VDisk'а. Узнать степень фрагментации можно на странице мониторинга VDisk'а. Дефрагментация VDisk'ов, фрагментированных на 20 и менее процентов не рекомендуется.

По модели отказа кластер переживает потерю двух VDisk'ов одной группы без потери данных. Если в группе все VDisk'и работоспособны, нет VDisk'ов в состоянии ошибки или репликации, удаление данных с одного из VDisk'ов приведет к восстановлению VDisk'ом данных в компактном виде. Следует понимать, что избыточность хранения данных будет снижена до завершения автоматической репликации данных.

В процессе репликации данных нагрузка на все VDisk'и группы будет увеличена, возможно ухудшение времени отклика.

  1. Посмотреть коэффициент фрагментации на странице VDisk'а во вьювере.

    Если значение превышает 20%, то дефрагментация позволит освободить место на VDisk'е.

  2. Проверить состояние группы, в которую входит VDisk. В группе не должно быть недоступных VDisk'ов, VDisk'ов в состоянии ошибки или репликации.

    Посмотреть состояние группы можно во вьювере.

  3. Выполнить команду wipe для VDisk'а.

    Все данные, хранимые VDisk'ом, будут необратимо удалены, после чего VDisk начнет восстанавливать данные, читая их с остальных VDisk'ов группы.

    kikimr admin blobstorage group reconfigure wipe --domain <Номер домена> --node <ID узла> --pdisk <pdisk-id> --vslot <Номер слота>
    

    Посмотреть нужную информацию для команды можно во вьювере.

В случае заканчивающегося места на блочном устройстве можно применить дефрагментацию на все устройство.

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

  2. Зайти по ssh на узел, где находится этот устройство

  3. Проверить, можно ли перезапустить процесс.

  4. Остановить процесс

    sudo systemctl stop kikimr
    
  5. Форматировать устройство

    sudo kikimr admin blobstorage disk obliterate <путь до партлейбла устройства>
    
  6. Запустить процесс

    sudo systemctl start kikimr
    

Перевоз отдельных VDisk'ов с заполненных устройств

Если дефрагментация не помогает освободить место на устройстве, то можно перевозить отдельные VDisk'и.