Speicherplatzgrenzen für Dateisysteme in Go

Hier erklärt Stephan, wie Go mit Betriebssystemen im Low-Level Bereich interagiert und wie wir unsere Quota-Bibliothek in Go entwickelt haben.

von Stephan Peijnik
Lesezeit 5 Min.
Stephan Peijnik
Softwareentwicklung
Stephan Peijnik

Die Verwaltung von Grenzen für den Speicherplatzverbrauch basiert auf einem recht simplen Konzept. Anstatt jedem Benutzer zu erlauben, den gesamten verfügbaren Speicherplatz in einem Dateisystem (oder weniger technisch: einer Festplatte) aufzubrauchen, wird der Speicherplatz je Benutzer durch sogenannte Quotas limitiert. Diese Quotas definieren, wie viel Speicherplatz ein einzelner Benutzer oder eine Benutzergruppe verwenden darf. In seiner ansonsten umfangreichen Standardbibliothek ist derzeit in Go noch kein Support für die Verwaltung von Grenzen für den Speicherplatzverbrauch inkludiert. Leider gibt es auch von Drittanbietern noch keine Bibliotheken, die diese Funktionalität beinhalten. Eines unserer aktuellen Projekte in der Anexia R&D Abteilung macht eine Speicherplatzbegrenzung in Go erforderlich, somit haben wir selbst eine Lösung entwickelt: Eine native Implementierung in Go. Ich möchte diese Gelegenheit nutzen, um zu erläutern, wie Go mit dem zugrundeliegenden Betriebssystem interagiert - und zwar im Low-Level Bereich - dem Syscall-Level. Diese Schritte werden während der Entwicklung unserer Lösung nochmals erörtert. Dahingehend wird erklärt, auf welche Weise die notwendige Grundlagenrecherche durchgeführt wurde und wie wir unsere Quota-Bibliothek entwickelt haben.