ceph
Если будешь ставить через cephadm, то качай версию pacific, почему-то более новые не работают.
Удобный установщик: https://git.lulzette.ru/lulzette/ceph-installer
сервисы
- osd: хранение данных
- mon: условно, controlplane, управляет данными, балансирует данные, управляет кворумом, метаданные тоже тут
- mgr: These include the Ceph Dashboard and the cephadm manager module, фигня на питоне которая дает дашборд, прометеус, restful api и всякую такую некритичную для работы кластера фигню
Как организовано хранение?
- Хосты с ролью OSD
- OSDшки (абстракция на уровне Ceph'а): 1 OSD на 1 Диск хоста, т.е. 10 дисков - 10 OSD на одном хосте
- PG (Placement Group): Группа размещения, т.е. на каких OSD размещать объекты Ceph'а (не путать с объектом на уровне S3/swift/rgw). Также есть Карта OSD, которая ассоциирована с PG, в ней указана одна Primary OSD и одна или несколько Replica OSD. Вся работа происходит с Primary OSD, а синк данных на реплики идет асинхронно.
Куда файлы засовывать?
Есть 3 разных хранилища (?):
- cephfs
- RBD (Rados Block Device)
- S3/Swift который предоставляется Rados Gateway
- Rados/librados - библиотека для твоего приложения которая может общаться с радосом минуя промежуточные RBD/S3/Swift
Проверить:
- Рассинхронизация времени на хоста
- See also:
https://bogachev.biz/2017/08/23/zametki-administratora-ceph-chast-1/
CephFS
Поднять MDS - сервер метаданных
Вообще достаточно просто
# mon
ceph fs volume create cephfs
root@microceph:~# ceph config generate-minimal-conf
# minimal ceph.conf for 56db00e1-912c-4ac1-9d1a-1f4194c55834
[global]
fsid = 56db00e1-912c-4ac1-9d1a-1f4194c55834
mon_host = [v2:10.99.99.74:3300/0,v1:10.99.99.74:6789/0]
root@microceph:~# ceph fs authorize cephfs client.foo / rw
[client.foo]
key = AQCGVs5lyBLmIxAApqSed51BlHOvQlyawvG2Uw==
# client
root@test0:~# mkdir /etc/ceph
root@test0:~# vim /etc/ceph/ceph.conf
root@test0:~# vim /etc/ceph/ceph.client.foo.keyring
root@test0:~# chmod 644 /etc/ceph/ceph.conf
root@test0:~# chmod 600 /etc/ceph/ceph.client.foo.keyring