У каждого есть только одна истинная ответственность: найти себя. Затем придерживайтесь этого в своем сердце до конца своей жизни, всем сердцем и никогда не останавливайтесь. Все остальные дороги несовершенны, человеческий побег, трусливый возврат к народным идеалам, дрейф и внутренний страх - Герман Гессе, "Демиан"
Ceph
использовать cephx
кластер пар протоколовклиент、должен использовать программный демон
общение между Авторизовать。протокол cephx
на основеобщий ключ
существовать Ceph Процесс установки включается по умолчанию cephx
,Поэтому кластер должен иметь всеклиентотвечатьиспользовать Программа продолжаетсяАутентификация пользователя
иАвторизовать
,Аккаунты Cephisпользоватьпользователь служат нескольким целям:
внутренняя связь
,Ceph daemonuse Имя учетной записи
демон-процесс, связанный с ним osd.1
или mgr.serverc
Соответствует и существует процесс установки. Вот некоторые Demo[root@serverc ~]# ceph auth ls
osd.0
key: AQAG9ZpkY8o4MBAArdipzo8A9Yg3dy/fTcV7Yw==
caps: [mgr] allow profile osd
caps: [mon] allow profile osd
caps: [osd] allow *
osd.1
key: AQAG9ZpkX0/EOhAALauZTeHY/ojBuMGdspJh4A==
caps: [mgr] allow profile osd
caps: [mon] allow profile osd
caps: [osd] allow *
......
mgr.serverd.nlmuvp
key: AQAx9Zpk1DpCDRAAaGWCs3xKEXWkqemXGI7HAw==
caps: [mds] allow *
caps: [mon] profile mgr
caps: [osd] allow *
mgr.servere.muoasq
key: AQA89Zpki0tIABAAMUGi7GitoTqjYBtTUPmaWw==
caps: [mds] allow *
caps: [mon] profile mgr
caps: [osd] allow *
..........
librados
Клиенты, обращающиеся к кластеру из библиотеки, должны использовать такие программы, как rbd,radosgw-admin
клиентждать,использовать librados
изклиент
отвечатьиспользовать Программный офисиспользоватьизсчетиметьclient.
префикс имени。дляCeph
объектшлюз,Монтажная встречасоздавать Профессионалиспользоватьизclient.rgw.hostname
пользовательномер счета,существовать librados
Разработчики кастомизированного программного обеспечения должны иметь выделенную учетную запись с соответствующим функционалом.client.rgw.realm.zone.serverc.bdiyfs
key: AQBj9ZpkCDimLRAAnr2HTGH2wUFUsLfeag8lew==
caps: [mgr] allow rw
caps: [mon] allow *
caps: [osd] allow rwx tag rgw *=*
client.rgw.realm.zone.serverd.gwezgs
key: AQBn9Zpkajo3GxAAA8epFoWVLVlNAiuAaUqFgg==
caps: [mgr] allow rw
caps: [mon] allow *
caps: [osd] allow rwx tag rgw *=*
управлятьчлен
счет,управлятьчленсчетимя也иметьclient.
префикс。существоватьбегатьceph、rados
ждать Заказчасиспользовать,Установщиксоздаватьсуперпользовательсчетclient.admin
,иметьпозволятьсчет Доступ ко всему контентуи Исправлять集群Конфигурацияиз Функция。Ceph
использовать client.admin
Accountuse не подходит для запуска команд управления, если только --name
или --id
Опция явно указывает имя пользователяclient.admin
key: AQCv9Jpk9A0+GhAA5s66DQyZqVWHf3f3UioMMA==
caps: [mds] allow *
caps: [mgr] allow *
caps: [mon] allow *
caps: [osd] allow *
Можно установитьCEPH_ARGS
переменные среды для определения таких вещей, какИмя кластера
илипользовательID
ждать参数
[ceph: root@node /]# export CEPH_ARGS="--id cephuser"
Cephобъектшлюз有自己изпользовательданные库
来СертификацияAmazon S3иSwift
пользователь,ноиспользоватьclient.rgw.hostname
Учетная запись, используемая для доступа к кластеру
создаватьновыйпользовательсчетчас,Предоставленный кластер Разрешения,Авторизация кластерной задачи пользователя,cephx
Разрешения в называются способность
,Можетпроходить Тип демона(mon、osd、mgrилиmds
)предоставить им。
использоватьспособность
来根据отвечатьиспользоватьфлаг программыпределилипоставлятьверноПул, пространство имен пула
или一组池серединаизданные
издоступ。способность还позволять集群серединаизПроцессы-демоны взаимодействуют друг с другом
Необходимо проверить существующего пользователя,использовать ceph auth list
Заказ,или ВОЗ ceph auth ls
[ceph: root@node /]# ceph auth list
... output omitted ...
osd.0
key: AQBW6Tha5z6OIhAAMQ7nY/4MogYecxKqQxX1sA==
caps : [mgr] allow profile osd
caps: [mon] allow profile osd
caps: [osd] allow *
client.admin
key: AQCi6Dhajw7pIRAA/ECkwyipx2/raLWjgbklyA==
caps: [mds] allow *
caps: [mgr] allow *
caps: [mon] allow *
caps: [osd] allow *
. . . output omitted ...
Чтобы получить подробную информацию о конкретной учетной записи,использоватьceph auth get
Заказ:
[ceph: root@node /]# ceph auth get client.admin
exported keyring for client.admin
[client . ad min]
key = AQCi6Dhajw7pIRAA/ECkwyipx2/raLWj gbklyA==
caps mds = "allow *"
caps mgr = "allow *"
caps mon = "allow *"
caps osd = "allow *"
Ключ можно распечатать:
[ceph: root@node /]# ceph auth print-key client.adrnin
AQCi6Dhajw7pIRAA/ECkwyipx2/raLWjgbklyA==
Необходимо экспортировать и импортировать учетную запись пользователя.,использоватьceph auth export
иceph auth import
Заказ
[ceph: root@node /]# ceph auth \
export client.operator1 > ~/operatorl.export
[ceph: root@node /]# ceph auth \
import -i ~/operator1.export
ceph auth get-or-create
Заказсоздавать一个новыйпользовательсчети生成它изключ
,Должен Заказ默认将Долженключ
распечатать наstdout,Поэтому обычно добавляют-o
возможность сохранить стандартный вывод включкольцодокумент
середина。
Создано с доступом для чтения и записи ко всем пулам. app1
учетную запись пользователя и сохраните связку ключей /etc/ceph/ceph.client.app1.keyring
[ceph: root@node /]# ceph auth \
get-or-create client.app1 \
mon 'allow r' \
osd 'allow rw' \
-o /etc/ceph/ceph.client.app1.keyring
Создайте пользователя Ceph liruilong, который может читать и записывать объекты в пространстве имен prod в пуле хранения demo_pool.
[root@serverc ~]# ceph auth get-or-create client.liruilong1 \
mon 'allow r ' \
osd 'allow rw pool=demo_pool namespace=prod' \
-o /etc/ceph/ceph.client.liruilong1.keyring
[root@serverc ~]# ceph auth get client.liruilong1
[client.liruilong1]
key = AQBs/5pkMyVkLRAAM/IWCQf+9ThFjHzjMpOBBg==
caps mon = "allow r "
caps osd = "allow rw pool=demo_pool namespace=prod"
exported keyring for client.liruilong1
[root@serverc ~]#
создавать Ceph пользователь liruilong
, ceph-pool Пул хранения данных выполняет чтение, запись и выполнение расширенных классов объектов.
[root@serverc ~]# ceph auth get-or-create client.liruilong \
mon 'allow profile osd' \
osd 'allow rwx pool=ceph-pool' \
-o /etc/ceph/ceph.client.liruilong.keyring
Требуется аутентификациябрелок для ключейдокумент
,Поэтому это должно бытьдокументкопировать
приезжатьиспользовать此новыйпользовательсчет操作из所有клиентсистема
Для аутентификации клиент настраивает Ceph
пользовательимяиодин содержитпользовательБезопасностьключ
изключкольцодокумент,Cephсуществоватьсоздаватькаждыйпользовательсчетчас为其生成брелок для ключейдокумент
,но,Это должно бытьдокументкопировать
приезжатьнуждаться它изкаждый客户机системаилиотвечатьиспользоватьпрограммный сервер
На этих клиентских системах существуют librados использовать来自 /etc/ceph/ceph.conf параметры брелока. Конф Конфигурациядокументпозиционироватьключкольцодокумент。Значение по умолчанию:/etc/ceph/cluster.name.keyring Брелок для ключей.
Например,дляclient.openstack
счет,ключкольцодокумент/etc/ceph/ceph.client.openstack.keyring
брелок для ключей
ключкольцодокумент
以纯文本из形式хранилищеключ
,вернодокумент进行相отвечатьиз Linux документ Разрешения Защищать
,разрешено только Linux Предоставить доступ пользователю, требуется только существование Ceph
пользовательизбрелок для ключейдокумент
Аутентификацияизсистема上部署它
[root@serverc ceph]# ll
общийиспользовать量 36
-rw-------. 1 root root 63 Июнь 27 10:39 ceph.client.admin.keyring
-rw-r--r--. 1 root root 68 Июнь 27 11:25 ceph.client.liruilong1.keyring
-rw-r--r--. 1 root root 67 Июнь 27 11:22 ceph.client.liruilong.keyring
-rw-r--r--. 1 root root 177 Июнь 27 10:39 ceph.conf
-rw-r--r--. 1 root root 595 Июнь 27 10:40 ceph.pub
-rw-------. 1 root root 153 Июнь 27 10:40 podman-auth.json
-rw-r--r--. 1 root root 92 Август 18 2021 rbdmap
[root@serverc ceph]#
cephx
протокол不以纯文本из形式传输общий ключ
,Напротив,клиент из Monitor
请求一个会话ключ
,Monitor
использовать Общий ключ клиента шифрует сеансовый ключ и отправляет его клиенту. При этом клиент расшифровывает сеансовый ключ и возвращает его из Monitor
Запросите билет для аутентификации демона кластера. Это похоже на Kerberos
протокол,cephx
Файл брелока выглядит так Kerberos keytab
документ
существовать Kerberos , есть три основных компонента: сервер аутентификации (AS), сервер выдачи билетов (TGS) и клиент. Когда пользователю необходимо получить доступ к защищенному ресурсу, он сначала AS Отправить запрос, АС Подтвердите личность пользователя, затем сгенерируйте билет и отправьте его по адресу TGS。TGS Еще раз проверьте личность пользователя и сгенерируйте для пользователя билет, который можно использовать для доступа к определенным ресурсам. Наконец, Т.Г.С. Отправьте билет клиенту, клиентиспользовать его для доступа к необходимой услуге.
использовать инструмент командной строки,нравитьсяceph、radosиrbd
,управлятьчлен Можетиспользовать --id
и --keyring
спецификация опциипользовательсчет
иключкольцодокумент
。нравиться果没有指定,командовать как client.admin
Аутентификация
существовать本例середина,ceph
командовать как client.operator3
Аутентификациясписок Можетиспользоватьиз池
[root@serverc ceph]# ceph --id app1 osd lspools
1 device_health_metrics
2 .rgw.root
3 default.rgw.log
4 default.rgw.control
5 default.rgw.meta
6 ceph-pool
[root@serverc ceph]#
существоватьиспользовать--id
Нет необходимости использовать, когда client.
префикс,--id
Будет автоматическииспользовать client.
префикс,ииспользовать--name
изчас候就нуждатьсяиспользовать client.
префикс
нравиться果将ключкольцодокументхранилищесуществоватьместоположение по умолчанию,тогда нет необходимости--keyring
Параметры。cephadm shell
автоматически из/etc/ceph/
Монтирование каталогаключкольцо,Если не существует, местоположение по умолчанию,Необходимо отобразить указанное
использовать ceph auth caps
Команда для изменения учетной записи пользователя способности (Разрешения), этот пример изменен osd на appuser account
функция, разрешена только для myapp Пул для доступа на чтение и запись:
[ceph: root@node /]# ceph auth \
caps client.app1 \
mon 'allow r' \
osd 'allow rw pool=myapp'
updated caps for client.app1
ceph auth caps
Заказкрышка
существующийспособность,использовать, когда команда,Должен быть указан для всех демоновПолная коллекция способностей
,И не только те, которые нужно изменить.
Пустая строка может быть определена для удаления всех функций.
[ceph: root@node /]# ceph auth caps client.app1 osd ''
updated caps for client.app1
существовать cephx середина,Для каждого типа демона,Доступно несколько способностей: вот способности,То естьРазрешения
,также делайФункция
Р, предоставить доступ на чтение
,каждыйпользовательсчетПо меньшей мере
отвечать Долженверно监视器(mon)иметь读доступ Разрешения,для того, чтобы иметь возможность ПоискCRUSH map
W, предоставьте доступ на запись
,клиентнуждатьсядоступ для записи
来хранилищеи Исправлять osd
наобъект. для manager (MGRs)
,w Предоставьте разрешение на включение или отключение модуляX,продление срока действия грантаобъект类из Авторизовать
,Это позволяет клиенту выполнять дополнительные операции над объектом.,比нравитьсяиспользоватьrados lock getилиlist
списокRBDизображение.class-readиclass-write
даx
из子集,ты обычносуществовать RBD 池серединаиспользоватьони*Предоставить полный доступ
создавать了 formyappl
пользовательсчет,И дает возможность извлекать объект из любого хранилища пула и:
[ceph: root@node /]# ceph auth \
get-or-create client.formyappl \
mon 'allow r' \
osd 'allow rw'
Cephx поставлять 预定义из Функция Конфигурациядокумент
,существоватьсоздаватьпользовательсчетчас,выгодаиспользовать Конфигурациядокументупрощатьпользовательдоступ Разрешенияиз Конфигурация
Этот пример проходит profile rbd
определить новые forrbd
пользовательномер счетаиздоступ Разрешения,клиентотвечатьиспользовать程序Можетиспользовать Долженсчетиспользовать Блочное устройство RADOS
верно Хранилище Ceph для блочного доступа
[ceph: root@node /]# ceph auth \
get-or-create client.forrbd \
mon 'profile rbd' \
osd 'profile rbd'
rbd-read-only
Конфигурациядокументиз工作方式相同,Но предоставьте доступ только для чтения,Ceph использует другие существующие конфигурации для внутренней связи между демонами,Невозможно создать собственный документ конфигурации.,Cephсуществовать определяет их внутренне
profile rbd-read-only
В следующей таблице перечислены разрешения Ceph при установке по умолчанию.
способность | описывать |
---|---|
allow | предоставить разрешение |
r | даритьпользователь读доступ Разрешения,Нужен монитор для карты SearchCRUSH |
w | даритьпользовательвернообъектиздоступ для записиверно |
x | пользователи use могут вызывать методы класса use (т. е. читать и писать) и выполнять операции аутентификации на мониторе существования. |
class-read | способность, назначенная пользователю использовать метод чтения класса,подмножество x |
class-write | Дайте пользователю использовать метод записи класса,подмножество x |
* | Чтение, запись и выполнение Разрешения для пользователяпо предоставлению конкретного демона или пула.,и способность, выполняющая команду управлять |
profile osd | Позволяет пользователю подключаться в качестве OSD к другим мониторам OSD или,Предоставлено OSDРазрешения,Позволяет OSD обрабатывать пульсовый трафик и отчеты о состоянии. |
profile bootstrap-osd | Разрешить пользователю загружать экранное меню,Таким образом, пользователь существуть сможет добавлять ключ при загрузке OSD. |
profile rbd | позволятьпользовательверноCephблокировать устройство для чтениядоступ для записи |
profile rbd-read-only | Доступ только для чтения к блочным устройствам Ceph для пользователя обеспечивает Разрешения |
пределпользователь OSD Разрешения, использовать пользователи могут получить доступ только к тем пулам, которые им нужны, то есть они могут использовать различные способы ограничения доступа к пулам и другим связанным объектам, аналогично белый список
Такой же。
Создатель имел пользователя formyapp2, а предел имел доступ к пулу myapp.
[ceph: root@node /]# ceph auth \
get-or-create client.formyapp2 \
mon 'allow r' \
osd 'allow rw pool=myapp'
нравиться果существовать Конфигурация Функциячас没有指定池,Затем Ceph установит их во все существующие пулы.,Механизм cephx может обеспечить доступ к объекту другими способами:
проходитьпрефикс имени объекта,Следующий пример ограничивает доступ к любому пулу, имя которого начинается с pref объекта.
[ceph: root@node /]# ceph auth \
get-or-create client.formyapp3 \
mon 'allow r' \
osd 'allow rw object_prefix pref'
проходитьnamespace
,Реализуйте пространство имен для логической группировки объектов в пуле.,然后Может将пользовательсчетпределпринадлежать к определенномуnamespaceизобъект:
[ceph: root@node /)# ceph auth \
get-or-create client.designer \
mon 'allow r' \
osd 'allow rw namespace=photos'
проходитьпуть
,Система документов Ceph (cephs) использует этот метод для доступа к определенным каталогам.,В следующем примере создается новая учетная запись пользователя веб-дизайнера.,Он может получить доступ только к каталогу /webcontent и его содержимому:
[ceph: root@node /]# ceph \
fs authorize WEBFS \
client.webdesigner \
/webcontent rw
[ceph: root@node /]# ceph auth get client.webdesigner
exported keyring for client .webdesigner
[client.webdesigner]
key = AQBrVE9aNwoEGRAApYR6m71ECRzUlLpp4wEJkw==
caps mds = "allow rw path=/webcontent"
caps mon = "allow r"
caps osd = "allow rw pool=cephfs_data"
проходить command
команда, этот метод будет управлять членом предела определенного списка команд, создающего operator1
пользовательсчетипредел
其доступ两个Заказиз示Например Вниз:
[ceph: root@node /]# ceph auth \
get-or-create client.operator1 \
mon 'allow r, allow command "auth get-or-create", allow command "auth list" '
ceph auth del
Командаиспользовать для удаления учетной записи пользователя
[ceph: root@node /]# ceph auth del client.app1
updated
Соответствующие файлы ключей можно затем удалить.
# существовать Ceph Два новых клиента-создателя в кластере соответственно были получены в редакторе и названы replpool1 Ресурсы документации в разделе
cephadm shell -- ceph auth get-or-create client.docedit mon 'allow r' osd 'allow rw pool=replpool1 namespace=docs' | tee /etc/ceph/ceph.client.docedit.keyring
cephadm shell -- ceph auth get-or-create client.docget mon 'allow r' osd 'allow r pool=replpool1 namespace=docs' | tee /etc/ceph/ceph.client.docget.keyring
# список Ceph Ключ аутентификации и поиск с помощью client.docedit и client.docget Соответствующий ключ
cephadm shell -- ceph auth ls | egrep -A3 'docedit|docget'
# Синхронизировать ключевой документ клиента с другим сервером
rsync -v /etc/ceph/ceph.client.doc*.keyring serverd:/etc/ceph/
# существуют смонтируйте ключевой документ клиента на другом сервере и выполните операцию использоватьклиент
cephadm shell --mount /etc/ceph:/etc/ceph
# использовать client.docedit клиентсуществовать replpool1.docs Запись данных в пространство имен
rados --id docedit -p replpool1 -N docs put adoc /etc/hosts
# использовать client.docget клиент从 replpool1.docs Чтение данных из пространства имен
rados --id docget -p replpool1 -N docs get adoc /tmp/test
# Сравните два набора данныхдокумент
diff /etc/hosts /tmp/test
# использовать несанкционированный client.docget клиент пытается записать данные и вызывает ошибку
rados --id docget -p replpool1 -N docs put mywritetest /etc/hosts || echo ERROR
# Обновите авторизацию клиента и client.docget Предоставлено replpool1.docs и docarchive Пул для операций чтения и записи
ceph auth caps client.docget mon 'allow r' osd 'allow rw pool=replpool1 namespace=docs, allow rw pool=docarchive'
# использовать разрешено client.docget клиентсуществовать replpool1.docs Запись данных в пространство имен
rados --id docget -p replpool1 -N docs put mywritetest /etc/hosts
# Удалить запись о сертификации ключевых документов клиента
rm /etc/ceph/ceph.client.doc*.keyring
ssh serverd rm /etc/ceph/ceph.client.doc*.keyring
cephadm shell -- ceph auth del client.docedit
cephadm shell -- ceph auth del client.docget
© Авторские права на ссылки в этой статье принадлежат оригинальному автору. Если есть какие-либо нарушения, пожалуйста, сообщите нам. Это проект с открытым исходным кодом. Если вы его одобряете, не скупитесь на звезды :)
https://docs.ceph.com/en/pacific/architecture/
https://github.com/ceph/ceph
https://docs.ceph.com
Примечания для инструктора CL260