Быстрый старт (4 узла)

Назначение

Кластер разворачивается одним сценарием Ansible — ролью zakroma-quick-start из архива поставки. Роль последовательно подготавливает узлы, настраивает PostgreSQL, применяет типовые настройки Закрома.Хранение и ZDS, выполняет preflight-проверки и устанавливает продукт.

Поддерживаются два варианта конфигурации — четырёхузловая (о ней в этой статье) и одноузловая.

В текущей конфигурации на каждом из трёх основных узлов совмещены сервисы Закрома.Хранение и ZDS, а PostgreSQL размещается отдельно на четвёртом узле. Такой вариант подходит для тестирования отказоустойчивости и Erasure Coding.

В результате будут развёрнуты:

  • три узла с Закрома.Хранение и ZDS: Закрома.Хранение предоставляет S3 API и управляет рабочими областями, бакетами и политиками доступа, а ZDS хранит данные объектов на дисках узлов;
  • отдельный четвёртый узел PostgreSQL: база данных хранит метаданные, конфигурацию и служебную информацию Закрома.Хранение, но не содержимое S3-объектов;
  • защита данных Erasure Coding 2+1: объект разделяется на две части данных и одну часть чётности, распределённые между тремя ZDS-узлами; это позволяет продолжить чтение данных при недоступности одного узла;
  • локальные пользователи без Keycloak и LDAP: учётные записи задаются в конфигурации Закрома.Хранение и используются для входа в Admin UI и последующего выпуска S3-ключей;
  • HTTP-доступ без TLS и сертификатов;
  • без опциональных сервисов Kafka, Nginx и отдельного балансировщика.
Не для production

Ресурсы из раздела «Минимальные требования» рассчитаны на функциональный пилот. В этом сценарии Admin UI и S3 API работают по HTTP: учётные данные, S3-ключи и объекты передаются без шифрования. Используйте конфигурацию только в изолированной тестовой сети. Для production нужны TLS, отдельный расчёт ресурсов, HA-кластер PostgreSQL и внешний отказоустойчивый балансировщик. См. Типовые варианты конфигурации.

Минимальные требования

Для быстрого старта необходимы четыре физических или виртуальных узла стандартной архитектуры x86_64 (amd64). ARM-архитектура в этом сценарии не описывается.

В примере используется дистрибутив Debian 12. Роль quick-start рассчитана на использование именно с ним. С иными дистрибутивами рекомендуется использовать стандартный метод установки.

УзелОперационная системаАрхитектураvCPURAMСистемный дискДиск данных
storage-1Debian 12x86_6448 ГБSSD 50 ГБотдельный SSD 50 ГБ для ZDS
storage-2Debian 12x86_6448 ГБSSD 50 ГБотдельный SSD 50 ГБ для ZDS
storage-3Debian 12x86_6448 ГБSSD 50 ГБотдельный SSD 50 ГБ для ZDS
postgres-1Debian 12x86_6448 ГБSSD 50 ГБотдельный SSD рекомендуется

На всех узлах должна быть включена синхронизация времени с единым источником. Для функционального пилота достаточно сети 1 Гбит/с, для нагрузочных тестов рекомендуется минимум 10 Гбит/с.

Межсетевой экран на время установки отключите или настройте по разделу «Firewall». Не отключайте его вне изолированного тестового контура.

Три диска по 50 ГБ дают 150 ГБ сырой ёмкости; при Erasure Coding 2+1 расчётная полезная ёмкость — около 100 ГБ. Фактически доступно немного меньше из-за разметки файловой системы и служебных данных ZDS. Если объём тестовых данных превышает 50 ГБ, увеличьте размер каждого диска ZDS, чтобы сохранить запас свободного места. Подробнее о том, как ZDS хранит данные, см. Как ZDS хранит данные.

Схема стенда

Конфигурация 3+1 означает три узла Закрома.Хранение и ZDS и один узел PostgreSQL. Её не следует путать с параметрами Erasure Coding: для трёх ZDS-узлов используется EC 2+1.

УзелIP-адресУстановленные компонентыНазначение
storage-1192.168.1.11Закрома.Хранение, ZDSS3 API, управление хранилищем и хранение частей объектов
storage-2192.168.1.12Закрома.Хранение, ZDSS3 API, управление хранилищем и хранение частей объектов
storage-3192.168.1.13Закрома.Хранение, ZDSS3 API, управление хранилищем и хранение частей объектов
postgres-1192.168.1.14PostgreSQL 16Метаданные, конфигурация и служебная информация Закрома.Хранение

Компоненты Закрома.Хранение и ZDS работают на трёх узлах совместно. Части объектов распределяются между ZDS-узлами по схеме EC 2+1, а все экземпляры Закрома.Хранение используют отдельный PostgreSQL по адресу postgresql.zakroma.internal:5432.

Параметры примера

Узлы и их IP-адреса приведены в таблице раздела «Схема стенда».

ПараметрЗначение
Базовый доменzakroma.internal
Admin UIhttp://zakroma-admin.zakroma.internal:8444
S3 APIhttp://<workspace>.zakroma.internal:6443
PostgreSQLpostgresql.zakroma.internal:5432
Подсеть кластера192.168.1.0/24
Диск ZDS/dev/vdb
Точка монтирования ZDS/data/zds

Замените примеры на адреса и имена из своей инфраструктуры.

Архитектура стенда Quick Start

Подготовка до запуска Ansible

Перед первым запуском плейбука выполните на узлах настройки из этого раздела.

Записи DNS

Если используете DNS, создайте A-записи:

ИмяIP-адреса
storage-1.zakroma.internal192.168.1.11
storage-2.zakroma.internal192.168.1.12
storage-3.zakroma.internal192.168.1.13
postgres-1.zakroma.internal192.168.1.14
postgresql.zakroma.internal192.168.1.14
zakroma-admin.zakroma.internal192.168.1.11, 192.168.1.12, 192.168.1.13
*.zakroma.internal192.168.1.11, 192.168.1.12, 192.168.1.13

Wildcard-запись покрывает global.zakroma.internal и имена вида <workspace>.zakroma.internal. Если DNS-сервер не поддерживает wildcard, создайте отдельные записи для global и каждой рабочей области.

DNS-сервер на узлах Debian 12

На всех четырёх узлах и на управляющем сервере укажите адрес DNS-сервера, в котором созданы записи из таблицы выше. В примере ниже DNS-сервер — 192.168.1.2; замените его на IP-адрес своего DNS-сервера.

Сначала проверьте, какая служба управляет разрешением имён:

1ls -l /etc/resolv.conf 2resolvectl status 2>/dev/null || systemd-resolve --status 2>/dev/null

Если /etc/resolv.conf — симлинк на systemd-resolved (типично для Debian 12), задайте DNS через конфиг:

1sudo install -d -m 0755 /etc/systemd/resolved.conf.d 2sudo tee /etc/systemd/resolved.conf.d/zakroma.conf >/dev/null <<'EOF' 3[Resolve] 4DNS=192.168.1.2 5FallbackDNS=1.1.1.1 6Domains=zakroma.internal 7EOF 8sudo systemctl restart systemd-resolved 9resolvectl status

Проверьте, что в выводе resolvectl status для активного интерфейса указан DNS Servers: 192.168.1.2 и домен zakroma.internal.

Если узел настроен статически через /etc/network/interfaces, DNS можно указать в описании интерфейса:

1auto ens3 2iface ens3 inet static 3 address 192.168.1.11 4 netmask 255.255.255.0 5 gateway 192.168.1.1 6 dns-nameservers 192.168.1.2 7 dns-search zakroma.internal

После изменения перезапустите сеть (sudo ifdown ens3 && sudo ifup ens3) или перезагрузите узел.

Без отдельного DNS

Если своего DNS-сервера нет, записи можно не настраивать: на стадии bootstrap ответьте yes на вопрос «Прописать /etc/hosts на узлах» — роль добавит нужные имена локально. Файл /etc/hosts не поддерживает wildcard-записи, поэтому для клиентов и S3 вне кластера каждую рабочую область придётся прописать отдельно или использовать DNS.

DNS round-robin

Несколько A-записей распределяют клиентские запросы, но не проверяют состояние узлов. Для production используйте балансировщик с проверкой состояния сервисов.

Проверка DNS

На управляющем сервере и на всех четырёх узлах:

1sudo apt-get update 2sudo apt-get install -y dnsutils 3getent ahostsv4 postgresql.zakroma.internal 4getent ahostsv4 zakroma-admin.zakroma.internal 5getent ahostsv4 global.zakroma.internal

Если DNS не используется, пропустите проверку.

Firewall

Проверьте межсетевой экран на узлах:

1command -v ufw && sudo ufw status 2command -v firewall-cmd && sudo firewall-cmd --state 3command -v nft && sudo nft list ruleset

Для изолированного пилотного контура firewall можно временно отключить. Если он включён, разрешите:

Узлы назначенияИсточникПортыНазначение
storage-1, storage-2, storage-3управляющий сервер и клиентская сеть22, 6443, 8444SSH, S3 API и Admin UI
storage-1, storage-2, storage-3три узла Закрома.Хранение и ZDS8088, 8089API ZDS и межузловой обмен ZDS
postgres-1управляющий сервер22, 5432SSH; настройка PostgreSQL на стадии postgres
postgres-1три узла Закрома.Хранение5432подключение к PostgreSQL

Пример правил UFW для подсети 192.168.1.0/24:

1# На трёх узлах Storage/ZDS. 2sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp 3sudo ufw allow from 192.168.1.0/24 to any port 6443 proto tcp 4sudo ufw allow from 192.168.1.0/24 to any port 8444 proto tcp 5sudo ufw allow from 192.168.1.0/24 to any port 8088 proto tcp 6sudo ufw allow from 192.168.1.0/24 to any port 8089 proto tcp 7sudo ufw status numbered 8 9# На узле PostgreSQL. 10sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp 11sudo ufw allow from 192.168.1.0/24 to any port 5432 proto tcp 12sudo ufw status numbered

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

Диски ZDS

На каждом из трёх узлов Закрома.Хранение и ZDS смонтируйте отдельный диск в /data/zds до запуска роли. Роль проверяет, что /data/zds — точка монтирования отдельного тома, и создаёт внутри неё каталоги db, vacuum-state, scan-state, disk.

Форматирование удалит данные

Команда mkfs.xfs безвозвратно удалит данные на выбранном устройстве. Сверьте /dev/vdb с фактическим диском для данных.

1lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTS,MODEL 2sudo wipefs --no-act /dev/vdb 3sudo mkfs.xfs /dev/vdb 4sudo install -d -m 0755 /data/zds 5ZDS_UUID=$(sudo blkid -s UUID -o value /dev/vdb) 6FSTAB_LINE="UUID=${ZDS_UUID} /data/zds xfs defaults,noatime 0 2" 7sudo grep -Fqx "$FSTAB_LINE" /etc/fstab || printf '%s\n' "$FSTAB_LINE" | sudo tee -a /etc/fstab 8sudo mount -a 9findmnt --target /data/zds

SSH-доступ

С управляющего сервера должен работать SSH с sudo на все четыре узла под одним пользователем. Пользователь и ключ передаются при запуске плейбука через -u и --private-key, в inventory они не сохраняются.

1ssh -i ~/.ssh/key_name user@192.168.1.11 'sudo -n true' 2ssh -i ~/.ssh/key_name user@192.168.1.14 'sudo -n true'

Подготовка поставки

Получите:

  1. Архив zakroma-roles-<версия>.tar.gz. См. Таблица соответствия версий.
  2. Файл лицензии.
  3. Управляющий сервер с Ansible 2.15.0–2.18.15 и SSH/sudo-доступом ко всем узлам.

Распакуйте архив:

1RELEASE_VERSION=8.1.0 2tar -xvzf "zakroma-roles-${RELEASE_VERSION}.tar.gz" 3cd "zakroma-roles-${RELEASE_VERSION}" 4ansible --version

Положите лицензию в каталог поставки:

1install -m 0644 /path/to/licence files/zakroma-licence/licence

Развёртывание кластера

Первый запуск (интерактивный)

Запускайте из корня распакованной поставки. Нужен TTY — сценарий задаёт вопросы через интерактивный ввод.

1ANSIBLE_CONFIG=ansible.cfg ansible-playbook \ 2 -u user --private-key ~/.ssh/key_name \ 3 -i inventories/quick-start/hosts \ 4 playbooks/sample-play-quick-start.yml

На стадии bootstrap роль:

  1. Скопирует group_vars из inventories/base-cluster в inventories/quick-start.
  2. Спросит IP трёх узлов Закрома.Хранение и одного PostgreSQL (введите FQDN или IP).
  3. Спросит базовый домен, точку монтирования ZDS (/data/zds), запись /etc/hosts (yes/no), пароли PostgreSQL, Admin UI и ZDS.
  4. Если пакеты отсутствуют в roles/zakroma-storage/files и roles/zakroma-zds-v2/files, спросит логин и пароль для их скачивания.
  5. Запишет указанные данные в inventories/quick-start/hosts, group_vars/all/quick-start.yml и group_vars/all/quick-start-secrets.yml.

Далее выполняются стадии prepare, postgres, licence, preflight и install. Установка Закрома.Хранение и ZDS выполняется отдельным этапом плейбука после preflight.

Пароли

Пустой ввод пароля генерирует случайную строку. Сгенерированные пароли выводятся в консоль на стадии bootstrap. Не используйте символы :, ', " в паролях — они нарушают разбор YAML-конфигурации Закрома.Хранение.

CIDR для PostgreSQL

Роль добавляет в pg_hba.conf правило для подсетей из zakroma_quick_start_pg_cidrs. Если список пуст, используются /32-адреса узлов Закрома.Хранение. На стадии bootstrap можно указать свою подсеть, например 192.168.1.0/24.

Повторный запуск

Когда inventory и секреты уже записаны, запустите плейбук без интерактивного ввода. SSH-пользователь и ключ по-прежнему задаются флагами -u и --private-key или переменными ANSIBLE_USER и ANSIBLE_PRIVATE_KEY_FILE в окружении оператора; в inventory они не сохраняются.

1ANSIBLE_CONFIG=ansible.cfg ansible-playbook \ 2 -u user --private-key ~/.ssh/key_name \ 3 -i inventories/quick-start/hosts \ 4 -e zakroma_quick_start_interactive=false \ 5 playbooks/sample-play-quick-start.yml

Отдельные стадии

1# Только блок «Доступ» (URL, пароли, /etc/hosts для клиента) 2ANSIBLE_CONFIG=ansible.cfg ansible-playbook -i inventories/quick-start/hosts \ 3 -u user --private-key ~/.ssh/key_name \ 4 -e zakroma_quick_start_stage=access \ 5 playbooks/sample-play-quick-start.yml 6 7# Только установка продукта (после успешного preflight) 8ANSIBLE_CONFIG=ansible.cfg ansible-playbook -i inventories/quick-start/hosts \ 9 -u user --private-key ~/.ssh/key_name \ 10 -e zakroma_quick_start_stage=install \ 11 playbooks/sample-play-quick-start.yml

Сохранённые файлы inventory

После первого запуска в inventories/quick-start/ появятся:

ФайлСодержимое
hostsУзлы Закрома.Хранение, ZDS и PostgreSQL
group_vars/all/quick-start.ymlДомен, mount ZDS, флаг /etc/hosts, CIDR PostgreSQL
group_vars/all/quick-start-secrets.ymlПароли (права 0600)
group_vars/zakroma-storage.ymlКонфигурация Закрома.Хранение (роль обновляет автоматически)
group_vars/zakroma-zds-v2-ec.ymlКонфигурация ZDS EC 2+1 (роль обновляет автоматически)

Полное описание переменных базового кластера: Установка базового кластера.

Проверка сервисов

На каждом узле Закрома.Хранение и ZDS проверьте:

1sudo systemctl is-active zakroma-storage-monolith.service 2sudo systemctl is-active zakroma-ds-agent.service 3sudo systemctl is-enabled zakroma-storage-monolith.service 4sudo systemctl is-enabled zakroma-ds-agent.service

Ожидаются active и enabled. Если сервис не запущен:

1sudo journalctl -u zakroma-storage-monolith.service -n 100 --no-pager 2sudo journalctl -u zakroma-ds-agent.service -n 100 --no-pager

Проверьте ZDS. curl запросит пароль из quick-start-secrets.yml (zakroma_zds_password):

1curl --fail --silent --show-error --user zakromaadmin \ 2 http://localhost:8088/inner/status | jq -e ' 3 .status == "RUNNING" and 4 .dbCanWrite == true and 5 all(.drives[]; .status == "RUNNING") and 6 all(.storageGroups[]; .Status == "RUNNING") 7 '

На узле PostgreSQL:

1sudo systemctl is-active postgresql 2sudo -u postgres psql -d zakroma -c '\dn+'

С каждого узла Закрома.Хранение:

1getent ahostsv4 postgresql.zakroma.internal 2nc -vz -w 3 postgresql.zakroma.internal 5432

Подробнее: Настройка PostgreSQL.

Проверка DNS и HTTP после установки

Проверьте DNS с управляющего сервера (если DNS использовался в инсталляции):

1dig +short A zakroma-admin.zakroma.internal | sort -u 2dig +short A global.zakroma.internal | sort -u

Проверьте каждый backend Admin UI:

1for ip in 192.168.1.11 192.168.1.12 192.168.1.13; do 2 curl --fail --silent --show-error \ 3 --resolve zakroma-admin.zakroma.internal:8444:${ip} \ 4 http://zakroma-admin.zakroma.internal:8444/auth/config >/dev/null 5 echo "OK: Admin UI on ${ip}" 6done

Admin UI:

1http://zakroma-admin.zakroma.internal:8444

Стадия access плейбука выводит те же URL, пароли и фрагмент /etc/hosts для клиентской машины — команда запуска приведена в разделе «Отдельные стадии».

Подключение ZDS и создание бакета

Войдите под zakromaadmin с паролем из inventories/quick-start/group_vars/all/quick-start-secrets.yml (zakroma_admin_password). Роль автоматически создаёт тестовый бакет в отдельной рабочей области и подключает хранилище ZDS.

Во вкладке «Хранилища» убедитесь, что присутствует хранилище с названием ZDS. Если оно отсутствует, то добавить его можно с помощью этой инструкции: Хранилища.

Во вкладке «Рабочие области» убедитесь, что присутствует рабочая область с названием demo-ws, а в ней есть бакет demo. Перейдите в этот бакет, откройте раздел «Объекты» и попробуйте загрузить любой объект в бакет. Загрузка должна произойти успешно, а загруженный объект отобразится в списке.

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

Подробнее про политики доступа: Политики доступа.

Подробнее: Рабочие области и Бакеты.

Проверьте, что wildcard-запись разрешает имя созданной области:

1dig +short A demo-ws.zakroma.internal | sort -u

Ожидаются IP-адреса всех трёх узлов Закрома.Хранение.

Проверка S3

Создайте для локального пользователя S3-ключ в Admin UI: нажмите на имя пользователя в правой верхней части страницы, затем на «Установить ключ доступа»; параметры можно не менять. Идентификатор ключа — это AWS_ACCESS_KEY_ID, секретный ключ — AWS_SECRET_ACCESS_KEY.

Копирование ключей не работает без HTTPS

Кнопки копирования идентификатора и секретного ключа работают только при включённом TLS, поэтому в этой конфигурации они недоступны.

Затем установите AWS CLI на управляющем сервере и передайте ключи через переменные окружения:

1export AWS_ACCESS_KEY_ID='<access-key>' 2read -rsp 'AWS Secret Access Key: ' AWS_SECRET_ACCESS_KEY 3export AWS_SECRET_ACCESS_KEY 4echo 5export S3_ENDPOINT='http://demo-ws.zakroma.internal:6443' 6export S3_BUCKET='demo'

Создайте тестовый файл, загрузите его в бакет, скачайте обратно, сравните содержимое и удалите объект:

1object="quick-start-$(date +%s).txt" 2printf 'Zakroma quick-start S3 check\n' >/tmp/zakroma-s3-source.txt 3aws --endpoint-url "$S3_ENDPOINT" s3 cp /tmp/zakroma-s3-source.txt "s3://${S3_BUCKET}/${object}" 4aws --endpoint-url "$S3_ENDPOINT" s3 ls "s3://${S3_BUCKET}/${object}" 5aws --endpoint-url "$S3_ENDPOINT" s3 cp "s3://${S3_BUCKET}/${object}" /tmp/zakroma-s3-downloaded.txt 6cmp /tmp/zakroma-s3-source.txt /tmp/zakroma-s3-downloaded.txt 7aws --endpoint-url "$S3_ENDPOINT" s3 rm "s3://${S3_BUCKET}/${object}" 8rm -f /tmp/zakroma-s3-source.txt /tmp/zakroma-s3-downloaded.txt 9unset AWS_SECRET_ACCESS_KEY

Критерии готовности

  • Все четыре узла соответствуют минимальным ресурсам.
  • На каждом узле Закрома.Хранение /data/zds смонтирован как отдельный том.
  • DNS или /etc/hosts на узлах разрешают FQDN стенда.
  • Firewall отключён в изолированном контуре либо разрешает необходимые соединения.
  • Плейбук sample-play-quick-start.yml завершился без ошибок на всех стадиях.
  • PostgreSQL доступен с трёх узлов Закрома.Хранение по postgresql.<domain>:5432.
  • На каждом узле активны сервисы Закрома.Хранение и ZDS.
  • ZDS видит три узла, тома в статусе RUNNING, кластер — RW.
  • Admin UI и S3 API доступны по HTTP на портах 8444 и 6443.
  • Группа хранения создана с EC 2+1.
  • Проверка S3 успешно записывает, читает и удаляет объект.

Распространённые ошибки

Ниже — частые причины падения плейбука на стадиях prepare, preflight и install. Текст сообщений может отличаться в зависимости от версии роли.

Доменные имена не разрешаются

Симптом. На стадии prepare или preflight:

1Имя postgresql.zakroma.internal не резолвится на storage-1. 2Настройте DNS для zakroma.internal или включите zakroma_quick_start_write_hosts.

Или на стадии preflight:

1Timeout when waiting for postgresql.zakroma.internal:5432

Причина. При zakroma_quick_start_write_hosts: false FQDN стенда должны разрешаться через DNS на каждом узле Закрома.Хранение, ZDS и PostgreSQL. Если DNS не настроен, имя есть только на управляющем сервере или /etc/hosts ещё не записан.

Что сделать.

  1. Настройте A-записи для postgresql.<domain>, zakroma-admin.<domain>, global.<domain> и FQDN узлов (см. раздел «Записи DNS»).
  2. Либо на стадии bootstrap ответьте yes на вопрос о /etc/hosts, либо задайте zakroma_quick_start_write_hosts: true в group_vars/all/quick-start.yml и повторите стадию prepare.
  3. Проверьте разрешение имён на проблемном узле:
1getent ahostsv4 postgresql.zakroma.internal 2getent ahostsv4 zakroma-admin.zakroma.internal

Файл лицензии не найден

Симптом. В начале прогона, на стадии bootstrap или licence:

1Положите лицензию в .../files/zakroma-licence/licence 2или задайте zakroma_quick_start_licence_src.

Причина. Роль ожидает файл лицензии на управляющем сервере до копирования на узлы Закрома.Хранение. Путь по умолчанию — files/zakroma-licence/licence в корне распакованной поставки.

Что сделать.

1install -m 0644 /path/to/licence files/zakroma-licence/licence 2# или укажите другой путь: 3# -e zakroma_quick_start_licence_src=/path/to/licence

Убедитесь, что файл обычный (не каталог) и содержит все поля лицензии (owner, licenseId, validTo, product, environment, licensedVolume, signature).

Нет сетевого доступа по нужным портам

Симптом. Preflight или установка падают на проверке TCP, SSH или подключении к сервисам:

1Timeout when waiting for postgresql.zakroma.internal:5432
1Failed to connect to the host via ssh: Connection timed out

Проверка preflight ZDS не видит соседние узлы на портах 8088/8089.

Причина. Межсетевой экран, security group облака или маршрутизация блокируют трафик между узлами или с управляющего сервера.

Что сделать. Разрешите соединения из таблицы раздела «Firewall».

Проверка с узла Закрома.Хранение:

1nc -vz -w 3 postgresql.zakroma.internal 5432 2nc -vz -w 3 storage-2.zakroma.internal 8088

С управляющего сервера:

1nc -vz -w 3 192.168.1.11 22 2nc -vz -w 3 192.168.1.14 5432

Диск ZDS не смонтирован

Симптом. На стадии prepare, задача «Проверить, что диск ZDS смонтирован»:

1/data/zds должен быть точкой монтирования отдельного тома, 2не каталогом на корневой ФС. 3Смонтируйте диск в этот путь и повторите.

Причина. Роль не форматирует и не монтирует диски. Каталог /data/zds на корневой файловой системе или пустой mount не подходят — нужен отдельный том (в примере /dev/vdb).

Что сделать. На каждом узле Закрома.Хранение и ZDS выполните подготовку диска (см. раздел «Диски ZDS»), затем повторите плейбук:

1findmnt --target /data/zds 2df -h /data/zds 3lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT /dev/vdb

Точка монтирования должна совпадать с zakroma_quick_start_zds_mount (по умолчанию /data/zds).

Дополнительно о роли zakroma-quick-start

Роль входит в поставку zakroma-roles версии 8.1.0 и находится в каталоге roles/zakroma-quick-start. Плейбук — playbooks/sample-play-quick-start.yml, inventory для первого запуска — заглушка inventories/quick-start/hosts.

Стадия / тегДействие роли
bootstrapКопирует group_vars из inventories/base-cluster в inventories/quick-start, спрашивает IP узлов, домен, пароли и параметры, записывает inventory
prepareЗадаёт FQDN, ставит пакеты, при необходимости прописывает /etc/hosts, проверяет точку монтирования ZDS, создаёт каталоги и пользователя zakroma, накладывает overrides Закрома.Хранение и ZDS
postgresУстанавливает PostgreSQL 16 из PGDG, создаёт zakroma_user, БД zakroma и схемы
licenceКопирует файл лицензии на узлы Закрома.Хранение
preflightЗапускает проверки zakroma-preflight для Закрома.Хранение и ZDS
installУстанавливает zakroma-storage и zakroma-zds-v2
accessВыводит URL, пароли и блок /etc/hosts для клиентской машины

Форматирование дисков и настройка DNS-сервера выполняются до запуска Ansible — роль эти шаги не выполняет (см. разделы «Диски ZDS» и «Записи DNS»).

Параметры для Quick Start (HTTP, file-auth, EC 2+1, порты 6443/8444, пароли из Vault или интерактивного ввода) роль применяет сама в inventories/quick-start/group_vars/zakroma-storage.yml и zakroma-zds-v2-ec.yml. Публикация Admin UI через балансировщик (zakroma_storage_admin.reverse_proxy), включённая в примере базового кластера, в плейбуке sample-play-quick-start.yml отключается. Ручное редактирование этих файлов для типового сценария не требуется.

Что дальше