Code: Select all
[NDBD DEFAULT]
NoOfReplicas=3
DataMemory=512M
IndexMemory=512M
MaxNoOfOrderedIndexes=6800
MaxNoOfUniqueHashIndexes=5200
MaxNoOfAttributes = 4000
RedoBuffer = 64M
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Management Nodes
[NDB_MGMD]
HostName=123.123..123.1 # "alte" Management-Konsole
[NDB_MGMD]
Hostname=133.133.133.1 # zusaetzliche Management-Konsole
# Storage Nodes
[NDBD]
HostName=192.168.1.5
DataDir=/var/lib/mysql-cluster
[NDBD]
HostName=192.168.1.4
DataDir=/var/lib/mysql-cluster
[NDBD]
HostName=192.168.1.101
DataDir=/var/lib/mysql-cluster
# Setup node IDs for MySQL API servers (clients of the cluster)
[MYSQLD]
[MYSQLD]
[MYSQLD]
[MYSQLD]
Das komplette bestehende Cluster befindet sich in einem Server-Schrank, der zum Internet nur eine Leitung hat. Der Management-Knoten ist somit auch Router. Das Netzwerk im Schrank sieht also wie folgt aus... Der Rechner 192.168.1.1 (bei uns heisst er phoenix) ist Management-Knoten und Router, dessen zweite Netzwerkkarte am Switch des RZ haengt und darueber mit fester IP im Internet erreichbar ist. Insgesamt sind dem Router/Management-Server 5 verschiedene IPs zugewiesen, die dieser ueber virtuelle Interfaces aufloest. Das funktioniert z.B. fuer einen der API-Knoten mit den IPTables etwa so:
Code: Select all
$IPTABLES -t nat -A POSTROUTING -s $IP_INT_ALBATROS -o eth0 -j SNAT --to-source $IP_EXT_ALBATROS
$IPTABLES -t nat -A POSTROUTING -s $IP_INT_ALBATROS -o eth1 -j SNAT --to-source $IP_EXT_ALBATROS
$IPTABLES -t nat -A PREROUTING -i eth0 -d $IP_EXT_ALBATROS -j DNAT --to-destination $IP_INT_ALBATROS
$IPTABLES -t nat -A PREROUTING -i eth1 -d $IP_EXT_ALBATROS -j DNAT --to-destination $IP_INT_ALBATROS
Und an dieser Stelle sitzt mein Problem. Wollen naemlich die neuen Speicherknoten mit den alten kommunizieren und melden sich bei einem von diesen, bekommen sie die Antwort mit einer LAN-IP, die fuer sie natuerlich nicht gueltig ist, da sie die Anfrage ja an eine voellig andere IP gestellt haben. Ich habe auch schon die komplette Konfiguration auf die Internet-IPs umgestellt, aber auch das brachte nichts, da sich die Rechner im Schrank ja unter dieser IP garnicht kennen. Die kennen nur ihre LAN-IP, die "Aufloesung" der Internet-IPs macht ja der Router.
Problem dabei ist, dass diese Netzwerk-Konstruktion noch von meinem Vorgaenger stammt und ich nun hier bin um damit ein Cluster einzurichten. Da in dem Schrank auch noch Server stehen, die im Produktiv-Betrieb sind, kann ich aber auch nicht einfach den Serverschrank neu verkabeln. Ich weiss, dass dies die beste Loesung waere.
Vielleicht hat ja hier noch jemand eine Idee, was ich machen koennte um die Server aus dem Schrank dazu zu bewegen korrekt mit den Servern, die draussen stehen, zu kommunizieren.