Datacenter Management mit Racktables

Post on 25-May-2015

2.191 views 0 download

description

Vortrag von der OSDC 2013

Transcript of Datacenter Management mit Racktables

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!