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