====== 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