Inhaltsverzeichnis

Ceph

Storage!

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

  1. Erstellen des Objekts
    ceph osd crush add-bucket ceph-05 host
  2. Verschieben an die gewünschte Position
    ceph osd crush move ceph-05 root=default
  3. 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
ceph.conf
[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