VK Object Storage logo
Помощь
Обновлена 20 октября 2026 г. в 09:40

Настройка Zepto в качестве системы хранения

Zepto может быть установлен в Системе в обычном режиме резервирования (X2) или с использованием кодов избыточности (X1.09 или X1.75).

Использование кодов избыточности, или Erasure Coding (далее по тексту — EC), — способ хранения данных, при котором к пользовательским данным генерируются избыточные данные. Это позволяет хранилищу восстанавливать данные в случае частичного отказа оборудования или потери данных.

Для установки VK Object Storage с использованием Zepto в качестве системы хранения выберите соответствующий шаблон inventory и включите функциональность Zepto.

Для установки с Zepto используйте пример inventory.yml:

$ cp /deploy/installer/examples/inventory.mono.zepto.yml /deploy/installer/inventory.yml

Заполните в inventory.yml группы:

zepto:  hosts:    mono01:    mono02:    mono03:

Здесь zepto — группа, определяющая узлы, на которых будут запущены сервисы Zepto.

После подготовки inventory.yml включите функциональность Zepto в /deploy/installer/group_vars/all/features.yml:

  1. Установите значение параметра:

    zepto: true
  2. Проверьте параметры Zepto в /deploy/installer/group_vars/zepto/. В файле cluster.yml должен быть выбран режим хранения:

    zepto_mode: x2

Параметры дисков для Zepto задаются в файле cluster.yml. Диски должны соответствовать фактическим блочным устройствам, подключенным к серверам группы Zepto.

В режиме использования EC Zepto использует два кластера дисков:

  • Транзитный — кластер, на который изначально записываются все поступающие данные. Работает в режиме X3.
  • EC — кластер, в который данные конвертируются в фоновом режиме с расчетом избыточности.

Фоновая конвертация в EC выполняется отдельно, так как расчет EC является ресурсоемкой операцией.

Общий случай распределения дисков для установки на трех серверах описывается в файле групповых переменных /deploy/installer/group_vars/zepto/cluster.yml.

Для более гибкой настройки значения zepto_cluster_config можно задавать на уровне отдельных хостов или групп хостов в inventory.yml. Это удобно, если разные серверы Zepto используют разные наборы дисков или выполняют разные роли в схеме хранения.

zepto:  hosts:    zepto-host-0[1:3]:      zepto_cluster_config:        x2:          disks:            - "/dev/vdb"            - "/dev/vdc"

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

В текущей версии не поддерживается пользовательская разбивка дисков внутри Zepto-кластера. Диски, используемые в одной схеме хранения, должны быть одинаковой емкости.

Для работы кластеров Zepto требуется количество дисков, кратное определенному числу:

  • Для режима резервирования X2 общее количество дисков на всех узлах должно быть кратно двум, например по два диска на трех узлах.
  • Для транзитного кластера общее количество дисков на всех узлах должно быть кратно трем, например по одному диску на трех узлах.
  • Для кластера EC в режиме X1.75 общее количество дисков должно быть кратно 21, например по семь дисков на трех узлах.
  • Для кластера EC в режиме X1.09 общее количество дисков должно быть кратно 24, например по восемь дисков на трех узлах.

Дополнительно проверьте параметры бакетов Zepto в файле /deploy/installer/group_vars/zepto/main.yml.

В файле задаются следующие параметры:

  • zepto_bucket_size: базовый размер бакета Zepto.
  • zepto_bucket_max_size: максимальный размер бакета.
  • zepto_writable_buckets: количество бакетов, доступных для записи.

Значения этих параметров должны быть подобраны под размер установки, объем дисков и ожидаемую нагрузку. Перед запуском установки убедитесь, что параметры соответствуют выбранной схеме хранения (X1.09 или X1.75) и фактической конфигурации дисков.

После подготовки inventory.yml и включения параметра zepto в значение true установка выполняется стандартной командой:

sudo -E ~/distrib/01_deploy_helper.sh ansible-playbook -i inventory.yml -e @ansible-vault.yml vk.s3.install

Если установка выполняется с использованием Ansible Vault, дополнительно передайте файлы vault и vault-transit так же, как при обычной установке с шифрованием.

Была ли статья полезна?