ActiveScaleинженерная практика

Установка и развёртывание ActiveScale

Коротко. Установка — не «нажать кнопку», а четыре стадии с гейтами: подготовка площадки → live/PXE → ОС → initialize → install-ng → приёмка. Большинство проблем возникает до install-ng (сеть, MAC, профиль железа, очередь, политика) и выглядит как «продукт не работает». Мы проходим это по чек-листу и проверяем каждый этап живым выводом.


1. Что входит в работу

  • Обследование площадки: стойка, питание, сеть, BMC, NTP, DNS.
  • Подготовка профиля железа и очереди установки.
  • Монтаж (если нужно) и подключение.
  • Stage 0–3: live → ОС → initialize → install-ng.
  • Настройка политики DSS, S3/IAM, почты, мониторинга.
  • Приёмка по 11 проверкам.
  • Runbook и обучение оператора.

2. Этапы

2.1 Стадия 0. Подготовка площадки

  • VLAN: management/public, storage/private, BMC/IPMI. Шлюз на каждой VLAN.
  • Статические адреса по MAC (не по именам интерфейсов).
  • NTP до установки: расхождение часов потом выглядит как сетевая проблема.
  • BMC: доступ, пароли, BootOrder, режим UEFI.
  • Профиль железа (hardware type) и шаблон дисков.
  • Политика DSS под итоговое число блоксторов — проверить, что пресет существует и валиден.

Гейт: curl до PXE/HTTP-раздачи → 200; диски пусты; MAC уникальны; NTP синхронизирован.

2.2 Стадия 1. Live и установка ОС

  • Загрузка по PXE (или с USB) в live-среду AMUR.
  • iso_installer.py: выбор диска, hostname, mgmt-интерфейс, IP, шлюз, DNS, роль.
  • Ловушка: интерфейс выбирается по индексу, а имена enp*/eth* в live и на диске могут отличаться. Выбирать порт, который реально несёт mgmt-IP.
  • Ловушка: после установки переключить BMC на загрузку с диска в UEFI; Legacy → узел молчит и не в сети.
  • Ловушка: url= в casper должна оканчиваться на .iso; иначе загрузка молча игнорируется.

Гейт: df -h / — корень на диске (не overlay); hostname верный; узел пингуется по mgmt-IP.

2.3 Стадия 2. initialize

  • marvin_install запускается вручную — это задумка продукта, а не баг.
  • Разворачивает mongodb/marvinweb/marvintaskmgr, создаёт initial_environment.json.
  • Маркеры: Done в deploy.log, initial_environment.json, исчезновение /usr/bin/marvin_install.

Гейт: curl -sk https://127.0.0.1:8443/ отвечает (400 без клиентского серта — норма); install-ng.py на месте.

2.4 Стадия 3. install-ng

  • Очередь: 8 файлов (environment, location, machine, network, column, configrule, config-ng.ini, сертификаты).
  • --product activescale обязателен.
  • Флаги: -e -i -m -a -ASC -AST -D -d; -S — только для первой ноды в scale-out-сценарии.
  • Маркер завершения — /tmp/.unattended_install_finished (внутри exit code), а не строка в логе.
  • Фазы могут идти часами; не считать «зависшим» раньше времени.

Гейт: федерация 200 < 50 мс; барометр ok; NS status: ok; selectedstoragepolicy не null; S3 round-trip; GUI без пустот.

2.5 Приёмка

# Проверка Норма
1 Федерация (/federated/_status/) 200 < 50 мс
2 Барометр DSS ok
3 Заполнение NS status: ok
4 Durability в GUI политика не null
5 Политика влезает w + s ≤ N
6 S3 PUT/GET round-trip OK
7 Права S3 PUT от пользователя — 200
8 Почта verify → 200, task SUCCESS
9 Вентиляторы нет NOTFOUND
10 NIC соответствуют реальным портам
11 GUI дашборд без пустот

3. Типовые ловушки (и что с ними делать)

Симптом Причина Решение
PXE висит минуту и ребут url= не оканчивается на .iso Исправить url=/casper
Узел не грузится с диска BMC остался в Legacy Переключить на UEFI+Hdd, power cycle
install-ng: No suitable management server Федерация не смоделирована / порт не 27019 Путь A или B, проверить federated.cfg
column NOTINITIALIZED В column.json есть поле status Убрать поле
S3 507 при свободных дисках Политика не влезает в N Пересчитать w/s, выбрать ветку
Пустая страница «Ресурсы» Нет серийника стойки в модели Записать серийник, перезапустить GUI
NOTMANAGED диск Продукт его пропускает Не «лечить» статус, а пройти штатный путь

4. Что получает заказчик

  • Работающая система, принятая по проверкам (с кодами/значениями).
  • Runbook: как проверить, что делать при типовом сбое, кого звать.
  • Схема сети/VLAN и карта портов.
  • Обучение оператора (2–4 часа) + доступ к базе знаний.
  • Список «что осталось» (если что-то не входит в объём).

5. Сроки и границы

  • Срок зависит от площадки, железа и готовности сети; «по запросу» после обследования.
  • Не входит: закупка железа, монтаж силами заказчика, изменение чужих сетей без согласования.
  • Изменения на продуктивной системе — только в согласованное окно.

Частые вопросы

Сколько времени занимает установка? Зависит от площадки, железа и готовности сети, поэтому срок называем по запросу — после обследования. Сам процесс идёт стадиями: подготовка, live и ОС, initialize, install-ng, приёмка. Отдельные фазы install-ng могут идти часами, и это нормально: считать их зависшими раньше времени не нужно.

Что нужно подготовить на площадке? Стойку, питание, три VLAN — management, storage и BMC — со шлюзом на каждой, статические адреса по MAC, синхронизацию NTP до установки, доступ к BMC с режимом UEFI. Плюс профиль железа и шаблон дисков. Перед стартом — гейт: раздача отвечает 200, диски пусты, MAC уникальны, часы синхронизированы.

Можно ли поставить на существующее железо? Ставим на штатное железо платформ ActiveScale — P200, X200, Z200 — по поддерживаемым конфигурациям. Минимум три ноды, для X200 — четыре, два twin-сервера. Если железо уже стоит, сначала смотрим его состояние: диски, прошивки, BMC, профиль. Решение принимаем по фактам, а не по названию модели в накладной.

А если PXE не грузится? Ставим с USB — это штатный путь live-среды. Частые причины отказа PXE: url= в конфигурации не оканчивается на .iso, и загрузка молча игнорируется; BMC остался в Legacy вместо UEFI; неверный BootOrder. Всё это всплывает до install-ng, поэтому и выглядит как «продукт не работает».

Кто принимает работу? Приёмка формальная: 11 проверок с конкретными значениями — федерация 200 и меньше 50 мс, барометр ok, статус NS ok, политика не null и влезает в число блоксторов, S3 round-trip, права, почта, вентиляторы, NIC, GUI. Принимаете вы, по этим значениям; мы отдаём runbook, схему сети и карту портов.