Post on 25-May-2015
description
transcript
Datacenter Management mit Racktables OSDC 2013 – Falk Stern
Inhalt
• Vorstellung
• Schrankverwaltung
• Kabelverwaltung
• Serververwaltung
• Infrastruktur / Netzwerkverwaltung
• Sonstiger Nutzen
Vorstellung Unternehmen
XING ist das soziale Netzwerk für berufliche Kontakte
Rund 13 Millionen Mitglieder weltweit nutzen die Plattform für Geschäft, Job und Karriere, davon über 6 Millionen im deutschsprachigen Raum (Stand: Dezember 2012)
Mitglieder tauschen sich online in rund 50.000 Fachgruppen aus und treffen sich persönlich auf XING Events.
Vorstellung Person
Falk Stern
34 Jahre alt
Teamleiter Netzwerk bei XING
Schwerpunkte in Netzwerk und Infrastruktur
4,5 Jahre bei einem Outsourcing Dienstleister mit eigenem RZ tätig
2,5 Jahre bei einem Hamburger ISP tätig, Housing / Internet Access
3,5 Jahre bei einer (damals) Hamburger Internetfirma
“We reject kings, presidents and voting. We believe in rough consensus and running code.” - D. Clark
Vorstellung Datacenter
• Warum eigene Colocation?
• Warum 2 Datacenter?
• Wieviele Anbieter?
Motivation
• Alte Colo unübersichtlich
• Zuwenig Platz
• Dokumentation unvollständig
Motivation
• Umzug
• Grüne Wiese • Neue Hostnamen
• Neue IP Adressen
• Neue Verkabelung
• Neue Dokumentation!
Zahlen, Fakten
2 Standorte
Je 40 Racks
580 physikalische Server
490 virtuelle Maschinen im Produktionsbetrieb
280 virtuelle Maschinen für Entwickler
5900 Netzwerkports
3840 Stromanschlüsse
15 Kilometer Netzwerk Kabel
Welche Tools benutzen wir
• Racktables 0.20.3 – mit eigenen Anpassungen
• Partkeepr nightly
• GIT / SVN
• Jenkins
RackTables
RackTables ist 2006 aus der Not heraus entstanden, ein bestehendes DataCenter dokumentieren zu müssen.
Open Source unter GPL verfügbar
Typische LAMP Anwendung – Linux / Apache / MySQL / PHP
Unser „Single Point of Truth“
Eigene Anpassungen: • Ticketsystem
• API - Wird von uns veröffentlicht
http://www.racktables.org/
PartKeepr
Wurde vom RaumZeitLabor, einem Hackerspace in Mannheim entwickelt
Open Source unter GPL verfügbar
Ursprünglich zur Verwaltung von elektronischen Bauteilen
Was fehlte? • Keine LDAP Authentifizierung - Wird von uns veröffentlicht
http://partkeepr.org/
Schrankverwaltung
Schrankbenennung
• Mehrere Standorte • IATA Airport Code + Nummer
• Mehrere Reihen • Alphabetisch
• Racks • Numerisch
FRA1-A17
Schrankaufbau
• 46 HE
• 2 Switche für Produktiv Netzwerk
• 1 Switch für iLO/Management
• 2 PDUs mit 21 C13 und 3 C19 Buchsen • PDU Leisten hinten seitlich eingebaut
• 40 HE netto übrig
• Platz für 18 Server zu 2 HE
Schrankaufbau
Kabelverwaltung
Jedes Kabelende hat ein eindeutiges Label
Labeldruck mit eigenem Drucker Drucker & Laptop für SmartHands
und Lieferanten zugänglich
Export aus RackTables per CSV
Kabelverwaltung
Kabelverwaltung
Kabelverwaltung
Serververwaltung
• Wöchentliche Abstimmung über Hardwarebedarf • Nach Anforderungen der Fachabteilungen
• Bestellung beim Lieferanten
• Vorab Einbau in Racktables
Serververwaltung
Vorab Einbau in Racktables
Serververwaltung
Vorab Einbau in Racktables
Serververwaltung
Vorab Einbau in Racktables
Serververwaltung
• Lieferant liefert MAC Adressen
• Konfiguriert RAID Controller vor
• Konfiguriert iLO vor
Serververwaltung
Verkabelung in Racktables
Serververwaltung
Verkabelung in Racktables
Serververwaltung
• Erstellung Laufzettel • Ausdruck der Racktables Seite
• Vorbereitung Kabellabel • Hochladen der CSV Datei
• Starke Einbindung des Lieferanten nötig, funktioniert nicht mit wechselnden Anbietern!
Ablauf Einbau
• Lieferant bekommt Einbauanweisung
• Baut Server ein
• Verkabelt Server an Hand von Einbauanweisung und Kabellabeln
• Schaltet Server nach erfolgreichem Einbau an
• Server bootet konfiguriertes Installationssystem • Bootserver wird aus Racktables konfiguriert
Ablauf Einbau
Ablauf Einbau
VM Management
Produktive VMs werden in Racktables angelegt
Noch manueller Workflow, wird automatisiert
Ziel für dieses Jahr
Automatische Erstellung von Virtuellen Maschinen
Generierung DNS/DHCP
Include Dateien werden durch ein Ruby Skript generiert
(RackObject.send(datacenter).server + RackObject.send(datacenter).vm + RackObject.send(datacenter).pdus).each do |server|
DNS und DHCP haben ein eigenes GIT Repository
• Änderungen sind nachvollziehbar
• Nach einem git push • Syntaxprüfung
• Upload & Neustart der Dienste
Generierung DNS/DHCP
Workflow
$ make
...
$ cd ../dns ; git commit ; git push
$ cd ../dhcp ; git commit ; git push
Prüfung Switchkonfiguration
• Switchkonfigurationen werden mit einem Skript gegen die Konfiguration aus RANCID geprüft.
• „Soll“ Daten kommen aus Racktables
• Eigenes Perlmodul, das die API abfragt
• 109 Zeilen Perl inklusive Ausgaben
Prüfung Switchkonfiguration
Annahmen
• Jeder Server hat mindestens 2 Netzwerkkabel
• Diese sind auf identische Ports im selben Schrank verkabelt
• Interfaces heißen „bond0“
Prüfung Switchkonfiguration
Beispiele API Programmierung
VLANs abfragen
my $vlans_in_domain =
Xing::Admin::Racktables::get( 'vlan' => { 'domain' => $dc});
Objekt Informationen holen
for my $single_vlan (@$vlans_in_domain) {
my $range = $single_vlan->networks->[0]->{"range"}->{"ip"} .
$single_vlan->networks->[0]->{"range"}->{"prefixlen"}
Prüfung Switchkonfiguration
Server abfragen
my $allserver = Xing::Admin::Racktables::get( 'object' =>
{ 'type' => 'server', 'rack' => { 'row' => $rack_row } } );
Objekt Informationen holen
foreach my $server (@$allserver) {
my $server_name = $server->name;
if (defined($server->ips->{'bond0'})) {
$server_vlan = getVlanForIP($server->ips->
{'bond0'}->address->ip);
…
Konfiguration PDU
Konfiguration wird über Jenkins alle halbe Stunde generiert
Avocent PDUs ziehen sich bei Ablauf ihres DHCP Leases eine Konfiguration vom TFTP Server
cd /power_management/pdus/10-15-c9P0_1/settings/outlets/19 batch_mode set name=riak-10.db.fra1 set post_on_delay_(seconds)=0.5 submit
Konfiguration Monitoring
Shinken Host Konfiguration wird durch Jenkins automatisch erstellt
Services werden anhand von Tags im Racktables zugeordnet
Genhostlist
Perlskript das automatisch erstellt wird
Ausgabe von Hostnamen anhand von RackTables Tags
$ ./genhostlist.pl '$fra1 -a $app -a $perl'
perl-1.app.fra1.xing.com perl-2.app.fra1.xing.com perl-3.app.fra1.xing.com ...
PartKeepr
PartKeepr
PartKeepr
• Jeder muß entnommene Teile eintragen
• Dienstleister muß entnommene Teile melden
• Wer sich nicht dran hält, hat die nächste Inventur gewonnen
Zusammenfassung
• Datacenter Management ist mit OpenSource Tools möglich
• Erfordert Anpassungen an die eigenen Prozesse • Aber: Welche Software braucht das nicht?
• Programmierkenntnisse helfen
• (fast) alles ist automatisierbar!
• Dokumentation hilft und macht sicherer.
Zusammenfassung
Das professionelle Netzwerk www.xing.com
Fragen?
Das professionelle Netzwerk www.xing.com
Vielen Dank für die Aufmerksamkeit!