Hallo zusammen,
wir haben inzwischen 4 Proxmox VE Cluster produktiv im Einsatz. Dazu noch 4 PBS. Zwei davon beherbergen die Backups aller VMs, sitzen an unterschiedlichen Standorten und Replizieren über eine 10GBit Richtfunkstrecke.
Nun möchte ich aus übrig gebliebener Hardware ein weiteres Cluster aufbauen, sozusagen unsere "Spielwiese".
Hier möchten wir regelmäßig Recovery-Tests durchführen, um die Kollegen in der IT zu schulen usw. Wir möchten also regelmäßig den Worst-Case Proben, falls z. b. Ransomware alles platt machen sollte.
Außerdem soll das 'neue' Cluster jedes unserer anderer Cluster übernehmen können, fall dies durch Feuer/Wasser/wasauchimmer ausfällt. Es muss also genügend RAM und Speicherplatz für zur Verfügung stehen, um unser größtes Cluster zu ersetzen.
Leider habe ich keine 3 identischen Server. Folgende Hardware hab ich:
2x HP-Server je:
40 x Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz (2 Sockets)
256GB Ram
1x Terra Server:
64 x Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz (2 Sockets)
256 GB Ram
Die HDDs/SSDs sind nicht zu gebrauchen. HDDs zu langsam, SSDs zu klein.
Am RAM muss eventuell noch etwas nach gelegt werden.
Wichtig wäre ein schneller Restore vom PBS. Wir haben mehrere File-Server, die zusammen ca. 25TB belegen. Alle anderen VMS (ca. 70) sind zumeist <200GB.
Die Fileserver machen mir Sorgen.
Noch kurz zu den Backup-Servern:
Das sind Server mit
16 x Intel(R) Xeon(R) Silver 4309Y CPU @ 2.80GHz (1 Socket)
128GB RAM
einem ZFS-Pool mit 14 8 TB Samsung SSDs (PM893)
Wenn die Backup-Server mit der Replikation starten, tun die das laut den Diagrammen mit ca. 700 M.
Der primäre-Backup Server und meine Spielwiese stehen im gleichen Serverraum. Alle Server haben eine 10 GBit Anbindung. (PBS Server haben 20GBit über LACP)
Nun zu meinem Spielwiesen-Cluser:
Das Budget ist knapp und es ist kein produktives Cluser, daher teste ich mit einfachen SSDs.
In jedem der 3 Nodes sind je 2 Samsung 870 QVO 8 TB verbaut.
Diese sind direkt ans Mainboard angeschlossen und nicht an dem zusätzlichen Raid-Controller.
Jeder Server hat eine 10 GBit dual-Port Netzwerkkarte. Ein Port für die Anbindung ans Netz, ein Port für CEPH. CEPH hat am gemeinsamen Switch ein eigenes VLAN.
Auf dem Spielwiese-Cluster ist derzeit Proxmox VE 8.0.3 installiert.
Die Ceph-Configuration habe ich nach einer Anleitung aus dem Netz durchgeführt.
[global]
auth_client_required = cephx
auth_cluster_required = cephx
auth_service_required = cephx
cluster_network = 192.168.40.11/24
fsid = 7ed464da-a155-402c-9a6b-c85c51f836b0
mon_allow_pool_delete = true
mon_host = 192.168.40.11 192.168.40.12 192.168.40.13
ms_bind_ipv4 = true
ms_bind_ipv6 = false
osd_pool_default_min_size = 2
osd_pool_default_size = 3
public_network = 192.168.40.11/24
[client]
keyring = /etc/pve/priv/$cluster.$name.keyring
[mds]
keyring = /var/lib/ceph/mds/ceph-$id/keyring
[mds.GHH-PVE04]
host = GHH-PVE04
mds_standby_for_name = pve
[mds.GHH-PVE05]
host = GHH-PVE05
mds_standby_for_name = pve
[mds.GHH-PVE06]
host = GHH-PVE06
mds standby for name = pve
[mon.GHH-PVE04]
public_addr = 192.168.40.11
[mon.GHH-PVE05]
public_addr = 192.168.40.12
[mon.GHH-PVE06]
public_addr = 192.168.40.13
Hier die Crush-Map:
# begin crush map
tunable choose_local_tries 0
tunable choose_local_fallback_tries 0
tunable choose_total_tries 50
tunable chooseleaf_descend_once 1
tunable chooseleaf_vary_r 1
tunable chooseleaf_stable 1
tunable straw_calc_version 1
tunable allowed_bucket_algs 54
# devices
device 0 osd.0 class ssd
device 1 osd.1 class ssd
device 2 osd.2 class ssd
device 3 osd.3 class ssd
device 4 osd.4 class ssd
device 5 osd.5 class ssd
# types
type 0 osd
type 1 host
type 2 chassis
type 3 rack
type 4 row
type 5 pdu
type 6 pod
type 7 room
type 8 datacenter
type 9 zone
type 10 region
type 11 root
# buckets
host GHH-PVE04 {
id -3 # do not change unnecessarily
id -4 class ssd # do not change unnecessarily
# weight 14.55478
alg straw2
hash 0 # rjenkins1
item osd.0 weight 7.27739
item osd.3 weight 7.27739
}
host GHH-PVE05 {
id -5 # do not change unnecessarily
id -6 class ssd # do not change unnecessarily
# weight 14.55478
alg straw2
hash 0 # rjenkins1
item osd.1 weight 7.27739
item osd.4 weight 7.27739
}
host GHH-PVE06 {
id -7 # do not change unnecessarily
id -8 class ssd # do not change unnecessarily
# weight 14.55478
alg straw2
hash 0 # rjenkins1
item osd.2 weight 7.27739
item osd.5 weight 7.27739
}
root default {
id -1 # do not change unnecessarily
id -2 class ssd # do not change unnecessarily
# weight 43.66434
alg straw2
hash 0 # rjenkins1
item GHH-PVE04 weight 14.55478
item GHH-PVE05 weight 14.55478
item GHH-PVE06 weight 14.55478
}
# rules
rule replicated_rule {
id 0
type replicated
step take default
step chooseleaf firstn 0 type host
step emit
}
# end crush map
Da ich CEPH noch nicht so 100%ig verstanden habe, stoße ich nun auf ein paar Probleme. Bzw. auf ein: Die Performance beim Restore!
Ich habe momentan 3 Restores vom Backup-Server auf mein Spielwiese cluster laufen (Je Node 1 Restore). Jeweils ein Fileserver.
Die Anzeige im Ceph sieht so aus:
Und das recht konstant.
Ich habe mich auf die Suche nach dem Flaschenhals gemacht.
Da die PBS untereinander mit 700Mb replizieren, dinge ich nicht, dass diese bremsen.
Die Geschwindigkeit riecht nach 1GBit am Netzwerk anstatt 10. Die Anschlüsse bin ich alle durchgegangen, das sieht gut aus.
Zum Test habe ich in die Server noch weitere Festplatten eingeschoben, z B. 4 TB Enterprise SSDs die noch übrig waren. Diese sind einzeln als LVM-thin eingebunden.
Wenn ich zusätzlich noch einen weiteren Restore laufen lasse, sehe ich in der Übersicht am Server, dass netin auf über 200M hoch geht.
Das ist also nicht der Flaschenhals.
Bei den OSDs habe ich noch folgende Veränderung vorgenommen.
ceph tell 'osd.*' injectargs '--osd-max-backfills 16'
ceph tell 'osd.*' injectargs '--osd-recovery-max-active 4'
(für alle OSDs)
Ob das für die Geschwindigkeit vom Ceph was bringt weiß ich nicht, bisher hab ich nix gemerkt.
Ist diese Geschwindigkeit für diese Anzahl an OSDs normal?
Muss ich noch irgendwo einen Schalter umlegen?
Bremst vielleicht irgendwo einer der Controller?
Hat jemand mit einem ähnlichen Aufbau erfahrungen?
Vielen Dank schonmal für eure Antworten!
Viele Grüße
Frank
wir haben inzwischen 4 Proxmox VE Cluster produktiv im Einsatz. Dazu noch 4 PBS. Zwei davon beherbergen die Backups aller VMs, sitzen an unterschiedlichen Standorten und Replizieren über eine 10GBit Richtfunkstrecke.
Nun möchte ich aus übrig gebliebener Hardware ein weiteres Cluster aufbauen, sozusagen unsere "Spielwiese".
Hier möchten wir regelmäßig Recovery-Tests durchführen, um die Kollegen in der IT zu schulen usw. Wir möchten also regelmäßig den Worst-Case Proben, falls z. b. Ransomware alles platt machen sollte.
Außerdem soll das 'neue' Cluster jedes unserer anderer Cluster übernehmen können, fall dies durch Feuer/Wasser/wasauchimmer ausfällt. Es muss also genügend RAM und Speicherplatz für zur Verfügung stehen, um unser größtes Cluster zu ersetzen.
Leider habe ich keine 3 identischen Server. Folgende Hardware hab ich:
2x HP-Server je:
40 x Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz (2 Sockets)
256GB Ram
1x Terra Server:
64 x Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz (2 Sockets)
256 GB Ram
Die HDDs/SSDs sind nicht zu gebrauchen. HDDs zu langsam, SSDs zu klein.
Am RAM muss eventuell noch etwas nach gelegt werden.
Wichtig wäre ein schneller Restore vom PBS. Wir haben mehrere File-Server, die zusammen ca. 25TB belegen. Alle anderen VMS (ca. 70) sind zumeist <200GB.
Die Fileserver machen mir Sorgen.
Noch kurz zu den Backup-Servern:
Das sind Server mit
16 x Intel(R) Xeon(R) Silver 4309Y CPU @ 2.80GHz (1 Socket)
128GB RAM
einem ZFS-Pool mit 14 8 TB Samsung SSDs (PM893)
Wenn die Backup-Server mit der Replikation starten, tun die das laut den Diagrammen mit ca. 700 M.
Der primäre-Backup Server und meine Spielwiese stehen im gleichen Serverraum. Alle Server haben eine 10 GBit Anbindung. (PBS Server haben 20GBit über LACP)
Nun zu meinem Spielwiesen-Cluser:
Das Budget ist knapp und es ist kein produktives Cluser, daher teste ich mit einfachen SSDs.
In jedem der 3 Nodes sind je 2 Samsung 870 QVO 8 TB verbaut.
Diese sind direkt ans Mainboard angeschlossen und nicht an dem zusätzlichen Raid-Controller.
Jeder Server hat eine 10 GBit dual-Port Netzwerkkarte. Ein Port für die Anbindung ans Netz, ein Port für CEPH. CEPH hat am gemeinsamen Switch ein eigenes VLAN.
Auf dem Spielwiese-Cluster ist derzeit Proxmox VE 8.0.3 installiert.
Die Ceph-Configuration habe ich nach einer Anleitung aus dem Netz durchgeführt.
[global]
auth_client_required = cephx
auth_cluster_required = cephx
auth_service_required = cephx
cluster_network = 192.168.40.11/24
fsid = 7ed464da-a155-402c-9a6b-c85c51f836b0
mon_allow_pool_delete = true
mon_host = 192.168.40.11 192.168.40.12 192.168.40.13
ms_bind_ipv4 = true
ms_bind_ipv6 = false
osd_pool_default_min_size = 2
osd_pool_default_size = 3
public_network = 192.168.40.11/24
[client]
keyring = /etc/pve/priv/$cluster.$name.keyring
[mds]
keyring = /var/lib/ceph/mds/ceph-$id/keyring
[mds.GHH-PVE04]
host = GHH-PVE04
mds_standby_for_name = pve
[mds.GHH-PVE05]
host = GHH-PVE05
mds_standby_for_name = pve
[mds.GHH-PVE06]
host = GHH-PVE06
mds standby for name = pve
[mon.GHH-PVE04]
public_addr = 192.168.40.11
[mon.GHH-PVE05]
public_addr = 192.168.40.12
[mon.GHH-PVE06]
public_addr = 192.168.40.13
Hier die Crush-Map:
# begin crush map
tunable choose_local_tries 0
tunable choose_local_fallback_tries 0
tunable choose_total_tries 50
tunable chooseleaf_descend_once 1
tunable chooseleaf_vary_r 1
tunable chooseleaf_stable 1
tunable straw_calc_version 1
tunable allowed_bucket_algs 54
# devices
device 0 osd.0 class ssd
device 1 osd.1 class ssd
device 2 osd.2 class ssd
device 3 osd.3 class ssd
device 4 osd.4 class ssd
device 5 osd.5 class ssd
# types
type 0 osd
type 1 host
type 2 chassis
type 3 rack
type 4 row
type 5 pdu
type 6 pod
type 7 room
type 8 datacenter
type 9 zone
type 10 region
type 11 root
# buckets
host GHH-PVE04 {
id -3 # do not change unnecessarily
id -4 class ssd # do not change unnecessarily
# weight 14.55478
alg straw2
hash 0 # rjenkins1
item osd.0 weight 7.27739
item osd.3 weight 7.27739
}
host GHH-PVE05 {
id -5 # do not change unnecessarily
id -6 class ssd # do not change unnecessarily
# weight 14.55478
alg straw2
hash 0 # rjenkins1
item osd.1 weight 7.27739
item osd.4 weight 7.27739
}
host GHH-PVE06 {
id -7 # do not change unnecessarily
id -8 class ssd # do not change unnecessarily
# weight 14.55478
alg straw2
hash 0 # rjenkins1
item osd.2 weight 7.27739
item osd.5 weight 7.27739
}
root default {
id -1 # do not change unnecessarily
id -2 class ssd # do not change unnecessarily
# weight 43.66434
alg straw2
hash 0 # rjenkins1
item GHH-PVE04 weight 14.55478
item GHH-PVE05 weight 14.55478
item GHH-PVE06 weight 14.55478
}
# rules
rule replicated_rule {
id 0
type replicated
step take default
step chooseleaf firstn 0 type host
step emit
}
# end crush map
Da ich CEPH noch nicht so 100%ig verstanden habe, stoße ich nun auf ein paar Probleme. Bzw. auf ein: Die Performance beim Restore!
Ich habe momentan 3 Restores vom Backup-Server auf mein Spielwiese cluster laufen (Je Node 1 Restore). Jeweils ein Fileserver.
Die Anzeige im Ceph sieht so aus:
Und das recht konstant.
Ich habe mich auf die Suche nach dem Flaschenhals gemacht.
Da die PBS untereinander mit 700Mb replizieren, dinge ich nicht, dass diese bremsen.
Die Geschwindigkeit riecht nach 1GBit am Netzwerk anstatt 10. Die Anschlüsse bin ich alle durchgegangen, das sieht gut aus.
Zum Test habe ich in die Server noch weitere Festplatten eingeschoben, z B. 4 TB Enterprise SSDs die noch übrig waren. Diese sind einzeln als LVM-thin eingebunden.
Wenn ich zusätzlich noch einen weiteren Restore laufen lasse, sehe ich in der Übersicht am Server, dass netin auf über 200M hoch geht.
Das ist also nicht der Flaschenhals.
Bei den OSDs habe ich noch folgende Veränderung vorgenommen.
ceph tell 'osd.*' injectargs '--osd-max-backfills 16'
ceph tell 'osd.*' injectargs '--osd-recovery-max-active 4'
(für alle OSDs)
Ob das für die Geschwindigkeit vom Ceph was bringt weiß ich nicht, bisher hab ich nix gemerkt.
Ist diese Geschwindigkeit für diese Anzahl an OSDs normal?
Muss ich noch irgendwo einen Schalter umlegen?
Bremst vielleicht irgendwo einer der Controller?
Hat jemand mit einem ähnlichen Aufbau erfahrungen?
Vielen Dank schonmal für eure Antworten!
Viele Grüße
Frank