Перейти к основному содержимому

5.4. Использование Ozone в качестве S3-совместимого хранилища

Работа с Ozone: Использование Ozone в качестве S3-совместимого хранилища

Apache Ozone предоставляет S3 Gateway (S3G), который позволяет использовать Ozone в качестве S3-совместимого хранилища. Это позволяет интегрировать Ozone с существующими инструментами и приложениями, работающими с Amazon S3 API, такими как AWS CLI, MinIO, или приложения на базе S3 SDK.


1. Настройка S3 Gateway

S3 Gateway (S3G) обеспечивает доступ к данным через HTTP-протокол с использованием S3 API.

Конфигурация S3 Gateway

Добавьте следующие параметры в файл ozone-site.xml для включения S3 Gateway:

<configuration>
<property>
<name>ozone.s3g.enabled</name>
<value>true</value>
</property>

<property>
<name>ozone.s3g.address</name>
<value>0.0.0.0:9874</value>
</property>

<property>
<name>ozone.s3g.bucket.layout</name>
<value>OBJECT_STORE</value>
</property>
</configuration>

Запуск S3 Gateway

Запустите S3 Gateway на нужном узле:

bin/ozone s3g --daemon start

Проверка статуса S3 Gateway

bin/ozone admin service list

В списке запущенных служб вы должны увидеть S3 Gateway.


2. Создание S3-бакета

Для работы с S3 API сначала создайте S3-бакет. В отличие от обычных бакетов, S3-бакеты создаются с помощью S3 API или команд Ozone Shell.

Создание S3-бакета с Ozone Shell:

bin/ozone sh bucket create s3://my-s3-bucket

3. Использование AWS CLI для взаимодействия с Ozone

AWS CLI можно использовать для управления S3-бакетами и объектами в Ozone. Для этого настройте профиль AWS CLI с указанием Ozone S3 Gateway как конечной точки.

Шаг 1: Установка AWS CLI

Если AWS CLI не установлен, выполните:

sudo apt install awscli

Шаг 2: Настройка AWS CLI для работы с Ozone

Создайте профиль в AWS CLI:

aws configure --profile ozone

При настройке укажите:

  • Access Key ID и Secret Access Key: Поскольку это локальное хранилище, введите произвольные значения.
  • Default region: Укажите us-east-1 или любой другой регион.
  • Output format: Укажите json.

Шаг 3: Использование S3 Gateway в качестве конечной точки

Теперь вы можете взаимодействовать с Ozone через AWS CLI, указав S3 Gateway как конечную точку (--endpoint-url).


4. Примеры команд AWS CLI с Ozone

  1. Создание S3-бакета:

    aws s3api create-bucket --bucket my-s3-bucket --endpoint-url http://localhost:9874
  2. Загрузка файла в S3-бакет:

    aws s3 cp localfile.txt s3://my-s3-bucket/ --endpoint-url http://localhost:9874
  3. Просмотр списка файлов в S3-бакете:

    aws s3 ls s3://my-s3-bucket/ --endpoint-url http://localhost:9874
  4. Загрузка файла из S3-бакета:

    aws s3 cp s3://my-s3-bucket/localfile.txt ./ --endpoint-url http://localhost:9874
  5. Удаление файла из S3-бакета:

    aws s3 rm s3://my-s3-bucket/localfile.txt --endpoint-url http://localhost:9874

5. Интеграция с S3 SDK

Ozone поддерживает приложения, использующие S3 SDK (например, на Python, Java, или Go). Укажите в конфигурации приложения адрес S3 Gateway как конечную точку (endpoint), чтобы данные сохранялись в Ozone.


6. Ограничения и отличия от Amazon S3

  • Регионы: Ozone не использует концепцию регионов, как Amazon S3. Регион можно указывать произвольно.
  • Аутентификация: Для работы с Ozone можно использовать произвольные Access Key и Secret Key.
  • Совместимость: Некоторые специфичные функции Amazon S3 (например, поддержка Lambda) могут быть недоступны в Ozone.

7. Мониторинг и управление S3 Gateway

  1. Проверка состояния S3 Gateway:

    bin/ozone admin service list
  2. Просмотр логов S3 Gateway: Логи S3 Gateway можно найти в папке /var/log/ozone/s3g.log.


Итог

Использование Ozone в качестве S3-совместимого хранилища предоставляет гибкость при работе с данными и позволяет использовать популярные инструменты и SDK, разработанные для Amazon S3. С помощью S3 Gateway вы можете работать с Ozone через AWS CLI и интегрировать его с различными приложениями, используя стандартный S3 API.