Настройка хранилища BLOB-объектов S3 для ownCloud Infinite Scale

Для хранения содержимого пользовательских файлов в S3 с помощью ownCloud Infinite Scale (oCIS) настройте службу Storage-Users для использования драйвера s3ng, укажите ей предварительно созданный сегмент и храните каталог метаданных службы в постоянном хранилище POSIX. S3 хранит файлы-блоки; он не заменяет каждый локальный путь к данным oCIS.

Приведенная ниже конфигурация соответствует документации ownCloud Infinite Scale 8.2. Перед внесением изменений в производственную систему сравните имена переменных и примеры развертывания с документацией для вашей установленной версии.

Перед настройкой проверьте схему размещения оборудования.

В этом контексте blob — это сохраненное содержимое файла, а метаданные — это информация, которую oCIS использует для организации и поиска файлов. В S3NG blob-объекты сохраняются в S3-совместимом объектном хранилище, а метаданные остаются в файловой системе POSIX. Необходимо постоянно поддерживать монтирование этой файловой системы и включать ее в резервные копии. Драйвер системного хранилища должен оставаться активным ocis.

Воспользуйтесь этим кратким контрольным списком перед полетом:

  • Выберите поставщика S3 и подтвердите его конечную точку, регион, имя корзины, поддерживаемые операции API S3 и ограничения на многокомпонентные данные.
  • Создайте корзину перед запуском oCIS. В описанной настройке S3NG предполагается наличие уже существующей корзины.
  • Создайте выделенный идентификатор доступа для oCIS и сохраните его ключ и секрет в менеджере секретов вашей системы развертывания или в настройках защищенной среды.
  • Выберите путь к постоянному локальному файлу метаданных и убедитесь, что процесс oCIS может читать и записывать его.
  • Для уже установленной системы перед изменением драйвера хранилища необходимо спланировать поддерживаемую миграцию. Изменение настроек бэкэнда не является копированием или миграцией существующих файловых данных.

В описании структуры хранилища ownCloud указано , какая информация остается вне корзины S3. Именно поэтому восстановление только корзины не является полным планом восстановления.

Пример редактора конфигурации, демонстрирующий драйвер хранилища s3ng, корневой каталог метаданных POSIX и системный драйвер хранилища ocis.
Пример трех основных параметров хранения: S3NG для пользовательских больших двоичных объектов, постоянный корневой каталог метаданных POSIX и системный драйвер oCIS.

Создайте хранилище и предоставьте необходимые права доступа.

Настройте корзину в консоли поставщика или инструментах инфраструктуры, затем предоставьте идентификатору службы oCIS только тот доступ, который необходим для ее корзины. На странице ownCloud S3 описана базовая политика для API S3 в стиле AWS. Замените bucket-nameна название вашей корзины и адаптируйте синтаксис политики к вашему поставщику, если он совместим с S3, а не с Amazon S3.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::bucket-name"]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:*Object",
        "s3:*MultipartUpload",
        "s3:ListMultipartUploadParts"
      ],
      "Resource": ["arn:aws:s3:::bucket-name/*"]
    }
  ]
}

ARN на уровне корзины и ARN на уровне объекта различаются: первый позволяет получить список содержимого корзины; второй применяет действия к объектам внутри неё. Следуйте требованиям политики корзины ownCloud S3 и текущей документации по политике вашего провайдера. Не вставляйте учетные данные в файл политики, репозиторий исходного кода или скриншот.

Пример редактора политик в формате JSON, отображающий разрешения для корзины и разрешения для объектов в S3-корзине-заполнителе.
В примере разрешение на отображение списка хранилищ отделено от разрешений на загрузку объектов и многокомпонентную загрузку; замените ARN хранилища в качестве заполнителя.

Установите переменные S3NG для пользователей хранилища.

Для среды обслуживания или файла Compose, принимающего стандартные переменные среды oCIS, установите следующие значения. Эти примеры значений являются заполнителями; используйте конечную точку и регион, назначенные вашим поставщиком.

STORAGE_USERS_DRIVER: s3ng
STORAGE_USERS_S3NG_ROOT: /var/lib/ocis/storage/users
STORAGE_SYSTEM_DRIVER: ocis
STORAGE_USERS_S3NG_ENDPOINT: https://s3.example.com
STORAGE_USERS_S3NG_REGION: us-east-1
STORAGE_USERS_S3NG_ACCESS_KEY: ${OCIS_S3_ACCESS_KEY}
STORAGE_USERS_S3NG_SECRET_KEY: ${OCIS_S3_SECRET_KEY}
STORAGE_USERS_S3NG_BUCKET: ocis-user-blobs

Подключитесь /var/lib/ocis/storage/users(или к выбранному вами корневому каталогу) к надежному POSIX-хранилищу. Не указывайте путь к метаданным на корзину S3. Внедрите ключ доступа и секретный ключ безопасным способом; приведенные выше ссылки на переменные предполагают, что ваше развертывание предоставляет эти секретные значения. Конечная точка должна быть доступна из службы oCIS, а имя корзины, регион и учетные данные должны ссылаться на одну и ту же учетную запись поставщика и корзину.

Если вы используете модульный пример Compose от ownCloud ocis_full, его дополнительное наложение S3 использует специфическую для примера S3NGнастройку и отдельный s3ng.ymlфайл конфигурации. Следуйте этому примеру как полному шаблону развертывания, а не смешивайте его вслепую с другим файлом Compose. См. официальный пример развертывания oCIS Compose и справочник по среде Storage-Users .

Пример файла среды, содержащего конечную точку S3, регион, имя корзины, а также замаскированный ключ доступа и секретный ключ.
Укажите конечную точку, регион и сегмент для вашего провайдера; не включайте ключи доступа и секретные ключи в сохраненные настройки.

Размер файлов, загружаемых в многокомпонентном режиме, для ожидаемых вами файлов.

Большие файлы загружаются многокомпонентными блоками. В документации Amazon S3 указан максимальный размер объекта в 5 ТиБ и ограничение в 10 000 частей; размер части должен быть от 5 МиБ до 5 ГиБ. В документации S3NG указан размер части по умолчанию в 16 МиБ. При таком значении ограничение на количество частей может стать практическим пределом еще до достижения максимального размера объекта, установленного провайдером. На странице ownCloud версии 8.2 указан предельный размер по умолчанию в 160 ГиБ; используйте настроенный размер части и правила вашего провайдера для расчета безопасного максимума и оставьте запас.

Единственный параметр multipart, который, согласно документации ownCloud, можно настроить, — это STORAGE_USERS_S3NG_PUT_OBJECT_PART_SIZE. Увеличьте размер части, если для поддерживаемого размера файла требуется более 10 000 частей. Значение представляет собой uint64(беззнаковое целое число), поэтому настройте его как количество байтов, а не как строку с добавлением «MiB». Держите его в пределах указанного диапазона 5 MiB–5 GiB и убедитесь, что ваш поставщик S3 поддерживает выбранное значение. Для объекта размером 5 TiB, состоящего из 10 000 частей, средний размер части должен составлять 500 MiB.

Также зарезервируйте временное хранилище на хосте или в контейнере oCIS: ownCloud отмечает, что ему требуется как минимум столько же временной емкости, сколько составляет ожидаемый размер самого большого файла для буферизации входящих данных. Действительный сегмент и учетные данные не предотвратят сбои, вызванные недостаточным лимитом части данных или заполненным временным диском. См. ограничения на загрузку в S3 в ownCloud и справочник по типам переменных среды .

Применяйте, проверяйте и защищайте данные.

После сохранения конфигурации перезапустите или повторно разверните oCIS, используя процедуру, соответствующую вашей установке. Проверьте журналы служб на наличие ошибок конфигурации, конечных точек, разрешений или подключения. Затем выполните проверку хранилища больших двоичных объектов в той же настроенной среде выполнения, что и oCIS:

ocis storage-users blobstore check

Эта команда обслуживания использует настроенное хранилище больших двоичных объектов и выполняет цикл загрузки, скачивания и удаления с использованием случайной тестовой полезной нагрузки. Это целенаправленная проверка хранилища, а не доказательство того, что каждый рабочий процесс, ориентированный на пользователя, или очень большая загрузка будут выполнены успешно. В справочнике по команде blobstore описаны ее параметры, включая настраиваемый размер тестовой полезной нагрузки.

В окне терминала при выполнении команды ocis storage-users blobstore check вывод отсутствует.
Выполните эту команду с той же конфигурацией oCIS, чтобы проверить настроенное хранилище BLOB-объектов; на изображении не отображается результат проверки.

Наконец, загрузите небольшой тестовый файл через клиентский или веб-интерфейс и убедитесь, что он отображается и открывается. При развертывании больших файлов также протестируйте файл репрезентативного размера, прежде чем полагаться на настройку. Успешная проверка небольшого файла не подтверждает пропускную способность многокомпонентной передачи или доступность временного дискового пространства.

Создавайте резервные копии объектов S3, метаданных POSIX, конфигурации и других необходимых данных oCIS как единый набор. В рекомендациях ownCloud по резервному копированию указано, что для резервного копирования необходимо остановить экземпляр и обрабатывать внешние хранилища S3 отдельно. Сохраняйте восстанавливаемые копии обоих уровней хранения и протестируйте процедуру восстановления, прежде чем рассматривать развертывание как защищенное: рекомендации по резервному копированию ownCloud .

Краткий контрольный список проверки

  • STORAGE_USERS_DRIVERесть s3ng; системное хранилище остается ocis.
  • Корневой каталог метаданных представляет собой постоянное хранилище POSIX, и корзина S3 уже существует.
  • Конечная точка, регион, сегмент, учетные данные и политика соответствуют одной и той же учетной записи поставщика.
  • Наибольший запланированный объем файлов включает в себя многокомпонентные детали, вместимость до 10 000 деталей и возможность временного хранения.
  • Проверка хранилища BLOB-объектов проходит успешно, загрузка данных с реального клиента открывается корректно, и метаданные, и содержимое корзины включены в планы резервного копирования и восстановления.

Оставить комментарий

Настройка квот хранилища по умолчанию для ролей пользователей в ownCloud oCIS

Настройка квот хранилища по умолчанию для ролей пользователей в ownCloud oCIS

Назначайте новым пользователям ownCloud Infinite Scale ограничения на объем хранилища в байтах в зависимости от роли, используя пример файла proxy.yaml и контрольный список для безопасной проверки.

Устраните ошибки сертификата синхронизации ownCloud на уровне источника TLS.

Устраните ошибки сертификата синхронизации ownCloud на уровне источника TLS.

Восстановите синхронизацию ownCloud на рабочем столе, проверив имя хоста сервера, цепочку сертификатов, доверие к частному центру сертификации и проблемы с порталом авторизации, не отключая проверку TLS.

Устранить предупреждение ownCloud Integrity после обновления

Используйте отчет о недействительных файлах, чтобы выявить несоответствия в основных файлах или сигнатурах приложений, восстановить правильные файлы выпуска и безопасно проверить целостность.

Установите ownCloud Infinite Scale с помощью Docker Compose.

Разверните ownCloud Infinite Scale, используя официальный пример Compose, настройте домены и постоянное хранилище, затем проверьте TLS, контейнеры и первый вход в систему.

Настройка хранилища BLOB-объектов S3 для ownCloud Infinite Scale

Настройка хранилища BLOB-объектов S3 для ownCloud Infinite Scale

Настройте драйвер S3NG, права доступа к хранилищу, постоянное хранилище метаданных и размер загружаемых файлов, чтобы ownCloud Infinite Scale мог надежно хранить содержимое файлов.

Если скорость загрузки в ownCloud падает до 99%, проверьте эти ограничения.

Если скорость загрузки в ownCloud падает до 99%, проверьте эти ограничения.

Узнайте, почему загрузка на ownCloud Server останавливается на стадии завершения, проверив состояние файла, квоту, временное дисковое пространство, ограничения PHP и таймауты прокси-сервера.

Безопасно удалите предупреждение ownCloud Apache .htaccess.

Безопасно удалите предупреждение ownCloud Apache .htaccess.

Установите параметр AllowOverride All только для корневого каталога веб-сервера ownCloud, проверьте активный виртуальный хост Apache и безопасно перезагрузите систему, чтобы восстановить правила .htaccess.

Настройте систему корпоративного аудита ownCloud и проверьте журналы.

Включите приложение Enterprise Auditing от ownCloud, перенаправьте события admin_audit в защищенный файл журнала и убедитесь, что записываются реальные действия пользователей.

Подключите ownCloud Infinite Scale к Keycloak с помощью OIDC.

Подключите ownCloud Infinite Scale к Keycloak с помощью OIDC.

Align Keycloak, эмитент домена, веб-клиент и пользовательское приложение, как утверждается, позволяют ownCloud Infinite Scale надежно авторизовывать пользователей как в веб-, так и в мобильных приложениях.

Переместите файлы ownCloud к новому владельцу без потери прав доступа.

Переносите собственные файлы и исходящие общие ресурсы с помощью команды occ в ownCloud, знайте, что остается после удаления, и проверяйте доступ перед удалением старой учетной записи.