Перейти к содержанию

Ограничения

Перечень ограничений версии 2.2.0 плагина S3R: возможности, которые не поддерживаются, и параметры, которые не входят в проверенные сценарии применения. Страница нужна тому, кто оценивает, подходит ли хранилище для задачи, и тому, кто выясняет, почему операция не работает так, как в Amazon S3.

Ограничения сгруппированы по областям. В столбце «Что использовать» указан способ получить нужный результат другими средствами либо раздел руководства, в котором описана соответствующая функциональность.

Если в ограничении названо число и сказано «константа», оно задано в коде или формате хранения и параметрами не изменяется.

Интерфейс S3

Ограничение Описание Что использовать
Удаление с многофакторным подтверждением (MFA Delete) Не поддерживается. Поле MFADelete в настройке версионирования и заголовок x-amz-mfa защиты не обеспечивают. Неизменяемость данных обеспечивается блокировкой объектов.
Шифрование на стороне сервера Операции PutBucketEncryption, GetBucketEncryption и DeleteBucketEncryption, заголовки x-amz-server-side-encryption и схема SSE-C не поддерживаются. Данные на дисках не шифруются. Данные на дисках шифруются средствами носителя или файловой системы. Шифрование трафика описано в разделе Шифрование трафика.
Загрузка формой из браузера (POST Object) Подстановка ${filename}, перенаправление по success_action_redirect и теги в поле формы не поддерживаются. Невыполненное условие политики возвращает ответ 400 вместо 403. Подпись, срок действия политики и условия eq, starts-with и content-length-range проверяются.
Уведомления о событиях Не поддерживаются. Изменения отслеживаются перечислением объектов либо запросом SQL к таблице s3r_t<N>_object.
Статический веб-сайт Конфигурация сайта сохраняется, но сайт не обслуживается: индексный документ, страница ошибки и правила перенаправления не применяются.
Журналирование обращений к бакету (PutBucketLogging) Не поддерживается. Запросы записываются в журнал инстанса.
Выборка внутри объекта (SelectObjectContent) Не поддерживается.
Каталожные бакеты S3 Express (ListDirectoryBuckets) Не поддерживаются.
Настройка репликации (PutBucketReplication) Не поддерживается. Репликация между площадками определяется топологией кластера, см. Репликация между площадками.
Восстановление архивных объектов (RestoreObject) Не поддерживается. Объект в классе GLACIER или DEEP_ARCHIVE доступен для чтения сразу. См. Классы хранения S3 и ярусы.
Перенос в класс с более частым доступом Правила жизненного цикла переносят объекты только в классы с более редким доступом.
Условия IpAddress и NotIpAddress Не поддерживаются в политике бакета. Инструкция с таким условием трактуется в пользу отказа.
Применение настроек бакета на других инстансах Следующий запрос к инстансу, который не подтвердил применение изменения, ещё может быть обработан по прежним настройкам, см. Применение настроек бакета.
Временные учётные данные (STS) и Bearer-токены Не поддерживаются. Срок действия ключа доступа не задаётся. Ключ действует, пока существуют запись о нём и пользователь, которому он выдан.
Интеграции Отправка событий в Kafka, вызов функций, интеграция с системами биллинга, драйвер CSI, векторный поиск и RDMA не поддерживаются.

Применение настроек бакета

  • Ответ на изменение политики, ACL, CORS, версионирования и других настроек бакета, кроме конфигурации веб-сайта, отправляется после того, как изменение применили все инстансы в состоянии Online.
  • Ожидание ограничено 500 мс на инстанс и 2 с в целом. Оба срока — константы.
  • Об инстансе, который не подтвердил применение, появляется запись в журнале. Следующий запрос к нему ещё может быть обработан по прежним настройкам.

Дедупликация и сжатие

Ограничение Описание Что использовать
Объекты со способом хранения inline Не дедуплицируются и не сжимаются. Содержимое таких объектов хранится в строке метаданных.
Ранее записанные объекты Включение сжатия не сжимает записанные объекты. Копия, записанная до того, как содержимое стало общим, сохраняет собственные данные до перезаписи, и процесс согласования её не объединяет.
Выключение дедупликации Уже объединённое содержимое остаётся общим.
Граница дедупликации Дедупликация не выходит за пределы яруса.
Дедупликация без передачи содержимого Проверка совпадения по контрольной сумме до передачи тела и CopyObject без копирования данных не поддерживаются.
Выбор алгоритма сжатия Не поддерживается. Применяется алгоритм zstd. См. Сжатие.
Сжатие в ярусе Переключатель яруса не сжимает части составной загрузки, копии объектов и объекты, перенесённые в ярус правилом жизненного цикла. Переключатели бакета и тенанта действуют и на части, и на копии.

Адресация и тенанты

Ограничение Описание Что использовать
Виртуально-хостовая адресация На точке входа по умолчанию поддерживается только адресация в виде указания пути. Виртуально-хостовая адресация доступна для тенанта с заданным FQDN, см. Адресация тенанта.
Пул дисков тенанта Не поддерживается. Данные всех тенантов размещаются на общих дисках кластера.
Репликация между площадками тенанта Репликацию нельзя включить или отключить для отдельного тенанта. См. Репликация как свойство кластера.

Квоты

Ограничение Описание Что использовать
Точность ограничения частоты и скорости Суммарная частота может превышать заданную, см. Точность ограничения частоты. Доли инстанса показывает GET /-/debug/quota. См. Квоты и ограничение скорости.
Учёт потребления Таблица s3r_quota_usage не сверяется с хранимыми объектами. Если инстанс аварийно завершился между учётом объекта и его записью, объём и число объектов остаются учтёнными за объект, которого нет. Процедуры ручной сверки нет.
Подсчёт имеющихся объектов при новой квоте Пока фоновый подсчёт не завершён, записи под квотой не отклоняются, а после него потребление может отличаться от хранимого, см. Подсчёт объектов под новой квотой. Подсчёт не завершён, пока в строке s3r_quota_usage задан seed_hlc.
Потребление до первой записи под квотой Нулевое потребление не означает, что данных нет, см. Потребление до первой записи. Поле bytes_used запроса /v2/capacity и поля storage_usage и objects_usage настроек бакета в этом случае равны null, см. Квоты и ограничение скорости.

Точность ограничения частоты

  • Инстанс, у которого нет действующей доли общего предела, пропускает запросы без ограничения и запрашивает долю.
  • Доля истекает через 4 с после потери связи с узлом, который её выдал. Срок — константа.
  • Суммарная частота превышает заданную, пока координатор Picodata не признает этот узел отключённым.
  • Локальное ограничение применяется, только пока дерево распределения долей не построено.

Подсчёт объектов под новой квотой

Пока фоновый подсчёт объектов под новой квотой bytes или objects не завершён:

  • записи под ней не отклоняются;
  • /v2/quotas показывает потребление без ещё не подсчитанных объектов;
  • если с начала подсчёта удалено больше, чем записано, потребление показывается равным 0.

После подсчёта потребление может отличаться от хранимого в пяти случаях:

  1. Запись принята до того, как квота дошла до репликасета, который ведёт учёт, а сохранена после начала подсчёта.
  2. Удалён объект, до которого подсчёт ещё не дошёл.
  3. Во время подсчёта шард vshard перенесён на другой репликасет.
  4. Часы инстанса, сохранившего объект, отстают от часов репликасета, который ведёт учёт.
  5. Часы инстанса, сохранившего неучтённый объект до начала подсчёта, спешат относительно часов репликасета, который ведёт учёт.

Потребление до первой записи

Пока после установки квоты не выполнена первая запись, которую эта квота учитывает:

  • поле storage_usage в ответах /v2/quotas/tenant_quota и /v2/quotas/bucket_quota равно 0;
  • в ответе /v2/quotas равно 0 поле usage у квот bytes и objects.

Значение 0 здесь не означает, что данных нет. Первая запись запускает подсчёт уже хранимых объектов.

Хранение

Ограничение Описание Что использовать
Тип носителя Тип носителя автоматически не определяется, кэширование на твердотельных накопителях не выполняется. Носители разделяются по ярусам свойством tier=, см. Классы хранения S3 и ярусы.
Перебалансировка фрагментов Расширение кластера не переносит фрагменты между группами размещения. Новые диски используются для новых групп. Перебалансировка метаданных средствами vshard выполняется.
Запись при write_tolerance = 0 Недоступность одного участника группы делает запись в группу невозможной. См. Кворум записи.
Восстановление копии площадки Копия объекта на площадке не восстанавливается по копиям других площадок. В раскладке instance безвозвратный отказ узла оставляет объекты из его групп без копии на его площадке. Такие объекты читаются с других площадок, см. Пример: несколько площадок.
Фактор репликации больше числа площадок Не поддерживается: Picodata не заполняет такие репликасеты, и кластер не проходит начальное формирование. На нескольких площадках фактор репликации равен их числу.
Возврат групп на позиции Несимметричные группы сами на свои позиции не возвращаются. Действие «Восстановить размещение», см. Группы не на своих позициях.
Изменение локального списка дисков После первой регистрации изменение S3R_DISKS не действует. Инстанс один раз пишет в журнал предупреждение с обоими списками. Диски меняют действиями API управления, см. Действия с дисками.
Зависший накопитель при первом запуске Если накопитель перестаёт отвечать во время разметки при первом запуске инстанса, разметка не завершается. Инстанс не регистрирует диски и не записывает причину, а начальное формирование ждёт его. Срок ожидания не ограничен. Последняя запись журнала о таком диске: formatting <путь> for this instance's first start. Замените накопитель или уберите его из S3R_DISKS и перезапустите инстанс.
Досрочное завершение формирования Не поддерживается: кластер не принимает запись, пока не пройдёт начальное формирование. См. Если установка не завершается.
Ёмкость диска в группе Одна группа размещения использует на диске не больше 65 536 крупных и 8 388 608 малых блоков. Оба числа — константы формата. Остальную ёмкость диска занимают другие группы. Предел зависит от stripe_size и k, см. Выбор ёмкости и размера экстента.

Управление и эксплуатация

Ограничение Описание Что использовать
Журнал действий пользователей S3 Не ведётся. Выгрузка событий по протоколу syslog и в формате CEF не поддерживается. Административные действия попадают в журнал аудита Picodata.
Набор ролей Роли фиксированы: s3r_superuser, s3r_observer и s3r_tenant_admin_<идентификатор>. Конструктора ролей и роли аудитора нет. См. Роли.
Учётные записи из LDAP и двухфакторная аутентификация Средствами плагина не поддерживаются. Обе возможности настраиваются у внешнего провайдера идентификации, см. Первый вход в консоль управления.
Статистика обращений по бакетам В метриках не публикуется. Метрики перечислены в разделе Метрики.
Конфигурация через API управления API управления не изменяет конфигурацию плагина и состав кластера. Конфигурация изменяется командой ALTER PLUGIN, состав кластера изменяется средствами Picodata.
Распределение чтений по репликам При read_preference = any чтение, которое инстанс не может обслужить сам, Picodata направляет ближайшей реплике репликасета. Без настроенных зон это одна и та же реплика для всех инстансов, и она может оказаться мастером. Чтение обслуживает сам инстанс, получивший запрос, если у него есть копия нужных метаданных. Запросы клиентов распределяются по всем инстансам кластера.
Резервное копирование Процедура согласованного резервного копирования и восстановления кластера не определена. Снимок таблиц Picodata не содержит данных объектов, а копия директорий дисков не содержит метаданных.
Обновление между версиями Процедуры обновления и отката кластера с данными нет. Выпуски меняют схему таблиц в существующих миграциях. Кластер разворачивается заново, см. Обновление и откат.

Проверенные границы

Ограничение Описание Что использовать
Объём хранилища свыше 64 ПБ Установки такого объёма не испытывались. Программного ограничения нет.
Схемы избыточности с числом фрагментов больше двадцати Не проверялись и целевым сценарием не являются. Например, схема 61+3.