Hallo Zusammen,
mein Erster Post hier im Forum und gleich sowas (ich lese aber schon seit Jahren hier sowie PRO-User).
Ich möchte mir ein "Homelab" aufbauen um mal wieder bisschen Dinge zu testen und einiges selbst hosten.
Bevor ich die Frage stelle muss ich erstmal kurz ausholen was geplant ist, ich erhoffe mir einfach ein bisschen Input und Ideen oder Anregungen und ggfs. andere Sichtweisen:
Folgendes ist geplant:
3x Minisforum MS-01 als Hardware auf welchen jeweils Proxmox laufen wird (sind schon bestellt).
In jedem MS-01 werden 3 SSD's sein:
Da das Ganze als 3-Node-Proxmoxcluster mit HA (high availability) laufen soll wird natürlich Ceph verwendet (Ceph auch deshab da ich keinen SingePointofFailure (SPoF) haben möche wenn ich stattdessen als Datastore ein NAS über iSCSI oder sowas verwende).
Der Plan ist die 2. SSD auf welcher die virtuellen Festplattenimages der VMs/LXCs liegen ganz "traditional" durch Proxmox und Ceph als RBD Volume zu nutzen.
Der Plan für die 3. SSD ist, auf dieser ein CephFS (Ceph Filesystem) laufen zu lassen. Auf diesem CephFS sollen dann eben die ganzen Nutzdaten liegen und in die VM's/LXC's (sowie Dockercontainer in den VM's) gemountet oder eben bereitgestellt werden.
Hintergrund warum ich das gerne so mit CephFS hätte: Ich möchte nicht über Jahre meine Daten von Nexclound, Paperless-ngx, Vaultwaren und allem anderen in einer VM/Docker liegen haben und dort "spezifisch gebunden haben". Angenommen eines Tages will ich die Daten in "Rohform" abziehen dann kann ich das unabhängig von der Funktion/dem Vorhandensein der VM/LXC/Docker tun, da diese eben "normal" auf dem CephFS liegen.
Ich hoffe man versteht meine Beweggründe. Falls diese komplett falsch/unbegründet/dumm sind oder jemand eine Bessere Idee zur Trennung hat, gerne vorschlagen!
Frage 1:
Wie stelle ich das CephFS am besten in die VM's/LXC's und auch Dockercontainer innerhalb von VMs bereit?
Aktuell tendiere ich dazu das CephFS mittels https://docs.ceph.com/en/latest/man/8/mount.ceph/ Cephbordmitteln selbst in den VM's/LXCs zu mounten.
Alternativ hatte ich noch im Kopf das CephFS in einer TrueNAS VM mittels o.g. Cephbordmittel zu mounten und dann durch TrueNAS als NFS/SMB Freigabe an andere Dienste/VMs bereitzustellen. Allerdings bin ich nicht sicher ob das Sinn macht? [auch in Bezug zu Frage 2]
Frage 2:
Was wäre die Sinnvollste Möglichkeit das CephFS dann als Storage an die Dockercontainer (die alle in einer/mehrer VM's laufen) bereitzustellen?
Angenommen ich mounte CephFS mit Cephbordmitteln in die Docker-Host-VM, dann kann ich an die Container dann mittels docker Bind-mounts direkt das gemountete CephFS mit gewünschtem Ordner als Storage einbinden;
ODER mittels Docker Volumes auf dem CephFS arbeiten, dazu müsste dann aber (wenn ich es richtig verstehe?) das "Arbeitsverzeichnis" (z.B. /var/lib/docker/volumes/) von Docker (oder Dockge oder Portainer) selbst auf dem CephFS liegen da Volumes ja von Docker gemanaged werden.
Frage 3:
Wie sichere ich am besten die Daten auf dem CephFS?
Kurz zum Backup-Konzept:
-Backups werden über eine VM auf welcher Proxmox-Backup-Server (PBS) läuft (die VM selbst lauft auf dem zu sichernden oben beschrieben Cluster) auf ein physikalisches NAS laufen. Gesichert wird zuerst die PBS-VM aufs NAS, und dann 1-2 h später mittels PBS alle anderen VMs. Die Proxmox-Hosts werden mittels Proxmox-Backup-Client (https://pbs.proxmox.com/docs/backup-client.html) aufs NAS gesichert. Die Hosts sind aber am unwichtigsten da dieser einfach neu installiert werden könnten.
-Disaster-Recovery würde so laufen: Proxmox-Host(s) mittels Proxmox-Backup-Client wiederherstellen vom NAS (oder Proxmox neu installieren), dann die PBS-VM manuell vom NAS Wiederherstellen, dann aus der nun laufenden PBS-VM alle anderen WMs/LXS wiederherstellen.
-Vom NAS wird noch auf eine externe Festplatte/und/oder RemoteCloud ein Offsite-Backup erstellt
(das Ganze Konzept ist hier auch ganz gut beschrieben:
, wen es interessiert).
ABER: Ich kann mit PBS kein CephFS sichern. Theoretisch kann der Proxmox-Back-Client verwendet werden, der ist aber nicht perfomant für ein größeres CephFS. Wenn ich es richtig verstehe bleibt mir bei CephFS aber leider keine andere Möglichkeit als auf Filesystem-Ebene eine Sicherung durchzuführen, was immer weniger Performant ist als auf Blockdevice-Ebene.
Meine grobe Idee war bisher eine exta VM/LXC in welcher das CephFS gemountet wird, und in dieser VM/LXC dann irgendeine Client-Backup-Software, wie z.B. rSync, Veeam, restic oder sowas in der Art welche dann das gesamte gemountete CephFS ab "root" / aufs NAS sichert. Hat hier jemand Ideen für mich?
Ich weiß dass CephFS auch Snapshots kann und auch snapshot mirroring (https://docs.ceph.com/en/latest/cephfs/cephfs-mirroring/ ) aber dafür benötige einen zweiten CephFS-Cluster und den hab ich nicht, das Setup ist so schon teuer genug .
Außerdem ist es immer ganz schön wenn ein Backup auch auf einem anderen "Technologie-Stack" liegt für den fall das Ceph an sich mal einen Bug hat.
Noch ein paar Bemerkungen zum Setup und mir:
-Ceph Netzwerktraffic wird über USB4 mit 20GBit/s im Ringnetzwerk laufen. Alternativ hätte ich auch die Möglichkeit die vorhandenen 2x10GBit Netzwerkanschlüsse zu nutzen
-Meine letzte aktive Proxmox Erfahrung und aktive Arbeit mit Linux usw. ist schon einige Jahre her, habe früher als Sysadmin gearbeteit und war privat auch sehr an solchen Themen interessiert und aktiv. Aber durch eine komplett andere Berufliche Laufbahn habe ich die Entwicklung nur noch am Rande verfolgt (aber nie ganz aus den Augen verloren ) Docker ist für mich z.B. Praxis-Neuland). Aber ich arbeite mich in so Themen dann schon ein.
Wie man merkt habe ich schon einiges darüber gegrübelt und gegooglt.
Würde mich freuen wenn hier jemand Input/Ideen hat oder gar schon ein ähnliches Setup gefahren hat und Erfahrungen teilen kann oder meine Fragen beantworten kann.
Vielen Dank!!
mein Erster Post hier im Forum und gleich sowas (ich lese aber schon seit Jahren hier sowie PRO-User).
Ich möchte mir ein "Homelab" aufbauen um mal wieder bisschen Dinge zu testen und einiges selbst hosten.
Bevor ich die Frage stelle muss ich erstmal kurz ausholen was geplant ist, ich erhoffe mir einfach ein bisschen Input und Ideen oder Anregungen und ggfs. andere Sichtweisen:
Folgendes ist geplant:
3x Minisforum MS-01 als Hardware auf welchen jeweils Proxmox laufen wird (sind schon bestellt).
In jedem MS-01 werden 3 SSD's sein:
- eine kleine 1. SSD für den Host-Proxmox (500GB)
- eine größere 2. SSD für die VMs/LXC's (2-4 TB)
- sowie nochmal eine größere 3. SSD als Datenspeicherort für die "Nutzdaten" die durch die VM's(+Docker)/LXC's ebenen genutzt werden (Paperless Scans, *arr stack Dateien, Bilder, Videos, Vaultwaren DB usw, einfach alle Daten die man so hat) (4-8 TB).
Da das Ganze als 3-Node-Proxmoxcluster mit HA (high availability) laufen soll wird natürlich Ceph verwendet (Ceph auch deshab da ich keinen SingePointofFailure (SPoF) haben möche wenn ich stattdessen als Datastore ein NAS über iSCSI oder sowas verwende).
Der Plan ist die 2. SSD auf welcher die virtuellen Festplattenimages der VMs/LXCs liegen ganz "traditional" durch Proxmox und Ceph als RBD Volume zu nutzen.
Der Plan für die 3. SSD ist, auf dieser ein CephFS (Ceph Filesystem) laufen zu lassen. Auf diesem CephFS sollen dann eben die ganzen Nutzdaten liegen und in die VM's/LXC's (sowie Dockercontainer in den VM's) gemountet oder eben bereitgestellt werden.
Hintergrund warum ich das gerne so mit CephFS hätte: Ich möchte nicht über Jahre meine Daten von Nexclound, Paperless-ngx, Vaultwaren und allem anderen in einer VM/Docker liegen haben und dort "spezifisch gebunden haben". Angenommen eines Tages will ich die Daten in "Rohform" abziehen dann kann ich das unabhängig von der Funktion/dem Vorhandensein der VM/LXC/Docker tun, da diese eben "normal" auf dem CephFS liegen.
Ich hoffe man versteht meine Beweggründe. Falls diese komplett falsch/unbegründet/dumm sind oder jemand eine Bessere Idee zur Trennung hat, gerne vorschlagen!
Frage 1:
Wie stelle ich das CephFS am besten in die VM's/LXC's und auch Dockercontainer innerhalb von VMs bereit?
Aktuell tendiere ich dazu das CephFS mittels https://docs.ceph.com/en/latest/man/8/mount.ceph/ Cephbordmitteln selbst in den VM's/LXCs zu mounten.
Alternativ hatte ich noch im Kopf das CephFS in einer TrueNAS VM mittels o.g. Cephbordmittel zu mounten und dann durch TrueNAS als NFS/SMB Freigabe an andere Dienste/VMs bereitzustellen. Allerdings bin ich nicht sicher ob das Sinn macht? [auch in Bezug zu Frage 2]
Frage 2:
Was wäre die Sinnvollste Möglichkeit das CephFS dann als Storage an die Dockercontainer (die alle in einer/mehrer VM's laufen) bereitzustellen?
Angenommen ich mounte CephFS mit Cephbordmitteln in die Docker-Host-VM, dann kann ich an die Container dann mittels docker Bind-mounts direkt das gemountete CephFS mit gewünschtem Ordner als Storage einbinden;
ODER mittels Docker Volumes auf dem CephFS arbeiten, dazu müsste dann aber (wenn ich es richtig verstehe?) das "Arbeitsverzeichnis" (z.B. /var/lib/docker/volumes/) von Docker (oder Dockge oder Portainer) selbst auf dem CephFS liegen da Volumes ja von Docker gemanaged werden.
Frage 3:
Wie sichere ich am besten die Daten auf dem CephFS?
Kurz zum Backup-Konzept:
-Backups werden über eine VM auf welcher Proxmox-Backup-Server (PBS) läuft (die VM selbst lauft auf dem zu sichernden oben beschrieben Cluster) auf ein physikalisches NAS laufen. Gesichert wird zuerst die PBS-VM aufs NAS, und dann 1-2 h später mittels PBS alle anderen VMs. Die Proxmox-Hosts werden mittels Proxmox-Backup-Client (https://pbs.proxmox.com/docs/backup-client.html) aufs NAS gesichert. Die Hosts sind aber am unwichtigsten da dieser einfach neu installiert werden könnten.
-Disaster-Recovery würde so laufen: Proxmox-Host(s) mittels Proxmox-Backup-Client wiederherstellen vom NAS (oder Proxmox neu installieren), dann die PBS-VM manuell vom NAS Wiederherstellen, dann aus der nun laufenden PBS-VM alle anderen WMs/LXS wiederherstellen.
-Vom NAS wird noch auf eine externe Festplatte/und/oder RemoteCloud ein Offsite-Backup erstellt
(das Ganze Konzept ist hier auch ganz gut beschrieben:
YouTube
An dieser Stelle steht ein externer Inhalt von YouTube, der den Forumbeitrag ergänzt. Er kann mit einem Klick geladen und auch wieder ausgeblendet werden.
Ich bin damit einverstanden, dass YouTube-Embeds geladen werden. Dabei können personenbezogene Daten an YouTube übermittelt werden. Mehr dazu in der Datenschutzerklärung.
ABER: Ich kann mit PBS kein CephFS sichern. Theoretisch kann der Proxmox-Back-Client verwendet werden, der ist aber nicht perfomant für ein größeres CephFS. Wenn ich es richtig verstehe bleibt mir bei CephFS aber leider keine andere Möglichkeit als auf Filesystem-Ebene eine Sicherung durchzuführen, was immer weniger Performant ist als auf Blockdevice-Ebene.
Meine grobe Idee war bisher eine exta VM/LXC in welcher das CephFS gemountet wird, und in dieser VM/LXC dann irgendeine Client-Backup-Software, wie z.B. rSync, Veeam, restic oder sowas in der Art welche dann das gesamte gemountete CephFS ab "root" / aufs NAS sichert. Hat hier jemand Ideen für mich?
Ich weiß dass CephFS auch Snapshots kann und auch snapshot mirroring (https://docs.ceph.com/en/latest/cephfs/cephfs-mirroring/ ) aber dafür benötige einen zweiten CephFS-Cluster und den hab ich nicht, das Setup ist so schon teuer genug .
Außerdem ist es immer ganz schön wenn ein Backup auch auf einem anderen "Technologie-Stack" liegt für den fall das Ceph an sich mal einen Bug hat.
Noch ein paar Bemerkungen zum Setup und mir:
-Ceph Netzwerktraffic wird über USB4 mit 20GBit/s im Ringnetzwerk laufen. Alternativ hätte ich auch die Möglichkeit die vorhandenen 2x10GBit Netzwerkanschlüsse zu nutzen
-Meine letzte aktive Proxmox Erfahrung und aktive Arbeit mit Linux usw. ist schon einige Jahre her, habe früher als Sysadmin gearbeteit und war privat auch sehr an solchen Themen interessiert und aktiv. Aber durch eine komplett andere Berufliche Laufbahn habe ich die Entwicklung nur noch am Rande verfolgt (aber nie ganz aus den Augen verloren ) Docker ist für mich z.B. Praxis-Neuland). Aber ich arbeite mich in so Themen dann schon ein.
Wie man merkt habe ich schon einiges darüber gegrübelt und gegooglt.
Würde mich freuen wenn hier jemand Input/Ideen hat oder gar schon ein ähnliches Setup gefahren hat und Erfahrungen teilen kann oder meine Fragen beantworten kann.
Vielen Dank!!