1.051
Bearbeitungen
KKeine Bearbeitungszusammenfassung |
|||
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 21: | Zeile 21: | ||
===Systemeinstellungen=== | ===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"> | Zunächst sollte ein Passwort für den Root-Benutzer festgelegt und anschließend zu diesem gewechselt werden:<syntaxhighlight lang="bash"> | ||
sudo passwd root | sudo passwd root | ||
su - | su - | ||
</syntaxhighlight> | </syntaxhighlight> | ||
vi /etc/dhcpcd.conf | |||
</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: | # Example static IP configuration: | ||
interface eth0 | interface eth0 | ||
Zeile 34: | Zeile 63: | ||
static domain_name_servers=192.168.0.1 1.1.1.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> | </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/ |