Taugt Virtualisierung zum Strom sparen?

Abstract

Wir haben uns vor einer Weile intern damit auseinandergesetzt, ob und wenn wie viel Virtualisierung Strom sparen helfen kann. Meine Antwort ist vielleicht auch für unsere Blog-Leser interessant: Du brauchst auf jeden Fall relativ moderne Hardware, damit Du einzelne, gerade nicht gebrauchte Cores runter fahren kannst. Sonst müsstest Du wirklich...

Wir haben uns vor einer Weile intern damit auseinandergesetzt, ob und wenn wie viel Virtualisierung Strom sparen helfen kann. Meine Antwort ist vielleicht auch für unsere Blog-Leser interessant:

Du brauchst auf jeden Fall relativ moderne Hardware, damit Du einzelne, gerade nicht gebrauchte Cores runter fahren kannst. Sonst müsstest Du wirklich alle VMs vom Blech runternehmen, bevor die CPU anfängt runter zu takten. In modernen Systemen widerum sind nicht CPUs die Stromfresser, sondern Peripherie: Memory, Platten und PCI-Karten.

Ich kenne aus dem Kopf keine zitierfähige Publikation, die das mal gemessen hätte!

Betrachtet man nicht das einzelne Stück Blech sondern den gesamten Verbund Serverraum bzw. Rechenzentrum, enfällt in etwa nur noch die Hälfte des Verbrauchs auf die IT-Systeme (Server, Storage, Netzwerk). Die andere Hälfte wird von Klimaanlagen in Anspruch genommen.

Bei Klimaanlagen kannst Du sehr viel einfacher Strom sparen. Kalt- oder Warmgang-Einhausungen, Flüssigkühlung am Rack oder direkt am Server oder - auch wieder bei moderneren Servern - nicht so weit runter kühlen. Die Gilde der amerikanischen Kühlschrankbauer (ASHRAE) hat IIRC vor etwa anderthalb Jahren eine neue Empfehlung zusammen mit den CPU-Bäckern und Serverbauern erarbeitet, wonach (neue) Server bis zu einer Umgebungstemperatur von 27 °C und 80% Luftfeuchtigkeit betrieben werden dürfen/können. Damit kann man fast überall auf der Welt mit Freikühlung arbeiten, sprich einfach nur Umgebungsluft von außen ansaugen, filtern und zum Kühlen der Racks benutzen.

Bleiben wir beim System Rechenzentrum: Nehmen wir mal an, ein Stück Blech kriegt alle VMs los und kann in einen Sparmodus fahren. Bis das jetzt die Klimaanlage mitbekommt, dass da 1 kW (willkürlich) Heizung weniger läuft, dauert das je nach RZ-Größe auch schon mal ein paar Stunden. In der das Blech auch in dem Schlafzustand bleiben muss.

Leider gibt es (noch) keine Rückmeldung vom Blech an die Haustechnik bzw. Klimaanlage, dass es jetzt im Ruhezustand ist und nicht mehr so stark gekühlt werden muss. Jedenfalls weiß ich von keiner solchen Rückmeldemöglichkeit.

An der Stelle dann auch noch ein sehr grob geschätztes Zahlenspiel: Sagen wir mal, das Blech hat 1 kW Leistungsaufnahme bei Vollast und kann bis 200 W runterfahren in einem Schlafmodus. Sind 800 W. Sagen wir weiter, so ein System kann von einem 24h-Tag 16h in einem solchen Schlafzustand bleiben. Sind 16h * 800 W = 12.8 kWh. Kleinigkeiten wie PFC, cos(phi) oder Schein- vs. Wirkleistung lasse ich mal außen vor.

Bei einem geschätzten Strompreis von 20 ct/kWh (Industrie/Mittelstand) wären das pro Tag ungefähr 2,50 € Einsparung. Im Jahr ein knapper Tausender. Halte ich für nicht so viel, dass sich im Einzelfall der Aufwand lohnt. Außer, die dazu notwendigen Funktionen sind eh da und müssen nur genutzt werden. Und/oder Du hast in größerem Stil Automation implementiert und kannst Dinge darüber abbilden.

Und wenn Du dann mal mit dem IT-Verantwortlichen eines beliebigen süddeutschen Autoproduzenten über das Thema spricht, wird der Dir sagen, dass der Stromverbrauch des gesamten Rechenzentrums samt Klimatechnik und Notstromversorgung nur ein Bruchteil dessen ist, was die Lackierstraße, das Presswerk oder die Schweißroboter an Strom ziehen. Bei denen rentiert sich schon das Nachdenken über Stromeinsparung im RZ nicht.

Ja, das ist anders bei Unternehmen, die ausschließlich IT machen und sonst nichts. Wenn Du richtig groß bist, dann verbaust Du auch keine Schaltnetzteile mehr in die Rechner, sondern speist gleich schon Gleichstrom und lässt die Aufbereitung der Versorgung von großem, effizienten Equipment machen. Google macht das IIRC so und auch Facebook. Letztere haben viele Design-Vorgaben ihrer Rechenzentren und Server offen gelegt.

Entscheidender ist bei Virtualisierung denke ich eher der Gedanke anders rum: Du ersetzt eine Anzahl einzelner Server durch ein großes Blech. Während die einzelnen Server eine Auslastung von typischerweise 15%-30% haben, kannst Du durch Virtualisierung die Auslastung des einen großen Stücks Blech auf 90% und mehr kriegen. Was auch das Ziel sein sollte.

Und wie Du schon zu Beginn der Diskussion meintest: Sinn macht das umso mehr, je gleichartiger die Lasten der VMs sind. In einem typischen Unternehmens-Rechenzentrum werden Dir schon schlecht programmierte Anwendungen, nicht optimierte DB-Queries und jede Menge Java das Leben schwer machen ;-)

Wolfgang Stief, 01. February 2014