Proxmox VE 5.2 Ceph Storage erstellen

      Keine Kommentare zu Proxmox VE 5.2 Ceph Storage erstellen

In dieser Anleitung erkläre ich die Einrichtung von Ceph “Luminous” unter Proxmox VE 5.2.  Hintergrund ist ein Test zur Nutzung von Proxmox mit zentralem Storage in einer Testumgebung.

Zuvor habe ich einen 3 Node Proxmox VE Cluster zu Testzwecken erstellt. Ceph Luminous ist die aktuelle Stable Version 12.1.2. Zuvor gab es Kraken 11.x und Jewel 10.x.. Seit VE 5.x ist die Einrichtung und Konfiguration einfacher geworden und einige Schritten lassen sich nun in der WebGUI erledigen.

Grundsätzlich ist Ceph ein verteiltes Dateisystem über mehrere Nodes. Dies entspricht der Begrifflichkeit eines Cluster.

Empfehlungen Ceph Storage

  • damit der Ceph Storage schnell genug funktioniert, bietet es sich an ein eigenes Netzwerk für den Storage zu erstellen
  • das Netzwerk sollte min 10GBit schnell sein (MTU9000)
  • schnelle SSDs sind ebenfalls zu empfehlen, ebenso wie eine extra SSD für das Journal

Begrifflichkeiten

Rados Block Device (RBD) und OSD

Oder auch Object-Storage genannt, ermöglicht unter Proxmox Images im RAW-Format zu speichern. Hierbei stellt Rados den eigentlichen Object Store unter Ceph dar. In ihm werden die Objekte abgelegt. Hier spielen weitere Komponente wie das Object Storage Node (OSN) und das Object Storage Device (OSD) sowie das OSD Journal eine wichtige Rolle. Alle zusammen bilden dann den eigentlichen Object Storage unter Ceph und ermögilchen die intelligente und automatische verwaltete Speicherung und Verteilung von Daten.

Ceph Monitor

Dieser ist ein Daemon / Dienst der die Aufgabe hat die Cluster Map aufzubauen und zu verwalten. In der Regel besteht ein Cluster aus einer ungeraden Anzahl an Nodes und Monitoren. Von diesen muss min. die Hälfte laufen, ansonten ist der Cluster nicht funktional und der Zugriff der Clients nicht möglich.

Ceph Bluestore

Bluestore ist das neue Backend in Ceph Luminous. Es wurde hinsichtlich der Performance deutlich gegenüber seinem Vorgänger verbessert. Er soll bis zu 2x schnellere Schreibvoränge ermöglichen, führt full data checksumming aus und hat eine Built-In-compression. Mehr Infos unter: https://ceph.com/community/new-luminous-bluestore/

Ceph Pools

Pools sind in Ceph logische Partitionen zum Speichern von Objekten. Sie bestehen aus einer definierten Anzahl an PGS.

Crush Map

Ist eine Abkürzung und steht für Controlled Replication under scalable Hashing. Es ist ein Algorithmus der die Verteilung der Daten auf die OSDs steuert. Bei der Berechnung und Platzierung der Objekte setzt es auf eine pseudo-zufällige, deterministische Berechnung. Vorteil ist die genaue Berechnung des Ortes von Objekten im Cluster durch jeden Node und Client. Weiterhin ist der Aufwand für Metadaten nidriger als z.B. bei Lookup-basierten Storageberechnungen. Crush kann mittles Regeln konfiguriert werden, was auch ungewöhnlich ist.

Vorbereitung

  • Proxmox VE wurde als Cluster installiert
  • extra zuvor gelöschte Festplatten (Enterprise SSD / NVme)
  • extra Storage Netzwerk für Ceph wurde eingerichtet
    # /etc/network/interfaces
    auto enp2s0
    iface enp2s0 inet static
    address 172.16.0.10 # 1-Node .20 2-Node .30 3-Node
    netmask 255.255.255.0

    Proxmox VE 5 Ceph Storage Network

    Proxmox VE 5 Ceph Storage Network

Proxmox VE 5.2 Ceph Installation

  • als erstes melde ich mic an einem Node per WebGUI an
  • nun wähle ich den ersten Node aus der Serverliste aus und rufe die Shell auf
  • dort installiere ich die aktuell unterstützte Version von Ceph (ca. 190MB)
    • node1# pveceph install --version luminous
  • genauso verfahre ich auf allen weiteren Nodes im Cluste:
    • node2# pveceph install --version luminous 
    • node3# pveceph install --version luminous
  • damit wurden auch die Paketquellen für Ceph, die sources.list.d/ceph.list, erstellt
  • als nächstes wird die Konfiguration für Ceph in der Konsole erstellt: node1# pveceph init --network 172.16.0.0/24
  • nun kann der erste Ceph Monitor inzugefügt werden: #node1 pveceph createmon
  • weiter geht es nun in der Proxmox WebGUI unter dem Menü Ceph
    Proxmox VE 5 Ceph Menü

    Proxmox VE 5 Ceph Menü

    • hier kann der Status und die Konfiguration eingesehen werden

      Proxmox VE 5 Ceph Status

      Proxmox VE 5 Ceph Status

  • nun werden auf den anderen 2 Nodes ebenfalls der Ceph Monitors und der Manager hinzugefügt
    • per WebGUI über den Node -> Menü Ceph -> Monitor -> Button Erstellen

      Proxmox VE 5 Ceph Monitor und Manager

      Proxmox VE 5 Ceph Monitor und Manager

    • oder per Shell
      • #node2 pveceph createmon
      • #node3 pveceph createmon
    • sollte ein Node ohne Monitor eingesetzt werden und lediglich für OSD, dann kann der mittels #nod4 pveceph install hinzugefügt werden
    • nun wird der Ceph Manager erstellt, hierfür ist mindestens ein Node notwendig, besser wäre der Manager auf allen Nodes:
      • #node1 pveceph createmgr
      • #node2 pveceph createmgr
      • #node3 pveceph createmgr
  • weiter gehte es mit den OSD Disk,
    Achtung alle Daten auf den ausgewählten Festplatten werden gelöscht
  • die OSD Disk kann mittels WebGUI oder per Bash angelegt werden
    • OSD per WebGUI auf jedem Node
      • hier unter dem Menü von Ceph auf OSD klicken und dort auf den Button “Erstellen: OSD” klicken
      • nun eine Disk auswählen, wobei Journal/DB Disk bereits vorselektiert ist

        Proxmox VE 5 Ceph OSD

        Proxmox VE 5 Ceph OSD

    • OSD per Bash auf jedem Node
      • # pveceph createosd /dev/sdX -bluestore 0
    • OSD per Bash mit extra Disk für das Journal auf entsprechenden Node
      • # pveceph createosd /dev/sdX -journal_dev /dev/sdY -bluestore 0

Aus Performancegründen wird eine Extra SSD für das Journal empfohlen. Die Partition muss GPT formatiert sein und ist aktuell durch Proxmox auf 5GB limitiert.

  • als nächstes wird ein Ceph Pool erstellt
    • der Defaultwert ist für 2-6 Disks ausgelegt, wobei Ceph ein Health_Warning anzeigt wenn zu wenig oder zu viele Placement Groups (PG) im Cluster sind
    • einen Kalkulator für die PGs gibt es unter: http://ceph.com/pgcalc/
    • per WebGUI
      • unter Menü von Ceph auf Pools klicken und dort auf auf den Button “Erstellen
      • hier nun einen Namen, die Größe (3 OSD), die minimale Größe (2), die Crash Rule (replicated_rule), die pg_num und die Option zum hinzufügen als Storage für Container und Disk-Images am besten auch gleich aktivieren

        Proxmox VE 5 Ceph Pools

        Proxmox VE 5 Ceph Pools

    • per Bash
      • # pveceph createpool <name>

Achtung später können die Placement Groups im Pool nur vergrößert aber nicht mehr verkleinert werden. Daher ist die Kalkulation und Konfiguration im Vorfelde wichtig.

Das ist es im gröbsten. Das Thema ist umfassen, daher die Empfehlung die entsprechenden Doks zu lesen.

Ceph Benchmark

Ein tolle Benchmark ist unter https://www.proxmox.com/en/downloads/item/proxmox-ve-ceph-benchmark zu finden(

). Hier wird auch deutlich, dass Ceph als Storage mit nur 1GB Netzwerkanbindung kaum Sinn macht.

# rados -p <ceph-pool-name> bench 10 write --no-cleanup
Total time run: 10.746617
Total writes made: 253
Write size: 4194304
Object size: 4194304
Bandwidth (MB/sec): 94.1692
Stddev Bandwidth: 9.27601
Max bandwidth (MB/sec): 108
Min bandwidth (MB/sec): 72
Average IOPS: 23
Stddev IOPS: 2
Max IOPS: 27
Min IOPS: 18
Average Latency(s): 0.677425
Stddev Latency(s): 0.572964
Max latency(s): 2.05175
Min latency(s): 0.130149

# rados -p <ceph-pool-name> bench 10 seq

Total time run: 4.597503
Total reads made: 253
Read size: 4194304
Object size: 4194304
Bandwidth (MB/sec): 220.119
Average IOPS: 55
Stddev IOPS: 21
Max IOPS: 90
Min IOPS: 47
Average Latency(s): 0.28152
Max latency(s): 1.21331
Min latency(s): 0.0191976

Fehler – Ceph Install remove Proxmox-VE

Sollte bei der Installation von Ceph, Proxmox deinstalliert werden, dann:

  • hast du keine Enterprise Subscription
  • oder der Eintrag für die No-Subscription Repository ist inkorrekt
    • # rm /etc/apt/sources.list.d/pve-enterprise.list
File /etc/apt/sources.list
deb http://ftp.debian.org/debian stretch main contrib

# PVE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve stretch pve-no-subscription

# security updates
deb http://security.debian.org stretch/updates main contrib
  • # apt-get update && apt-get upgrade

https://pve.proxmox.com/pve-docs/pve-admin-guide.html#sysadmin_package_repositories

Fehler – Ceph OSD Festplatte wird nicht erkannt

Ceph nutzt für den OSD die gesamte Festplatte, also keine Partition. Weiterhin sollte die Festplatte vorher gelöscht und von allen Partition befreit werden: # dd if=/dev/zero of=/dev/sd[X] bs=1M count=200
.

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.