File Storage auf STACKIT – NFS-basierte Dateispeicherung
Wenn mehrere VMs oder Container gleichzeitig auf dieselben Dateien zugreifen müssen, stößt Block Storage an seine Grenzen. File Storage auf STACKIT bietet dir NFS-basierte Shares, die von beliebig vielen Instanzen gleichzeitig gemountet werden können.
Was ist File Storage?
File Storage stellt ein netzwerkbasiertes Dateisystem bereit, das über NFS (Network File System) erreichbar ist:
- Shared Access – Mehrere VMs und Container können gleichzeitig lesen und schreiben
- NFS-Protokoll – Standard-Protokoll, das von allen Linux-Distributionen unterstützt wird
- Dynamische Größe – Speicherplatz wächst mit deinen Anforderungen
- Managed Service – STACKIT übernimmt Betrieb, Redundanz und Backups
- POSIX-kompatibel – Verhält sich wie ein lokales Dateisystem mit Berechtigungen
:::info File Storage ist ideal für gemeinsame Konfigurationsdateien, CMS-Uploads, Log-Aggregation und Anwendungen, die ein geteiltes Dateisystem benötigen. :::
Tutorial: File Storage auf STACKIT einrichten
1. NFS-Share erstellen
stackit file-storage share create \
--name shared-data \
--project-id your-project-id \
--size 100 \
--network-id your-network-id
2. Zugriff konfigurieren
# Zugriff für ein Subnetz erlauben
stackit file-storage share access create \
--share-id your-share-id \
--project-id your-project-id \
--access-type ip \
--access-to "10.0.1.0/24" \
--access-level rw
| Access Level | Beschreibung |
|---|---|
rw | Lesen und Schreiben |
ro | Nur Lesen |
3. NFS-Share auf einer VM mounten
# NFS-Client installieren
sudo apt install nfs-common
# Mountpoint erstellen
sudo mkdir -p /mnt/shared-data
# Share mounten
sudo mount -t nfs4 your-share-host:/your-share-path /mnt/shared-data
# Persistenter Mount via fstab
echo 'your-share-host:/your-share-path /mnt/shared-data nfs4 defaults,_netdev 0 0' \
| sudo tee -a /etc/fstab
4. Auf mehreren VMs gleichzeitig mounten
Wiederhole Schritt 3 auf jeder VM, die Zugriff benötigt. Alle Instanzen sehen dieselben Dateien in Echtzeit:
# VM 1: Datei erstellen
echo "Hallo von VM 1" > /mnt/shared-data/test.txt
# VM 2: Datei sofort sichtbar
cat /mnt/shared-data/test.txt
# Ausgabe: Hallo von VM 1
5. In Kubernetes als PersistentVolume nutzen
apiVersion: v1
kind: PersistentVolume
metadata:
name: shared-data-pv
spec:
capacity:
storage: 100Gi
accessModes:
- ReadWriteMany
nfs:
server: your-share-host
path: /your-share-path
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: shared-data-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi
:::tip
Nutze ReadWriteMany (RWX) als Access Mode, damit mehrere Pods gleichzeitig auf das Volume zugreifen können.
:::
6. Berechtigungen verwalten
# Verzeichnisstruktur mit Berechtigungen
sudo mkdir -p /mnt/shared-data/{uploads,config,logs}
sudo chown -R www-data:www-data /mnt/shared-data/uploads
sudo chmod 750 /mnt/shared-data/config
:::warning Beschränke den NFS-Zugriff auf die Subnetze, die ihn tatsächlich benötigen. Offene NFS-Shares sind ein Sicherheitsrisiko. :::
Nächste Schritte
- Richte regelmäßige Snapshots des File Storage für Backups ein
- Überwache Speicherverbrauch und I/O-Performance über STACKIT Monitoring
- Evaluiere, ob Block Storage für einzelne VMs oder File Storage für geteilten Zugriff besser passt
- Implementiere Quota-Management, um unkontrolliertes Wachstum zu vermeiden