Azure Blob Storage vs. File Storage

Microsoft bietet mehrere Optionen zum Speichern von Daten in der Cloud. Jede Option hat ihren eigenen Zweck, um unterschiedliche Geschäftsanforderungen zu erfüllen. Eine der wichtigsten Funktionen, die Microsoft Azure bietet, ist die Möglichkeit, bei Bedarf auf andere Speicheroptionen zu migrieren.

Im Azure-Speicherkonto sind verschiedene Optionen für die Speicherung von Benutzerdaten verfügbar.

  • Blob-Storage
  • File-Storage
  • Table-Storage
  • Queue-Storage
  • Disk

In diesem Blog wird versucht, zwischen Azure Blob-Storage und File-Storage zu unterscheiden, die im Azure Storage Account verfügbar sind.

Einführung

Blob Storage

Azure Blob Storage ist eine Objektspeicherlösung für die Cloud. Mit Blob Storage können Sie eine große Menge unstrukturierter Daten speichern. Die unstrukturierten Daten müssen kein bestimmtes Datenmodell aufweisen.

File Storage

Azure Files bietet vollständig verwaltete Dateifreigaben in der Cloud, die über den Industriestandard SMB zugänglich sind. Azure File Shares können gleichzeitig von Cloud- oder On-Premises-Implementierungen von Windows, Linux und macOS gemountet werden. Sie können auf Windows-Servern mit Azure File Sync zwischengespeichert werden, um einen schnelleren Zugriff zu ermöglichen.

When to Use

Blob Storage

Azure Blob Storage wurde für bestimmte Anforderungen entwickelt. Wenn Sie in Ihrem Unternehmen unstrukturierte Daten wie Audio, Video, Bilder usw. speichern müssen, sollten Sie sich für diese Option entscheiden. Die Objekte, die in Blob gespeichert werden, haben nicht unbedingt eine Erweiterung.

Die folgenden Punkte beschreiben die Anwendungsszenarien:

  • Bilder oder Dokumente direkt in einem Browser bereitstellen
  • Dateien für verteilten Zugriff speichern
  • Video- und Audiostreaming
  • Schreiben in Protokolldateien
  • Daten für Backup, Wiederherstellung, Disaster Recovery und Archivierung
  • Speichern von Daten zur Analyse durch einen lokalen oder in Azure gehosteten Dienst

Dateispeicher

Dateispeicher kann verwendet werden, wenn Ihr Geschäftszweck hauptsächlich mit Standard-Dateierweiterungen wie *.docx, *.png und *.bak zu tun hat, dann sollten Sie sich für diese Speicheroption entscheiden.

Die folgenden Punkte beschreiben die Anwendungsszenarien:

  • Ersatz oder Ergänzung von lokalen File-Servern
  • „Lift and shift“-Anwendungen
  • Vereinfachung der Cloud-Entwicklung

Kostenloser Download dieses Blogs als PDF-Dokument zum Offline-Lesen.

Echtzeit-Szenario

Betrachten Sie ein Szenario in einer Entwicklungsumgebung, in der jeder Entwickler Zugriff auf IDE und Tools benötigt, ohne das Internet zum Herunterladen zu nutzen. In dieser Situation würde Azure Blob Storage den Bedarf decken, mit dem Sie nur die Entwicklungstools speichern und dann dem Team einen Link zum Zugriff auf den Blob-Speicherplatz geben können.

Für die Implementierung eines Dateiservers in Ihrem Unternehmen sollten Sie die Option Azure Files wählen. Ein Dateiserver wird verwendet, um Dateien abteilungsübergreifend in Ihrer Organisation freizugeben. Wenn es um die gemeinsame Nutzung von Dateien geht, sollten die Endbenutzer nicht auf die Kopien der Datei von ihrem URI zugreifen können, sondern sie müssen lokal auf den Computern zugeordnet werden. In diesem Fall ist Azure File Storage genau das Richtige für Sie.

Hochladen großer Dateien

Der übliche Ansatz für das Hochladen großer Dateien ist das Aufteilen in kleine Stücke. Das Aufteilen ist nicht nur die Funktion zum Hochladen von Dateien, sondern die Chunks müssen nach dem Hochladen zu einer Datei zusammengeführt werden.

Welche Option wäre für die obige Aufgabe am besten geeignet? Azure Blob oder File Storage?

Die Antwort ist Azure Blob Storage. Obwohl es in diesem Szenario um Dateien geht, ist Azure Blob Storage aufgrund seiner Standardfunktionen eine gute Wahl.

Azure Blob Storage enthält drei Arten von Blobs: Block, Page und Append. Ein Block ist eine einzelne Einheit in einem Blob. Ein Blob kann viele Blöcke enthalten, aber nicht mehr als 50.000 Blöcke pro Blob. Das bedeutet, dass Sie einen Blob in 50.000 Blöcke aufteilen können, um ihn in den Azure Blobs-Speicher hochzuladen. Die Mindestgröße eines Blocks beträgt 64 KB und die Höchstgröße 100 MB. Wenn Sie sich die .NET-Bibliothek ansehen, ist eines der Objekte BlockBlob, das Teil der CloudBlockBlob-Klasse ist. Diese Klasse bietet viele Möglichkeiten, mit einem BlockBlob zu arbeiten.

Zum Beispiel ermöglicht die Eigenschaft StreamWriteSizeInBytes das Festlegen einer BlockBlob-Größe, die gut geeignet ist, um instabile Netzwerkgeschwindigkeiten zu bewältigen. Jeder Block Blob hat auch Metadaten, die Sie individuell steuern können. Wenn Sie z. B. sicherstellen möchten, dass alle Block-Blobs erfolgreich an einen bestimmten Blob übergeben werden, können Sie Content-MD5 verwenden.

Azure File Storage verfügt nicht über diese Out-of-the-Box-Funktion. Wenn Sie eine Datei aufteilen müssen, müssen Sie eine indirekte Methode wie die FileStream-Klasse finden oder Drittanbieter verwenden.

Überwachungsoptionen für Blob-Storage und File-Storage

Azure Portal

Nachdem Sie das gewünschte Speicherkonto für die Option „Diagnose“ im Abschnitt „Überwachung“ konfiguriert haben, können Sie die Art der zu überwachenden Metrikdaten und die Aufbewahrungsrichtlinie für die Daten festlegen.

Ein Standardsatz von Metriken wird in Diagrammen auf dem Storage Account Blade sowie auf den einzelnen Service Blades (Blobs und Dateien) angezeigt. Sobald Sie die Metriken für einen Service aktiviert haben, kann es bis zu einer Stunde dauern, bis die Daten in den Diagrammen erscheinen. Sie können in jedem Metrikdiagramm die Option Bearbeiten wählen, um zu konfigurieren, welche Metriken im Diagramm angezeigt werden sollen.

Azure Portal Storage Monitoring Option

Serverless360 (Off the Shelf Product)

Es ist möglich, sowohl Storage Blobs als auch Storage Files in einem Status- oder Threshold-Monitor zu überwachen. Der Statusmonitor erzeugt zu bestimmten Tageszeiten einen Bericht, der den Zustand der Entitäten im Vergleich zu den gewünschten Werten darstellt. Threshold Monitor generiert einen Bericht, wenn bestimmte Eigenschaften die gewünschten Werte für einen bestimmten Zeitraum überschreiten. Im Gegensatz zu Azure Portal überwacht Serverless360 die Blobs und Dateien in erster Linie anhand ihrer Eigenschaften und nicht anhand ihrer Metriken.

Entitätstyp Eigenschaften, die überwacht werden können
Storage Blob Leasingstatus, Blob-Anzahl, Blob-Größe (Bytes), Block-Blob-Anzahl, Block-Blob-Größe (Bytes), Page-Blob-Anzahl, Page Blob Size (Bytes), Append Blob Count, Append Blob Size (Bytes)
Storage File Usage (Bytes)

Die folgende Abbildung zeigt die Blob-Konfiguration im Status Monitor der Serverless360-Anwendung.

Sl360 Blob-Statusmonitor

Nachfolgend werden die Fehlerdetails angezeigt, die generiert werden, wenn der Fehler über den gewünschten Zeitraum anhält.

Sl360 Blob-Fehlerdetails

Skalierbarkeit

Es ist wichtig, die Kontingente und Grenzen von Azure Storage zu kennen, um die richtige Option zu wählen. Die höchste Darstellungsebene für die Kapazität in Azure Blob Storage ist Containers, während für Dateien Shares gilt.

Azure Blobs Ressource Ziel
Max. Größe eines einzelnen Blob-Containers 500 TB
Max. Anzahl von Blöcken in einem Block Blob oder Append Blob 50,000 Blöcke
Max. Größe eines Blocks in einem Block Blob 100 MB
Max. Größe eines Blocks Blob 50.000 X 100 MB (ca. 4,75 TB)
Max. Größe eines Blocks in einem Append Blob 4 MB
Max. Größe eines Append Blob 50.000 x 4 MB (ca. 195 GB)
Max. Größe eines Page-Blob 8 TB
Max. Anzahl der gespeicherten Zugriffsrichtlinien pro Blob-Container 5
Azure Dateien Ressource Ziel
Max Größe einer Dateifreigabe 5 TB
Max. Größe einer Datei in einer Dateifreigabe 1 TB
Max. Anzahl von Dateien in einer Dateifreigabe Keine Begrenzung
Max IOPS pro Freigabe 1000 IOPS
Max. Anzahl gespeicherter Zugriffsrichtlinien pro Dateifreigabe 5
Maximale Anfragenrate pro Speicherkonto 20,000 Anfragen pro Sekunde für Dateien beliebiger Größe
Zieldurchsatz für eine einzelne Dateifreigabe bis zu 60 MB pro Sekunde
Maximal geöffnete Handles pro Datei 2000 offene Handles
Maximale Anzahl von Freigabe-Snapshots 200 Freigabe-Snapshots

Sicherheit

Azure Storage Blob und Files Storage Service Verschlüsselung, da sie unter Azure Storage Account Level fallen. Wenn die Anwendung einen neuen Blob/eine neue Datei schreibt/liest, werden sie mit einem 256-Bit-AES-Algorithmus (Advanced Encryption Standard) verschlüsselt. Beim Aufruf über die REST-API werden sowohl Azure Blobs als auch Azure Files unterstützt, indem Secure Required Transfer aktiviert wird.

Beide Azure Blobs und Azure Files benötigen eine Shared Access Signature (SAS), um delegierten Zugriff auf Blobs und Files zu erhalten. Zusätzlich zur Autorisierung werden beide mit Azure AD und Shared Access Token unterstützt.

Azure Blobs ermöglichen eine Verschlüsselung durch die BlobEncryptionPolicy-Klasse mit Azure Key Vault. Azure Files nutzen die eingebaute Verschlüsselung im SMB 3.0 Protokoll. Außerdem unterstützen sowohl Azure Blobs als auch Azure Files die CORS-Regel (Cross-Origin Resource Sharing). CORS ermöglicht es Ihnen, die Whitelist für HTTP-Header-Anfragen zu beschreiben.

Was die Netzwerksicherheit betrifft, haben Sie mehr Kontrolle über den eingehenden Netzwerkverkehr zu Azure Blobs und Azure Files. Sie erlaubt nur einem bestimmten IP-Bereich und virtuellen Netzwerken den Zugriff darauf.

Disaster Recovery

Datensicherung ist für jedes Unternehmen wichtig, da die Daten als das Blut der Organisation angesehen werden. Leider verfügen Azure Recovery und Backup nicht über eine Automatisierung, um Daten direkt aus Blob und File Storage zu sichern. Um damit umzugehen, können Sie die Daten auf Ihre lokale Infrastruktur herunterladen oder ein neues Speicherkonto in einer anderen Region erstellen, um Ihre Daten zu speichern.

Azure Blobs: Verwenden Sie „Blob kopieren“, um Ihren Blob asynchron auf das Zielspeicherkonto zu kopieren.

Azure-Dateien: Verwenden Sie Datei kopieren, um die Dateifreigabe asynchron auf das Zielspeicherkonto zu kopieren.

Preisgestaltung

Die hier beschriebene Preisgestaltung basiert auf der Microsoft-Dokumentation

Datenspeicherpreise

Nachfolgend finden Sie die Preise für die Speicherung von Daten in Azure File und Blob Storage

Blob Storage PREMIUM HOT COOL ARCHIVE
Erste 50 Terabyte (TB) / Monat $0.18 pro GB $0.022 pro GB $0.01 pro GB $0.00099 pro GB
Nächste 450 TB / Monat $0.18 pro GB $0.0212 pro GB $0.01 pro GB $0.00099 pro GB
Über 500 TB / Monat $0.18 pro GB $0.0203 pro GB $0.01 pro GB $0.00099 pro GB
Filespeicher STANDARD
GB/Monat $0.06 pro verbrauchtem GB
Snapshots GB/Monat $0.06 pro genutztem GB

Preise für Operationen und Datentransfer

Nachfolgend die Preise für Operationen und Datentransfer in Azure File und Blob Storage

Blob Storage PREMIUM HOT COOL ARCHIVE
Schreiboperationen (pro 10,000)1 $0.021 $0.05 $0.10 $0.11
Listen und Erstellen von Containeroperationen (pro 10.000)2 $0.06 $0.05 $0.05 $0.05
Lesevorgänge (pro 10.000)3
Archivieren mit hoher Priorität (pro 10.000)5
$0,0017 $0,004 $0,01 $5.50
$30
Alle anderen Vorgänge (pro 10.000), außer Löschen, das kostenlos ist $0.0017 $0.004 $0.004 $0.004
Datenabruf (pro GB)4
Archivabruf mit hoher Priorität (pro GB)5
Frei Frei $0.01 $0.022
$0.06
Daten schreiben (pro GB)4 Frei Frei $0.0025 Frei
Datenspeicher STANDARD
Setzen, Erstellen von Containeroperationen (pro 10.000) $0.015
Listenoperationen (pro 10.000) $0.015
Alle anderen Operationen außer Löschen, das kostenlos ist (pro 10.000) $0.0015
Geo-Replikations-Datentransfer (pro GiB) N/A

Wrap Up

In der Revolution der digitalen Transformation werden Anwendungen modernisiert und es braucht groß angelegte Muster nicht nur in der Anwendungsschicht, sondern auch in der Datenschicht, die ich nicht glaube, dass Azure Files passen kann. Azure Files wäre immer noch gut, wenn Ihre Anwendung für ein bestimmtes Publikum bestimmt ist.

Vielleicht gibt es individuelle Aspekte, die berücksichtigt werden müssen, bevor man die beste Option zwischen Azure Blob Storage und Files findet. In Anbetracht der gemeinsamen Funktionalitäten würde ich Azure Blob Storage gegenüber Files bevorzugen.

Autor: Nadeem Ahamed

Nadeem ist ein Technical Product Marketer für Serverless360. Er bloggt leidenschaftlich gerne über Spitzentechnologien. Er glaubt, dass Blogs der beste Weg sind, um Wissen mit der Community zu teilen, und seine Leidenschaft für das Schreiben wird bis zum letzten Tag seines Lebens nicht enden. Er glaubt immer an die Phrase „Looks so Good on the Outside, It’ll Make You Feel Good Inside“ Alle Beiträge von Nadeem Ahamed

ansehen