welcome: please sign in
location: Änderungen von "ProxmoxPortal"
Unterschiede zwischen den Revisionen 5 und 6
Revision 5 vom 2019-04-23 15:23:03
Größe: 2059
Kommentar: Mindestanforderungen
Revision 6 vom 2019-04-30 08:33:48
Größe: 7985
Kommentar: Cluster
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 3: Zeile 3:
Zeile 9: Zeile 8:
Zeile 20: Zeile 18:
  * [[https://www.proxmox.com/en/downloads/category/iso-images-pve|Download der aktuellen Proxmox-ISO]]
   * kopieren des Files auf den Stick:
{{{
dd if=proxmox-ve_*.iso of=/dev/XYZ bs=1M
}}}
  * [[https://www.proxmox.com/en/downloads/category/iso-images-pve|Download der aktuellen Proxmox-ISO]]
  * kopieren des Files auf den Stick: {{{dd if=proxmox-ve_*.iso of=/dev/XYZ bs=1M}}}
 * Troubleshooting:
Zeile 26: Zeile 22:
   * Troubleshooting:  . Rechner will einfach nicht vom Stick booten?
  * of=/dev/XYZ muss tatsächlich einem Device entsprechen und nicht einer Partition
 . Installationsassistent startet nicht, Fehlermeldung "failure reading sector 0xXYZ from hd0"
  * anderen Stick probieren (Kingston DataTraveler 100 G3 16GB hat nicht funktioniert, SanDisk Extreme 64GB hat funktioniert)
Zeile 28: Zeile 27:
   . Rechner will einfach nicht vom Stick booten?
      * of=/dev/XYZ muss tatsächlich einem Device entsprechen und nicht einer Partition
   . Installationsassistent startet nicht, Fehlermeldung "failure reading sector 0xXYZ from hd0"
      * anderen Stick probieren (Kingston DataTraveler 100 G3 16GB hat nicht funktioniert, SanDisk Extreme 64GB hat funktioniert)
 * während der Installation Plattenkonfiguration und Netzwerkeinstellungen festlegen
 * Netzwerkkonfiguration kann später angepasst werden
 * ZFS und andere Plattenkonfigurationen können später hinzugefügt werden
 * reboot
Zeile 33: Zeile 32:
   * während der Installation Plattenkonfiguration und Netzwerkeinstellungen festlegen
   * Netzwerkkonfiguration kann später angepasst werden
   * ZFS und andere Plattenkonfigurationen können später hinzugefügt werden
   * reboot
 
== Cluster ==
Cluster<<FootNote([[https://pve.proxmox.com/wiki/Cluster_Manager|Cluster Manager]])>> werden in Proxmox über den Proxmox VE cluster manager (pvecm) erstellt und organisiert. Als Cluster ist hierbei eine Grupppierung von maximal etwa 32 (netzwerkabhängig) physikalischen Servern zu verstehen. Zugrunde liegt die Corosync Cluster Engine, welche die Kommunikation zwischen den einzelnen Knoten verwaltet.
Zeile 39: Zeile 35:
=== Voraussetzung für das Erstellen eines Proxmox-Clusters: ===
 * alle Server müssen sich im selben Netzwerk befinden
 * das Netzwerk sollte IP Multicast nutzen (Corosync), testbar z.B. mit {{{$omping -c 10000 -i 0.001 -F -q node1 node2 node3}}}
 * Corosync nutzt UDP Ports 5404 und 5405 zur Clusterkommunikation
 * Zeit- und Datumssynchronisation
 * SSH über TCP Port 22
 * für HA-Cluster mindestens drei Knoten (Quorum)
 * es sollten sich gleiche Proxmox-Versionen auf den Knoten befinden

=== Erstellen eines Clusters ===
 * über das Web-Interface:
  * Datacenter -> Cluster -> Create Cluster
   * Der Clustername muss einzigartig sein, da damit die Multicastadresse erstellt wird, besonders wenn man mehrere Cluster in einem Netzwerk nutzt ist das wichtig!
 * über CLI:
  * {{{$ pvecm create CLUSTERNAME}}}
 * Status des erstellten Clusters ist mit folgendem Command abzufragen: {{{$ pvecm status}}}

=== Hinzufügen eines Knotens: ===
 * hinzuzufügender Knoten darf keine VMs oder LXC enthalten um doppelte GastIDs im Cluster zu vermeiden
 * über das Web-Interface:
  * auf einem Knoten innerhalb des Clusters: Datacenter -> Cluster -> Join Information
  * auf dem Knoten der hinzugefügt werden soll: Datacenter -> Cluster -> Join Cluster
  * Join Information übertragen und root-Passwort des Clusterknotens eintragen
 * über CLI:
  * auf dem hinzuzufügenden Knoten: {{{$ pvecm add IP-ADDRESS-CLUSTER}}}
  * Anweisungen folgen
  * Clusterstatus abfragbar mit: {{{$ pvecm status}}}
  * Knotenliste abfragbar mit: {{{$ pvecm nodes}}}

=== Entfernen eines Knotens ===
Wird ein Knoten aus dem Cluster entfernt, so sollte dieser eine komplette Proxmox-Neuinstallation erhalten, da er sonst den Cluster beschädigen würde.

 * alle Daten incl. VMs und LXC vom zu löschenden Knoten entfernen bzw. sichern
 * Sollte der Knoten zu einer HA-Clustergruppe gehören, dann muss dieser auch dort entfernt werden. Siehe [[https://wiki.init.mpg.de/IT4Science/ProxmoxPortal#Knoten_ist_im_HA-Cluster_und_wird_entfernt|Knoten ist im HA-Cluster und wird entfernt]] für Troubleshooting
 * Terminal eines Cluster-Knotens nutzen, welcher NICHT entfernt wird
 * zu entfernenden Knoten sicher identifizieren: {{{$ pvecm nodes}}}
 * alle Ressourcen (VM, LXC, Templates) vom zu entfernenden Knoten entfernen
 * zu entfernender Knoten wird heruntergefahren
  * der zu entfernende und heruntergefahrene Knoten darf nicht mehr im Clusternetzwerk gestartet werden, da dieser den Cluster funktionsuntüchtig machen kann. Ein Wiederherstellen ist nur schwer möglich.
 * Knoten kann nun aus dem Cluster entfernt werden: {{{$ pvecm delnode KNOTEN}}}
 * Damit der entfernte Knoten wieder dem Cluster bzw. Netzwerk beitreten darf muss dieser von Grund auf neu installiert werden.
 * Auf den übrigen Knoten im Cluster sollten die Daten des entfernten Knotens entfernt werden: {{{$ rm -rf /etc/pve/nodes/ENTFERNTERKNOTEN}}}
 * außerdem sollte der SSH-Key des Knotens entfernt werden, dazu folgendes File bearbeiten: {{{/etc/pve/priv/authorized_keys}}}

Auch ohne Neuinstallation ist das Entfernen eines Clusterkontens möglich, wenn auch nicht empfohlen:

 * Wichtig, Knoten und Cluster dürfen sich trotzdem keine Ressourcen mehr teilen um Konflikte zu vermeiden (z.B. durch gleichen VMIDs entstehen Konflikte auf einem Shared-Storage)!
 * auf zu entfernenden Knoten Corosync und pve-cluster-services anhalten:
  * {{{$ systemctl stop pve-cluster}}}
  * {{{$ systemctl stop corosync}}}
 * Clusterfilesystem im lokalen Modus starten: {{{$ pmxcfs -l}}}
 * Corosync-Config-Files entfernen:
  * {{{$ rm /etc/pve/corosync.conf}}}
  * {{{$ rm /etc/corosync/*}}}
 * Filesystem neustarten:
  * {{{$ killall pmxcfs}}}
  * {{{$ systemctl start pve-cluster}}}
 * auf bestehendem Clusterknoten kann der zu entfernende Knoten nun entfernt werden: {{{$ pvecm delnode ENTFERNENDERKNOTEN}}}
  * falls der Vorgang (aufgrund eines verlorenen Quorums) fehlschlägt: {{{$ pvecm expected 1}}} und erneut versuchen
 * nun alle Clusterdaten auf dem entfernten Knoten entfernen: {{{$ rm /var/lib/corosync/*}}}
 * auf den Knoten im Cluster sollten die Daten des entfernten Knotens gelöscht werden: {{{$ rm -rf /etc/pve/nodes/ENTFERNTERKNOTEN}}}
 * auf den Knoten sollten die SSH-Keys entfernt werden. Dazu das authorized_key file bearbeiten: {{{/etc/pve/priv/authorized_keys}}}

=== Knoten ist im HA-Cluster und wird entfernt ===
Obwohl sich ein Knoten im HA-Cluster befindet, kann er problemlos entfernt werden. Das führt zu Problemen, da dieser in der HA-Clusterübersicht erhalten bleibt und beim Entfernen der Knoteneinträge aus den anderen Knoten eine Fehlermeldung das HA-Gruppenmanagement sowie das HA-Ressoucenmanagement verhindert. Um das Problem zu beseitigen, müssen die HA-Gruppen händisch angepasst werden, sowie der Status des fehlenden Knotens entfernt werden. Eine Lösung ist nicht über das Web-Interface möglich.

 * {{{$ ha-manager remove vm:100}}} oder {{{$ ha-manager remove ct:100}}} bei LXC entfernt die Ressource aus den Gruppen
 * sind die Ressourcen entfernt bzw. nicht mehr den betroffenen Gruppen zugewiesen, können die Gruppen nun entfernt werden
 * damit die HA-Verwaltung wieder über die GUI stattfinden kann muss der Status des fehlenden Knotens entfernt werden:
  * auf allen Knoten des Clusters: {{{$ systemctl stop pve-ha-crm}}}
  * auf einem Knoten: {{{$ rm /etc/pve/ha/manager_status}}}
  * auf allen Knoten des Clusters: {{{$ systemctl start pve-ha-crm}}}

----
Zeile 42: Zeile 112:

Proxmox-Portal

Proxmox VE (Proxmox Virtual Envirement) ist eine über Web-Oberfläche steuerbare und auf Debian basierte Open-Source-Virtualisierungsplattform für x86-Virtualisierungen. Basierend auf Qemu mit der KVM ist auch der Betrieb von Linux Containers (LXC) möglich.

Mindestanforderungen

Für Testzwecke reichen folgende Anforderungen1, allerdings sollte bedacht werden, dass es zu erheblichen Einschränkungen bei der Virtualisierung kommen kann. Proxmox VE lässt sich als Gast einer Desktop-Virtualisierung installieren, solange diese Nested Virtualization erlauben.

  • CPU: 64bit (Intel EMT64 oder AMD64)
  • Intel VT/AMD-V-fähige CPU/Mainboard (für KVM Full Virtualization Unterstützung)
  • Mindestens 1 GB RAM
  • Festplatte
  • eine Netzwerkkarte

Installation

  • Boot-USB-Stick erstellen:
  • Troubleshooting:
  • Rechner will einfach nicht vom Stick booten?
    • of=/dev/XYZ muss tatsächlich einem Device entsprechen und nicht einer Partition
  • Installationsassistent startet nicht, Fehlermeldung "failure reading sector 0xXYZ from hd0"
    • anderen Stick probieren (Kingston DataTraveler 100 G3 16GB hat nicht funktioniert, SanDisk Extreme 64GB hat funktioniert)

  • während der Installation Plattenkonfiguration und Netzwerkeinstellungen festlegen
  • Netzwerkkonfiguration kann später angepasst werden
  • ZFS und andere Plattenkonfigurationen können später hinzugefügt werden
  • reboot

Cluster

Cluster2 werden in Proxmox über den Proxmox VE cluster manager (pvecm) erstellt und organisiert. Als Cluster ist hierbei eine Grupppierung von maximal etwa 32 (netzwerkabhängig) physikalischen Servern zu verstehen. Zugrunde liegt die Corosync Cluster Engine, welche die Kommunikation zwischen den einzelnen Knoten verwaltet.

Voraussetzung für das Erstellen eines Proxmox-Clusters:

  • alle Server müssen sich im selben Netzwerk befinden
  • das Netzwerk sollte IP Multicast nutzen (Corosync), testbar z.B. mit $omping -c 10000 -i 0.001 -F -q node1 node2 node3

  • Corosync nutzt UDP Ports 5404 und 5405 zur Clusterkommunikation
  • Zeit- und Datumssynchronisation
  • SSH über TCP Port 22
  • für HA-Cluster mindestens drei Knoten (Quorum)
  • es sollten sich gleiche Proxmox-Versionen auf den Knoten befinden

Erstellen eines Clusters

  • über das Web-Interface:
    • Datacenter -> Cluster -> Create Cluster

      • Der Clustername muss einzigartig sein, da damit die Multicastadresse erstellt wird, besonders wenn man mehrere Cluster in einem Netzwerk nutzt ist das wichtig!
  • über CLI:
    • $ pvecm create CLUSTERNAME

  • Status des erstellten Clusters ist mit folgendem Command abzufragen: $ pvecm status

Hinzufügen eines Knotens:

  • hinzuzufügender Knoten darf keine VMs oder LXC enthalten um doppelte GastIDs im Cluster zu vermeiden
  • über das Web-Interface:
    • auf einem Knoten innerhalb des Clusters: Datacenter -> Cluster -> Join Information

    • auf dem Knoten der hinzugefügt werden soll: Datacenter -> Cluster -> Join Cluster

    • Join Information übertragen und root-Passwort des Clusterknotens eintragen
  • über CLI:
    • auf dem hinzuzufügenden Knoten: $ pvecm add IP-ADDRESS-CLUSTER

    • Anweisungen folgen
    • Clusterstatus abfragbar mit: $ pvecm status

    • Knotenliste abfragbar mit: $ pvecm nodes

Entfernen eines Knotens

Wird ein Knoten aus dem Cluster entfernt, so sollte dieser eine komplette Proxmox-Neuinstallation erhalten, da er sonst den Cluster beschädigen würde.

  • alle Daten incl. VMs und LXC vom zu löschenden Knoten entfernen bzw. sichern
  • Sollte der Knoten zu einer HA-Clustergruppe gehören, dann muss dieser auch dort entfernt werden. Siehe Knoten ist im HA-Cluster und wird entfernt für Troubleshooting

  • Terminal eines Cluster-Knotens nutzen, welcher NICHT entfernt wird
  • zu entfernenden Knoten sicher identifizieren: $ pvecm nodes

  • alle Ressourcen (VM, LXC, Templates) vom zu entfernenden Knoten entfernen
  • zu entfernender Knoten wird heruntergefahren
    • der zu entfernende und heruntergefahrene Knoten darf nicht mehr im Clusternetzwerk gestartet werden, da dieser den Cluster funktionsuntüchtig machen kann. Ein Wiederherstellen ist nur schwer möglich.
  • Knoten kann nun aus dem Cluster entfernt werden: $ pvecm delnode KNOTEN

  • Damit der entfernte Knoten wieder dem Cluster bzw. Netzwerk beitreten darf muss dieser von Grund auf neu installiert werden.
  • Auf den übrigen Knoten im Cluster sollten die Daten des entfernten Knotens entfernt werden: $ rm -rf /etc/pve/nodes/ENTFERNTERKNOTEN

  • außerdem sollte der SSH-Key des Knotens entfernt werden, dazu folgendes File bearbeiten: /etc/pve/priv/authorized_keys

Auch ohne Neuinstallation ist das Entfernen eines Clusterkontens möglich, wenn auch nicht empfohlen:

  • Wichtig, Knoten und Cluster dürfen sich trotzdem keine Ressourcen mehr teilen um Konflikte zu vermeiden (z.B. durch gleichen VMIDs entstehen Konflikte auf einem Shared-Storage)!
  • auf zu entfernenden Knoten Corosync und pve-cluster-services anhalten:
    • $ systemctl stop pve-cluster

    • $ systemctl stop corosync

  • Clusterfilesystem im lokalen Modus starten: $ pmxcfs -l

  • Corosync-Config-Files entfernen:
    • $ rm /etc/pve/corosync.conf

    • $ rm /etc/corosync/*

  • Filesystem neustarten:
    • $ killall pmxcfs

    • $ systemctl start pve-cluster

  • auf bestehendem Clusterknoten kann der zu entfernende Knoten nun entfernt werden: $ pvecm delnode ENTFERNENDERKNOTEN

    • falls der Vorgang (aufgrund eines verlorenen Quorums) fehlschlägt: $ pvecm expected 1 und erneut versuchen

  • nun alle Clusterdaten auf dem entfernten Knoten entfernen: $ rm /var/lib/corosync/*

  • auf den Knoten im Cluster sollten die Daten des entfernten Knotens gelöscht werden: $ rm -rf /etc/pve/nodes/ENTFERNTERKNOTEN

  • auf den Knoten sollten die SSH-Keys entfernt werden. Dazu das authorized_key file bearbeiten: /etc/pve/priv/authorized_keys

Knoten ist im HA-Cluster und wird entfernt

Obwohl sich ein Knoten im HA-Cluster befindet, kann er problemlos entfernt werden. Das führt zu Problemen, da dieser in der HA-Clusterübersicht erhalten bleibt und beim Entfernen der Knoteneinträge aus den anderen Knoten eine Fehlermeldung das HA-Gruppenmanagement sowie das HA-Ressoucenmanagement verhindert. Um das Problem zu beseitigen, müssen die HA-Gruppen händisch angepasst werden, sowie der Status des fehlenden Knotens entfernt werden. Eine Lösung ist nicht über das Web-Interface möglich.

  • $ ha-manager remove vm:100 oder $ ha-manager remove ct:100 bei LXC entfernt die Ressource aus den Gruppen

  • sind die Ressourcen entfernt bzw. nicht mehr den betroffenen Gruppen zugewiesen, können die Gruppen nun entfernt werden
  • damit die HA-Verwaltung wieder über die GUI stattfinden kann muss der Status des fehlenden Knotens entfernt werden:
    • auf allen Knoten des Clusters: $ systemctl stop pve-ha-crm

    • auf einem Knoten: $ rm /etc/pve/ha/manager_status

    • auf allen Knoten des Clusters: $ systemctl start pve-ha-crm


Anmerkungen, Anregungen

Anmerkungen, Anregungen, Verbesserungsvorschläge hinterlasse man bitte auf der Diskussionsseite

ProxmoxPortal (zuletzt geändert am 2019-06-17 10:30:04 durch hayd@cbs.mpg.de)