Datacenter Management mit Racktables

46
Datacenter Management mit Racktables OSDC 2013 – Falk Stern

description

Vortrag von der OSDC 2013

Transcript of Datacenter Management mit Racktables

Page 1: Datacenter Management mit Racktables

Datacenter Management mit Racktables OSDC 2013 – Falk Stern

Page 2: Datacenter Management mit Racktables

Inhalt

•  Vorstellung

•  Schrankverwaltung

•  Kabelverwaltung

•  Serververwaltung

•  Infrastruktur / Netzwerkverwaltung

•  Sonstiger Nutzen

Page 3: Datacenter Management mit Racktables

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.

Page 4: Datacenter Management mit Racktables

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

Page 5: Datacenter Management mit Racktables

Vorstellung Datacenter

•  Warum eigene Colocation?

•  Warum 2 Datacenter?

•  Wieviele Anbieter?

Page 6: Datacenter Management mit Racktables

Motivation

•  Alte Colo unübersichtlich

•  Zuwenig Platz

•  Dokumentation unvollständig

Page 7: Datacenter Management mit Racktables

Motivation

•  Umzug

•  Grüne Wiese •  Neue Hostnamen

•  Neue IP Adressen

•  Neue Verkabelung

•  Neue Dokumentation!

Page 8: Datacenter Management mit Racktables

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

Page 9: Datacenter Management mit Racktables

Welche Tools benutzen wir

•  Racktables 0.20.3 – mit eigenen Anpassungen

•  Partkeepr nightly

•  GIT / SVN

•  Jenkins

Page 10: Datacenter Management mit Racktables

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/

Page 11: Datacenter Management mit Racktables

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/

Page 12: Datacenter Management mit Racktables

Schrankverwaltung

Schrankbenennung

•  Mehrere Standorte •  IATA Airport Code + Nummer

•  Mehrere Reihen •  Alphabetisch

•  Racks •  Numerisch

FRA1-A17

Page 13: Datacenter Management mit Racktables

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

Page 14: Datacenter Management mit Racktables

Schrankaufbau

Page 15: Datacenter Management mit Racktables

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

Page 16: Datacenter Management mit Racktables

Kabelverwaltung

Page 17: Datacenter Management mit Racktables

Kabelverwaltung

Page 18: Datacenter Management mit Racktables

Kabelverwaltung

Page 19: Datacenter Management mit Racktables

Serververwaltung

•  Wöchentliche Abstimmung über Hardwarebedarf •  Nach Anforderungen der Fachabteilungen

•  Bestellung beim Lieferanten

•  Vorab Einbau in Racktables

Page 20: Datacenter Management mit Racktables

Serververwaltung

Vorab Einbau in Racktables

Page 21: Datacenter Management mit Racktables

Serververwaltung

Vorab Einbau in Racktables

Page 22: Datacenter Management mit Racktables

Serververwaltung

Vorab Einbau in Racktables

Page 23: Datacenter Management mit Racktables

Serververwaltung

•  Lieferant liefert MAC Adressen

•  Konfiguriert RAID Controller vor

•  Konfiguriert iLO vor

Page 24: Datacenter Management mit Racktables

Serververwaltung

Verkabelung in Racktables

Page 25: Datacenter Management mit Racktables

Serververwaltung

Verkabelung in Racktables

Page 26: Datacenter Management mit 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!

Page 27: Datacenter Management mit Racktables

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

Page 28: Datacenter Management mit Racktables

Ablauf Einbau

Page 29: Datacenter Management mit Racktables

Ablauf Einbau

Page 30: Datacenter Management mit Racktables

VM Management

Produktive VMs werden in Racktables angelegt

Noch manueller Workflow, wird automatisiert

Ziel für dieses Jahr

Automatische Erstellung von Virtuellen Maschinen

Page 31: Datacenter Management mit Racktables

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

Page 32: Datacenter Management mit Racktables

Generierung DNS/DHCP

Workflow

$ make

...

$ cd ../dns ; git commit ; git push

$ cd ../dhcp ; git commit ; git push

Page 33: Datacenter Management mit Racktables

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

Page 34: Datacenter Management mit Racktables

Prüfung Switchkonfiguration

Annahmen

•  Jeder Server hat mindestens 2 Netzwerkkabel

•  Diese sind auf identische Ports im selben Schrank verkabelt

•  Interfaces heißen „bond0“

Page 35: Datacenter Management mit Racktables

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"}

Page 36: Datacenter Management mit Racktables

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);

Page 37: Datacenter Management mit Racktables

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

Page 38: Datacenter Management mit Racktables

Konfiguration Monitoring

Shinken Host Konfiguration wird durch Jenkins automatisch erstellt

Services werden anhand von Tags im Racktables zugeordnet

Page 39: Datacenter Management mit Racktables

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 ...

Page 40: Datacenter Management mit Racktables

PartKeepr

Page 41: Datacenter Management mit Racktables

PartKeepr

Page 42: Datacenter Management mit Racktables

PartKeepr

•  Jeder muß entnommene Teile eintragen

•  Dienstleister muß entnommene Teile melden

•  Wer sich nicht dran hält, hat die nächste Inventur gewonnen

Page 43: Datacenter Management mit Racktables

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.

Page 44: Datacenter Management mit Racktables

Zusammenfassung

Page 45: Datacenter Management mit Racktables

Das professionelle Netzwerk www.xing.com

Fragen?

Page 46: Datacenter Management mit Racktables

Das professionelle Netzwerk www.xing.com

Vielen Dank für die Aufmerksamkeit!