Release notes

Закрома.Хранение (Zakroma-Storage) v 2.5

Новый функционал 

  • Добавлена возможности записи не во все, а минимум в одно синхронное зеркало и синхронизация между зеркалами в фоне после восстановления. Это позволяет улучшить толерантность к отказам хранилищ.
  • Добавлена новая метрика zakroma_bucket_limit - лимиты бакетов.
  • Добавлена новая метрика zakroma_background_count, отображающая количество фоновых задач.

Улучшения

  • Добавлен запрет на миграцию данных до завершения сканирования.
  • Добавлен механизм readonly volume для хранилища типа ZDS.
  • Рефакторинг клиентского когда ZDS и доработка healthcheck механизма.
  • Добавлена поддержка опции target_session_attr для подключения к Postgres.
  • Улучшен механизм балансировки нагрузки Закрома.Хранение по узлам ZDS-кластера.
  • Оптимизирован модуль работы с шифрованием.
  • Исключен кэш перед запросами к БД для основных сущностей, получаемых от core.
  • Произведен рефакторинг модуля мониторинга хранилищ.
  • Добавлен параметр connect_timeout в dsn подключения к БД.
  • Добавлены состояния Вкл/Выкл профилирования pprof в зависимости от параметра env.

Admin-ui

  • Выведено поле ограничения размера рабочей области и бакета.
  • Добавлена кнопка для запуска сканирования хранилищ бакета (поиск и восстановление информации о найденных объектах).
  • Добавлено отображение статуса сканирования у бакета.
  • Добавлено определение и отображение хранилищ недоступных для использования.

Исправления

  • Оптимизированы методы сервиса Composer: разделение на точные (без кэша) и быстрые (с кэшем). Это позволяет устранить некоторые проблемы, связанные с обновлением кэша.
  • Рефакторинг кода, связанного с работой с s3 ключами, удалены не используемые API методы:
    1GET /access-key  2POST /access-key 3POST /access-key/:UserName
  • Изменён url для API метода получения secret key /user/access-key-v2 -> /user/s3-credentials
  • Убрана panic при наличии в конфиге одних deprecated ключей. Теперь в таком случае происходит дешифрация данных.
  • Исправлена ошибка VolumeNotFound при выполнении миграции.
  • Исправлено отправление ошибок в DeadLetter при удалении объекта.
  • Исправлена panic пода core при попытке подключиться к ZDS без указанного порта.
  • Исправлена обработка path/virtual style при указании порта в URL.
  • Исправлена ошибка при выдаче прав суперпользователя.
  • Исправлено зависание background задач в некоторых случаях.
  • Исправлена проблема потенциального возникновения Deadlock при изменении строк в таблице background_tasks.

Admin-ui

  • Исправлено закрытие модального окна создания группы хранения при пересечении путей.
  • Исправлены пустые поля “Наименование” и “Описание” после создания роли.
  • Исправлено уведомление при получении с сервера ошибки на запрос обновления группы хранения.
  • Исправлена долгая обработка запроса /user/users.
  • Изменена формулировки сообщений в ЖЦ.

Шардирование 

  • Устранены случаи отсутствия некоторых полей объектов при передаче между Worker (шардами) в процессе ребалансировки.

Мониторинг

  • Добавлена очистка старых данных при каждом обновлении метрик бэкграунд задач для отображение корректных метрик.

Worker

  • Исправлены ошибки алгоритма проставления флага broken для объектов и частей объектов.

2.5.1

  • Доработан механизм сканирования в части загрузки метаданных и информации о версиях объектов.
  • Пользователю с правами workspace-viewer стала недоступна активация object-lock в параметрах бакета.

2.5.2

  • Исправлена логика определения доступности хранилища zds на анализ одного из параметра ответов /inner/status

2.5.3

  • Исправлена ошибка SignatureDoesNotMatch при переходе по сгенерированной ссылке с параметром response-content-disposition.
  • Добавлено игнорирование ошибки NoSuchKey в операции DeleteObjects согласно S3 спецификации.
  • Исправлено зависание задач на удаление объектов из ZDS.
  • Исключены излишние логи сервиса core ошибок подключения к ZDS, не относящихся к работоспособности системы.
  • Изменение в pkg/http: HTTP-клиент теперь явно обнуляет тела запросов, если они приходят с заголовком Content-Length: 0.

2.5.4

  • Оптимизирован процесс сканирования файлов с zds.

Примечание

  • При обновлении на версию 2.5.4 или более новую с версий старше 2.5.4 может возникнуть проблема с работой read-only S3-хранилищами. В версии 2.5.4 было внесено целенаправленное изменение, нарушающее обратную совместимость для read-only S3-хранилищ. Это было необходимо для реализации новой функциональности — поддержки сканирования всех версий объектов и операций с ними.

ZDS v 1.5

Новый функционал 

  • В метрики добавлен подсчет количества активных соединений.
  • В ответе на запрос /inner/status теперь выводятся данные о версии ZDS.

Улучшения 

  • Переработан функционал по пингу дисков для агента.
  • Переработан механизм обработки ошибок.
  • Доработан механизм определения состояния volume (корректная запись при битом диске).
  • Предоставлены рекомендации по установке параметра concurrency.
  • Переработана логика работы листинга узла при восстановлении.
  • Оптимизирован алгоритм получения файла (загрузки) - get/get_file.
  • Переработана логика работы list_files.
  • Переработан механизм запуска функции восстановления узла (repair node).

Исправления 

  • Исправлена ошибка при создании директории через s3Browser.
  • Исправлена проблема с невозможностью скачать большой файл с zds-all-nodes.
  • Исправлена проблема с работой http://{host}:{port}/vacuum в FS.
  • Исправлена проблема со скачиванием файлов нулевого размера.
  • Исправлена проблема с падением производительности ZDS при включении metrics.
  • Исправлена ошибка в методе list_files?path при заполненном параметре path.
  • Исправлена проблема с обновлением значения changelog после выхода узла из repair.
  • Исправлена проблема с расхождением значений changelog после удаления объектов.

1.5.1

  • Добавлена автоматическая очистка устаревших частей файлов при выполнении операции Vacuum
  • Доработан механизм автоматической очистки файлов, удалённых во время недоступности узла
  • Добавлена информация о состоянии кластера в ручку inner/status 
  • Переработан механизм чтения: уменьшение сетевой нагрузки за счёт приоритета локальных данных и оптимизированного восстановления
  • Исправление ошибки 500 в inner/list_file_names при параллельном удалении файлов
  • Исправление ошибки 500 при копировании директории через copy_file в режиме FS
  • Ошибка 500 при запросе list_files для несуществующего пути

ZDS v 1.6

Новый функционал 

  • Встроен алгоритм XXHASH для обеспечения защиты Bit Rot Protection.
  • Добавлена новый API-метод для принудительного перевода ноды в статус Running (метод: GET /inner/riseup).
  • Добавлена возможность установить Расписание для бэкграунд процессов в конфигурации.

Улучшения 

  • Оптимизирована производительность с мелкими файлами. Реализован новый провайдер хранения FullCopy для оптимизации работы с мелкими файлами (≤256 КБ). Вместо разделения на части файлы теперь сохраняются целиком, что ускоряет операции с небольшими данными.
  • Устранена проблема потери файлов при обрыве сети в момент восстановления.
  • Доработан механизм скачивания частей файлов при синхронизации changelog.
  • Улучшен метод GET /readyz так, чтобы он выдавал 200 только если статус ноды != NOT_CONNECTED, в противном случае - 500.

Исправления 

  • Исправлена проблема нехватки inodes, при которой вольюм переходит в состояние ERROR, и пользователь получает HTTP/1.1 500 Internal Server Error.
  • Изменен код ошибки NotFound 404 в /inner/delete_file при повторном удалении файла и при удалении системный файлов.
Смотрите также
Архитектура решения