Подключение к Ozone через CLI
Обзор
Ozone предоставляет CLI-инструмент, позволяющий получить доступ к некоторым функциям, которые нельзя выполнить другими способами. Обычно такие команды решают одноразовые административные задачи во время настройки, например, создание тома (volume) или работа с ACL.
Общий вид команды Ozone shell представлен ниже:
$ ozone sh <object> <action> [params]
где:
-
<object>— объект Ozone, например, корзина (bucket), ключ, префикс, снепшот, пользователь, токен или том. -
<action>— действие, которое можно произвести с объектом. Например, для создания тома соответствующим действием являетсяcreate. -
[params]— дополнительные параметры, которые необходимы для выполнения некоторых действий.
CLI-инструмент предоставляет руководство как для объектов, так и для действий. Чтобы увидеть список действий, доступных для объекта, выполните команду:
$ ozone sh <object> --help
А чтобы увидеть параметры, необходимые для выполнения действия, запустите команду:
$ ozone sh <object> <action> --help
|
ПРИМЕЧАНИЕ
На данный момент нет онлайн-документации для объектов и действий, доступных в Ozone shell. Для получения списка доступных опций используйте руководство внутри самого инструмента. |
Примеры
Работа с томами
CLI включает в себя некоторые уникальные функции, среди которых — создание томов с квотами. Чтобы воспользоваться данной функцией, запустите следующую команду:
$ ozone sh volume create <volume_name> --quota=<quota_in_bytes>
Чтобы проверить, что том создался правильно с нужной квотой, выведите список всех томов:
$ ozone sh volume ls
Эта команда возвращает информацию обо всех томах:
[ {
"metadata" : { },
"name" : "vol1",
"admin" : "sergei",
"owner" : "sergei",
"quotaInBytes" : 1073741824,
"quotaInNamespace" : -1,
"usedNamespace" : 0,
"creationTime" : "2025-01-13T13:20:43.173Z",
"modificationTime" : "2025-01-13T13:20:43.173Z",
"acls" : [ {
"type" : "USER",
"name" : "sergei",
"aclScope" : "ACCESS",
"aclList" : [ "ALL" ]
}, {
"type" : "GROUP",
"name" : "sergei",
"aclScope" : "ACCESS",
"aclList" : [ "ALL" ]
} ],
"refCount" : 0
} ]
Работа с корзинами
Ниже приведен пример создания корзины с ключами шифрования:
$ ozone sh bucket create -k <key_name> <URI>
где:
-
<key_name>— название ключа шифрования, созданного при помощи командыhadoop key create. -
<URI>— название корзины, включающее название тома (например,/vol1/bucket1).
Также с помощью CLI можно управлять настройками репликации корзины:
$ ozone sh bucket set-replication-config -t=<type> -r=<replication> <value>
где:
-
<type>— тип репликации. Поддерживаемые типы:RATISиEC. -
<replication>— определение репликации. Валидные значения зависят от типа репликации. Для RATIS подойдутONEилиTHREE. В то время как для EC должен соблюдаться форматCODEC-DATA-PARITY-CHUNK_SIZE, напримерrs-3-2-1024k. -
<value>— URI корзины.
Ниже приведен пример команды и изменений в конфигурации корзины:
$ ozone sh bucket set-replication-config -t=RATIS -r=ONE vol1/bucket1
"replicationConfig" : {
"replicationFactor" : "ONE",
"requiredNodes" : 1,
"replicationType" : "RATIS"
}
Управление списками контроля доступа
CLI-инструмент позволяет добавлять и удалять списки контроля доступа (ACL) для томов и корзин. Ниже приведен пример команды, добавляющей ACL для тома:
$ ozone sh volume addacl -s=<URI> -a=<type>:<entity>:<permissions> <value>
где:
-
<store>— тип хранилища:OZONEилиS3. -
<type>— вид системной сущности:userилиgroup. -
<entity>— пользователь или группа, для которых устанавливаются права доступа. -
<permissions>— набор букв, определяющий уровни доступа сущности. Доступны следующие составляющие:-
r— чтение данных из ресурса. -
w— запись данных в ресурс. -
c— создание объектов в ресурсе. -
d— удаление объектов из ресурса. -
l— перечисление объектов, хранящихся в ресурсе. -
x— чтение списка контроля доступа к ресурсу. -
y— изменение списка контроля доступа к ресурсу. -
a— все вышеперечисленное. -
n— никаких прав.
-
-
<value>— URI тома/корзины.
Пусть есть следующий том до добавления нового ACL:
[ {
"metadata" : { },
"name" : "vol1",
"admin" : "s_tikhomirov_krb1",
"owner" : "s_tikhomirov_krb1",
"quotaInBytes" : -1,
"quotaInNamespace" : -1,
"usedNamespace" : 0,
"creationTime" : "2025-01-22T21:23:28.796Z",
"modificationTime" : "2025-01-22T21:23:28.796Z",
"acls" : [ {
"type" : "USER",
"name" : "s_tikhomirov_krb1",
"aclScope" : "ACCESS",
"aclList" : [ "ALL" ]
} ],
"refCount" : 0
} ]
В нем присутствует ACL только для пользователя, создавшего этот том.
Вызов команды addacl с опцией -a=user:sergei:rwcdlxy добавляет следующий ACL:
[ {
"metadata" : { },
"name" : "vol1",
"admin" : "s_tikhomirov_krb1",
"owner" : "s_tikhomirov_krb1",
"quotaInBytes" : -1,
"quotaInNamespace" : -1,
"usedNamespace" : 0,
"creationTime" : "2025-01-22T21:23:28.796Z",
"modificationTime" : "2025-01-22T21:53:56.260Z",
"acls" : [ {
"type" : "USER",
"name" : "s_tikhomirov_krb1",
"aclScope" : "ACCESS",
"aclList" : [ "ALL" ]
}, {
"type" : "USER",
"name" : "sergei",
"aclScope" : "ACCESS",
"aclList" : [ "READ", "WRITE", "CREATE", "LIST", "DELETE", "READ_ACL", "WRITE_ACL" ]
} ],
"refCount" : 0
} ]
Удалить список контроля доступа можно с помощью команды removeacl:
$ ozone sh volume removeacl -s=OZONE -a=user:sergei:rwcdlxy vol1