====== Ceph ======
Storage!
* Sinnvollerweise werden mindestens drei Maschinen benötigt
* Mindestens drei Netzwerkinterfaces: Normal, Storage und Mirror
Installation der Server mit einem minimalen Devuan.
Zusatzpakete
apt-get install selinux-utils
Anschließend Ceph-Pakete installieren
TODO Link!
Ceph-Keyring nach ''bootstrap-osd'' kopieren
===== Konfigurationsarbeiten =====
Neuen Server in die Hierarchie einfügen
- Erstellen des Objekts
ceph osd crush add-bucket ceph-05 host
- Verschieben an die gewünschte Position
ceph osd crush move ceph-05 root=default
- Monitoren mit [[Zabbix]]
ceph mgr module enable zabbix
ceph zabbix config-set zabbix_host zabbix.localdomain
ceph zabbix config-set identifier ceph.local
ceph zabbix config-show
Falls es Schwierigkeiten bei der Ausführung der Init-Scripte gibt,
so kann Ausführen von ''update-rc.d'' Abhilfe schaffen.
Zusätzliche Boot-meldungen können mit ''bootlogd'' nach
''/var/log/boot'' protokolliert werden.
===== Erstellen eines neuen OSDs =====
Für den OSD ist eine dedizierte Harddisk und eine 30GB-Partition auf einer SSD vorhanden.
Letztere wird erstellt mit:
sgdisk --new=0:0:+30G --change-name=0:'ceph journal' \
--typecode=0:45b0969e-9b03-4f30-b4c6-b4b80ceff106 \
--mbrtogpt -- /dev/sdg
Es kann auch ''cfdisk'' verwendet werden. Der Partitionsname kann dabei aber
nicht angegeben werden. Das kann dann mit ''sgdisk'' nachgeholt werden.
Hinweis: Partitionsnummern bei ''sgdisk'' beginnen bei 1.
sgdisk -c 1:"ceph journal" /dev/sdg
Erstellen des OSDs, wenn kein WAL angegeben wird, so liegt sie zusammen mit der DB auf der SSD
ceph-volume lvm create --no-systemd --bluestore --data /dev/sdb --block.db=/dev/sdg1
Die Angabe des Block-DB-Gerätes mit einfachem Gerätenamen funktioniert ist jedoch ggf.
unschön. Besser den Gerätenamen aus ''/dev/disk/by-partuuid'' ermitteln.
''blkid'' hilft dabei.
Anschließend die OSD-UUID ermitteln und einen Eintrag in der ''ceph.conf''
vornehmen.
cat /var/lib/ceph/osd/ceph-26/fsid
[osd.26]
host = ceph-02
public addr = 192.168.5.2
cluster addr = 192.168.6.2
osd_uuid = 8ac32f08-b63b-4593-b05f-bfdee6deec83
OSD starten, die neue Platte sollte sich unter dem Host einsortieren
/etc/init.d/ceph start osd.26
Prüfe mit
ceph osd tree
Die Metadaten des OSD sind als LVM-Tags gespeichert, anzusehen mit z.B.:
lvs -o lv_tags
Damit die Ceph-Prozesse starten können benötigen sie Zugriff auf ''/run/ceph''.
Prüfe ob das im Init-Script vorgesehen ist, es könnte wie folgt aussehen:
if [ ! -d $run_dir ]; then
install -d -m0770 -o ceph -g ceph $run_dir
fi
===== Tips und Kommandos =====
ceph auth add osd.2 osd 'allow *' mon 'allow rwx' -i /var/lib/ceph/osd/ceph-2/keyring
ceph osd crush add osd.2
ceph osd crush reweight osd.2 1.8
===== Failure-Domain / Buckets =====
ceph osd crush add-bucket raum1 room
ceph osd crush add-bucket raum2 room
ceph osd crush add-bucket maum3 room
ceph osd crush move raum1 root=default
ceph osd crush move raum2 root=default
ceph osd crush move rau,3 root=default
ceph osd crush move osd.0 room=raum1