Главная
» Как сделать
»
Настройка хранилища BLOB-объектов S3 для ownCloud Infinite Scale
Настройка хранилища 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.
Создайте хранилище и предоставьте необходимые права доступа.
Настройте корзину в консоли поставщика или инструментах инфраструктуры, затем предоставьте идентификатору службы oCIS только тот доступ, который необходим для ее корзины. На странице ownCloud S3 описана базовая политика для API S3 в стиле AWS. Замените bucket-nameна название вашей корзины и адаптируйте синтаксис политики к вашему поставщику, если он совместим с S3, а не с Amazon S3.
ARN на уровне корзины и ARN на уровне объекта различаются: первый позволяет получить список содержимого корзины; второй применяет действия к объектам внутри неё. Следуйте требованиям политики корзины ownCloud S3 и текущей документации по политике вашего провайдера. Не вставляйте учетные данные в файл политики, репозиторий исходного кода или скриншот.
В примере разрешение на отображение списка хранилищ отделено от разрешений на загрузку объектов и многокомпонентную загрузку; замените ARN хранилища в качестве заполнителя.
Установите переменные S3NG для пользователей хранилища.
Для среды обслуживания или файла Compose, принимающего стандартные переменные среды oCIS, установите следующие значения. Эти примеры значений являются заполнителями; используйте конечную точку и регион, назначенные вашим поставщиком.
Подключитесь /var/lib/ocis/storage/users(или к выбранному вами корневому каталогу) к надежному POSIX-хранилищу. Не указывайте путь к метаданным на корзину S3. Внедрите ключ доступа и секретный ключ безопасным способом; приведенные выше ссылки на переменные предполагают, что ваше развертывание предоставляет эти секретные значения. Конечная точка должна быть доступна из службы oCIS, а имя корзины, регион и учетные данные должны ссылаться на одну и ту же учетную запись поставщика и корзину.
Если вы используете модульный пример Compose от ownCloud ocis_full, его дополнительное наложение S3 использует специфическую для примера S3NGнастройку и отдельный s3ng.ymlфайл конфигурации. Следуйте этому примеру как полному шаблону развертывания, а не смешивайте его вслепую с другим файлом Compose. См. официальный пример развертывания oCIS Compose и справочник по среде Storage-Users .
Укажите конечную точку, регион и сегмент для вашего провайдера; не включайте ключи доступа и секретные ключи в сохраненные настройки.
Размер файлов, загружаемых в многокомпонентном режиме, для ожидаемых вами файлов.
Большие файлы загружаются многокомпонентными блоками. В документации 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, чтобы проверить настроенное хранилище BLOB-объектов; на изображении не отображается результат проверки.
Наконец, загрузите небольшой тестовый файл через клиентский или веб-интерфейс и убедитесь, что он отображается и открывается. При развертывании больших файлов также протестируйте файл репрезентативного размера, прежде чем полагаться на настройку. Успешная проверка небольшого файла не подтверждает пропускную способность многокомпонентной передачи или доступность временного дискового пространства.
Создавайте резервные копии объектов S3, метаданных POSIX, конфигурации и других необходимых данных oCIS как единый набор. В рекомендациях ownCloud по резервному копированию указано, что для резервного копирования необходимо остановить экземпляр и обрабатывать внешние хранилища S3 отдельно. Сохраняйте восстанавливаемые копии обоих уровней хранения и протестируйте процедуру восстановления, прежде чем рассматривать развертывание как защищенное: рекомендации по резервному копированию ownCloud .
Краткий контрольный список проверки
STORAGE_USERS_DRIVERесть s3ng; системное хранилище остается ocis.
Корневой каталог метаданных представляет собой постоянное хранилище POSIX, и корзина S3 уже существует.
Конечная точка, регион, сегмент, учетные данные и политика соответствуют одной и той же учетной записи поставщика.
Наибольший запланированный объем файлов включает в себя многокомпонентные детали, вместимость до 10 000 деталей и возможность временного хранения.
Проверка хранилища BLOB-объектов проходит успешно, загрузка данных с реального клиента открывается корректно, и метаданные, и содержимое корзины включены в планы резервного копирования и восстановления.