Das Azure Well-Architected Framework für HPC
Der Plan für Azure High Performance Computing (HPC) beschreibt einen Prozess zur Optimierung Ihres Szenarios, zur Priorisierung der technischen Anstrengungen und zur Identifizierung von Workloads. Für viele der Workloads müssen verschiedene Architekturprinzipien eingehalten werden. Diese Prinzipien helfen bei der Entwicklung und Optimierung der Workloads. Die fünf Architekturkonstrukte werden imAzure Well-Architected Framework ausführlich ausgeführt. Dieser Leitfaden enthält eine Zusammenfassung, wie Sie diese Prinzipien auf die Verwaltung Ihrer Datenworkloads anwenden können.
Zuverlässigkeit
Fehler und Defekte sind überall möglich. Datenpipelines bilden da keine Ausnahme. Daher sind gute Architekturen auf hohe Verfügbarkeit und Resilienz ausgelegt. Die wichtigsten Überlegungen betreffen die Frage, wie schnell Änderungen erkennbar sind und wie schnell Vorgänge nach einer Unterbrechung fortgesetzt werden können.
Ihre Datenumgebung sollte robuste Architekturen, regionenübergreifende Redundanzen, Servicestufen, Vereinbarungen zur Servicestufe (SLAs) und kritischen Support berücksichtigen. Die vorhandene Umgebung sollte auch Auditierung, Überwachung und Warnungen umfassen. Dazu nimmt man am besten eine integrierte Überwachung und ein Benachrichtigungsframework.
Über diese Umgebungskontrollen hinaus sollte das Workloadteam Folgendes berücksichtigen:
- Durchführen einer größeren Zahl von Änderungen an der Architektur zur Verbesserung der Servicelevel-SLAs.
- Einrichten einer redundanten workloadspezifischen Architektur.
- Festlegen von Prozessen für Überwachung und Benachrichtigung, die über das hinausgehen, was von den Cloudbetriebsteams bereitgestellt wird.
Hybride ExpressRoute-Konnektivität
Nutzen Sie zur Unterstützung unternehmenskritischer HPC-Workloads eine Hochverfügbarkeitskonfiguration von Azure ExpressRoute. Selbst an einem einzelnen Standort mit einem Hochverfügbarkeits-Setup mit einer möglichen redundanten ExpressRoute-Verbindung sind Sie nicht vor Ausfallzeiten eines einzelnen Edge-Standorts gefeit. Wenn Sie zwei Verbindungen an zwei Standorten aktivieren, kann Ihr Unternehmen dank der Redundanz weiterarbeiten, falls es am Hauptstandort zu einer Katastrophe kommt. Mithilfe der hohen Verfügbarkeit von ExpressRoute können Sie die Konnektivität mit Azure sicherstellen, wenn ExpressRoute in einer einzelnen Region ausfällt.
Empfehlungen
- Aktivieren Sie zwecks maximaler Redundanz zwei ExpressRoute-Kreisläufe an zwei unterschiedlichen ExpressRoute-Edge-Standorten.
- Für dieses Setup müssen Sie im Azure-Portal zwei ExpressRoute-Kreisläufe für die beiden unterschiedlichen ExpressRoute-Edge-Standorte einrichten. Anschließend verbinden Sie beide ExpressRoute-Kreisläufe mit demselben virtuellen Hubnetzwerk in Azure.
- Platzieren Sie die beiden Edge-Standorte in derselben Azure-Region. Das sorgt für die Redundanz, falls einer der Peering-Standorte ausfällt. Beide ExpressRoute-Verbindungen enden in demselben virtuellen Hubnetzwerk in Azure. Sehen Sie sich die Liste der ExpressRoute-Standorte und -Konnektivitätspartner an, um Ihre ExpressRoute-Peering-Standorte zu planen.
- Konfigurieren Sie den zweiten ExpressRoute-Standort in Zusammenarbeit mit dem jeweiligen Anbieter.
- Stellen Sie sicher, dass die zweite Verbindung funktioniert, indem Sie ein Failover von Datenverkehr an den zweiten Standort durchführen. Dies ist von entscheidender Bedeutung. Führen Sie regelmäßige Übungen durch, um die Konnektivität zu gewährleisten.
Weitere Informationen zu einer ExpressRoute-Konfiguration mit maximaler Resilienz finden Sie unter Entwerfen für die Notfallwiederherstellung mit ExpressRoute.
Sicherheit
Wenden Sie Sicherheitsprinzipien in der HPC-Umgebung an, um sich gegen vorsätzliche Angriffe und gegen Missbrauch wertvoller Daten und Systeme abzusichern. Informieren Sie sich über die Absicherung der Betriebssystemimages der Benutzer*innen und des Benutzerzugriffs, und befolgen Sie die Sicherheitsleitlinien für Azure Batch und Azure CycleCloud. Weitere Informationen finden Sie unter Prinzipien der Säule „Sicherheit“.
Betriebssystemabbilder
Azure Marketplace bietet Linux-basierte HPC-Images, die im Cluster verwendet werden können. Diese Images enthalten viele beliebte Bibliotheken, Softwarepakete und Diagnosetools wie etwa:
- InfiniBand-basierte MPI-Bibliotheken (Message Passing Interface).
- Mellanox OFED.
- Vorkonfiguriertes IP über InfiniBand.
- Kommunikations-Runtimes.
- Intel/AMD-optimierte Bibliotheken.
- Azure HPC-Diagnosetools.
Sie können mit den Images beginnen und anschließend die Sicherheitsrichtlinien Ihrer Organisation anwenden, um Softwareimages gegen Sicherheitsrisiken und Cyberbedrohungen abzusichern. Nach der Überprüfung können Sie das neue Image in Azure Compute Gallery speichern. Anschließend können Sie mit dem Image virtuelle Maschinen in Azure CycleCloud, Azure HPC und Batch erstellen.
Benutzerzugriff
- Definieren Sie eindeutige Verantwortlichkeitsbereiche und Aufgabentrennung für jede Funktion.
- Schränken Sie den Zugriff auf Grundlage der Sicherheitsprinzipien „Need to know“ und „geringste Rechte“ ein.
- Weisen Sie Benutzer*innen, Gruppen und Anwendungen über die rollenbasierte Zugriffssteuerung von Azure Berechtigungen mit einem bestimmten Umfang zu. Verwenden Sie nach Möglichkeit integrierte Rollen.
- Verhindern Sie das Löschen oder Ändern einer Ressource, einer Ressourcengruppe oder eines Abonnements durch Verwaltungssperren.
- Greifen Sie mithilfe verwalteter Identitäten auf Ressourcen in Azure zu.
- Unterstützen Sie ein einzelnes Unternehmensverzeichnis. Sorgen Sie für die Synchronisierung der Cloudverzeichnisse und lokalen Verzeichnisse mit Ausnahme von Konten mit potenziell kritischen Auswirkungen.
- Richten Sie den bedingten Microsoft Entra-Zugriff ein. Erzwingen und messen Sie wichtige Sicherheitsattribute, wenn Sie alle Benutzer*innen authentifizieren, insbesondere für Konten mit potenziell kritischen Auswirkungen.
- Verwenden Sie kennwortlose Methoden, oder entscheiden Sie sich für moderne Kennwortmethoden.
- Blockieren Sie veraltete Protokolle und Authentifizierungsmethoden.
Azure Batch-Sicherheit
Befolgen Sie die bewährten Methoden, um Sicherheit für Batch zu gewährleisten.
Azure CycleCloud-Sicherheit
Befolgen Sie die bewährten Methoden, um Sicherheit für Azure CycleCloud zu gewährleisten.
Kostenoptimierung
Zur optimalen Ausführung Ihrer Umgebung in Azure müssen Sie zunächst das Kostenmanagement und die Vorabplanung in den Vordergrund stellen. Kostenmanagement und Planung sind in der Regel die wichtigsten Aspekte für die erfolgreiche Cloudmigration einer Organisation. Microsoft Cost Management bietet Ihnen Tools zur Planung, Analyse und Reduzierung der Ausgaben, um Ihre Investitionen in die Cloud zu maximieren. Weitere Informationen zu den Möglichkeiten zur Planung und Optimierung der Cloudkosten finden Sie unter Bewährte Methoden für Kostenmanagement und Abrechnung. Die folgenden Überlegungen sind einige der wichtigsten Aspekte bei der Kostenoptimierung.
Wahl des Betriebssystems
Linux ist das dominierende Betriebssystem für HPC-Workloads. Linux ist quelloffen und auf eine optimale Leistung bei der Nutzung der HPC-Infrastruktur ausgelegt. Daher funktionieren die MPI-Bibliotheken und Infiniband-Treiber unter Linux besser als unter Windows. Durch den Einsatz virtueller Linux-Maschinen (VMs) anstelle von Windows-Versionen lassen sich beim Einrichten eines HPC-Clusters definitiv Kosten sparen. Einige Benutzer*innen bevorzugen jedoch möglicherweise eine Windows-Umgebung, insbesondere bei Vor- und Nachverarbeitungsaufgaben für Workloads wie im Bereich der numerischen Strömungsmechanik. In diesem Fall wird empfohlen, dass ein Windows-Front-End Aufträge an einen Linux-Host (Hauptknoten) übermittelt, der die Serverknoten für Simulationen nutzt.
Automatische Skalierung
Mit der automatischen Skalierung lassen sich VMs nur einrichten und verwenden, wenn Sie einen Auftrag übermitteln oder wenn ein Auftrag aktiv ist. Nach Abschluss des Auftrags werden die Knoten automatisch deaktiviert. Mithilfe der automatischen Skalierung können Sie die von der Anwendung verwendeten Compute-Ressourcen anpassen, wodurch Sie möglicherweise Zeit und Geld sparen. In Azure CycleCloud ist die automatische Skalierung in den Planern standardmäßig aktiviert. Das Standardzeitlimit zum Ausschalten der Knoten beträgt 15 Minuten. Das Zeitlimit können Sie anpassen. Mithilfe des Zeitlimits wird sichergestellt, dass die Benutzer*innen nur für das zahlen, was sie tatsächlich nutzen. Batch bietet einen Mechanismus zum Integrieren einer Formel für die automatische Skalierung, wobei verschiedene Parameter zur Wahl stehen. Weitere Informationen finden Sie unter Erste Schritte mit der automatischen Skalierung in Azure.
Nutzungsbasierte Zahlung im Vergleich zu reservierten Instanzen und Spot-Instanzen
Azure bietet verschiedene Preisoptionen: die nutzungsbasierte Zahlung, reservierte Instanzen mit Optionen für ein oder drei Jahre und Spot-Instanzen, die von der im Rechenzentrum verfügbaren Kapazität abhängig sind. Instanzen mit nutzungsbasierter Zahlung sind kosteneffizient, da sie den sporadischen Kapazitätsbedarf erfüllen. Reservierte Instanzen können sich als kosteneffizient erweisen, wenn es einen kontinuierlichen HPC-Bedarf gibt oder viele Anwendungen mit Azure HPC ausgeführt werden. Beide Arten von Instanzen eignen sich gut für produktionsbereite Workloads. Spot-Instanzen eignen sich gut für kurze Tests und Experimente oder wenn die Anwendung Prüfpunkte benötigt, z. B. in der Genomik. Spot-Instanzen sind abhängig von der im Rechenzentrum verfügbaren Kapazität. Die Preise hängen von diesen Faktoren ab. Spot-Instanzen lassen sich mit einer minimalen Vorankündigung entfernen.
Datenklassifizierung
HPC-Workloads profitieren von Speicher mit hohem Durchsatz. Nutzen Sie beispielsweise Azure Managed Lustre, Azure Net App Files oder BeeGFS Parallel File System. Diese Speicherdienste bieten eine hohe Leistung, können aber kostenintensiv sein. Sie sollten Ihre Daten unbedingt vorweg klassifizieren, damit sich nur anwendungsspezifische Daten in diesen Systemen befinden. Alle anderen Daten können in kostengünstigen Speicherlösungen wie Azure Data Lake Storage oder Azure Blob Storage gespeichert werden.
Darüber hinaus kann es sinnvoll sein, HPC-Speichersysteme bedarfsgesteuert einzurichten, damit die Daten mit einem kostengünstigen Speicherdienst wie Blob Storage synchronisiert werden. On-Demand-Speicher trägt dazu bei, dass Daten in Blob Storage aufbewahrt werden, wenn das Hochleistungs-Speichersystem deaktiviert wird. Managed Lustre und Net App Files bieten einen Synchronisierungsdienst.
Festlegen von Budgets
Azure CycleCloud ermöglicht das Festlegen von Budgets für einzelne Cluster und kann Benachrichtigungen an die Empfänger senden, wenn ihre Budgets fast ausgeschöpft sind. Bei Batch können Sie im Azure-Portal für Ihre Batch-Pools oder -Konten Budgets und Ausgabenwarnungen erstellen. Budgets und Warnungen sind hilfreich, um Stakeholder*innen über Risiken der Ausgabenüberschreitung zu benachrichtigen. Es ist aber durchaus möglich, eine Verzögerung bei der Ausgabe von Warnungen einzurichten und ein Budget geringfügig zu überschreiten.
Optimaler Betrieb
Wenn Ihre HPC-Anwendungen weiter in der Produktion betrieben werden sollen, müssen Bereitstellungen zuverlässig und vorhersagbar sein. Zuverlässige und vorhersagbare Bereitstellungen umfassen die Automatisierung von HPC-Workloads mit IaC-Lösungen (Infrastructure-as-Code). Zur Analyse und Überwachung der HPC-Workloads müssen Sie auch die Integrität der Knoten überprüfen.
Weitere Informationen zu Bereitstellungsvorschlägen finden Sie unter Empfehlungen für die Nutzung von Infrastructure-as-Code. Weitere Informationen zu Überwachungsvorschlägen finden Sie unter Empfehlungen zum Entwerfen und Erstellen eines Überwachungssystems.
Infrastructure-as-Code
HPC in Azure stellt verschiedene Ressourcen wie Azure CycleCloud, HPC-Cluster, Storage, Visualisierungsknoten, Lizenzserver usw. bereit. Zur Vereinfachung der Bereitstellung sollten Sie branchenübliche Tools wie Terraform, Ansible und Packer nutzen, um den Prozess zu vereinfachen.
Prüfung der Knotenintegrität
Azure Managed Grafana ist ein vollständig verwalteter Dienst für Analyse- und Überwachungslösungen. Grafana Labs unterstützt Grafana und bietet erweiterbare Datenvisualisierungen. Diese Lösung kann als Beispiel in die HPC-Workloads integriert werden. Weitere Informationen finden Sie unter Azure HPC OnDemand-Plattform.
Effiziente Leistung
Stellen Sie sicher, dass Ihre HPC-Umgebung effizient skalierbar ist, damit sie den Anforderungen der Benutzer*innen gerecht werden kann. Wählen Sie auf Grundlage der Empfehlungen der Anwendungsanbieter die richtige Plattform für die HPC-Anwendungen aus. Investieren Sie in die Kapazitätsplanung, wenn Sie zur Erfüllung des Bedarfs zusätzliche Infrastruktur benötigen. Überwachen Sie die Leistung der HPC-Infrastruktur, während Benutzer*innen Ihr System verwenden.
Weitere Informationen finden Sie in den Artikeln zur Leistungseffizienz.
Wahl der richtigen Plattform für die HPC-Anwendung
Azure bietet eine Reihe von Plattformen für VMs, die auf Intel- und AMD-CPUs sowie auf NVIDIA- und AMD-GPUs basieren. Wenngleich die meisten Anwendungen mit den verfügbaren Prozessoren kompatibel sind, profitieren einige von einer bestimmten Art von CPU oder GPU. Ehe Sie die Infrastruktur in der Cloud bereitstellen, sollten Sie unbedingt eine Empfehlung des Anwendungsanbieters (ISV) einholen, um folgende Anforderungen nachzuvollziehen.
- Ob die Anwendung arbeitsspeicher-, CPU- oder GPU-gebunden ist
- Ob es eine leistungsbezogene Empfehlung für die einzelnen Typen von CPU- oder GPU-Architektur gibt
- Ob es einen MPI-Typ und eine entsprechende Version gibt, von dem bzw. von der die Anwendung profitieren kann
- Ob es eine Empfehlung zum Planertyp gibt
- Ob es eine Empfehlung zum IOPS/Durchsatz von parallelen Dateisystemen gibt
Investieren in die Kapazitätsplanung
Überprüfen Sie entsprechend dem Typ der Anwendung und der zugehörigen Lizenzbedingungen, ob die Lizenz für die Nutzung einer bestimmten Anzahl von Kernen ausgelegt ist. Bewerten Sie Ihre Investition, damit die Lizenz für HPC geeignet ist. Planen Sie anschließend Ihre Kapazität entsprechend.
Überwachen der Leistung der Infrastruktur
- Sie sollten unbedingt nachvollziehen können, auf welche Weise Benutzer*innen Ihr System verwenden. Ferner müssen Sie in der Lage sein, die Ressourcennutzung nachzuverfolgen und allgemein die Integrität und Leistung des Systems zu überwachen. Diese Informationen dienen als Diagnosehilfe, um Probleme zu erkennen und zu korrigieren sowie potenzielle Probleme frühzeitig zu erkennen und zu verhindern. Eine Übersicht über die verfügbaren Azure-Komponenten und -Dienste zur Überwachung von Ressourcen finden Sie unter Azure Monitor – Übersicht.
- Monitor ist ein hervorragendes Tool, um zu ermitteln, ob es Engpässe in den VM-Instanzen und im Speicher gibt.
- Eine Speicherdrosselung kann dazu führen, dass sich Anwendungen erheblich verlangsamen, was sich auf die Leistung auswirkt. Die Drosselung erfolgt, wenn Ein- und Ausgabevorgänge im Speicher die von Ihnen festgelegten Durchsatzgrenzwerte überschreiten. Azure Storage-Dienste bieten Diagramme für Lese-/Schreibvorgänge, mit denen sich überwachen lässt, ob Probleme aufgrund einer Drosselung vorliegen.
- Azure CycleCloud lässt sich in Azure-Dienste wie Monitor und in Microsoft Cost Management-Tools integrieren. Dank der erweiterbaren Architektur unterstützt es auch die Überwachung externer Dienste. Weitere Informationen finden Sie unter Überwachung.
- Wenn Sie Batch nutzen, steht Ihnen außerdem Batch Explorer zur Verfügung, ein kostenloses, eigenständiges Clienttool mit vielen Features, das Sie beim Erstellen, Debuggen und Überwachen von Batch-Anwendungen unterstützt.