Inhaltsverzeichnis
Über
Um auch nach der Aufgabe der eigenen Technik genügend Rechenleistung, Speicher und eine schnelle Internet-Anbindung gewährleisten zu können, hat PING bei der Dortmunder Firma Knipp aus Dortmund fünf leistungsfähige Server gemietet. Auf diesen fünf Server laufen jeweils mehrere virtuelle Maschinen, auf denen dann die Dienste laufen, die unseren Mitgliedern und der restlichen Welt zur Verfügung stehen. Diese Seite ist die Basisseite zur Dokumentation dieser Server und ihrer Eigenheiten.
Hardware
Bei den PING-Server, die im Knipp-Rechenzentrum in Dortmund stehen, handelt es sich um fünf identische 2 HE 19" Server. Die Server-Gehäuse beinhalten Schächte für acht SATA-Festplatten, ein redundantes Netzteil (zwei Eingänge) und IPMI-Karten zur Fernwartung. Als Festplattenspeicher stehen vier Terabyte konventionelle HDD und 512 GB SSD zur Verfügung, die sich auf jeweils zwei im RAID-1-Verbund zusammengeschalteten Festplatten „aufteilen“. Das RAID wird dabei vom Linux-Kernel in Software zur Verfügung gestellt. Jeder Server beinhaltet zwei Gigabit-Ethernet-Netzwerkkarten, die sich fest auf dem Mainboard befinden, sowie eine PCI-Netzwerkkarte. Die IPMI-Karten sind über eine eigene Ethernet-Schnittstelle angebunden, die im Linux-System nicht zu sehen ist.
Komponente |
Anzahl |
Beschreibung |
Mainboard |
1 |
Vorhanden |
CPU |
1 |
2x Intel Xeon 6-Core 2,4 GHz 15 MB |
RAM |
? |
64 GB (?x ? GB) ECC Reg DDR4 2133 RAM |
Netzteil |
1 |
Redundant 740 Watt brutto |
Netzwerkkarte |
2 |
? Gigabit Ethernet Onboard |
Nerzwerkkarte |
1 |
? Gigabit Ethernet Controller |
Festplatten |
2 |
4 TB |
SSD |
2 |
512 GB |
Um auch im laufenden Betrieb nicht den Überblick über die Hardware und ihre Funktionstüchtigkeit zu verlieren, wird die Hardware über die zum Monitoring bereitstehenden Schnittstellen überwacht. Mehr zu diesem Thema finden sich unter https://techdoc.ping.de/Systeme/Knipp-Server/Hardware-Monitoring.
Bezeichnung der Server bei Knipp
Bezeichnung PING |
Bezeichnung Knipp |
ping06 |
s359 |
ping07 |
s360 |
ping08 |
s361 |
ping09 |
s362 |
ping10 |
s363 |
Netzwerk
Die fünf Knipp-Server befinden sich zusammen mit einem (10/100 MBit/s) Switch und einer Vereinseigenen Cisco 2811 in einem 19"-Schrank. Zur Verbindung der Geräte untereinander kommt Ethernet (100baseTX/1000baseT) zum Einsatz. Wie bereits beschrieben besitzt jeder Server drei Netzwerkkarten und eine vierte Ethernet-Schnittstelle der IPMI-Karten, die aber aus dem laufenden System nicht genutzt werden kann.
Mit dem Switch verbunden ist, neben einem FastEthernet-Interface der Cisco, jeweils der Ethernet-Port der IPMI-Karten und das eth0-Interface (die eingesteckte PCI-X-Karte) der Rechner. Die restlichen beiden (Mainboard interne) Netzwerkkarten werden zur Replizierung der Festplatten verwendet und sind direkt über Ethernet-Kabel verbunden. Dabei bilden die fünf Server eine Art geschlossenen Kreis, wie er in der folgenden Abbildung dargestellt ist (IPMI-Karte nicht eingezeichnet):
Wie zu sehen ist, trägt das Interface welches mit den Switch verbunden ist immer den Namen eth0. Die Namen der Interfaces der Direktverbindungen spiegeln den Namen des Rechners der auf der anderen Seite angeschlossen ist wieder. Dabei wurde als Prefix bewusst eth gewählt, da vereinzelt Programme auf entsprechende Namen für Ethernet-Verbindungen prüfen.
Während die eth0-Schnittstellen mit den über VLANs getrennten PING-IP-Netzen (eth0.<vlan-nummer>) direkt konfiguriert oder als Interface in Bridges enthalten sind ( todo: Das wo anders dokumentieren und von hier verlinken), sind die Interface der Direktverbindungen zwischen zwei Servern statisch mit IPv4-Adressen konfiguriert. Dabei wurde ebenfalls ein mehr oder weniger intuitives Schema verwendet. Für jede Server<->Server-Direktverbindung wird ein Class-C-Netz (CIDR /24 für die Klassenlosen unter uns) aus dem 192.168.x.x Bereich verwendet. Da diese Netze nur auf den jeweiligen Servern selber sichtbar sind, stellt es kein Problem dar, wenn diese Netze auf in den normalen VLANs genutzt werden, solange die Server keine IP-Konfiguration auf den entsprechenden Bridges erhalten.
Konkret sehen die konfigurierten Netz/IPs so aus, dass das dritte Byte des Netzwerkteils in der ersten Ziffer die Nummer des Servers mit der kleineren Rechnernummer im Namen und in der zweiten Ziffer die Nummer des Servers mit der größeren Rechnernummer im Namen enthalten. Für die Verbindung zwischen ping01 und ping02 ist also das IP-Netz 192.168.12.0/24 konfiguriert. Der Hostteil der IP-Adressen der beiden beteiligen Server entspricht dann wieder der Nummer des Servers. So hat z. B. der Server ping01 für die Netzwerkschnittstelle die zu ping02 führt (also das Interface eth2 auf ping01) die IP-Adresse 192.168.12.1 während ping02 für die selbe Verbindung (also Interface eth1 auf ping02) die Adresse 192.168.12.2 hat. Die Konfiguration der anderen Rechner/Netzwerke ist analog hierzu.
Festplatten/SSDs
Jeder der fünf PING-Server verfügt über 4 TB (nutzbaren) Festplattenspeicher (Magnetplatte), die über Software-Raid zu RAID-1-Volums auf zwei 4 TB SATA-Festplatten untergebracht werden. Diese 4 TB Speicherplatz werden dabei in drei (ok, eigentlich vier) Bereiche eingeteilt. Am Anfang der GPT partitionierten Festplatte befindet sich ein 1 MB großer Bereich, der von GRUB benötigt wird, um die Stage 1 unterzubringen. Dieser Bereich wird von grub-install automatisch in Beschlag genommen, sofern das GRUB-Paket weiß, auf welche Platten Grub installiert werden soll. Der zweite Bereich, mit einer Größe von 200 GB, ist für das Xen-Dom-0 Basissystem (also den Teil, den ping0x ausmacht) und Daten reserviert, die nur auf einem der Server lokal benötigt werden (Swap-Speicher für die Dom-Us gehört dazu). Dieser erste Bereich ist dabei als Physical-Volume (PV) einer LVM-Volume-Group (VG), die den selben Namen wie der Server auf der sie sich (normalerweise) befindet trägt. Der restliche Bereich von 3,6 TB ist für die Daten der Dom-Us gedacht und auf zwei Partitionen zu je 1900 GB aufgeteilt. Diese beiden Partitionen werden von DRBD angesprochen (siehe unten). In tabellarischer Form sieht das dann wie folgt aus:
sdc/sdd |
||
1 |
1 MB |
BIOS boot |
2 |
200 GB |
PV für LV mit Namen vom Basissystem |
3 |
1900 GB |
DRBD 1: Speicher für lokales Primary DRBD |
4 |
1900 GB |
DRBD 2: Speicher für entferntes Slave DRBD |
Als schneller Speicher sind jeweils zwei SSDs Samsung SSD 850 PRO 512GB SSDs installiert. Diese werden als /dev/sda und /dev/sdb erkannt und direkt (ohne Partitionen) als Devices in einem Raid1 verwendet (aus Gründen der Ausfallsicherheit). Dieses Raid1 Volume (/dev/md3) ist wiederum als PV in einer LVM VolumeGroup verwendet. Wichtig ist hierbei, dass die VG nicht gespiegelt wird und bei einem Ausfall des Servers kein Zugriff mehr auf diese Daten möglich ist. Daher sollten hier nur Logical Volumes erstellt und genutzt werden, deren Daten im Notfall nicht unbedingt benötigt werden, aber im Normalfall einen schnellen Zugriff benötigten (z.B. die Datenbank des Spamfilters, die z.B. täglich in einem gespiegelten Bereich gedumpt wird). Eine andere Möglichkeit ist der Nutzen als Cache vor dem eigentlichen LV im gespiegelten Bereich (siehe LVMCache).
DRBD
Bei der DRBD handelt es sich um ein über Netzwerk replizierendes Speichersystem. Es ist quasi ein RAID-1 über IP und ermöglicht das spiegeln von Daten über Netzwerke. Auf den fünf Knipp-Servern wird es genutzt, um eine gewisse Ausfallsicherheit zu gewährleisten. Dies geschieht, indem die Daten der Dom-Us nicht nur auf dem Server liegen, auf dem sie regulär laufen, sondern über DRBD repliziert zusätzlich auf einem zweiten System vorhanden sind. Dies ermöglicht im Falle eines Ausfalls eines Server ein Wiederbeleben der betroffenen Dom-Us auf einem anderen Server (idealerweise auf dem, der die Daten schon gespiegelt hat).
Konsolen
Zugang zu dem System-Konsolen ist über einige USB-RS232-Adapter realisiert:
Server |
Schnittstelle |
Parameter |
Zielsystem |
ping06 |
ttyUSB0 |
9600 8N1 |
Cisco cr1 |
ping06 |
ttyUSB1 |
|
|
ping07 |
ttyUSB0 |
|
|
ping07 |
ttyUSB1 |
115200 8N1 |
ping10 |
ping07 |
ttyUSB2 |
115200 8N1 |
ping08 |
ping07 |
ttyUSB3 |
|
|