Was ist verteilte Beschleunigung für Cloud-Speicher? (Vorschau)

Der verteilte Beschleuniger für Cloud-Speicher (DACS) ist ein verteilter Read-Through-Cache, der das Laden von Modellen aus Azure Blob Storage für KI-Inferenz auf dem Azure Kubernetes Service (AKS) beschleunigt. Es verwendet lokale NVMe-Festplatten über Cache-Knoten, um häufig gelesene Daten nahe an der GPU-Rechenleistung zu halten. DACS können auch das Laden von Datensätzen für Trainingslasten beschleunigen, die dieselben Daten wiederholt lesen. Azure Blob Storage bleibt die langlebige und autoritative Quelle für Modelldateien und Datensätze.

Sie aktivieren und verwalten DACS über Azure Container Storage, das die von DACS verwaltete Erweiterung installiert und deren Lebenszyklus auf AKS verwaltet. DACS ist kein persistentes Volume, keine StorageClass oder kein Ersatz für Azure Blob Storage. Informationen zum Erstellen persistenter Kubernetes-Volumes finden Sie unter Was ist Azure Container Storage?

Important

DACS befindet sich in der Vorschau. Vorschaufunktionen werden ohne Service-Level-Vereinbarung bereitgestellt und sind für Produktionsworkloads nicht empfohlen. Manche Funktionen könnten eingeschränkt oder nicht unterstützt werden. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbedingungen für Microsoft Azure-Vorschauversionen.

Wann sollte man einen verteilten Beschleuniger für Cloud-Speicher verwenden

DACS ist für leseintensive KI-Inferenz-Workloads konzipiert, die wiederholt dieselben Modelldaten aus Azure Blob Storage laden. Betrachten Sie DACS, wenn Ihr Workload eine oder mehrere dieser Eigenschaften aufweist:

  • Inferenzkapseln warten auf große Modelldateien, bevor sie Anfragen verarbeiten können.
  • Das Hinzufügen von GPU-Knoten führt zu wiederholten Downloads von Modelldaten.
  • Pod-Neustarts, das Ersetzen von Knoten oder rollende Upgrades rufen wiederholt dieselben Modelldaten ab.
  • Multiple Inference Workloads nutzen erneut einen Arbeitssatz von Modelldateien, die in Azure Blob Storage gespeichert sind.
  • Der AKS-Cluster hat einen Linux-Node-Pool mit lokalen NVMe-Festplatten, die man für Cache-Server reservieren kann.

Für das Training sollten DACS berücksichtigt werden, wenn Worker Datensätze über Epochen oder Jobs hinweg wiederverwenden. Die Vorteile des Caches hängen von der Wiederverwendung der Daten, der Größe des Arbeitssets und davon, ob die Lesezugriffe auf einen kalten oder warmen Cache stoßen.

DACS unterstützt Cluster mit bis zu 100 Knoten. Es bietet keinen dauerhaften Speicher für Trainingsausgaben oder Checkpoints. KV-Cache, Container-Image-Cache, allgemeiner Zugriff auf geteilte Dateien und nicht-Azure Blob-Origins sind nicht Teil dieser Vorschau.

Wie der verteilte Beschleuniger für Cloud-Speicher funktioniert

DACS fügt eine cluster-lokale NVMe-Cache-Schicht hinzu, auf die über eine unterstützte Client-Integration zugegriffen wird. Der Client kann Azure Blob Storage direkt bei Cache-Misses oder beim Fallback lesen.

Architekturdiagramm, das einen AKS-Workload-Client zeigt, der Cache-Hits von verteilten NVMe-Servern liest, Blob Storage bei Fehltritten oder Rückfällen liest und den Cache befüllt. Ein separater verwalteter Controller stimmt die Cache-Ressourcen ab.

Lesepfad

  1. Eine Anwendung fordert einen Modell-Datenbereich über eine unterstützte DACS-Integration an.
  2. Der Client entdeckt die Cache-Server und bestimmt, welcher Server den angeforderten Chunk besitzt.
  3. Bei einem Cache-Treffer liest der Client den Chunk vom NVMe des besitzenden Cache-Servers.
  4. Bei einem Cache-Miss liest der Client den Chunk aus Azure Blob Storage und füllt den Cache asynchron aus. Der Lesevorgang kann enden, bevor die Befüllung abgeschlossen ist, sodass auch ein sofortiger wiederholter Lesevorgang ebenfalls fehlschlagen kann.
  5. Wenn der Cache nicht verfügbar ist, greift der Client auf Azure Blob Storage zurück.

Modelldaten werden in Chunks unterteilt und über Cache-Server verteilt. Ein Consistent-Hash-Ring ordnet Datenblöcke Servern zu, ohne von einem zentralen Datenpfad abhängig zu sein. Cache-Server können Daten über Ethernet oder InfiniBand übertragen, abhängig von der gewählten Größe der Azure-Virtual-Machine (VM) und der Clustertopologie.

Verwaltete Bereitstellung

Aktivieren Sie DACS über Azure Container Storage, indem Sie die Azure CLI mit dem Wert distributedAccelerator verwenden. Dieser Schritt installiert die separate distributedaccelerator verwaltete Erweiterung. Die Erweiterung stellt den DACS-Controller und das NVMe-Voraussetzungs-DaemonSet in kube-system bereit und registriert die Definition der benutzerdefinierten Ressource „Cache“. Die Voraussetzungen erkennen, formatieren und mounten lokale NVMe-Laufwerke auf beschrifteten Cache-Knoten. Verwenden Sie Festplatten, die dem Cache zugeordnet sind; installieren Sie kein separates Prerequisite-Chart. Die Erweiterung erstellt keine Cache-Server-Pods automatisch.

Nachdem überprüft wurde, dass die verwalteten NVMe-Voraussetzungen auf jedem beschrifteten Cache-Knoten bereit sind, erstellen Sie eine Cache-Ressource, um Serveranzahl, Kapazität, Ressourcenlimits und berechtigte Knoten zu definieren. Der Controller stimmt die Cache-Server-Pods ab und veröffentlicht Discovery-Informationen für die Clienten. Der Controller verwaltet Ressourcen; er ist kein Proxy für Lesezugriffe auf Anwendungsdaten. Siehe den Quickstart für Installation und Cache-Provisionierung.

Note

Gleichzeitige Clients können dieselben fehlenden Daten unabhängig abrufen, wenn der Cache kalt ist. Eine koordinierte Cold-Cache-Population ist in dieser Vorschau nicht verfügbar. Verwenden Sie Prefetch, um ausgewählte Modelldaten vorab zu laden, bevor die Inferenzpods starten.

Die wichtigsten Vorteile

  • Schnelleres Laden von warmen Modellen: Häufig lesen Sie Modellabschnitte aus lokalen oder Peer-NVMe, anstatt sie wiederholt aus Azure Blob Storage abzurufen.
  • Schnellere Skalierung und Wiederherstellung: Neue oder Ersatzknoten können bereits im Cluster zwischengespeicherte Modelldaten wiederverwenden.
  • Reduzierte wiederholte Blob-Reads: Behalten Sie das aktive Modell im Cache und verwenden Sie Prefetch vor geplanten Skalierungsereignissen.
  • Bereichsbasiertes Caching: Cachen Sie nur die Chunks, die die angeforderten Byte-Bereiche abdecken, anstatt jede Modelldatei vollständig zu materialisieren.
  • Flexible Anwendungsintegration: Verwenden Sie BlobFuse2, den nativen Python-Client, oder Run:ai Model Streamer, um die Arbeitslast mit dem Cache zu verbinden.
  • Sichere Ausweichlösung: Behalte Azure Blob Storage als maßgebliche Datenquelle bei, wenn Daten nicht zwischengespeichert sind oder der Cache nicht verfügbar ist.

Client-Integrationen

Der Umfang der Anwendungsänderung hängt von der Integration ab:

Integration Verwenden Sie, wenn Anwendungsänderung
BlobFuse2 über den Azure Blob CSI-Treiber Ihre Anwendung liest Blob-Daten über Linux-Dateisystempfade. Konfigurieren Sie ein schreibgeschütztes BlobFuse2-Volume; behalten Sie vorhandenen Dateilesecode.
Nativer Client für Python Du willst explizite synchrone oder asynchrone Cache-Operationen. Importiere und rufe den DACS-Client auf.
Run:ai Model Streamer Deine Anwendung verwendet Run:ai Model Streamer, um Modelldaten zu laden. Konfigurieren Sie die DACS-Integration für den Modell-Lade-Workflow.

Für Dateisystem-Einrichtung und gemessene Standardspeicherergebnisse siehe Verteilten Beschleuniger für Cloudspeicher mit BlobFuse2 verwenden. Für die Python-Client-Einrichtung und Beispiele siehe Verwenden des verteilten Beschleunigers für Cloudspeicher mit dem Python-Client.

Der direkte Hugging Face Origin-Zugriff wird nicht unterstützt. Speichern Sie die Modelldaten in Azure Blob Storage, bevor Sie den verteilten Beschleuniger für Cloud-Speicher verwenden.

Cache-Semantik

Verstehen Sie diese Verhaltensweisen, bevor Sie Distributed Accelerator für Cloud-Speicher einsetzen:

  • Haltbarkeit: Zwischengespeicherte Daten sind flüchtig und werden nicht aus Langlebigkeit repliziert. Der Verlust eines Cache-Knotens kann die auf diesem Knoten gespeicherten Chunks entfernen; fehlende Daten werden erneut aus Azure Blob Storage abgerufen.
  • Wahrheitsquelle: Azure Blob Storage bleibt maßgeblich. Verwende DACS nicht als einzige Kopie von Modelldateien oder Datensätzen. Bevorzuge unveränderliche, versionierte Blob-Pfade für Modell-Upgrades.
  • Verdrängung: Der Cache verdrängt Daten, wenn die Kapazitätsschwellenwerte erreicht sind. Verdrängte Daten werden bei Bedarf erneut abgerufen.
  • Rückfall: Fehlende Discovery-Konfiguration oder ein nicht verfügbarer Cache kann dazu führen, dass der Client direkt aus Azure Blob Storage liest. Überprüfen Sie die Treffer des Client-Caches und die Erhöhung des erfolgreichen Serveranforderungszählers, anstatt eine erfolgreiche Blob-Lesung als Beweis für Caching zu behandeln. Siehe Den DACS-Anfragepfad überprüfen.
  • Identität: Workloads verwenden Microsoft Entra-Identitäten oder eine Shared Access Signature (SAS), um auf Azure Blob Storage zuzugreifen. Nutze die für den Workload erforderliche Rolle mit den geringsten Privilegien.
  • Netzwerk: Der Cache-Verkehr bleibt im AKS-Netzwerk. Der Zugriff auf den Azure Blob-Endpunkt muss für Cache-Misses und Fallbacks erlaubt sein.
  • Vertrauensgrenze: Verwenden Sie DACS innerhalb eines vertrauenswürdigen Clusters. Der Cache isoliert nicht gegenseitig nicht vertrauenswürdige Mandanten.

Open-Source-Projekt

DACS ist ein Open-Source-Projekt, das in Zusammenarbeit zwischen Azure AI Platform und Azure Storage entwickelt wurde. Das Projekt stellt seine Cache-Implementierung für Inspektion, Experimente und Community-Beiträge zur Verfügung, um wiederholte Datenlesungen zu reduzieren, ohne den dauerhaften Speicher zu ersetzen.

Das Azure DACS-Repository enthält den Cache-Server, einen nativen C/C++-Client, Python-Adapter, einen Rust-Wrapper, Kubernetes-Charts und -Controller sowie Bereitstellungsbeispiele. Konsultieren Sie das Repository README für Open-Source-Kompatibilität und Konfigurationsratschläge und nutzen Sie dessen Beitragsleitlinien, um reproduzierbare Probleme, Workload-Messungen und Verbesserungen zu teilen.

Das Open-Source-Projekt und die von Azure verwaltete Vorschau haben unterschiedliche Bereitstellungs- und Unterstützungsumfange. Für das Managed-AKS-Erlebnis folgen Sie dem Azure-Quickstart; Repository-Deployment-Optionen sind nicht automatisch unterstützte Funktionen der verwalteten Bereitstellung.

Vorschauunterstützung und Einschränkungen

Die folgende Tabelle fasst den Umfang der anfänglichen Vorschau zusammen.

Region Vorschauumfang
Orchestrator AKS
Arbeitsbelastung Hauptsächlich das Laden von Inferenzmodellen; wiederholte Datensatzlesungen zum Training
Herkunft Azure Blob Storage (Speicherdienst von Azure für unstrukturierte Daten)
Zwischengespeicherte Medien Lokale NVMe auf Linux-Cache-Knoten
Skalieren Bis zu 100 Knoten
CPU-Architektur x64 und Arm64
Network Ethernet; InfiniBand bei unterstützten VM-Größen
Aufwärmen On-Demand-Population und Prefetch
Cold-read-Koordination Gleichzeitige Cold Reads werden nicht koordiniert
Installation Separat verwaltete DACS-Erweiterung über Azure CLI aktiviert
Upgrade Versionsspezifische Kompatibilitäts- und Upgrade-Richtlinien gelten
Price Keine DACS-Softwaregebühren; Azure VM, Blob Storage und Netzwerkgebühren fallen weiterhin an

Wann sollte man eine andere Speicheroption verwenden

Verwenden Sie eine weitere Azure-Speicheroption, wenn Ihre Arbeitslast Funktionen außerhalb des DACS-Bereichs benötigt:

Nächste Schritte