Подключение к 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