Showback
Auftrag
«Der Vorstand will wissen, was jedes Mitglied verbraucht», schreibt Beat Kläy. «Noch verrechnen wir nichts, aber jedes Mitglied soll seine Kosten sehen.»
Lernziele
Nach diesem Kapitel kannst du:
- Showback und Chargeback unterscheiden
- Preise pro Ressource in einer Vorlage hinterlegen
- Die Kosten der Mitglieder mit
oneshowbackberechnen und lesen - Die Kosten einer VM pro Stunde und Monat selbst nachrechnen
- Mit einem einfachen Kostenmodell prüfen, ob die Preise die Kosten decken
Showback und Chargeback
Abschnitt betitelt „Showback und Chargeback“Wer eine Cloud teilt, will wissen, wer wie viel davon braucht. Dafür gibt es zwei Wege. Showback zeigt jedem Bereich, was er verbraucht hat, ohne dass Geld fliesst. Chargeback belastet diesen Verbrauch dem Budget des Bereichs. Showback ist der erste Schritt, denn erst wenn die Zahlen stimmen und alle sie verstehen, lässt sich darauf eine Rechnung stellen. Ob eine Organisation danach Chargeback einführt, hängt von ihrer Buchhaltung ab.
Wolkenwerk Bern beginnt mit Showback. Die Mitglieder sehen ihre Kosten jeden Monat. Wie die Genossenschaft sie verrechnet, entscheidet der Vorstand später.
Preise in der Vorlage
Abschnitt betitelt „Preise in der Vorlage“OpenNebula rechnet mit drei Preisen pro Stunde, die in der Vorlage stehen. CPU_COST gilt pro CPU der Vorlage, MEMORY_COST pro MB Arbeitsspeicher und DISK_COST pro MB Disk. Die Preise im Lab sind für den Fall erfunden und in Franken gedacht. Wie du die Preise einer Vorlage setzt, beschreibt die Dokumentation zum Showback.
# Prices for showback per hour, chapter 3.3. The amounts are invented for the case.## onetemplate update ubuntu --append ~/cc/lab/tenants/costs.tpl
# per CPU of the template and hourCPU_COST = "0.05"# per MB of memory and hourMEMORY_COST = "0.00002"# per MB of disk and hourDISK_COST = "0.000001"onetemplate update ubuntu --append ~/cc/lab/tenants/costs.tplonetemplate show ubuntu | grep COSTEine VM übernimmt die Preise beim Start aus der Vorlage. VMs, die schon vorher gestartet wurden, kosten deshalb nichts. Auch ein Neustart mit onevm reboot ändert daran nichts. Im Lab beendest du darum die VMs der Mitglieder nach dem Eintragen der Preise mit onevm terminate und startest sie aus der Vorlage neu.
Kosten berechnen
Abschnitt betitelt „Kosten berechnen“oneshowback calculate berechnet die Kosten aller VMs aus ihrer Laufzeit und legt sie pro Monat ab. OpenNebula bringt dafür den Timer opennebula-showback.timer mit, der die Berechnung jeden Tag startet. Für die Übungen startest du sie selbst, damit du nicht bis Mitternacht warten musst. oneshowback list zeigt danach pro VM Besitzer, Gruppe, Monat, Stunden, Laufzeit und Kosten. Mit -g siehst du nur ein Mitglied. Wie du einzelne Monate berechnest und abrufst, beschreibt die Anleitung zu den Monatsberichten.
oneshowback calculateoneshowback listoneshowback list -g treuhandoneshowback list --csv > ~/cc-lab/showback.csvEin Gruppenadmin sieht mit oneshowback list nur die VMs seiner Gruppe. Jedes Mitglied kann also seine eigenen Kosten prüfen, ohne die der anderen zu sehen.
Sunstone zeigt die Kosten im Reiter «Showback» einer Gruppe.

Die Kosten einer VM
Abschnitt betitelt „Die Kosten einer VM“Eine VM aus der Vorlage ubuntu hat 0,5 CPU, 1024 MB Arbeitsspeicher und eine Disk von 3584 MB. Pro Stunde kostet sie
0.5 × 0.05 + 1024 × 0.00002 + 3584 × 0.000001 = 0.025 + 0.0205 + 0.0036 ≈ 0.049Über 30 Tage mit 720 Stunden sind das rund 35 Franken. Die Kosten richten sich nach der Zeit, in der eine VM auf einem Host Ressourcen belegt. Eine VM, die mit onevm poweroff ausgeschaltet ist, kostet deshalb weiter. Erst onevm undeploy nimmt sie vom Host, dann kostet sie in diesem Modell nichts mehr. Für die Mitglieder lohnt es sich, VMs, die sie länger nicht brauchen, so vom Host zu nehmen.
Am Ende müssen die Preise die Kosten der Genossenschaft decken. Dazu gehören die Hardware über ihre Lebensdauer, Strom, Lizenzen, Backup und die Arbeit des Plattform-Teams, aber auch die Reserve für Wartung aus Kapitel 2.5. Ein einfacher Ansatz teilt die jährlichen Kosten durch die Kapazität, die sich im Jahr verkaufen lässt. Kapitel 6.4 rechnet mit allen Kosten, in Zusatzauftrag C von Meilenstein 4 auch für ein eigenes Mitglied. Wie weit die Preise die Kosten der Genossenschaft decken, berechnest du im Zusatzauftrag B aus einem monatlichen Bericht.
Aufgabe Lab
Trage die Preise in die Vorlage ein. Beende als praxis-admin die VM praxis-1 mit onevm terminate und starte sie unter demselben Namen aus der Vorlage neu. Starte ausserdem als treuhand-admin die VM treuhand-1. Berechne den Showback nach einer Stunde. In der Zwischenzeit kannst du mit Kapitel 3.4 weiterarbeiten. Exportiere die Liste als CSV nach ~/cc-lab/showback.csv und halte sie für Meilenstein 1 in einem Screenshot fest.
Lösung
onetemplate show ubuntu zeigt die drei Preise CPU_COST, MEMORY_COST sowie DISK_COST. Nach oneshowback calculate listet oneshowback list die neuen VMs mit rund einer Stunde und Kosten um 0.05. Die alten VMs ohne Preise stehen mit Kosten 0 in der Liste.
Aufgabe Kostenmodell
Die beiden Knoten haben zusammen 7’000 Franken gekostet und laufen fünf Jahre. Strom, Backup und Arbeit kosten im Jahr 6’000 Franken. Im Mittel laufen 10 VMs aus der Vorlage ubuntu. Decken die Preise des Labs die Kosten? Was würdest du dem Vorstand vorschlagen?
Lösung
Die Kosten pro Jahr betragen 7’000 / 5 + 6’000 = 7’400 Franken. 10 VMs zu je 35 Franken im Monat bringen 4’200 Franken im Jahr. Die Preise decken also nur gut die Hälfte. Entweder steigen die Preise auf etwa das 1,8-Fache, oder es braucht mehr Auslastung. Möglich wäre auch ein fester Grundbeitrag pro Mitglied für die Arbeit des Plattform-Teams.
Texte und Abbildungen stehen unter CC BY-SA 4.0 und der Code unter der MIT-Lizenz. Die Quellen liegen auf GitHub.