Arbeiten Sie mit einem Proxmox-Cluster: Installation, Netzwerkeinrichtung, ZFS, Lösen häufiger Probleme

In den letzten Jahren habe ich sehr eng mit Proxmox-Clustern zusammengearbeitet: Viele Kunden benötigen eine eigene Infrastruktur, in der sie ihr Projekt entwickeln können. Deshalb kann ich Ihnen über die häufigsten Fehler und Probleme berichten, auf die Sie möglicherweise auch stoßen. Darüber hinaus werden wir natürlich einen Cluster von drei Knoten von Grund auf neu konfigurieren.


Ein Proxmox-Cluster kann aus zwei oder mehr Servern bestehen. Die maximale Anzahl von Knoten in einem Cluster beträgt 32 Teile. Unser eigener Cluster besteht aus drei Knoten in einem Multicast (in dem Artikel werde ich auch beschreiben, wie ein Cluster auf Eindeutigkeit ausgerichtet wird - dies ist wichtig, wenn Sie Ihre Clusterinfrastruktur beispielsweise auf Hetzner oder OVH basieren). Kurz gesagt, Multicast ermöglicht die gleichzeitige Datenübertragung zu mehreren Knoten. Bei Multicast können wir nicht über die Anzahl der Knoten im Cluster nachdenken (wobei wir uns auf die oben genannten Einschränkungen konzentrieren).

Der Cluster selbst basiert auf einem internen Netzwerk (es ist wichtig, dass sich die IP-Adressen im selben Subnetz befinden). Hetzner und OVH können Knoten in verschiedenen Rechenzentren mithilfe der Virtual Switch (Hetzner) - und vRack (OVH) -Technologie - über Virtual Switch - gruppieren Wir werden auch in dem Artikel sprechen. Wenn Ihr Hosting-Anbieter nicht über ähnliche Technologien verfügt, können Sie OVS (Open Virtual Switch) verwenden, das von Proxmox nativ unterstützt wird, oder ein VPN verwenden. In diesem Fall empfehle ich jedoch die Verwendung von Unicast mit einer kleinen Anzahl von Knoten. Oft treten Situationen auf, in denen der Cluster aufgrund einer solchen Netzwerkinfrastruktur einfach „auseinanderfällt“ und wiederhergestellt werden muss. Daher versuche ich, OVH und Hetzner in meiner Arbeit zu verwenden - ich habe weniger solche Vorfälle gesehen, aber zunächst den Hosting-Anbieter untersucht, der gehostet wird: Verfügt er über alternative Technologien, welche Lösungen bietet er an, unterstützt er Multicast und so weiter? .

Installieren Sie Proxmox


Proxmox kann auf zwei Arten installiert werden: ISO-Installer und Installation über Shell. Wir wählen die zweite Methode, also installieren Sie Debian auf dem Server.

Wir fahren direkt mit der Installation von Proxmox auf jedem Server fort. Die Installation ist äußerst einfach und wird in der offiziellen Dokumentation hier beschrieben.

Fügen Sie das Proxmox-Repository und den Schlüssel dieses Repositorys hinzu:

echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg chmod +r /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg # optional, if you have a changed default umask 

Aktualisieren von Repositorys und des Systems selbst:

 apt update && apt dist-upgrade 

Installieren Sie nach einem erfolgreichen Update die erforderlichen Proxmox-Pakete:

 apt install proxmox-ve postfix open-iscsi 

Hinweis : Postfix und Grub werden während der Installation konfiguriert - einer von ihnen kann fehlschlagen. Möglicherweise wird dies dadurch verursacht, dass der Hostname nicht nach Namen aufgelöst wird. Bearbeiten Sie die Host-Einträge und führen Sie ein apt-get-Update durch

Ab sofort können wir uns unter https: // <externe-IP-Adresse>: 8006 bei der Proxmox-Weboberfläche anmelden (während der Verbindung wird ein nicht vertrauenswürdiges Zertifikat angezeigt).


Bild 1. Proxmox-Knoten-Weboberfläche

Installieren Sie Nginx und lassen Sie uns das Zertifikat verschlüsseln


Die Situation mit dem Zertifikat und der IP-Adresse gefällt mir nicht wirklich. Ich empfehle daher, Nginx zu installieren und das Zertifikat "Let's Encrypt" einzurichten. Ich werde die Installation von Nginx nicht beschreiben, sondern nur die wichtigen Dateien belassen, damit das Let's-Verschlüsselungszertifikat funktioniert:

/etc/nginx/snippets/letsencrypt.conf
 location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; } 



Befehl zum Ausstellen des SSL-Zertifikats:

 certbot certonly --agree-tos --email sos@livelinux.info --webroot -w /var/lib/letsencrypt/ -d proxmox1.domain.name 

Standortkonfiguration in NGINX
 upstream proxmox1.domain.name { server 127.0.0.1:8006; } server { listen 80; server_name proxmox1.domain.name; include snippets/letsencrypt.conf; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name proxmox1.domain.name; access_log /var/log/nginx/proxmox1.domain.name.access.log; error_log /var/log/nginx/proxmox1.domain.name.error.log; include snippets/letsencrypt.conf; ssl_certificate /etc/letsencrypt/live/proxmox1.domain.name/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/proxmox1.domain.name/privkey.pem; location / { proxy_pass https://proxmox1.domain.name; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_buffering off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 


Vergessen Sie nach der Installation des SSL-Zertifikats nicht, es so einzustellen, dass es über cron automatisch erneuert wird:

 0 */12 * * * /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload nginx" 

Großartig! Jetzt können wir über HTTPS auf unsere Domain zugreifen.

Hinweis : Führen Sie den folgenden Befehl aus, um das Fenster mit den Abonnementinformationen zu deaktivieren:

 sed -i.bak "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service 

Netzwerkeinstellungen

Konfigurieren Sie vor dem Herstellen einer Verbindung zum Cluster die Netzwerkschnittstellen auf dem Hypervisor. Es ist erwähnenswert, dass die Konfiguration der verbleibenden Knoten nicht anders ist, mit Ausnahme von IP-Adressen und Servernamen, sodass ich ihre Einstellungen nicht duplizieren werde.

Erstellen wir eine Netzwerkbrücke für das interne Netzwerk, damit unsere virtuellen Maschinen (in meiner Version wird es zur Vereinfachung einen LXC-Container geben) zunächst mit dem internen Netzwerk des Hypervisors verbunden sind und miteinander interagieren können. Zweitens werden wir etwas später eine Brücke für das externe Netzwerk hinzufügen, damit die virtuellen Maschinen ihre eigene externe IP-Adresse haben. Dementsprechend werden die Container im Moment hinter NAT'om bei uns sein.

Es gibt zwei Möglichkeiten, mit der Proxmox-Netzwerkkonfiguration zu arbeiten: über die Weboberfläche oder über die Konfigurationsdatei / etc / network / interfaces. Bei der ersten Option müssen Sie den Server neu starten (oder Sie können die Datei interfaces.new einfach in Schnittstellen umbenennen und den Netzwerkdienst über systemd neu starten). Wenn Sie gerade mit der Konfiguration beginnen und noch keine virtuellen Maschinen oder LXC-Container vorhanden sind, ist es ratsam, den Hypervisor nach den Änderungen neu zu starten.

Erstellen Sie nun eine Netzwerkbrücke mit dem Namen vmbr1 auf der Registerkarte Netzwerk im Proxmox-Webfenster.


Abbildung 2. Netzwerkschnittstellen des Knotens proxmox1


Abbildung 3. Erstellen einer Netzwerkbrücke


Abbildung 4. Konfigurieren der vmbr1-Netzwerkkonfiguration

Das Setup ist extrem einfach - wir benötigen vmbr1, damit die Instanzen Zugriff auf das Internet erhalten.

Starten Sie nun unseren Hypervisor neu und prüfen Sie, ob die Schnittstelle erstellt wurde:


Abbildung 5. Netzwerkschnittstelle vmbr1 in ip eine Befehlsausgabe

Hinweis: Ich habe bereits die ens19-Schnittstelle - dies ist die Schnittstelle zum internen Netzwerk, auf deren Grundlage ein Cluster erstellt wird.

Wiederholen Sie diese Schritte auf den beiden anderen Hypervisoren und fahren Sie dann mit dem nächsten Schritt fort - dem Vorbereiten des Clusters.

Eine wichtige Phase ist jetzt auch die Aktivierung der Paketweiterleitung. Ohne diese Phase erhalten die Instanzen keinen Zugriff auf das externe Netzwerk. Öffnen Sie die Datei sysctl.conf und ändern Sie den Wert des Parameters net.ipv4.ip_forward in 1, wonach Sie den folgenden Befehl eingeben:

 sysctl -p 

In der Ausgabe sollte die Anweisung net.ipv4.ip_forward angezeigt werden (falls Sie diese noch nicht geändert haben).

Konfigurieren eines Proxmox-Clusters

Gehen wir jetzt direkt zum Cluster. Jeder Knoten muss sich selbst und andere Knoten im internen Netzwerk auflösen. Dazu müssen die Werte in den Hosts-Datensätzen wie folgt geändert werden (jeder Knoten muss einen Datensatz über die anderen haben):

 172.30.0.15 proxmox1.livelinux.info proxmox1 172.30.0.16 proxmox2.livelinux.info proxmox2 172.30.0.17 proxmox3.livelinux.info proxmox3 

Es ist auch erforderlich, die öffentlichen Schlüssel jedes Knotens zu den anderen hinzuzufügen - dies ist erforderlich, um einen Cluster zu erstellen.

Erstellen Sie einen Cluster über das Webpanel:


Abbildung 6. Erstellen eines Clusters über die Weboberfläche

Nach dem Erstellen des Clusters müssen wir Informationen darüber erhalten. Gehen Sie zur gleichen Registerkarte des Clusters und klicken Sie auf die Schaltfläche "Join Information" (Informationen beitreten):


Bild 7. Informationen zum erstellten Cluster

Diese Informationen sind nützlich, wenn wir den zweiten und dritten Knoten im Cluster verbinden. Wir sind mit dem zweiten Knoten verbunden und klicken auf der Registerkarte Cluster auf die Schaltfläche "Cluster beitreten":


Abbildung 8. Herstellen einer Verbindung zu einem Knotencluster

Lassen Sie uns die Parameter für die Verbindung genauer analysieren:

  1. Peer-Adresse: IP-Adresse des ersten Servers (zu dem, mit dem wir eine Verbindung herstellen)
  2. Passwort: Passwort des ersten Servers
  3. Fingerabdruck: Diesen Wert erhalten wir aus Clusterinformationen


Abbildung 9. Clusterstatus nach dem Verbinden des zweiten Knotens

Der zweite Knoten ist erfolgreich verbunden! Dies ist jedoch nicht immer der Fall. Wenn Sie die Schritte falsch ausführen oder Netzwerkprobleme auftreten, schlägt der Beitritt zum Cluster fehl und der Cluster selbst wird "aufgelöst". Die beste Lösung besteht darin, den Knoten vom Cluster zu trennen, alle Informationen über den darauf befindlichen Cluster zu löschen, den Server neu zu starten und die vorherigen Schritte zu überprüfen. Wie trenne ich einen Knoten sicher von einem Cluster? Löschen Sie es zunächst aus dem Cluster auf dem ersten Server:

 pvecm del proxmox2 

Danach wird der Knoten vom Cluster getrennt. Gehen Sie nun zum defekten Knoten und deaktivieren Sie die folgenden Dienste darauf:

 systemctl stop pvestatd.service systemctl stop pvedaemon.service systemctl stop pve-cluster.service systemctl stop corosync systemctl stop pve-cluster 

Der Proxmox-Cluster speichert Informationen über sich selbst in der SQLite-Datenbank. Außerdem muss er gelöscht werden:

 sqlite3 /var/lib/pve-cluster/config.db delete from tree where name = 'corosync.conf'; .quit 

Daten über die Rinde werden erfolgreich gelöscht. Löschen Sie die restlichen Dateien. Dazu müssen Sie das Cluster-Dateisystem im Standalone-Modus starten:

 pmxcfs -l rm /etc/pve/corosync.conf rm /etc/corosync/* rm /var/lib/corosync/* rm -rf /etc/pve/nodes/* 

Wir starten den Server neu (dies ist nicht erforderlich, aber wir sind sicher: Alle Dienste sollten am Ende ordnungsgemäß funktionieren. Um nichts zu verpassen, werden wir neu starten). Nach dem Einschalten erhalten wir einen leeren Knoten ohne Informationen zum vorherigen Cluster und können die Verbindung erneut starten.

Installieren und konfigurieren Sie ZFS


ZFS ist ein Dateisystem, das mit Proxmox verwendet werden kann. Mit dieser Funktion können Sie Daten auf einen anderen Hypervisor replizieren, die virtuelle Maschine / den LXC-Container migrieren, vom Host-System aus auf den LXC-Container zugreifen usw. Die Installation ist recht einfach. Fahren wir mit der Analyse fort. Auf meinen Servern stehen drei SSDs zur Verfügung, die wir zu einem RAID-Array kombinieren werden.

Repositorys hinzufügen:

 nano /etc/apt/sources.list.d/stretch-backports.list deb http://deb.debian.org/debian stretch-backports main contrib deb-src http://deb.debian.org/debian stretch-backports main contrib nano /etc/apt/preferences.d/90_zfs Package: libnvpair1linux libuutil1linux libzfs2linux libzpool2linux spl-dkms zfs-dkms zfs-test zfsutils-linux zfsutils-linux-dev zfs-zed Pin: release n=stretch-backports Pin-Priority: 990 

Aktualisieren der Paketliste:

 apt update 

Legen Sie die erforderlichen Abhängigkeiten fest:

  apt install --yes dpkg-dev linux-headers-$(uname -r) linux-image-amd64 

Installieren Sie ZFS selbst:

 apt-get install zfs-dkms zfsutils-linux 

Wenn in Zukunft eine Fehlermeldung angezeigt wird: Sicherungsgerät nicht gefunden, versuchen Sie zuerst 'modprobe fuse' und führen Sie dann den folgenden Befehl aus:

 modprobe fuse 

Fahren wir nun direkt mit dem Setup fort. Zuerst müssen wir die SSDs formatieren und durch parted konfigurieren:

Konfigurieren Sie / dev / sda
 parted /dev/sda (parted) print Model: ATA SAMSUNG MZ7LM480 (scsi) Disk /dev/sda: 480GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 4296MB 4295MB primary raid 2 4296MB 4833MB 537MB primary raid 3 4833MB 37,0GB 32,2GB primary raid (parted) mkpart Partition type? primary/extended? primary File system type? [ext2]? zfs Start? 33GB End? 480GB Warning: You requested a partition from 33,0GB to 480GB (sectors 64453125..937500000). The closest location we can manage is 37,0GB to 480GB (sectors 72353792..937703087). Is this still acceptable to you? Yes/No? yes 


Ähnliche Aktionen müssen für andere Laufwerke ausgeführt werden. Fahren Sie mit dem nächsten Schritt fort, nachdem alle Datenträger vorbereitet wurden:

zpool create -f -o ashift = 12 rpool / dev / sda4 / dev / sdb4 / dev / sdc4

Wir wählen aus Leistungsgründen ashift = 12 - dies ist die Empfehlung von zfsonlinux selbst. Weitere Informationen finden Sie im Wiki: github.com/zfsonlinux/zfs/wiki/faq#performance-considerations

Wenden Sie einige Einstellungen für ZFS an:

 zfs set atime=off rpool zfs set compression=lz4 rpool zfs set dedup=off rpool zfs set snapdir=visible rpool zfs set primarycache=all rpool zfs set aclinherit=passthrough rpool zfs inherit acltype rpool zfs get -r acltype rpool zfs get all rpool | grep compressratio 

Jetzt müssen wir einige Variablen berechnen, um zfs_arc_max zu berechnen. Ich mache das wie folgt:

 mem =`free --giga | grep Mem | awk '{print $2}'` partofmem=$(($mem/10)) echo $setzfscache > /sys/module/zfs/parameters/zfs_arc_max grep c_max /proc/spl/kstat/zfs/arcstats zfs create rpool/data cat > /etc/modprobe.d/zfs.conf << EOL options zfs zfs_arc_max=$setzfscache EOL echo $setzfscache > /sys/module/zfs/parameters/zfs_arc_max grep c_max /proc/spl/kstat/zfs/arcstats 

Im Moment wurde der Pool erfolgreich erstellt, wir haben auch einen Daten-Subpool erstellt. Sie können den Status Ihres Pools mit dem Befehl zpool status überprüfen. Diese Aktion muss auf allen Hypervisoren ausgeführt werden und dann mit dem nächsten Schritt fortfahren.

Fügen Sie nun ZFS zu Proxmox hinzu. Wir gehen zu den Einstellungen des Rechenzentrums (nämlich es und nicht eines separaten Knotens) im Abschnitt "Speicher", klicken auf die Schaltfläche "Hinzufügen" und wählen die Option "ZFS". Danach werden die folgenden Parameter angezeigt:

ID: Name der hundert. Ich gab ihm den Namen local-zfs
ZFS-Pool: Wir haben rpool / data erstellt und hier hinzugefügt.
Knoten: Geben Sie alle verfügbaren Knoten an

Dieser Befehl erstellt einen neuen Pool mit den von uns ausgewählten Laufwerken. Auf jedem Hypervisor sollte ein neuer Speicher mit dem Namen local-zfs angezeigt werden. Anschließend können Sie Ihre virtuellen Maschinen vom lokalen Speicher auf ZFS migrieren.

Replizieren von Instanzen auf einen benachbarten Hypervisor


Der Proxmox-Cluster kann Daten von einem Hypervisor auf einen anderen replizieren: Mit dieser Option können Sie die Instanz von einem Server auf einen anderen umschalten. Die Daten sind zum Zeitpunkt der letzten Synchronisierung relevant - ihre Zeit kann beim Erstellen der Replikation festgelegt werden (standardmäßig 15 Minuten). Es gibt zwei Möglichkeiten, eine Instanz auf einen anderen Proxmox-Knoten zu migrieren: manuell und automatisch. Schauen wir uns zuerst die manuelle Option an, und am Ende werde ich Ihnen ein Python-Skript geben, mit dem Sie eine virtuelle Maschine auf einem zugänglichen Hypervisor erstellen können, wenn einer der Hypervisoren nicht verfügbar ist.

Um eine Replikation zu erstellen, rufen Sie das Proxmox-Webpanel auf und erstellen Sie eine virtuelle Maschine oder einen LXC-Container. In den vorherigen Abschnitten haben wir die vmbr1-Brücke mit NAT konfiguriert, sodass wir zum externen Netzwerk wechseln können. Ich werde einen LXC-Container mit MySQL, Nginx und PHP-FPM mit einer Test-Site erstellen, um die Replikation zu testen. Unten finden Sie eine schrittweise Anleitung.

Wir laden die entsprechende Vorlage (gehen Sie zu Speicher -> Inhalt -> Vorlagen), ein Beispiel im Screenshot:


Image 10. Lokaler Speicher mit VM-Vorlagen und Images

Klicken Sie auf die Schaltfläche "Vorlagen" und laden Sie die benötigte LXC-Containervorlage:


Bild 11. Auswählen und Laden einer Vorlage

Jetzt können wir es beim Erstellen neuer LXC-Container verwenden. Wählen Sie den ersten Hypervisor aus und klicken Sie oben rechts auf die Schaltfläche „CT erstellen“. Das Fenster zum Erstellen einer neuen Instanz wird angezeigt. Die Installationsschritte sind recht einfach und ich werde nur die Konfigurationsdatei für diesen LXC-Container angeben:

 arch: amd64 cores: 3 memory: 2048 nameserver: 8.8.8.8 net0: name=eth0,bridge=vmbr1,firewall=1,gw=172.16.0.1,hwaddr=D6:60:C5:39:98:A0,ip=172.16.0.2/24,type=veth ostype: centos rootfs: local:100/vm-100-disk-1.raw,size=10G swap: 512 unprivileged: 

Der Container wurde erfolgreich erstellt. Sie können über den Befehl pct enter eine Verbindung zu LXC-Containern herstellen. Vor der Installation habe ich außerdem den Hypervisor-SSH-Schlüssel hinzugefügt, um eine direkte Verbindung über SSH herzustellen (es gibt einige Probleme mit der Terminalanzeige in PCT). Ich habe den Server vorbereitet und dort alle erforderlichen Serveranwendungen installiert. Jetzt können Sie mit der Replikation fortfahren.

Wir klicken auf den LXC-Container und gehen zur Registerkarte "Replikation", wo wir den Replikationsparameter über die Schaltfläche "Hinzufügen" erstellen:


Abbildung 12. Replikation in der Proxmox-Oberfläche erstellen


Abbildung 13. Fenster zur Erstellung von Replikationsjobs

Ich habe die Aufgabe erstellt, den Container auf den zweiten Knoten zu replizieren. Wie Sie im nächsten Screenshot sehen können, war die Replikation erfolgreich. Beachten Sie das Feld "Status", es benachrichtigt Sie über den Replikationsstatus. Beachten Sie auch das Feld "Dauer", um zu erfahren, wie lange die Datenreplikation dauert.


Image 14. VM-Synchronisationsliste

Versuchen Sie nun, den Computer mit der Schaltfläche "Migrieren" auf den zweiten Knoten zu migrieren

Die Migration des Containers beginnt, das Protokoll kann in der Liste der Aufgaben angezeigt werden - es wird unsere Migration geben. Danach wird der Container auf den zweiten Knoten verschoben.

Fehler "Überprüfung des Hostschlüssels fehlgeschlagen"

Bei der Konfiguration eines Clusters kann manchmal ein ähnliches Problem auftreten: Es verhindert, dass die Computer migrieren und Replikationen erstellen, wodurch die Vorteile von Clusterlösungen entfallen. Um diesen Fehler zu beheben, löschen Sie die Datei unknown_hosts und stellen Sie über SSH eine Verbindung zum Konfliktknoten her:

 /usr/bin/ssh -o 'HostKeyAlias=proxmox2' root@172.30.0.16 

Akzeptieren Sie Hostkey und geben Sie diesen Befehl ein. Er sollte Sie mit dem Server verbinden:

 /usr/bin/ssh -o 'BatchMode=yes' -o 'HostKeyAlias=proxmox2' root@172.30.0.16 

Funktionen der Netzwerkeinstellungen bei Hetzner


Gehen Sie zum Roboterbedienfeld und klicken Sie auf die Schaltfläche „Virtuelle Switches“. Auf der nächsten Seite sehen Sie ein Fenster zum Erstellen und Verwalten von Virtual Switch-Schnittstellen: Zuerst müssen Sie es erstellen und dann dedizierte Server damit verbinden. Fügen Sie bei der Suche die erforderlichen Server hinzu, um eine Verbindung herzustellen. Sie müssen nicht neu gestartet werden, sondern müssen nur bis 10 bis 15 Minuten warten, bis die Verbindung zum virtuellen Switch aktiv ist.

Nachdem wir die Server über das Webpanel zu Virtual Switch hinzugefügt haben, stellen wir eine Verbindung zu den Servern her und öffnen die Konfigurationsdateien der Netzwerkschnittstellen, in denen wir eine neue Netzwerkschnittstelle erstellen:

 auto enp4s0.4000 iface enp4s0.4000 inet static address 10.1.0.11/24 mtu 1400 vlan-raw-device enp4s0 

Schauen wir uns genauer an, was es ist. Im Kern handelt es sich um ein VLAN, das eine Verbindung zu einer einzelnen physischen Schnittstelle mit dem Namen enp4s0 (dies kann für Sie variieren) mit einer VLAN-Nummer herstellt. Dies ist die Nummer des virtuellen Switch, die Sie im Hetzner Robot-Webpanel erstellt haben. Sie können eine beliebige Adresse angeben, sofern diese lokal ist.

Ich stelle fest, dass Sie enp4s0 wie gewohnt konfigurieren sollten. Tatsächlich sollte es eine externe IP-Adresse enthalten, die an Ihren physischen Server ausgegeben wurde. Wiederholen Sie diese Schritte auf anderen Hypervisoren und starten Sie den Netzwerkdienst auf diesen neu. Pingen Sie dann über die IP-Adresse des virtuellen Switch an einen benachbarten Knoten. Wenn der Ping erfolgreich war, haben Sie mithilfe von Virtual Switch erfolgreich eine Verbindung zwischen den Servern hergestellt.

Ich werde auch die Konfigurationsdatei sysctl.conf anhängen. Sie wird benötigt, wenn Sie Probleme mit dem Weiterleitungspaket und anderen Netzwerkparametern haben:

 net.ipv6.conf.all.disable_ipv6=0 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.all.forwarding=1 net.ipv4.conf.all.rp_filter=1 net.ipv4.tcp_syncookies=1 net.ipv4.ip_forward=1 net.ipv4.conf.all.send_redirects=0 

Hinzufügen von IPv4-Subnetzen zu Hetzner

Bevor Sie mit der Arbeit beginnen, müssen Sie ein Subnetz in Hetzner bestellen. Dies können Sie über das Roboterbedienfeld tun.

Erstellen Sie eine Netzwerkbrücke mit der Adresse, die von diesem Subnetz stammt. Konfigurationsbeispiel:

 auto vmbr2 iface vmbr2 inet static address ip-address netmask 29 bridge-ports none bridge-stp off bridge-fd 0 

Gehen Sie nun zu den Einstellungen der virtuellen Maschine in Proxmox und erstellen Sie eine neue Netzwerkschnittstelle, die an die vmbr2-Bridge angehängt wird. Ich benutze den LXC-Container, dessen Konfiguration kann sofort in Proxmox geändert werden. Endgültige Konfiguration für Debian:

 auto eth0 iface eth0 inet static address ip-address netmask 26 gateway bridge-address 

Bitte beachten Sie: Ich habe 26 Masken angegeben, nicht 29 - dies ist erforderlich, damit das Netzwerk auf der virtuellen Maschine funktioniert.

Hinzufügen von IPv4-Adressen zu Hetzner

Die Situation mit einer einzelnen IP-Adresse ist anders - normalerweise gibt uns Hetzner eine zusätzliche Adresse aus dem Server-Subnetz. Dies bedeutet, dass wir anstelle von vmbr2 vmbr0 verwenden müssen, aber im Moment haben wir es nicht. Unter dem Strich muss vmbr0 die IP-Adresse des Iron-Servers enthalten (dh die Adresse verwenden, die die physische Netzwerkschnittstelle enp2s0 verwendet hat). Die Adresse muss nach vmbr0 verschoben werden. Die folgende Konfiguration ist dafür geeignet (ich empfehle Ihnen, KVM zu bestellen. In diesem Fall können Sie den Netzwerkbetrieb wieder aufnehmen):

 auto enp2s0 iface enp2s0 inet manual auto vmbr0 iface vmbr0 inet static address ip-address netmask 255.255.255.192 gateway ip-gateway bridge-ports enp2s0 bridge-stp off bridge-fd 0 

Starten Sie den Server nach Möglichkeit neu (falls nicht, starten Sie den Netzwerkdienst neu) und überprüfen Sie dann die Netzwerkschnittstellen über IP a:

 2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP group default qlen 1000 link/ether 44:8a:5b:2c:30:c2 brd ff:ff:ff:ff:ff:ff 

Wie Sie hier sehen können, ist enp2s0 mit vmbr0 verbunden und hat keine IP-Adresse, da es vmbr0 neu zugewiesen wurde.

Fügen Sie nun in den Einstellungen der virtuellen Maschine die Netzwerkschnittstelle hinzu, die mit vmbr0 verbunden wird. Geben Sie für das Gateway die an vmbr0 angehängte Adresse an.

Am Ende


Ich hoffe, dieser Artikel ist nützlich, wenn Sie den Proxmox-Cluster in Hetzner einrichten. Wenn es die Zeit erlaubt, werde ich den Artikel erweitern und Anweisungen für OVH hinzufügen - auch dort ist nicht alles offensichtlich, wie es auf den ersten Blick scheint. Das Material erwies sich als ziemlich umfangreich. Wenn Sie Fehler finden, schreiben Sie bitte in die Kommentare, ich werde sie korrigieren. Vielen Dank für Ihre Aufmerksamkeit.

Gepostet von Ilya Andreev, bearbeitet von Alexei Zhadan und Live Linux Team

Source: https://habr.com/ru/post/de457894/


All Articles