Folgendes Szenario beschreibt das auflösen eines Cluster's unter Proxmox 5.-3
Das Cluster besteht aus 3 nodes mit der Kennung "Server4","Server7" & "Server8", wobei das Cluster zu anfangs über "Server4" erstellt wurde.
Bei physischen wegfall der "Server7" & "Server8", sind an "Server4" keinerlei Änderungen ( edit's, start/stop etc. ) an den vorhandenen VM's aufgrund u.a fehlender Brechtigungen mehr möglich.
Mit folgenden Schritten wird das Cluster aufgelöst, bzw. besteht erneuter Zugriff auf die VM's an "Server4".
Datensicherung beachten!!!
( in genanntem Szenario lagen alle Daten auf einem zentralen Raid10, so das keine Sicherung nötig war )
Eingabe via Shell an "Server4":
systemctl stop pve-cluster
systemctl stop corosync
pmxcfs -l
rm /etc/pve/corosync.conf
rm /etc/corosync/*
killall pmxcfs
systemctl start pve-cluster
- Details
- Geschrieben von: Frank
- Kategorie: Server
Hochverfügbarkeit's-Cluster; Shared Storage
In diesem Beitrag erstelle ich step by step ein Hochverfügbarkeit's-Cluster und füge ein Shared Storage ( RAID 10 ) hinzu. Final soll eine hohe Ausfallsicherheit, bei maximaler Performance bestehen.
Folgende Konfiguration ist in diesem Szenario vorhanden:
3x AMD Opteron 6238/32GB Ram/3x240GB SSD ( RAID5)
1x Intel Celeron J4105/8GB RAM/3x240GB SSD ( RAID 5 )/3ware SAS 9750-16i4e Controller
1x HP MSA P2000 Storage 16x4TB RAID 10
Installation Celeron J4105 & HP MSA P2000 Storage:
Das Celeron System dient als lokale Anbindung ( NAS ) zum Storage.
Als erstes wird das interne RAID 5 bestehend aus 3x 240GB erstellt, folgende Werte ergeben sich:
Kapazität: 0.48TB
Schutz:0.24TB
Im zweiten Schritt erstelle ich das RAID10 des extern angebundenen Storages. Bestückt ist dieses mit 16x4 TB, was folgende Werte ergibt:
Kapazität: 32TB
Nicht verwendet: 2.2TB
Nach Erstellung der RAID's wird auf dem Celeron System ein OS installiert ( intern RAID 5 ). Das angebundene Storage wird ins OS eingebunden und als NAS verfügbar gemacht, hierfür vergebe ich folgende statische IP: 192.168.1.230
Erstellung des Cluster's:
Vorab sollten gewisse Vorrausetzungen gegeben sein, hierzu gehören folgende Dinge:
- mind. 3 "Baugleiche Systeme" ( Befehlssätze der CPU's müssen identisch sein, RAM und Speicherplatz ebenfalls )
- jedes System muss zwingend die gleiche Vers. von Proxmox VE vorweisen.
- Die Uhrzeit aller Systeme muss identisch sein.
Szenario:
Ich werde folgende 3 Systeme in das Cluster "Delta3" aufnehmen;
- Server 1 ( 192.168.1.240 )
- Server 2 ( 192.168.1.241 )
- Server 3 ( 192.168.1.242 )
Konfiguration RAID 5 Server 1-3:
Bei allen 3 Systemen wird über den internen RAID Controller ein RAID5 erstellt,
folgende Werte ergeben sich:
Kapazität: 0.48TB
Schutz:0.24TB
Installation Proxmox. Nach erfolgreicher Installation wird mit folgendem Befehl in der Shell ein Update durchgeführt:
apt-get update
apt-get dist-upgrade
reboot
Auf dem ersten System ( Server 1 ) erstelle ich das Cluster:
pvecm create DELTA3
Weitere Systeme zum Cluster hinzufügen, Eingabe lokal an Server2:
pvecm add 192.168.1.240
Weitere Systeme zum Cluster hinzufügen, Eingabe lokal an Server3:
pvecm add 192.168.1.240
Es erfolgt jeweils die Abfrage des SSH Passwortes bzw. des Fingerprints von Server 1, dieser ist unter Cluster Beitrittsinformationen ersichtlich.
Anbindung Shared Storage:
An Server 1 wird die WebOberfläche von Proxmox aufgerufen, dort navigiere ich zum Reiter "Storage" und wähle "NFS" aus.
ID: Sharedstorage
Server: 192.168.1.230
Export: Das Storage sollte sichtbar sein
Content: Angabe der Datenart
Rechenzentrum:
Im Menü sehen wir nun unser Cluster "DELTA3", bestehend aus den 3 Opteron Systemen. Jeder Node hat Zugriff auf das Shared Storage, so das die ersten VM's erstellt werden können.
Hierzu wähle ich "Create VM" und folge dem Verlauf, im Reiter "Node" sind nun alle 3 Systeme ersichtlich und ich kann diese manuell wählen. Alternativ übernimmt Proxmox per Zufall die Verteilung der VM's auf den Systemen. Unter dem Reiter "Hard Disk" wähle ich "Shared Storage", so das die VM auf dem Storage RAID10 abgelegt wird.
- Details
- Geschrieben von: Frank
- Kategorie: Server
!!! unvollständig !!!
Diese Anleitung basiert auf andere Anleitungen und beschreibt nur die Unterschiede von einen normalen Mesh-Server zu einen lokalen GatewayAlle angegebenen IPs, MACs, VLANs, Interfaces müssen passend zum System geändert werden!
DNS+DHCP
### DNS # DNS Server server=192.168.178.1 server=193.28.153.254 server=213.73.91.35 server=8.8.8.8 server=8.8.4.4 local=/ffggrz/ domain=ffggrz ### DHCP / RA #dhcp-authoritative # abschalten der Namensaufloesung fuer DHCP-Clients dhcp-ignore-names #quiet-dhcp #quiet-dhcp6 quiet-ra ####IPv4 dhcp-range=10.181.11.2,10.181.12.254,1h #dhcp-option=option:router,10.181.0.202 dhcp-option=option:dns-server,10.181.0.202 dhcp-option=option:ntp-server,10.181.0.202 dhcp-option=option:domain-search,ffggrz # IP-Fragmentierung am Client um die batman-adv-Fragmentierung zu reduzieren # 1406 (fastd) - 24 (batman-adv) - reserve = 1380 #dhcp-option-force=26,1350 ####IPv6 # ra-stateless: A+O-Bit fuer stateless-Adressen aber DHCPv6 (DNS+NTP) dhcp-range=set:v6,::,constructor:br-freifunk,slaac,ra-stateless,1h # ohne IPv6 nimmt dnsmasq selbst eine der IPv6-Adressen vom Interface dhcp-option=tag:v6,option6:dns-server,:: dhcp-option=tag:v6,option6:ntp-server,:: dhcp-option=tag:v6,option6:domain-search,ffggrz enable-ra ####low Priority #ra-param=br-freifunk,low,600,0 ra-param=br-freifunk,low,600,1800
batman-adv
allow-hotplug bat0 iface bat0 inet manual hwaddress ether de:ad:be:60:05:01 up ip link set up dev $IFACE down ip link set down dev $IFACE post-up sysctl net.ipv6.conf.$IFACE.disable_ipv6=1 post-up echo 60 > /sys/class/net/$IFACE/mesh/hop_penalty post-up echo 1 > /sys/class/net/$IFACE/mesh/bridge_loop_avoidance #post-up batctl gw client 45 #post-up batctl orig_interval 5000 post-up batctl gw server 96mbit/96mbit post-up batctl orig_interval 30000 post-up batctl multicast_mode 0
Firewall+NAT
IPV4
*mangle :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -N DEFAULT_EXIT -A DEFAULT_EXIT -m connmark --mark 0 -j CONNMARK --set-mark 8 -N BYPASS_exitVPN -A BYPASS_exitVPN -m pkttype --pkt-type multicast -j RETURN -A BYPASS_exitVPN -m pkttype --pkt-type broadcast -j RETURN -A BYPASS_exitVPN -d 10.0.0.0/8 -j RETURN -A BYPASS_exitVPN -d 169.254.0.0/16 -j RETURN -A BYPASS_exitVPN -d 172.16.0.0/12 -j RETURN -A BYPASS_exitVPN -d 192.168.0.0/16 -j RETURN -A BYPASS_exitVPN -d 100.64.0.0/10 -j RETURN -A BYPASS_exitVPN -d 192.0.2.0/24 -j RETURN -A BYPASS_exitVPN -d 198.51.100.0/24 -j RETURN -A BYPASS_exitVPN -d 203.0.113.0/24 -j RETURN -A BYPASS_exitVPN ! -s 10.181.0.0/16 -j RETURN -A BYPASS_exitVPN -m connmark --mark 0 -j DEFAULT_EXIT -A INPUT -m mark --mark 0 -m connmark ! --mark 0 -j CONNMARK --restore-mark -A OUTPUT -m mark ! --mark 0 -m connmark --mark 0 -j CONNMARK --save-mark -A PREROUTING -m mark ! --mark 0 -m connmark --mark 0 -j CONNMARK --save-mark -A PREROUTING -i br-freifunk -m conntrack --ctstate NEW -m connmark --mark 0 -m mark --mark 0 -j BYPASS_exitVPN -A PREROUTING -m mark --mark 0 -m connmark ! --mark 0 -j CONNMARK --restore-mark COMMIT
IPv6
*mangle :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -N DEFAULT_EXIT -A DEFAULT_EXIT -m connmark --mark 0 -j CONNMARK --set-mark 8 -N BYPASS_exitVPN -A BYPASS_exitVPN -m pkttype --pkt-type multicast -j RETURN -A BYPASS_exitVPN -m pkttype --pkt-type broadcast -j RETURN -A BYPASS_exitVPN -d fdb5:078b:64cc::/48 -j RETURN -A BYPASS_exitVPN -d 2a03:2260:100b::/48 -j RETURN -A BYPASS_exitVPN -d fe80::/10 -j RETURN -A BYPASS_exitVPN -d ff00::/8 -j RETURN -A BYPASS_exitVPN ! -d 2000::/3 -j RETURN -A BYPASS_exitVPN -m connmark --mark 0 -j DEFAULT_EXIT -A INPUT -m mark --mark 0 -m connmark ! --mark 0 -j CONNMARK --restore-mark -A OUTPUT -m mark ! --mark 0 -m connmark --mark 0 -j CONNMARK --save-mark -A PREROUTING -m mark ! --mark 0 -m connmark --mark 0 -j CONNMARK --save-mark -A PREROUTING -i br-freifunk -m conntrack --ctstate NEW -m connmark --mark 0 -m mark --mark 0 -j BYPASS_exitVPN -A PREROUTING -m mark --mark 0 -m connmark ! --mark 0 -j CONNMARK --restore-mark COMMIT
Allgemein
*nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -o eth0 -m connmark --mark 8 -j MASQUERADE COMMIT *filter -A FORWARD -i br-freifunk -o br-freifunk -j ACCEPT -A FORWARD -i eth0 -o br-freifunk -m connmark --mark 8 -j ACCEPT -A FORWARD -i br-freifunk -o eth0 -m connmark --mark 8 -j ACCEPT -A FORWARD -i eth0 -o br-freifunk -j DROP -A FORWARD -i br-freifunk -o eth0 -j DROP COMMIT
Probleme
- fällt ein Gateway irgendwo aus verlieren zufällige Knoten ihre ganzen Gateway-Einträge, wodurch kein DHCP für eine kurze möglich ist.
- kein intercity-VPN
- nur bedingt IPv6 (falls überhaupt beim Uplink vorhanden)
- statisches DHCP
- Details
- Geschrieben von: Marcus
- Kategorie: Server
Unter der Annahme dass schon batman-adv läuft, eingerichtet ist und br-client die Mesh-Bridge ist
Host-Konfiguration
Installation
sudo apt-get install lxc
ohne LVM
sudo lxc-create -n mein-container -t debian
mit LVM
lxc-create -t debian -n mein-container -B lvm --vgname lvm-gruppe --lvname lxc-mein-container --fssize 4G --fstype ext4 lxc-start -n mein-container lxc-attach -n mein-container passwd
Konfiguration
/var/lib/lxc/marcus/config:
lxc.start.auto = 1 lxc.mount = /var/lib/lxc/marcus/fstab lxc.rootfs = /var/lib/lxc/marcus/rootfs lxc.utsname = marcus lxc.network.type = veth lxc.network.flags = up lxc.network.link = br-client lxc.network.name = eth0 # Common configuration lxc.include = /usr/share/lxc/config/debian.common.conf # Container specific configuration lxc.arch = amd64 lxc.autodev = 1 lxc.kmsg = 0
Container-Konfiguration (im Container!)
/etc/network/interfaces:
auto lo iface lo inet loopback # DHCP #auto eth0 #iface eth0 inet dhcp # Static auto eth0 iface eth0 inet static address 10.181.0.251 netmask 255.255.192.0 #gateway 10.181.0.12 post-up ip route add default via 10.181.0.11 dev eth0 metric 100 post-up ip route add default via 10.181.0.12 dev eth0 metric 200 post-up ip route add default via 10.181.0.13 dev eth0 metric 300 #dns-nameservers 10.181.0.11 10.181.0.12 10.181.0.13 #dns-search ffggrz iface eth0 inet6 static address fdb5:78b:64cc::251 netmask 64
/etc/resolv.conf:
{{{ domain ffggrz search ffggrz. nameserver 10.181.0.202 nameserver 10.181.0.11 nameserver 10.181.0.12 nameserver 10.181.0.13 nameserver 10.181.0.201 }}}- Details
- Geschrieben von: Marcus
- Kategorie: Server
Pakete
# sudo apt-get install linux-headers-amd64 sudo apt-get install build-essential cmake bison libcap-dev libsodium-dev libjson-c-dev bridge-utils xz-utils wget pkg-config libnl-genl-3-dev libnl-3-dev sudo apt-get remove batctl
batman-adv
cd /usr/local/src wget https://downloads.open-mesh.org/batman/releases/batman-adv-2021.1/batman-adv-2021.1.tar.gz tar -xf batman-adv-2021.1.tar.gz cd batman-adv-2021.1/ make sudo make install
batctl
cd /usr/local/src wget https://downloads.open-mesh.org/batman/releases/batman-adv-2021.1/batctl-2021.1.tar.gz tar -xf batctl-2021.1.tar.gz cd batctl-2021.1/ make sudo make install
alfred
libuecc
cd /usr/local/src wget https://git.universe-factory.net/libuecc/snapshot/libuecc-7.tar tar -xf libuecc-7.tar cd libuecc-7/ cmake . make sudo make install sudo ldconfig
alfred
{{{ cd /usr/local/src
wget https://downloads.open-mesh.org/batman/releases/batman-adv-2017.3/alfred-2017.3.tar.gz tar -xf alfred-2017.3.tar.gz cd alfred-2017.3/ make CONFIG_ALFRED_GPSD=n sudo make CONFIG_ALFRED_GPSD=n install }}}
- Details
- Geschrieben von: Eric
- Kategorie: Server