Release notes
Закрома.Хранение (Zakroma-Storage) v 2.6
Новый функционал
- Реализован функционал импорта пользователей напрямую из LDAP.
- Реализован функционал версионирования вольюмов: позволяет работать с различными структурами данных на подключенных хранилищах.
- Admin UI: Реализованы дополнительные возможности работы с объектами бакета для администратора, такие как загрузка и удаление объекта.
- Admin UI: Реализован поиск бакета по имени в списке.
- Экспериментальная функция: механизм скачивания еще не отсканированных объектов в историческом вольюме.
- Добавлена метрика
background tasks / sec
, отражающая текущее количество бэкграунд задач, выполняемых за секунду. - Реализован функционал параллельное сканирование исторических данных.
Улучшения
- Исключён файл временной лицензии из дистрибутива, для возможности передачи дистрибутива с индивидуальной лицензией.
- Реализация шифрования параметров volume.
- Реализован функционал установки ошибки в заголовок при head запросе.
- В cdn реализован обмен данными при обновлении Quota для бакета и workspace.
- Реализован логирующий ридер, который теперь используется на всех операциях скачивания объекта.
- Реализована обработка специальных символов в ключе объекта. Список проблемных специальных символов: ”!”, ““”, “№”, “$”, “%”, “&”, “\’”, “(”, “)”, “”, “+”, “,”, ””, “.”, “/”, “:”, “;”, “<”, “=”, “?”, “@”, “<”, “\”, “>”, “^”, “_”, “{”, “|”, “}”, “~”, ” “.
Gateway
- Изменена схема процесса наложения
mutex
. - Добавлена возможность определения
ExposeHeaders
для дефолтных правил CORS через файл конфигурации.
ZCLI
- Добавлен функционал получения, добавления и обновления политик доступа бакета и рабочей области.
- Адаптация команд с учетом появления версионирования волюмов.
- Добавлен префикс объектов для волюмов типа Historical.
Исправления
- Исправлен механизм подсчета
Etag
дляmultipart
объектов. - Добавлено правильное взаимодействие с DeleteMarker. Теперь в версионируемом бакете при вызове метода
s3/CopyObject
для объекта, последней версией которого является DeleteMarker, система вернёт 404 код ошибки. - Исправлена проблема с падением background задач при указании несуществующей схемы для worker.
- Исправлена проблема репликации поля количества объектов и metadata при создании объекта
- Исправлена работоспособность query параметра
ResponseContentDisposition
.
Gateway
- Добавлен контроль пермиссии для операции добавления тегов бакета.
- Исправлена ошибка синхронизации пользователей при одинаковом username в keycloak.
- Из таблицы users убрана колонка
external_id
и ограничение уникальности по ней.
ZDS
- Добавлен синхронный вызов проверки работоспособности node при создании zds клиента.
- Добавлена проверка на наличие сегмента “…” в префиксе.
Worker
- Механизм переотправки задач в kafka перестроен на принятие решения на
scheduled_at
.
Admin-ui
- Изменено отображение статуса удаления у voluma, хранилище которого недоступно.
- Изменено отображение сгенерированного пути в хранилище, если в бакете нет хранилища по умолчанию.
- Исправлена проблема, при которой отмена выбора пользователей/групп не восстанавливала предыдущее значение.
- Для пользователей с ролью
workspace/bucket-viewer
теперь корректно блокируются ползунки управления в соответствующих разделах интерфейса. - При просмотре правил все поля ресурса (для workspace, и для bucket) теперь доступны для редактирования.
ZCLI
- Добавлено отсутствующее поле quota в модели workspace.
- Добавлено отсутствующее поле corrupted в модели storage.
- Добавлена возможность добавить
path
при создании хранилища и валидация на минимум 3 символа. - Добавлено отсутствующее поле scanningInProgress в модели bucket.
- Добавлено отсутствующее поле deletedAt в модели bucket.
Примечание
Обратная совместимостьПри обновлении на версию 2.5.4 и старше может возникнуть проблема с работой read-only S3-хранилищами. В версии 2.5.4 было внесено целенаправленное изменение, нарушающее обратную совместимость для read-only S3-хранилищ. Это была вынужденная мера для реализации новой функциональности — поддержки сканирования всех версий объектов и операций с ними.
ZDS v 1.6
Новый функционал
- Встроен алгоритм XXHASH для обеспечения защиты Bit Rot Protection.
- Добавлена новый API-метод для принудительного перевода ноды в статус
Running
(метод:GET /inner/riseup
). - Добавлена возможность установить Расписание для бэкграунд процессов в конфигурации.
Улучшения
- Оптимизирована производительность с маленькими файлами до 256 КБ. Реализован новый провайдер хранения FullCopy для оптимизации работы с мелкими файлами (≤256 КБ). Вместо разделения на части файлы теперь сохраняются целиком, что ускоряет операции с небольшими данными.
- Устранена проблема потери файлов при обрыве сети в момент восстановления.
- Доработан механизм скачивания частей файлов при синхронизации changelog.
- Улучшен метод GET /readyz так, чтобы он выдавал 200 только если статус ноды != NOT_CONNECTED, в противном случае - 500.
Исправления
- Исправлена проблема нехватки inodes, при которой volume переходит в состояние ERROR, и пользователь получает HTTP/1.1 500 Internal Server Error.
- Изменен код ошибки
NotFound 404
в/inner/delete_file
при повторном удалении файла и при удалении системный файлов.
1.6.1
- Реализована обработка ошибок при удалении файлов в FS-режиме
1.6.2
- Добавлено кэширование списка файлов для для более быстрого чтения “плоских” директорий.
- Исправлен проблема перехода в повторяющийся repair, если при восстановлении volume были удалены пустые директории.
- Исправлено применение listing.batchSize значения в методе
/list_files?path=/
для ЕС и FS. - Исправлена проблема, при которой запрос на получение списка файлов
GET /inner/list_file_names
возвращал пустой результат при отсутствии в конфигурации параметраlisting.batchSize
. - Добавлена возможность тонкой настройки сетевых интерфейсов для серверов. В конфигурации теперь можно указать конкретный (host) для прослушивания в разделах
server
иclusterServer
. - Исправлена ошибка скачивания ранее загруженных файлов при выключении 2 node из 3.
- Исправлена логика синхронизации чейнджлога. Критические ошибки записи файла на локальный диск теперь прерывают процесс синхронизации, предотвращая уход узла в неконсистентное состояние и обеспечивая его своевременный переход в режим repair.
- Теперь процесс vacuum удаляет не только устаревшие parts, но и все “висящие” файлы в файловой системе.
- Добавлена возможность настройки максимального числа объектов при листинге и настройка http клиента внутри ZDS.