stackit.guru
DE

File Storage auf STACKIT – NFS-basierte Dateispeicherung

#storage
storage nfs files

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 LevelBeschreibung
rwLesen und Schreiben
roNur 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