1.051
Bearbeitungen
(Die Seite wurde neu angelegt: „==Quellen== https://docs.ceph.com/en/latest/rados/configuration/ceph-conf/ https://ceph.io/en/news/blog/2022/install-ceph-in-a-raspberrypi-4-cluster/ https://opensource.com/article/21/1/ceph-raspberry-pi https://docs.ceph.com/en/latest/cephadm/install/“) |
KKeine Bearbeitungszusammenfassung |
||
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
==Installation == | |||
===Hardware=== | |||
'''Minimal''' | |||
*3x Raspbarry-Pi 4 4GB | |||
*3x microSD Karte (Betriebssystem) | |||
*3x SSD mit USB3.0 Adapter (OBD Storage) | |||
'''Empfohlen''' | |||
*3x Raspbarry-Pi 4 8GB | |||
*6x SSD mit USB3.0 Adapter (Betriebssystem, OBD Storage) | |||
'''Optional''' | |||
*PoE HAT für Raspberry | |||
''Falls kein PoE HAT verwendet wird sollten die Raspberrys unbedingt anderweitig gekühlt werden!'' | |||
===SD Karten vorbereiten=== | |||
#Die neuste Version von [https://downloads.raspberrypi.org/raspios_lite_arm64/images/ Raspberry Pi OS Lite (64 Bit)] herunterladen. | |||
#Die heruntergeladene *.zip-Datei kann direkt mit dem [https://downloads.raspberrypi.org/imager/imager_latest.exe Raspberry Pi Imager] auf die SD-Karte oder die SSD geschrieben werden. | |||
''Tipp: In der neusten Version vom Imager kann man vor dem Flashen bereits einige Einstellungen vornehmen (Hostname, SSH, Tastaturlayout, usw.)'' | |||
'''''Hier empfiehlt es sich insbesondere den SSH Zugang zu aktiveren und damit gleichzeitig einen Benutzer anzulegen.''''' | |||
===Systemeinstellungen=== | |||
==== Root-Passwort setzen ==== | |||
Zunächst sollte ein Passwort für den Root-Benutzer festgelegt und anschließend zu diesem gewechselt werden:<syntaxhighlight lang="bash"> | |||
sudo passwd root | |||
su - | |||
</syntaxhighlight> | |||
==== SSH via root erlauben ==== | |||
<syntaxhighlight lang="bash"> | |||
vi /etc/ssh/sshd_config | |||
</syntaxhighlight><syntaxhighlight lang="bash"> | |||
# Den Eintrag finden | |||
#PermitRootLogin prohibit-password | |||
# Aktivieren und auf 'yes' ändern | |||
PermitRootLogin yes | |||
</syntaxhighlight> | |||
====Feste IP einrichten (/etc/dhcpcd.conf)==== | |||
Damit sich die Ceph-Nodes nach dem nächsten DHCP-Lease noch verständigen können, setzen wir bei allen eine statische IP. | |||
Dafür editieren wir die Datei <code>/etc/dhcpcd.conf</code>:<syntaxhighlight lang="bash"> | |||
sudo vi /etc/dhcpcd.conf | |||
</syntaxhighlight>Dort suchen wir nun nach folgendem Eintrag:<syntaxhighlight lang="bash"> | |||
# Example static IP configuration: | |||
#interface eth0 | |||
#static ip_address=192.168.0.10/24 | |||
#static ip6_address=fd51:42f8:caae:d92e::ff/64 | |||
#static routers=192.168.0.1 | |||
#static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1 | |||
</syntaxhighlight>Nun werden die zur Konfiguration notwendigen Zeilen aktiviert, indem das # entfernt wird und die Adressen entsprechend des eigenen Netzwerkes angepasst. | |||
Am Ende sollte das Ganze in etwa so aussehen:<syntaxhighlight lang="bash"> | |||
# Example static IP configuration: | |||
interface eth0 | |||
static ip_address=192.168.0.90/24 | |||
#static ip6_address=fd51:42f8:caae:d92e::ff/64 | |||
static routers=192.168.0.1 | |||
static domain_name_servers=192.168.0.1 1.1.1.1 | |||
</syntaxhighlight>Damit diese Einstellung wirksam wird, muss der Raspberry neu gestartet werden. | |||
'''Wenn ihr einen Fehler in der Konfiguration gemacht habt, kommt ihr danach nicht mehr per SSH auf euren Raspberry!'''<syntaxhighlight lang="bash"> | |||
sudo reboot | |||
</syntaxhighlight>Erledigt! | |||
Jetzt könnt ihr euch per SSH mit der festgelegten IP verbinden. | |||
====Hostnamen setzen (/etc/hostname)==== | |||
''Falls im Imager bereits der Hostname gesetzt wurde kann dieser Punkt übersprungen werden.'' | |||
Als Erstes setzen wir einen Hostnamen für unseren Proxmox Node. Dafür editieren wir die Datei <code>/etc/hostname</code>.<syntaxhighlight lang="bash"> | |||
sudo vi /etc/hostname | |||
</syntaxhighlight>Hier wird nun der gewünschte Hostname eingetragen. In meinem Fall habe ich mich für '''cephpi-a''' entschieden. | |||
Der zweite Raspberry wäre dementsprechend '''cephpi-b''', u.s.w. | |||
====Hosts eintragen (/etc/hosts)==== | |||
Nun werden auf '''jedem''' Raspberry die Hostnamen '''aller''' Cluster Nodes eingetragen. | |||
Dazu editieren wir die Datei <code>/etc/hosts</code>. | |||
Am Anfang sieht diese ungefähr so aus:<syntaxhighlight lang="bash"> | |||
127.0.0.1 localhost | |||
::1 localhost ip6-localhost ip6-loopback | |||
ff02::1 ip6-allnodes | |||
ff02::2 ip6-allrouters | |||
127.0.1.1 ClusterPi-1 | |||
</syntaxhighlight>Die IPv6 Einträge können ruhigen gewissen gelöscht werden. | |||
Am wichtigsten ist es aber den Eintrag '''"127.0.1.1 cephpi-a"''' zu entfernen, da der Cluster mit den absoluten Adressen arbeiten soll. | |||
Danach werden die Hostnamen der Nodes hinzugefügt, so dass es am Ende so aussehen sollte:<syntaxhighlight lang="bash"> | |||
127.0.0.1 localhost | |||
192.168.0.90 cephpi-a | |||
192.168.0.91 cephpi-b | |||
192.168.0.92 cephpi-c | |||
</syntaxhighlight> | |||
==== Abhängigkeiten installieren ==== | |||
<syntaxhighlight lang="bash"> | |||
apt update | |||
apt upgrade | |||
</syntaxhighlight>Die Abhängigkeiten 'lvm2' und 'Docker' installieren:<syntaxhighlight lang="bash"> | |||
apt install lvm2 | |||
curl -sSL https://get.docker.com | sh | |||
</syntaxhighlight><syntaxhighlight lang="bash"> | |||
systemctl enable --now docker | |||
</syntaxhighlight> | |||
===Ceph installieren (1. Node)=== | |||
'''Diese Installation ist nur beim ersten Node notwendig!''' | |||
Cephadm herunterladen und ausführbar machen:<syntaxhighlight lang="bash"> | |||
curl --silent --remote-name --location https://github.com/ceph/ceph/raw/pacific/src/cephadm/cephadm | |||
chmod +x cephadm | |||
</syntaxhighlight>Jetzt kann mit Cephadm die Installation gestartet werden:<syntaxhighlight lang="bash"> | |||
./cephadm bootstrap --mon-ip <Node IP> | |||
</syntaxhighlight>'''Hinweis zum Monitoring:''' | |||
Das Monitoring beinhaltet einen Prometheus & Grafana Server. | |||
Zusammen liefern diese etliche Statistiken zu den OSDs, Pools, Hosts, etc und dienen auch der Generierung von Alarm-Meldungen. | |||
Wer Speicher, CPU oder RAM sparen möchte, kann zum deaktivieren einfach <code>--skip-monitoring-stack</code> ans Ende des Befehls hängen. | |||
Nach der Installation sollte das Ceph Dashboard unter folgender URL erreichbar sein: | |||
https://<Node-IP>:8443/ | |||
===Weitere Nodes installieren=== | |||
Alle Punkte unter '''Systemeinstellungen''' sollten bereits ausgeführt sein! | |||
Zuerst muss das Ceph SSH Zertifikat auf die neuen Nodes übertragen werden. | |||
Dazu auf dem 1. Node folgenden Befehl ausführen: | |||
Als Adresse die anderen Nodes auswählen, z.B. cephpi-b<syntaxhighlight lang="bash"> | |||
ssh-copy-id -f -i /etc/ceph/ceph.pub root@cephpi-b | |||
</syntaxhighlight> | |||
Als Adresse die anderen Nodes auswählen, z.B. cephpi-b | |||
Danach im Ceph Dashboard unter '''Cluster -> Host''' den neuen Node hinzufügen. | |||
Die weitere Installation geschieht automatisch per SSH und könnte ein paar Minuten dauern. | |||
==Quellen== | ==Quellen== | ||
https://docs.ceph.com/en/latest/rados/configuration/ceph-conf/ | https://docs.ceph.com/en/latest/rados/configuration/ceph-conf/ |