1.docker swarm - подготовка и настройка docker volume/ceph

Thank you for reading this post, don't forget to subscribe!

Име­ет­ся несколь­ко хостов:
[192.168.1.180] swarm_master1_180
[192.168.1.181] swarm_master2_181
[192.168.1.182] swarm_master3_182
[192.168.1.183] swarm_node1_183
[192.168.1.184] swarm_node2_184
[192.168.1.185] swarm_node3_185

на них уста­нов­лен docker swarm 3 масте­ра и 3 ноды.

на всех сер­ве­рах пра­вим /etc/hosts

192.168.1.180 swarm_master1_180
192.168.1.181 swarm_master2_181
192.168.1.182 swarm_master3_182
192.168.1.183 swarm_node1_183
192.168.1.184 swarm_node2_184
192.168.1.185 swarm_node3_185

ВАЖНО!!!!!!!! hostname у сер­ве­ров дол­жен сов­па­дать с име­на­ми в /etc/hosts

так­же на всех сер­ве­рах уже уста­нов­лен docker.

=====================================
Уста­но­вим ceph для того, что­бы мож­но было под­клю­чать блоч­ные устрой­ства для docker volume
Для нача­ла под­го­то­вим дис­ки, в нашем слу­чае это будут LVM тома(данные дей­ствия про­из­во­дим НА ВСЕХ нодах, где у нас будет ceph кластер):
pvcreate /dev/sdb
созда­дим отдель­ную группу:
vgcreate vg-ceph /dev/sdb
созда­дим раздел:
lvcreate -L 5G -n ceph vg-ceph
фор­мат­нём в нуж­ной фай­ло­вой системе:
mkfs.ext4 -L ceph /dev/vg-ceph/ceph
гото­во, дис­ки подготвлены
=====================================
ману­ал:
http://onreader.mdl.ru/LearningCeph/content/index.html
Добав­ля­ем поль­зо­ва­те­ля ceph на все ноды

adduser ceph

и груп­пу

groupadd ceph
добав­ля­ем его в груп­пу wheel
usermod -a -G wheel ceph

Поль­зо­ва­тель дожен быть в сле­ду­ю­щих группах:
id ceph
uid=1002(ceph) gid=10(wheel) groups=10(wheel),1000(ceph)

и добав­ля­ем груп­пу в sudo:
%wheel ALL=(ALL) NOPASSWD: ALL

ста­вим пароль на пользователя(на всех нодах)
passwd ceph

так­же мож­но доба­вить и про­сто поль­зо­ва­те­ля ceph в sudo:

[spoiler]ceph ALL = (root) NOPASSWD:ALL

Defaults:ceph !requiretty

* в дан­ном при­ме­ре учет­ной запи­си ceph предо­став­ле­ны пра­ва супер­поль­зо­ва­те­ля без необ­хо­ди­мо­сти повтор­но­го вво­да пароля.

[/spoiler]

 

ста­вим пакеты:

yum install -y yum-plugin-priorities
yum install -y yum-utils

 

Добав­ля­ем репо­зи­то­рий на каж­дую ноду

можем исполь­зо­вать дан­ный репо­зи­то­рий hammer:

[spoiler]

[root@node1 ~]# cat /etc/yum.repos.d/ceph-deploy.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-hammer/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[/spoiler]

Но мы реко­мен­ду­ем исполь­зо­вать репо­зи­то­рий mimic

vim /etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

 

* где rpm-mimicLTS вер­сия ceph, кот­рая будет кор­рект­но рабо­тать с lvm(вер­сия ceph не менее 13.0.0(не путать с ceph-deploy)); el7 — релиз CentOS 7. Эти зна­че­ния нуж­но заме­нить на дру­гие, если исполь­зу­е­мые вер­сии отли­ча­ют­ся. Релиз Linux CentOS мож­но посмот­реть коман­дой uname -r, а акту­аль­ную вер­сию Ceph по ссыл­ке http://docs.ceph.com/docs/jewel/releases/

При­ме­ча­ние:

Обя­за­тель­но дол­жен быть вклю­чен репо­зи­то­рий Centos Extras и epel.

[spoiler]

vim CentOS-Base.repo

#######################

[base]

name=CentOS-$releasever - Base

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

enabled = 1

 

#released updates

[updates]

name=CentOS-$releasever - Updates

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra

#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

enabled = 1

 

#additional packages that may be useful

[extras]

name=CentOS-$releasever - Extras

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra

#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

enabled = 1

 

#additional packages that extend functionality of existing packages

[centosplus]

name=CentOS-$releasever - Plus

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra

#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/

gpgcheck=1

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

##############################

 

vim epel.repo

#############################################

[epel]

name=Extra Packages for Enterprise Linux 7 - $basearch

#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch

metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch

failovermethod=priority

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

 

[epel-debuginfo]

name=Extra Packages for Enterprise Linux 7 - $basearch - Debug

#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug

metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch

failovermethod=priority

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

gpgcheck=1

 

[epel-source]

name=Extra Packages for Enterprise Linux 7 - $basearch - Source

#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS

metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch

failovermethod=priority

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

gpgcheck=1

[/spoiler]

 

ВАЖНО !!!!!

[spoiler]Чтобы исполь­зо­вать раз­де­лы lvm необ­хо­ди­ма ути­ли­та ceph-volume, но она доступ­на толь­ко в более новых вер­си­ях ceph.

Если ceph уже уста­нов­лен, его необ­хо­ди­мо обно­вить. Захо­дим под поль­зо­ва­те­лем ceph в дирек­то­рию в кото­рой ини­ци­и­ро­ва­ли кластер:
[ceph@node1 ceph-admin]$ pwd
/var/ceph-admin
Обно­вим мониторы:
Вы може­те исполь­зо­вать ceph-deploy для адре­са­ции всех узлов мони­то­ра одно­вре­мен­но. Например
ceph-deploy install --release {release-name} ceph-node1[ ceph-node2]
ceph-deploy install --release hammer mon1 mon2 mon3

посмот­реть все релизы/версии мож­но на офф сайте:
https://docs.ceph.com/docs/nautilus/releases/

[ceph@node1 ceph-admin]$ ceph-deploy install --release mimic node1 node2 node3

далее пой­дёт инстал паке­тов на все ноды.
после дан­ной уста­нов­ки ceph-volume ста­но­вит­ся доступен.

[/spoiler]

 

Созда­ём дирек­то­рию из кото­рой будем запус­кать все команды:

[root@swarm_node1_183 ~]# mkdir /var/ceph-adminDIR

изме­ня­ем владельца
[root@swarm_node1_183 ~]# chown ceph:ceph /var/ceph-adminDIR/

 

---------

Про­из­во­дим уста­нов­ку ceph на всех нодах:

yum install ceph-deploy -y

yum install ceph-fuse -y

меня­ем имя репо­зи­то­рия на всех нодах:
mv /etc/yum.repos.d/ceph.repo /etc/yum.repos.d/ceph-deploy.repo

далее под поль­зо­ва­те­лем ceph гене­ри­ру­ем ssh клю­чи и копи­ру­ем пуб­лич­ные на все ноды:

[root@swarm_node1_183 ~]# su - ceph
[ceph@swarm_node1_183 ~]$ cd /var/ceph-adminDIR/
[ceph@swarm_node1_183 ceph-adminDIR]$ ssh-keygen               #здесь пароль не вводим
ssh-copy-id ceph@192.168.1.184
ssh-copy-id ceph@192.168.1.185

 

Созда­ем новый кластер:
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy new swarm_node1_183 swarm_node2_184 swarm_node3_185

 

если у вас в систе­ме более 2 сете­вых интер­фей­сов, и нуж­но ука­зать какую под­сеть исполь­зо­вать, то для это­го добав­ля­ем в файл:
[ceph@swarm_node1_183 ceph-adminDIR]$ vim /var/ceph-adminDIR/ceph.conf

нашу под­сеть:
public_network = 192.168.1.0/24

что­бы кон­фиг при­нял сле­ду­ю­щий вид:
[ceph@swarm_node1_183 ceph-adminDIR]$ cat /var/ceph-adminDIR/ceph.conf

[spoiler][global]
fsid = 4e3f0791-34d7-4576-add4-ec632275fb3f
mon_initial_members = swarm_node1_183, swarm_node2_184, swarm_node3_185
mon_host = 192.168.1.183,192.168.1.184,192.168.1.185
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd pool default size = 2
public_network = 192.168.1.0/24

[/spoiler]

osd pool default size = 2  озна­ча­ет что 2 пула эт норм

Уста­нав­ли­ва­ем Ceph на все узлы кластера:
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy install swarm_node1_183 swarm_node2_184 swarm_node3_185

 

Созда­ние и запуск мони­то­ров. Выпол­ним началь­ную настрой­ку сер­ве­ра мони­то­ра Ceph:
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy mon create-initial

 

если необ­хо­ди­мо вне­сти изме­не­ния в кон­фиг ceph.conf, то после изме­не­ния пере­за­пус­ка­ем созда­ние мони­то­ров с обнов­лён­ным конфигом:
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy --overwrite-conf mon create swarm_node1_183 swarm_node2_184 swarm_node3_185

 

так­же мож­но исполь­зо­вать сле­ду­ю­щие коман­ды что­бы толь­ко обно­вить кон­фи­гу­ра­ци­он­ный файл:

ceph-deploy --overwrite-conf config push swarm_node1_183 swarm_node2_184 swarm_node3_185

ceph-deploy --overwrite-conf config push 192.168.1.183

 

Для того что­бы под­го­то­вить, раз­вер­нуть и акти­ви­ро­вать OSD мож­но вос­поль­зо­вать­ся одной коман­дой create
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy osd create --data vg-ceph/ceph swarm_node1_183
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy osd create --data vg-ceph/ceph swarm_node2_184
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy osd create --data vg-ceph/ceph swarm_node3_185

 

Доба­вим ноды в мониторинг

[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy mon add swarm_node1_183
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy mon add swarm_node2_184
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy mon add swarm_node3_185

 

Ско­пи­ру­ем клю­чи и кон­фи­гу­ра­ци­он­ный файл на ноды:

[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy admin swarm_node1_183 swarm_node2_184 swarm_node3_185

 

на всех нодах доба­вим права:
chmod +r /etc/ceph/ceph.client.admin.keyring

Доба­вим ceph-mgr (Manager daemon) — сер­вис кото­рый стал обя­за­тель­ным с вер­сии Luminous
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy mgr create swarm_node1_183
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy mgr create swarm_node2_184
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy mgr create swarm_node3_185

После добав­ля­ем в авто­за­груз­ку на всех нодах:
systemctl enable ceph-mgr@*.service
и стартуем:
systemctl start ceph-mgr@*.service

Так­же запускаем:
systemctl start rbdmap.service

 

 

Дис­ки, доступ­ные на сер­ве­ре мож­но посмот­реть сле­ду­ю­щей коман­дой:

[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy disk list swarm_node2_184

[spoiler]

[ceph_deploy.conf][DEBUG ] found configuration file at: /home/ceph/.cephdeploy.conf
[ceph_deploy.cli][INFO ] Invoked (2.0.1): /bin/ceph-deploy disk list swarm_node2_184
[ceph_deploy.cli][INFO ] ceph-deploy options:
[ceph_deploy.cli][INFO ] username : None
[ceph_deploy.cli][INFO ] verbose : False
[ceph_deploy.cli][INFO ] debug : False
[ceph_deploy.cli][INFO ] overwrite_conf : False
[ceph_deploy.cli][INFO ] subcommand : list
[ceph_deploy.cli][INFO ] quiet : False
[ceph_deploy.cli][INFO ] cd_conf : <ceph_deploy.conf.cephdeploy.Conf instance at 0x7f6a6efe0cb0>
[ceph_deploy.cli][INFO ] cluster : ceph
[ceph_deploy.cli][INFO ] host : ['swarm_node2_184']
[ceph_deploy.cli][INFO ] func : <function disk at 0x7f6a6f222938>
[ceph_deploy.cli][INFO ] ceph_conf : None
[ceph_deploy.cli][INFO ] default_release : False
[swarm_node2_184][DEBUG ] connection detected need for sudo
[swarm_node2_184][DEBUG ] connected to host: swarm_node2_184
[swarm_node2_184][DEBUG ] detect platform information from remote host
[swarm_node2_184][DEBUG ] detect machine type
[swarm_node2_184][DEBUG ] find the location of an executable
[swarm_node2_184][INFO ] Running command: sudo fdisk -l
[swarm_node2_184][INFO ] Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
[swarm_node2_184][INFO ] Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
[swarm_node2_184][INFO ] Disk /dev/mapper/centos-root: 2147 MB, 2147483648 bytes, 4194304 sectors
[swarm_node2_184][INFO ] Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
[swarm_node2_184][INFO ] Disk /dev/mapper/centos-usr: 4999 MB, 4999610368 bytes, 9764864 sectors
[swarm_node2_184][INFO ] Disk /dev/mapper/centos-home: 1073 MB, 1073741824 bytes, 2097152 sectors
[swarm_node2_184][INFO ] Disk /dev/mapper/centos-var: 4999 MB, 4999610368 bytes, 9764864 sectors
[swarm_node2_184][INFO ] Disk /dev/mapper/vg--ceph-ceph: 5368 MB, 5368709120 bytes, 10485760 sectors
[/spoiler]

 

Про­ве­рим что каж­дый мони­тор под­клю­чил­ся к кворуму:

[ceph@swarm_node1_183 ceph-adminDIR]$ ceph mon stat
e1: 3 mons at {swarm_node1_183=192.168.1.183:6789/0,swarm_node2_184=192.168.1.184:6789/0,swarm_node3_185=192.168.1.185:6789/0}, election epoch 16, leader 0 swarm_node1_183, quorum 0,1,2 swarm_node1_183,swarm_node2_184,swarm_node3_185

 

Основная настройка закончилась теперь создадим POOL

[ceph@swarm_node1_183 ceph-adminDIR]$ ceph osd pool create rbd 128 128
pool 'rbd' created

 

  • менее OSD - зна­че­ние pg_num и pgp_num ста­вим 128;
  • от 5 до 10 OSD - зна­че­ние pg_num и pgp_num ста­вим 512;
  • от 10 до 50 OSD - зна­че­ние pg_num и pgp_num ста­вим 4096;

что­бы после пере­за­груз­ки не выпол­нять­ся команду
modprobe rbd
нуж­но создать файл
/etc/modules-load.d/rbd.conf   с содер­жи­мым rbd

 

[ceph@swarm_node1_183 ceph-adminDIR]$ rbd pool init rbd

Посмот­реть все пулы:

ceph osd lspools

[ceph@swarm_node1_183 ceph-adminDIR]$ ceph osd lspools
1 rbd

 

[ceph@swarm_node1_183 ceph-adminDIR]$ rbd create swarm --size 1024 # коман­да для при­ме­ра созда­ния блоч­но­го устрой­ства с име­нем swarm

 

modprobe rbd # запу­стить на каж­дой ноде, где сто­ит кли­ент ceph

Про­ве­ря­ем что дан­ное устрой­ство было создано:

[ceph@swarm_node1_183 ceph-adminDIR]$ rbd ls
swarm
[root@swarm_node2_184 ~]# rbd ls
swarm
[root@swarm_node3_185 ~]# rbd ls
swarm

посмот­рим инфор­ма­цию о устройстве:
[ceph@swarm_node1_183 ceph-adminDIR]$ rbd info swarm

[spoiler]

[/spoiler]

 

Оста­но­вить все демо­ны ceph:

systemctl stop ceph\*.service

systemctl stop ceph\*.target

Запу­стить все демо­ны ceph:

systemctl start ceph\*.service

systemctl start ceph\*.target

Так­же запускаем:
systemctl start rbdmap.service

Установка клиента Ceph

Если необ­хо­ди­мо уста­но­вить кли­ен­та на сто­рон­нем сер­ве­ре, то на узле адми­ни­стра­то­ра исполь­зуй­те инстру­мент

ceph-deploy из пап­ки кла­сте­ра, что­бы уста­но­вить ceph-client на толь­ко что создан­ной кли­ент­ской вир­ту­аль­ной машине.

(ПРЕДВАРИТЕЛЬНО необ­хо­ди­мо доба­вить репо­зи­то­рий и уста­но­вить ceph)

добав­ля­ем поль­зо­ва­те­ля ceph на все ноды
adduser ceph
groupadd ceph
добав­ля­ем его в груп­пу wheel
usermod -a -G wheel ceph
id ceph
uid=1002(ceph) gid=10(wheel) groups=10(wheel),1000(ceph)

и добав­ля­ем груп­пу в sudo:
%wheel ALL=(ALL) NOPASSWD: ALL

ста­вим пароль на пользователя(на всех нодах)
passwd ceph

ста­вим пакет:
yum install -y yum-plugin-priorities
yum install -y yum-utils

 

vim /etc/yum.repos.d/ceph-deploy.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

 

 

Теперь под­клю­ча­ем­ся к ноде с кото­рой про­из­во­ди­лась уста­нов­ка кла­сте­ра и под поль­зо­ва­те­лем ceph
рас­ки­ды­ва­ем на кли­ен­ты ssh ключи:

ceph-deploy install {client ip or hostname}

[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy install swarm_master1_180 
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy install swarm_master2_181
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy install swarm_master3_182

Теперь настрой­те кли­ент так, что­бы он мог под­клю­чать­ся к кла­сте­ру.

ceph-deploy admin {client ip or hostname}

[ceph@swarm_node1_183 ceph-adminDIR]$ ceph-deploy admin swarm_master1_180 swarm_master2_181 swarm_master3_182

ceph-authtool -p /etc/ceph/ceph.client.admin.keyring > /etc/ceph/ceph.key

Уста­нов­ка ceph кла­сте­ра для блоч­ных устройств закончена.

========================================

 

 

Создание блочного устройства и монтирование в Docker

Ста­вим пла­гин Docker для рабо­ты с блоч­ны­ми устройствами(на все ноды)

docker plugin install rexray/rbd

docker plugin ls

ID                                   NAME                                    DESCRIPTION                ENABLED

b0550a38f1d2        rexray/rbd:latest                       REX-Ray for Ceph RBD       false

 

Если отклю­чен включаем

docker plugin enable rexray/rbd

про­ве­ря­ем:

[root@swarm_node1_183 ~]# docker volume create -d rexray/rbd -o name=nginx -o monitors=swarm_node1_183:6789,swarm_node2_184:6789,swarm_node3_184:6789 -o mds_namespace=test

На любом из мони­то­ра Ceph можем посмот­реть дан­ный раз­дел командой
rbd info cephfs_data1

для про­вер­ки запус­ка­ем кон­тей­нер и про­ки­ды­ва­ем наш volume
[root@swarm_master1_180 ~]# docker container run -d --volume-driver rexray/rbd -v cephfs_data1:/data nginx
Здесь для клю­ча volume-driver мы ука­за­ли постав­лен­ный нами пла­гин rexray/rbd, в каче­стве volume создан­ный нами cephfs_data1, data(мож­но ука­зать tmp)-это куда будет мон­ти­ро­вать­ся дан­ный volume внут­ри кон­тей­не­ра, ну и соб­ствен­но, nginx - сам docker-image.

 

Если кон­тей­нер запу­стил­ся, то можем про­ве­рить всё ли кор­рект­но смонтировалось.
Для это­го попро­бу­ем смон­ти­ро­вать создан­ный volume, как блоч­ное устрой­ство в фай­ло­вую систе­му само­го сервера(там где у нас сто­ит докер и запу­щен контейнер,
[root@swarm_master1_180 ~]# mount /dev/rbd/rbd/cephfs_data1 /mnt/

[root@swarm_master1_180 ~]# df -h | grep mnt
/dev/rbd0 16G 45M 15G 1% /mnt

Захо­дим в дирек­то­рию /mnt/data и созда­ём файл.
[root@swarm_master1_180 ~]# cd /mnt/data/
[root@swarm_master1_180 data]# echo "WORK mother facker" > 1.txt

Далее захо­дим в сам кон­тей­нер и про­ве­ря­ем появил­ся ли у нас создан­ный файл

и раз­мон­ти­ру­ем блоч­ное устройство
[root@swarm_master1_180 ~]# umount /mnt/

Запус­ка­ем кон­тей­нер и про­ки­ды­ва­ем volume в него:

[root@swarm_node1_183 ~]# docker container run -d --volume-driver rexray/rbd -v cephfs_data1:/data nginx

если при мон­ти­ро­ва­нии воз­ник­нет сле­ду­ю­щая ошибка:
[root@swarm_node1_183 ~]# docker container run -d --volume-driver rexray/rbd -v cephfs_data1:/data nginx
77e83366b2e4cda90e84c5acc97372dd685269d421685df8e5e58b1159474199
docker: Error response from daemon: error while mounting volume '': VolumeDriver.Mount: docker-legacy: Mount: cephfs_data1: failed: unable to map rbd.

то необ­хо­ди­мо запу­стить сле­ду­ю­щую команду:
[root@swarm_node1_183 ~]# rbd map cephfs_data1
/dev/rbd0

запус­ка­ем кон­тей­нер коман­дой выше и захо­дим в него:

 

7ff07f7fe700 0 -- 192.168.1.183:0/2751460566 >> 192.168.1.183:6804/1012 conn(0x7ff068005640 :-1 s=STATE_CONNECTING_WAIT_CONNECT_REPLY_AUTH pgs=0 cs=0 l=1).handle_connect_reply connect got BADAUTHORIZER

systemctl restart ceph.target

==============================

если необ­хо­ди­мо уда­лить osd

[ceph@swarm_node1_183 ceph-adminDIR]$ ceph osd out osd.3
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph osd down osd.3
[ceph@swarm_node1_183 ceph-adminDIR]$ sudo systemctl stop ceph-osd@3
[ceph@swarm_node1_183 ceph-adminDIR]$ ceph osd rm osd.3
если ста­тус DNE то:

[ceph@swarm_node1_183 ceph-adminDIR]$ ceph osd crush rm osd.3

[root@swarm_node1_183 ~]# ceph auth list
[root@swarm_node1_183 ~]# ceph auth del osd.3