BerryBase
  • Shop
  • Raspberry Pi
  • Projekte
    • Alle
    • Audio / Sound
    • Display
    • Fun
    • IoT / Smart Tech
    • Kamera
    • LED
    • Luft / Wetter
    • Software
    Kompilierung eines eigenen Linux-Kernels für den Raspberry Pi 5

    Kompilierung eines eigenen Linux-Kernels für den Raspberry Pi 5

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    Arduino Projekte-Ideen für den Sommer

    Arduino Projekte-Ideen für den Sommer

    DIY-Projekte für die Rasenpflege: Raspberry Pi Mähroboter und Sprinkler

    DIY-Projekte für die Rasenpflege: Raspberry Pi Mähroboter und Sprinkler

    Smart Home mit Shelly, JSON und Node Red: Leitfaden zur Installation und Programmierung

    Smart Home mit Shelly, JSON und Node Red: Leitfaden zur Installation und Programmierung

    Sprachassistenten mit Picovoice’s On-Device LLM-Technologie erstellen

    Sprachassistenten mit Picovoice’s On-Device LLM-Technologie erstellen

    Raspberry Pi Projekte für den Frühling

    Raspberry Pi Projekte für den Frühling

    Arduino GIGA R1 Display S

    Integration von ChatGPT mit Arduino GIGA R1 – Leitfaden

    Poetry Camera

    Poetry Camera mit Raspberry Pi Zero 2 W und Pi Camera Modul

    • Audio / Sound
    • Display
    • Fun
    • IoT / Smart Tech
    • Kamera
    • LED
    • Luft / Wetter
    • Software
  • Themen
    • Alle
    • Arduino
    • ESP
    • Hausautomation
    • IoT
    • Raspberry Pi
    • Robotik
    • Sensoren & Aktoren
    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Arduino

    Ist Arduino-Programmierung schwer zu lernen? – Ein Leitfaden für Anfänger

    Objekterkennung mit Raspberry Pi 5 und Hailo AI Kit: Sicherheitshelm-Erkennung

    Objekterkennung mit Raspberry Pi 5 und Hailo AI Kit: Sicherheitshelm-Erkennung

    Pineboards HatDrive! Nano: Revolutionäre Speicherlösung für Raspberry Pi 5

    PiNEBOARDS HatDrive! NANO: Der ultimative Vergleich mit dem Raspberry Pi M.2 HAT+

    Datenschutzkonforme Smart Home Sicherheit für Airbnb mit Aqara

    Datenschutzkonforme Smart Home Sicherheit für Airbnb mit Aqara

    Arduino Plug and Make Kit: Dein idealer Einstieg in die Welt des IoT

    Arduino Plug and Make Kit: Dein idealer Einstieg in die Welt des IoT

    • Raspberry Pi
    • Arduino
    • ESP
    • Sensoren & Aktoren
    • IoT
    • Hausautomation
  • Kaufberatung
    • Alle
    • Produkte
    • Reviews
    • Top 10 Listen
    • Unboxing
    Fischertechnik Maker Kits – Neuheiten für die DIY- und Maker-Szene

    Fischertechnik Maker Kits – Neuheiten für die DIY- und Maker-Szene

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    PiNEBOARDS HATs im Test: Erweiterungsmöglichkeiten für den Raspberry Pi 5

    PiNEBOARDS HATs im Test: Erweiterungsmöglichkeiten für den Raspberry Pi 5

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    DisplayPort vs. HDMI: Welches Kabel passt zu dir?

    DisplayPort vs. HDMI: Welches Kabel passt zu dir?

    Raspberry Pi 5 Anschluss

    Raspberry Pi 5: Neue 2GB-Variante für nur 55 Euro veröffentlicht

    Einführung: Nutze das Raspberry Pi 5 und AI Kit für leistungsstarke KI-Projekte

    Einführung: Nutze das Raspberry Pi 5 und AI Kit für leistungsstarke KI-Projekte

    Pineboards HatDrive! Nano: Revolutionäre Speicherlösung für Raspberry Pi 5

    PiNEBOARDS HatDrive! NANO: Der ultimative Vergleich mit dem Raspberry Pi M.2 HAT+

    • Produkte
  • How To
    • Alle
    • Guides
    • Software / Programmierung
    • Wissensdatenbank
    Apache Guacamole: Die clientlose Remote-Desktop-Lösung installieren und einrichten

    Apache Guacamole: Die clientlose Remote-Desktop-Lösung installieren und einrichten

    Steam Link auf dem Raspberry Pi 5 installieren: Offizielle Methode & Docker-Alternative

    Steam Link auf dem Raspberry Pi 5 installieren: Offizielle Methode & Docker-Alternative

    Scratch 3.0 – Spielerisch Programmieren lernen

    Scratch 3.0 – Spielerisch Programmieren lernen

    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    Vaultwarden als Passwort-Safe mit Docker und Portainer installieren

    Vaultwarden als Passwort-Safe mit Docker und Portainer installieren

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Widerstand Farbcode: Einfache Erklärung, Tabelle und Beispiele

    Widerstand Farbcode: Einfache Erklärung, Tabelle und Beispiele

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    • Guides
    • Wissensdatenbank
    • Software / Programmierung
  • News
Keine Ergebnisse
Alle Ergebnisse anzeigen
  • Shop
  • Raspberry Pi
  • Projekte
    • Alle
    • Audio / Sound
    • Display
    • Fun
    • IoT / Smart Tech
    • Kamera
    • LED
    • Luft / Wetter
    • Software
    Kompilierung eines eigenen Linux-Kernels für den Raspberry Pi 5

    Kompilierung eines eigenen Linux-Kernels für den Raspberry Pi 5

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    Arduino Projekte-Ideen für den Sommer

    Arduino Projekte-Ideen für den Sommer

    DIY-Projekte für die Rasenpflege: Raspberry Pi Mähroboter und Sprinkler

    DIY-Projekte für die Rasenpflege: Raspberry Pi Mähroboter und Sprinkler

    Smart Home mit Shelly, JSON und Node Red: Leitfaden zur Installation und Programmierung

    Smart Home mit Shelly, JSON und Node Red: Leitfaden zur Installation und Programmierung

    Sprachassistenten mit Picovoice’s On-Device LLM-Technologie erstellen

    Sprachassistenten mit Picovoice’s On-Device LLM-Technologie erstellen

    Raspberry Pi Projekte für den Frühling

    Raspberry Pi Projekte für den Frühling

    Arduino GIGA R1 Display S

    Integration von ChatGPT mit Arduino GIGA R1 – Leitfaden

    Poetry Camera

    Poetry Camera mit Raspberry Pi Zero 2 W und Pi Camera Modul

    • Audio / Sound
    • Display
    • Fun
    • IoT / Smart Tech
    • Kamera
    • LED
    • Luft / Wetter
    • Software
  • Themen
    • Alle
    • Arduino
    • ESP
    • Hausautomation
    • IoT
    • Raspberry Pi
    • Robotik
    • Sensoren & Aktoren
    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Arduino

    Ist Arduino-Programmierung schwer zu lernen? – Ein Leitfaden für Anfänger

    Objekterkennung mit Raspberry Pi 5 und Hailo AI Kit: Sicherheitshelm-Erkennung

    Objekterkennung mit Raspberry Pi 5 und Hailo AI Kit: Sicherheitshelm-Erkennung

    Pineboards HatDrive! Nano: Revolutionäre Speicherlösung für Raspberry Pi 5

    PiNEBOARDS HatDrive! NANO: Der ultimative Vergleich mit dem Raspberry Pi M.2 HAT+

    Datenschutzkonforme Smart Home Sicherheit für Airbnb mit Aqara

    Datenschutzkonforme Smart Home Sicherheit für Airbnb mit Aqara

    Arduino Plug and Make Kit: Dein idealer Einstieg in die Welt des IoT

    Arduino Plug and Make Kit: Dein idealer Einstieg in die Welt des IoT

    • Raspberry Pi
    • Arduino
    • ESP
    • Sensoren & Aktoren
    • IoT
    • Hausautomation
  • Kaufberatung
    • Alle
    • Produkte
    • Reviews
    • Top 10 Listen
    • Unboxing
    Fischertechnik Maker Kits – Neuheiten für die DIY- und Maker-Szene

    Fischertechnik Maker Kits – Neuheiten für die DIY- und Maker-Szene

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    PiNEBOARDS HATs im Test: Erweiterungsmöglichkeiten für den Raspberry Pi 5

    PiNEBOARDS HATs im Test: Erweiterungsmöglichkeiten für den Raspberry Pi 5

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    DisplayPort vs. HDMI: Welches Kabel passt zu dir?

    DisplayPort vs. HDMI: Welches Kabel passt zu dir?

    Raspberry Pi 5 Anschluss

    Raspberry Pi 5: Neue 2GB-Variante für nur 55 Euro veröffentlicht

    Einführung: Nutze das Raspberry Pi 5 und AI Kit für leistungsstarke KI-Projekte

    Einführung: Nutze das Raspberry Pi 5 und AI Kit für leistungsstarke KI-Projekte

    Pineboards HatDrive! Nano: Revolutionäre Speicherlösung für Raspberry Pi 5

    PiNEBOARDS HatDrive! NANO: Der ultimative Vergleich mit dem Raspberry Pi M.2 HAT+

    • Produkte
  • How To
    • Alle
    • Guides
    • Software / Programmierung
    • Wissensdatenbank
    Apache Guacamole: Die clientlose Remote-Desktop-Lösung installieren und einrichten

    Apache Guacamole: Die clientlose Remote-Desktop-Lösung installieren und einrichten

    Steam Link auf dem Raspberry Pi 5 installieren: Offizielle Methode & Docker-Alternative

    Steam Link auf dem Raspberry Pi 5 installieren: Offizielle Methode & Docker-Alternative

    Scratch 3.0 – Spielerisch Programmieren lernen

    Scratch 3.0 – Spielerisch Programmieren lernen

    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    Vaultwarden als Passwort-Safe mit Docker und Portainer installieren

    Vaultwarden als Passwort-Safe mit Docker und Portainer installieren

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Widerstand Farbcode: Einfache Erklärung, Tabelle und Beispiele

    Widerstand Farbcode: Einfache Erklärung, Tabelle und Beispiele

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    • Guides
    • Wissensdatenbank
    • Software / Programmierung
  • News
Keine Ergebnisse
Alle Ergebnisse anzeigen
BerryBase
Keine Ergebnisse
Alle Ergebnisse anzeigen
Startseite Themen Raspberry Pi

Heim-Speichercluster mit Raspberry Pi und Ceph: Der umfassende Guide

Katrin Erdmann von Katrin Erdmann
26. März 2024
in Raspberry Pi, Raspberry Pi, Software / Programmierung
Lesezeit: 20 Min. Lesezeit
0
A A
0
Erstellen eines eigenen Datenspeicher mit Chip auf dem Raspberry 5

Hast du schon einmal daran gedacht, einen Heim-Speichercluster mit Raspberry Pi und Ceph einzurichten, stießt aber auf Fragen bezüglich der Umsetzung? Unser aktueller Blogpost liefert die Lösung. Er begleitet dich Schritt für Schritt durch den Prozess, um eine solide und erweiterbare Speicherlösung selbst zu realisieren.

Inhaltsverzeichnis
  • Verwendete Materialien in diesem Projekt
  • Was ist Ceph?
  • Kernkomponenten von Ceph
    • MON (Ceph Monitor)
    • OSD (Object Storage Device)
    • MDS (Metadata Server Daemon)
    • MGR (Manager Daemon): 
  • Aufbau eines Ceph-Clusters mit Raspberry Pi
  • Voraussetzungen für die Ceph-Bereitstellung
    • Netzwerk- und Hostnamen-Konfiguration
    • Zeit-Synchronisation
  • Bereitstellung eines Ceph-Speicherclusters mit ceph-deploy
    • Initialisierung des Ceph-Clusters
  • Verwaltung und Überwachung des Clusters
  • Mount CephFS mit Kernel Driver
  • Starten und Stoppen aller Daemons
  • Fazit und Ausblick
  • Shakhizat Nurgaliyev 

Verwendete Materialien in diesem Projekt

Hardware-Komponenten:

  • Raspberry Pi 5 8GB: 3 Stück – Diese kraftvollen kleinen Computer bilden das Herzstück unseres Ceph-Clusters. Mit 8 GB RAM ausgestattet, sind sie perfekt für anspruchsvolle Aufgaben und bieten genug Leistung für unser Speichernetzwerk.

Software-Apps und Online-Dienste:

  • balenaEtcher: Ein unverzichtbares Tool, um unsere Betriebssystem-Images sicher und zuverlässig auf die SD-Karten für unsere Raspberry Pis zu flashen. Einfach zu nutzen und absolut zuverlässig.
  • Ceph: Die Open-Source-Software-definierte Speicherlösung, die den Kern unseres Projekts ausmacht. Ceph ermöglicht uns die Einrichtung eines skalierbaren und ausfallsicheren Speicherclusters.

Mit dieser Kombination aus leistungsstarker Hardware und vielseitiger Software sind wir bestens ausgestattet, um unseren eigenen Heim-Speichercluster aufzubauen. Die Einrichtung ist dank der benutzerfreundlichen Tools und der robusten Raspberry Pi Hardware nicht nur effizient, sondern auch ein spannendes Projekt für alle Technikbegeisterten.

Was ist Ceph?

Ceph ist eine Open-Source-Software-definierte Speicherplattform, die verteilte Datei-, Block- und Objektspeicherfunktionalitäten bietet. Sie ermöglicht dir die Erstellung eines fehlertoleranten Datenspeichersystems, das über das TCP/IP-Protokoll zugänglich ist.

CephFS ist eine Komponente von Ceph, die eine POSIX-konforme Dateisystem-Schnittstelle bietet. Client-Systeme können den RADOS-Objektspeicher von Ceph mit CephFS mounten, sodass er wie ein Standard-Linux-Dateisystem erscheint. Dies ermöglicht eine Dateifreigabefunktionalität, ähnlich traditionellen Lösungen wie NFS. Ceph-Clients mounten ein CephFS-Dateisystem als Kernel-Objekt oder als Filesystem im User Space (FUSE).

Kernkomponenten von Ceph

MON (Ceph Monitor)

Monitore sind das Gehirn des Ceph-Clusters. Sie verwalten die Gesundheit des Clusters, verfolgen den Zustand der Object Storage Devices und bieten Authentifizierung für Clients und Daemons. Für Redundanz und hohe Verfügbarkeit werden mindestens drei Monitore empfohlen.

OSD (Object Storage Device)

OSDs speichern Daten und verarbeiten Client-Anfragen. Daten innerhalb eines OSD werden geteilt und in Blöcken gespeichert. Ceph OSD Daemons übernehmen Lese-, Schreib- und Replikationsoperationen auf Speicherlaufwerken. Für Redundanz und hohe Verfügbarkeit werden normalerweise mindestens drei Ceph OSDs benötigt. Dies kann eine traditionelle Festplatte (HDD) oder eine Solid-State-Disk (SSD) sein.

MDS (Metadata Server Daemon)

Der MDS spielt eine entscheidende Rolle in CephFS. Er verwaltet die Metadaten, die mit dem Dateisystem verbunden sind, und ermöglicht effiziente Dateioperationen. Der Ceph Metadata Server ist notwendig, um Ceph File System-Clients zu betreiben.

MGR (Manager Daemon): 

Ein zentraler Baustein des Ceph-Clusters, der MGR, überwacht und verwaltet alle wesentlichen Betriebsparameter. Von der Speichernutzung bis hin zu Leistungsmetriken gewährleistet der MGR, dass der Cluster stets optimiert und sicher läuft. Für die hohe Verfügbarkeit und Robustheit des Systems spielt der MGR eine entscheidende Rolle

Aufbau eines Ceph-Clusters mit Raspberry Pi

Hier ein Diagramm eines Ceph-Clusters, bestehend aus Raspberry Pi-Knoten.

Diagramm eines Ceph-Clusters, bestehend aus Raspberry Pi-Knoten.

Mein Ceph-Cluster wird aus drei Raspberry Pi 5 bestehen, die über einen 1Gbit-Switch in einem privaten Netzwerk verbunden sein werden. Als Speicher verwende ich drei 256GB Flash-SSD-Laufwerke. Obwohl Solid-State-Laufwerke für eine bessere Leistung empfohlen werden, wird die Gesamtgeschwindigkeit durch die Nutzung von USB 3.0 sowieso begrenzt. Der Raspberry Pi 5 basiert auf dem Betriebssystem Debian 12 (Bookworm), während der Raspberry Pi 4 auf dem Server-Betriebssystem Ubuntu 22.04 basiert.

So sieht mein Ceph-Cluster aus:

Bild eines Ceph-Cluster mit Solid-State-Laufwerke & Raspberry Pi 5

In echten Einsatzszenarien haben Ceph-Cluster typischerweise viel mehr OSDs, als auf dem Bild gezeigt wird. Das liegt daran, dass Ceph auf Replikation setzt, um Daten zu schützen. Jedes Objekt wird über mehrere OSDs repliziert. Falls ein OSD ausfällt, können dessen Daten immer noch von den Replikaten abgerufen werden, was Datenredundanz und -verfügbarkeit sicherstellt.

Für weitere Informationen über Ceph kannst du dich auf die offizielle Dokumentation beziehen: Einführung in Ceph.

Voraussetzungen für die Ceph-Bereitstellung

Bevor wir beginnen, ist es wichtig, sicherzustellen, dass alle Knoten im Cluster über korrekt konfigurierte IPs, Netzwerk- und Hostnameneinstellungen verfügen.
Zuerst müssen wir per SSH auf unseren Bereitstellungsknoten zugreifen. Stelle sicher, dass du IPs, Netzwerk und /etc/hosts auf allen Pi-Knoten eingerichtet hast, falls du kein lokales DNS und DHCP mit statischen Zuweisungen verwendest.

Netzwerk- und Hostnamen-Konfiguration

Jeder Ceph-Knoten MUSS in der Lage sein, jeden anderen Ceph-Knoten im Cluster über seinen kurzen Hostnamen anzupingen. Du kannst den Befehl hostnamectl verwenden, um auf jedem Knoten angemessene Hostnamen einzurichten.

hostnamectl set-hostname {your hostname}

Alle Ceph-Knoten sollten über den Hostnamen mithilfe der Datei /etc/hosts auf jeder Maschine auflösbar sein. Hier ist ein Beispiel für eine /etc/hosts-Konfiguration für dein Szenario:

192.168.0.100 deployment
192.168.0.106 ceph1
192.168.0.107 ceph2
192.168.0.108 ceph3


Zeit-Synchronisation

Wir müssen auch sicherstellen, dass die Systemuhren nicht verzerrt sind, damit der Ceph-Cluster ordnungsgemäß funktionieren kann. Es wird empfohlen, die Zeit mit einem NTP-Server zu synchronisieren.

Da ceph-deploy nicht nach einem Passwort fragt, musst du SSH-Schlüssel auf dem Bereitstellungsknoten generieren und den öffentlichen Schlüssel an jeden

ssh-copy-id <username>@node1 <br>ssh-copy-id <username>@node2 <br>ssh-copy-id <username>@node3

Diese Befehle fügen den öffentlichen Schlüssel des Admin-Knotens zu den Dateien authorized_keys auf jedem Ceph-Knoten hinzu, wodurch passwortloser SSH-Zugang für Bereitstellungsaufgaben ermöglicht wird.

Bereitstellung eines Ceph-Speicherclusters mit ceph-deploy


Dieser Leitfaden beschreibt die Bereitstellung eines Ceph-Speicherclusters unter Verwendung des Tools ceph-deploy. ceph-deploy vereinfacht den Prozess, indem es viele Konfigurationsschritte automatisiert.

Das Raspberry Pi OS mit dem Namen Bookworm wurde zeitgleich mit dem Raspberry Pi 5 veröffentlicht. Folglich wurde es von Debian 11 „Bullseye“ auf Debian 12 „Bookworm“ aktualisiert. Da die Ceph-Version 18.2.0 (Reef) Debian 12 Bookworm unterstützt, werden wir uns auf die Installation dieser spezifischen Version konzentrieren.

Auf dem Bereitstellungsknoten, der in meinem Fall Raspberry Pi 4 Boards sind, installiere ceph-deploy mit pip:

pip3 install git+https://github.com/ceph/ceph-deploy.git

Initialisierung des Ceph-Clusters

Führe den folgenden Befehl aus, um einen neuen Cluster namens ceph mit Monitoren auf den Knoten ceph1, ceph2 und ceph3 zu erstellen:

ceph-deploy new ceph1 ceph2 ceph3

Die Ausgabe zeigt detaillierte Informationen zu jedem Schritt an.

[ceph_deploy.conf][DEBUG ] found configuration file at: /home/raspi/.cephdeploy.conf

[ceph_deploy.cli][INFO ] Invoked (2.1.0): /usr/local/bin/ceph-deploy new ceph1 ceph2 ceph3

[ceph_deploy.cli][INFO ] ceph-deploy options:
[ceph_deploy.cli][INFO ] verbose : False
[ceph_deploy.cli][INFO ] quiet : False
[ceph_deploy.cli][INFO ] username : None
[ceph_deploy.cli][INFO ] overwrite_conf : False
[ceph_deploy.cli][INFO ] ceph_conf : None
[ceph_deploy.cli][INFO ] cluster : ceph
[ceph_deploy.cli][INFO ] mon : ['ceph1', 'ceph2', 'ceph3']
[ceph_deploy.cli][INFO ] ssh_copykey : True
[ceph_deploy.cli][INFO ] fsid : None
[ceph_deploy.cli][INFO ] cluster_network : None
[ceph_deploy.cli][INFO ] public_network : None
[ceph_deploy.cli][INFO ] cd_conf : <ceph_deploy.conf.cephdeploy.Conf object at 0xffff9315e110>
[ceph_deploy.cli][INFO ] default_release : False
[ceph_deploy.cli][INFO ] func : <function new at 0xffff93481cf0>

[ceph_deploy.new][DEBUG ] Creating new cluster named ceph
[ceph_deploy.new][INFO ] making sure passwordless SSH succeeds
[ceph1][DEBUG ] connected to host: head
[ceph1][INFO ] Running command: ssh -CT -o BatchMode=yes ceph1 true
[ceph1][DEBUG ] connection detected need for sudo
[ceph1][DEBUG ] connected to host: ceph1
[ceph1][INFO ] Running command: sudo /bin/ip link show
[ceph1][INFO ] Running command: sudo /bin/ip addr show
[ceph1][DEBUG ] IP addresses found: ['192.168.0.106']

[ceph_deploy.new][DEBUG ] Resolving host ceph1
[ceph_deploy.new][DEBUG ] Monitor ceph1 at 192.168.0.106
[ceph_deploy.new][INFO ] making sure passwordless SSH succeeds

[ceph2][DEBUG ] connected to host: head
[ceph2][INFO ] Running command: ssh -CT -o BatchMode=yes ceph2 true
[ceph2][DEBUG ] connection detected need for sudo
[ceph2][DEBUG ] connected to host: ceph2
[ceph2][INFO ] Running command: sudo /bin/ip link show
[ceph2][INFO ] Running command: sudo /bin/ip addr show
[ceph2][DEBUG ] IP addresses found: ['10.122.116.1', '192.168.0.107']

[ceph_deploy.new][DEBUG ] Resolving host ceph2
[ceph_deploy.new][DEBUG ] Monitor ceph2 at 192.168.0.107
[ceph_deploy.new][INFO ] making sure passwordless SSH succeeds

[ceph3][DEBUG ] connected to host: head
[ceph3][INFO ] Running command: ssh -CT -o BatchMode=yes ceph3 true
[ceph3][DEBUG ] connection detected need for sudo
[ceph3][DEBUG ] connected to host: ceph3
[ceph3][INFO ] Running command: sudo /bin/ip link show
[ceph3][INFO ] Running command: sudo /bin/ip addr show
[ceph3][DEBUG ] IP addresses found: ['192.168.0.108']

[ceph_deploy.new][DEBUG ] Resolving host ceph3
[ceph_deploy.new][DEBUG ] Monitor ceph3 at 192.168.0.108
[ceph_deploy.new][DEBUG ] Monitor initial members are ['ceph1', 'ceph2', 'ceph3']
[ceph_deploy.new][DEBUG ] Monitor addrs are ['192.168.0.106', '192.168.0.107', '192.168.0.108']
[ceph_deploy.new][DEBUG ] Creating a random mon key...
[ceph_deploy.new][DEBUG ] Writing monitor keyring to ceph.mon.keyring...
[ceph_deploy.new][DEBUG ] Writing initial config to ceph.conf...


Dieser Befehl führt mehrere Aktionen aus:

  • Etabliert passwortlosen SSH-Zugang zwischen dem Bereitstellungshost und den Ceph-Knoten.
  • Erstellt einen Ceph-Cluster namens ceph mit anfänglichen Monitoren auf ceph1, ceph2 und ceph3.

Der oben genannte Befehl erzeugt eine Datei ceph.conf, die folgendermaßen aussieht:

fsid = 3218618a-ce05-4277-9a0d-325063ce54cc
mon_initial_members = ceph1, ceph2, ceph3
mon_host = 192.168.0.106,192.168.0.107,192.168.0.108
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx


Jeder Ceph-Cluster hat seine eigene einzigartige FSID-Identität. Ceph bietet zwei Authentifizierungsmodi an: none (jeder kann ohne Authentifizierung auf Daten zugreifen) oder cephx (schlüsselbasierte Authentifizierung).

Installiere auf allen Ceph-Knoten die notwendigen Ceph-Pakete mit dem Paketmanager deiner Distribution.

sudo apt-get install python3-ceph-argparse=16.2.11+ds-2 python3-ceph-common=16.2.11+ds-2 ceph-mgr-modules-core=16.2.11+ds-2 ceph-mgr=16.2.11+ds-2 python3-cephfs=16.2.11+ds-2

Installiere Ceph auf allen Knoten mit ceph-deploy install. Gib nach der Option --release die gewünschte Ceph-Version an (z.B. reef).

ceph-deploy install --release reef ceph1 ceph2 ceph3

Verwende ceph-deploy, um die anfänglichen Monitore auf den festgelegten Knoten zu erstellen:

ceph-deploy mon create-initial

Kopiere die generierte Ceph-Konfigurationsdatei vom Bereitstellungsknoten auf alle Ceph-Knoten:

ceph-deploy admin ceph1 ceph2 ceph3<br>

Jetzt lass uns den Status des ersten Clusters überprüfen, indem wir uns per SSH in einen Ceph-Knoten einloggen und den untenstehenden Befehl ausführen, um die Gesundheit des Clusters zu überprüfen.

sudo ceph health

Wir können den Status des Clusters auch mit dem folgenden Befehl überprüfen:

sudo ceph -s

Diese Ausgabe zeigt den Status von Monitoren, Managern, OSDs und anderen Cluster-Komponenten an.

cluster:
    id:     8b7cb3f3-f4b0-4d17-8d08-aaaf0b5030b2
    health: HEALTH_WARN
            mons are allowing insecure global_id reclaim

  services:
    mon: 3 daemons, quorum ceph1,ceph2,ceph3 (age 44s)
    mgr: no daemons active
    osd: 0 osds: 0 up, 0 in

  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:

Wenn wir den Status HEALTH_OK erhalten, bedeutet das, dass der Cluster erfolgreich initialisiert wurde. Lass uns zum Bereitstellungsknoten zurückkehren und den Manager-Daemon mit dem folgenden Befehl installieren:

ceph-deploy mgr create ceph1

Der Manager-Daemon ist für die grundlegende Speicherfunktionalität nicht unbedingt notwendig, kann aber zusätzliche Funktionen wie Überwachung und Orchestrierung bieten.

Wichtig: Stelle sicher, dass die Ziellaufwerke nicht in Gebrauch sind und keine kritischen Daten enthalten.

Verwende dd, um vorhandene Daten auf den Ziellaufwerken zu löschen (z.B. /dev/sda1):

dd bs=1M count=1 </dev/zero >/dev/sda1

Bestätige den Gerätetyp mit dem Befehl file.

sudo file -s /dev/sda1

Die Ausgabe sollte „data“ anzeigen.

sudo file -s /dev/sda1
/dev/sda1: data

Führe auf dem Bereitstellungsknoten ceph-deploy osd create aus, um OSDs auf den angegebenen Geräten auf jedem Ceph-Knoten zu erstellen (z.B. /dev/sda1).

ceph-deploy osd create --data /dev/sda1 ceph1
ceph-deploy osd create --data /dev/sda1 ceph2
ceph-deploy osd create --data /dev/sda1 ceph3

Ersetze /dev/sda1 durch das tatsächliche Gerät auf jedem Knoten. Du solltest eine Nachricht sehen, die anzeigt, dass jeder Host für die Verwendung von OSD bereit ist.

[ceph_deploy.osd][DEBUG ] Host ceph1 is now ready for osd use.
[ceph_deploy.osd][DEBUG ] Host ceph2 is now ready for osd use.
[ceph_deploy.osd][DEBUG ] Host ceph3 is now ready for osd use.


Überprüfe den Clusters mit ceph status:

cluster:
    id:     3218618a-ce05-4277-9a0d-325063ce54cc
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum ceph1,ceph2,ceph3 (age 26m)
    mgr: ceph2(active, since 26m), standbys: ceph1
    mds: 1/1 daemons up, 2 standby
    osd: 3 osds: 3 up (since 26m), 3 in (since 2d)

  data:
    volumes: 1/1 healthy
    pools:   3 pools, 65 pgs
    objects: 22 objects, 6.8 KiB
    usage:   35 MiB used, 715 GiB / 715 GiB avail
    pgs:     65 active+clean

Unser Cluster scheint gesund zu sein, und alle drei Monitore sowie OSDs sind unter den Diensten aufgelistet.

Installiere das Ceph Manager Dashboard-Paket auf dem Knoten, auf dem der Manager läuft:

sudo apt install ceph-mgr-dashboard=16.2.11+ds-2

Ersetze die Versionsnummer (16.2.11+ds-2), falls nötig.

Aktiviere das Dashboard-Modul.

sudo ceph mgr module enable dashboard

Erstelle ein selbstsigniertes Zertifikat für die Authentifizierung:

sudo ceph dashboard create-self-signed-cert

Die Ausgabe sollte bestätigen: „Selbstsigniertes Zertifikat erstellt.“

Erstelle einen Benutzer für den Dashboard-Zugriff:

sudo ceph dashboard ac-user-create admin -i password administrator

Betrachte verfügbare Ceph Manager Dienste:

sudo ceph mgr services

Die Ausgabe sollte die Dashboard-URL wie folgt anzeigen:

{<br>"dashboard": "https://YOUR_IP_ADDRESS:8443/"<br>}

Verwaltung und Überwachung des Clusters

Einrichten des Ceph Manager Dashboards

Das Dashboard bietet einen Überblick über den Gesundheitszustand des Ceph-Clusters und ermöglicht die Verwaltung über eine Web-Oberfläche.

Nach Abschluss der obigen Konfiguration gib https://YOUR_IP_ADRESSE:8443/ in den Browser ein, um den Benutzernamen und das Passwort einzugeben und auf das Ceph-Dashboard zuzugreifen sowie Ihren Ceph-Speichercluster zu verwalten.

Screenshot Ceph-Clusters

Die Clusteransicht des Ceph-Dashboards bietet dir einen Überblick über den Gesundheitszustand deines Ceph-Clusters, indem sie die verschiedenen Ceph-Daemons, deren Status und deren Ressourcenzuweisung anzeigt.

 Gesundheitszustand deines Ceph-Clusters

Der Host-Bereich des Dashboards zeigt einen Überblick über die Mitgliedshosts des Ceph-Clusters. Diese Ansicht würde typischerweise Informationen wie den Hostnamen und die aktuelle Rolle jedes Hosts innerhalb der Ceph-Umgebung anzeigen, einschließlich ob sie als OSDs oder andere Rollen wie Metadatenserver dienen.

Mitgliedshosts des Ceph-Clusters

OSDs sind verantwortlich für die Speicherung der tatsächlichen Datenobjekte innerhalb des Ceph-Clusters. Diese Geräte können physische Festplatten oder andere Speichergeräte sein, die mit den Hosts verbunden sind, welche als OSDs dienen.

Anschließend müssen wir den Metadata Server (MDS) für das Ceph-Dateisystem konfigurieren. Wir können ceph-deploy vom Deployment-Host aus verwenden, um MDS auf den Knoten ceph1, ceph2 und ceph3 zu deployen und zu konfigurieren:

ceph-deploy --overwrite-conf mds create ceph1 ceph2 ceph3
Ceph-Dateisystem konfigurieren

Der Screenshot vom Dashboard hebt die Präsenz von drei Metadata Servern hervor. Metadata Server sind verantwortlich für die Speicherung der Metadaten über die auf den OSDs gespeicherten Daten, was für die Clients notwendig ist, um auf ihre Daten im Cluster zuzugreifen und diese zu verwalten.

Als Nächstes werden wir zwei RADOS-Pools erstellen: einen Datenpool und einen Metadatenpool für das Ceph-Dateisystem, unter Verwendung der folgenden Befehle:

sudo ceph osd pool create cephfs_data 8
sudo ceph osd pool create cephfs_metadata 8

Die Angabe 8 spezifiziert die Anzahl der Placement Groups (PGs) für den Pool. Hier wird ein Wert von 8 zugewiesen, aber die optimale Anzahl von PGs kann je nach deinem spezifischen Cluster-Setup und der Arbeitslast variieren.

Erwartete Ausgabe:

pool 'cephfs_data' created
pool 'cephfs_metadata' created

Der Screenshot unten zeigt die Ceph-Speicherpools. Er hebt zwei neu erstellte Pools hervor.

Ceph-Speicherpools

Nachdem die erforderlichen Pools erstellt wurden, werden wir das Ceph-Dateisystem mit dem folgenden Befehl erstellen:

sudo ceph fs new cephfs cephfs_metadata cephfs_data

Die erwartete Ausgabe für diesen Befehl sollte sein:

new fs with metadata pool 3 and data pool 2

Verifiziere den Status mit CephFS und MDS nutze die folgenden Commands:

ceph mds stat
ceph fs ls


Die erwartete Ausgabe sollte sein:

cephfs:1 {0=ceph3=up:active} 2 up:standby<br>name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]<br>

Stelle sicher, dass der MDS aktiv und in Betrieb ist, bevor du fortfährst.

Erstelle dann eine Geheimdatei für CephFS. Wir würden den folgenden Befehl ausführen, um aus dem Schlüssel eine Geheimdatei zu erstellen, die für die Authentifizierung zum Einbinden auf dem Client verwendet wird.

sudo ceph-authtool -p ./ceph.client.admin.keyring > ceph.key<br>

Du kannst auch einen Benutzer-Schlüsselbund erstellen, den wir in beiden Lösungen für Autorisierung und Authentifizierung verwenden können, da wir cephx mit dem folgenden Befehl aktiviert haben.

sudo ceph auth get-or-create client.user mon 'allow r' mds 'allow r, allow rw path=/home/cephfs' osd 'allow rw pool=cephfs_data' -o /etc/ceph/ceph.client.user.keyring<br><br>
Rapberry Pi 5 im Ceph Cluster

Schließlich kopieren wir die Geheimdatei und ceph.conf auf die Client-Maschine.

Mount CephFS mit Kernel Driver

CephFS bietet zwei Möglichkeiten, das Dateisystem einzubinden – über den Kernel oder den FUSE-Client.

Um CephFS mit dem Kernel-Treiber einzubinden, musst du das Ceph-Kernel-Client-Modul auf deinem System installiert haben. Verwende den folgenden Befehl, um CephFS mit dem Kernel-Treiber einzubinden:

sudo mount -t ceph <MONITOR_IP>:/<PATH> /mnt/cephfs -o name=<USERNAME>,secret=<SECRET_KEY>

In meinem Fall führe ich aus:

mount -t ceph ceph1,ceph2,ceph3:/ /mnt/cephfs -o name=admin,secretfile=/etc/ceph/ceph.key,noatime

Einhängen erfolgreich. Um das Einhängen zu überprüfen, verwende den folgenden Befehl:

df -h

Die Ausgabe sollte sein:

Filesystem  Size Used Avail Use% Mounted on
tmpfs 380M 3.1M 376M 1% /run
/dev/mmcblk0p2 118G 15G 99G 13% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/mmcblk0p1 253M 137M 116M 55% /boot/firmware
tmpfs 379M 4.0K 379M 1% /run/user/1000
192.168.0.106,192.168.0.107,192.168.0.108:/ 227G 0 227G 0% /mnt/cephfs

Um das Ceph-Dateisystem auszuhängen, verwende den folgenden Befehl:

umount /mnt/cephfs

Dieser Befehl hängt das Ceph-Dateisystem aus, das unter /mnt/cephfs eingehängt wurde.

Um das Ceph-Dateisystem beim Booten automatisch einzuhängen, bearbeite die fstab-Datei:

sudo nano /etc/fstab<br>

Füge die folgende Konfiguration am Ende der Datei ein:

# CephFS Mount
ceph1,ceph2,ceph3:/ /mnt/cephfs ceph name=admin,secretfile=/etc/ceph/ceph.key,noatime 0 0

Speichere die Datei und verlasse den Nano-Editor.

Hänge alle Laufwerke aus der fstab mit dem Befehl mount -a ein, und liste dann alle verfügbaren Laufwerke auf:

sudo mount -a

Starte abschließend das System neu.

Nach dem Neustart verwende df -hT, um zu bestätigen, dass das CephFS noch immer am vorgesehenen Ort eingehängt ist.

Starten und Stoppen aller Daemons

Um alle Ceph-Dienste auf einem bestimmten Knoten zu starten,

systemctl start ceph.target

Um alle Ceph-Dienste auf einem bestimmten Knoten zu stoppen,

systemctl stop ceph\*.service ceph\*.target

Fazit und Ausblick


Das Bereitstellungstool ceph-deploy wurde zugunsten von cephadm für mehrere Ceph-Versionen eingestellt. Im Wesentlichen ist cephadm der moderne Ersatz für ceph-deploy. Im nächsten Tutorial werde ich demonstrieren, wie man einen Ceph-Speichercluster erweitert und das cephadm-Tool für die Bereitstellung und Wartung verwendet.

Shakhizat Nurgaliyev 

In unserem neuesten Blogpost stellt Shakhizat Nurgaliyev , ein erfahrener Entwicklungsingenieur mit einer Passion für Robotik und IoT, seinen Einblick in die Erstellung eines Heim-Speicherclusters mit Raspberry Pi und Ceph vor. Seine Arbeit an autonomen Systemen und sein Engagement für maschinelles Lernen machen diesen Beitrag besonders wertvoll für Technikbegeisterte.

Möchtest du tiefer in die Welt des Heim-Speicherclusters mit Raspberry Pi und Ceph eintauchen und erfahren, wie du dein eigenes NAS mit einem Raspberry Pi aufbaust? Unser Blogpost bietet nicht nur eine gründliche Einführung in Ceph, sondern weist auch den Weg zu unserem detaillierten Leitfaden „NAS mit einem Raspberry Pi bauen – Eine Anleitung“, der dir zeigt, wie du Schritt für Schritt dein eigenes NAS-System realisieren kannst.

Schlagwörter: raspberry PiTutorial
TeilenTeilenTwittern
Vorheriger Beitrag

Das Raspberry Pi-gesteuerte KI-Fahrradlicht

Nächster Beitrag

KI auf dem Raspberry Pi: Entdecke, baue, verändere

Katrin Erdmann

Katrin Erdmann

Hallo und herzlich willkommen! Ich bin technikbegeistert, liebe SEO und bin ein kreativer Bastler – kurz: ein Allrounder, wenn es ums Entdecken und Gestalten geht. Technik fasziniert mich, weil sie unser Leben auf so viele spannende Arten verändern kann. Ich halte mich immer über die neuesten Trends und Gadgets auf dem Laufenden und liebe es, mein Wissen zu teilen. Kreativität und Basteln sind mein Ausgleich. Ich liebe es, mit den Händen zu arbeiten, Dinge zu erschaffen und Technik mit kreativen DIY-Ideen zu verbinden. Egal ob kleine Projekte oder größere Herausforderungen – Hauptsache, ich kann meine Ideen verwirklichen. In meinem Blog teile ich alles, was mich begeistert: Technik-Tipps, kreative DIY-Projekte. Mein Ziel ist es, komplexe Themen einfach zu erklären und Inspiration zu bieten. Ich freue mich, wenn du mich auf dieser Reise begleitest!

ÄhnlicheArtikel

Apache Guacamole: Die clientlose Remote-Desktop-Lösung installieren und einrichten
How To

Apache Guacamole: Die clientlose Remote-Desktop-Lösung installieren und einrichten

15. April 2025
Kompilierung eines eigenen Linux-Kernels für den Raspberry Pi 5
Projekte

Kompilierung eines eigenen Linux-Kernels für den Raspberry Pi 5

7. November 2024
MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers
Raspberry Pi

MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

18. Oktober 2024
Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte
Kaufberatung

Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

9. Oktober 2024
Nächster Beitrag
KI auf dem Raspberry Pi: Entdecke, baue, verändere

KI auf dem Raspberry Pi: Entdecke, baue, verändere

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

News

Pineboards HatDrive! Nano: Revolutionäre Speicherlösung für Raspberry Pi 5
Produkte

Pineboards HatDrive! Nano: Revolutionäre Speicherlösung für Raspberry Pi 5

15. Juli 2024
Entdecke Raspberry Pi Connect: Fernzugriff leicht gemacht
Allgemein

Entdecke Raspberry Pi Connect: Fernzugriff leicht gemacht

10. Juli 2024
postmarketOS v24.06 Update: Jetzt über 250 unterstützte Geräte!
Allgemein

postmarketOS v24.06 Update: Jetzt über 250 unterstützte Geräte!

19. Juni 2024
Raspberry Pi AI Kit mit Hailo AI Modul
Raspberry Pi

Raspberry Pi AI Kit mit Hailo AI Modul

12. Juni 2024
DIY-Projekte mit Edge AI: Kleine KI-Modelle für Bastler
News

DIY-Projekte mit Edge AI: Kleine KI-Modelle für Bastler

4. Juni 2024
Arduino und MicroPython jetzt gleichzeitig auf Multi-Core-Mikrocontrollern betreiben
News

Arduino und MicroPython jetzt gleichzeitig auf Multi-Core-Mikrocontrollern betreiben

3. Juni 2024
  • OpenMediaVault NAS auf dem Raspberry Pi

    NAS mit einem Raspberry Pi bauen – Eine Anleitung

    0 teilen
    Teilen 0 Twittern 0
  • OpenMediaVault auf Raspberry Pi installieren: Tutorial

    0 teilen
    Teilen 0 Twittern 0
  • Raspberry Pi 5 mit M.2 HAT+ und SSD zusammenbauen und einrichten – Guide

    0 teilen
    Teilen 0 Twittern 0
  • Raspberry Pi Betriebssysteme im Vergleich

    0 teilen
    Teilen 0 Twittern 0
  • Die Top 10 Smart Home Software im Vergleich

    0 teilen
    Teilen 0 Twittern 0

Shop-Service

  • Abholung in Berlin
  • Berrys lohnen sich
  • Produktvorschlag
  • Jobs

Information

  • Impressum
  • AGB
  • Cookie-Richtlinie (EU)
  • Kontakt
BerryBase Blog

by Sertronics GmbH
Am Studio 20D
12489 Berlin
blog@berrybase.de

© 2024 BerryBase

Keine Ergebnisse
Alle Ergebnisse anzeigen
  • Shop
  • Raspberry Pi
  • Projekte
    • Audio / Sound
    • Display
    • Fun
    • IoT / Smart Tech
    • Kamera
    • LED
    • Luft / Wetter
    • Software
  • Themen
    • Raspberry Pi
    • Arduino
    • ESP
    • Sensoren & Aktoren
    • IoT
    • Hausautomation
  • Kaufberatung
    • Produkte
  • How To
    • Guides
    • Wissensdatenbank
    • Software / Programmierung
  • News

© 2024 BerryBase

Zur mobilen Version gehen