Virtuelle Datenträgerimages mit Apache Airflow in Oracle Cloud Infrastructure Block Volumes importieren

Während Unternehmen weiterhin in die Cloud migrieren, stehen sie häufig vor der Herausforderung, ihre vorhandenen Block-Volumes nahtlos zu übertragen und zu verwalten. Unabhängig davon, ob es um die Migration von On-Premises-Workloads, die Implementierung von Disaster-Recovery-Strategien oder die Optimierung ihrer Cloud-Infrastruktur geht, wird die Möglichkeit, virtuelle Datenträger problemlos zu importieren, zu einem kritischen Bedarf.

Hier können Benutzer durch die Synergie zwischen Oracle Cloud Infrastructure Functions (OCI Functions), OCI Object Storage, Apache Airflow, qemu-img und ereignisgesteuerten Architekturen den Import von virtuellen Datenträgerimagedateien in Oracle Cloud Infrastructure Block Volumes automatisieren.

Hinweis:

Da diese Lösung Apache Airflow für die Orchestrierung verwendet, können Benutzer die Workflows für den virtuellen Datenträgerimport überwachen, Fehler beheben und einen unterbrochenen Konvertierungsablauf wiederholen.

Architektur

Die Architektur für einen typischen Importworkflow für virtuelle Datenträgerimages wird im folgenden Abschnitt beschrieben.

  1. Der Benutzer lädt ein neues virtuelles Datenträgerimage in den OCI Object Storage-Bucket hoch.
  2. Wenn der Upload der virtuellen Datenträger-Imagedatei abgeschlossen ist, löst das Ereignis die Ausführung einer OCI-Funktion aus.
  3. Die Funktion ruft die Metadaten des virtuellen Datenträgerobjekts ab und ruft die Apache Airflow-API auf, um die DAG-(Directed Acyclic Graph-)Ausführung zu starten.
  4. Die Apache Airflow DAG übernimmt den Import des virtuellen Datenträgerimages in OCI Block Volume in 14 Schritten. Einige der wichtigsten Schritte sind:
    • Erstellen Sie eine neue Worker-Compute-Instanz, die den Import des virtuellen Datenträgerimages verarbeitet.
    • Richten Sie die erforderlichen Tools für die neue Instanz ein: qemu-img, oci-cli.
    • Laden Sie das virtuelle Datenträgerimage aus dem Bucket in die Worker-Instanz herunter.
    • Bestimmen Sie die tatsächliche Größe des virtuellen Datenträgerimages mit qemu-img, und stellen Sie ein neues OCI-Block-Volume bereit (als virtuelles Datenträgerimage bezeichnet).
    • Hängen Sie das OCI-Block-Volume an die Compute-Instanz des Mitarbeiters an.
    • Schreiben Sie den Inhalt des virtuellen Datenträgerimages in das OCI-Block-Volume.
    • Führen Sie fsck auf dem OCI Block Volume aus.
    • Trennen Sie das OCI-Block-Volume.
    • Kündigen Sie die Mitarbeiterinstanz.
    • (Optional) Aktualisieren Sie die Backup-Policy auf dem OCI Block Volume.
  5. Benutzer können die DAG-Ausführung überwachen, indem sie eine Verbindung zu Apache Airflow herstellen.

Das folgende Diagramm veranschaulicht diese Referenzarchitektur.



virtual-disk-import-arch-oracle.zip

Die Architektur umfasst die folgenden Komponenten:

  • Region

    Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der mindestens ein Data Center enthält, das als Availability-Domain bezeichnet wird. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie trennen (über Länder oder sogar Kontinente).

  • Availability-Domains

    Availability-Domains sind eigenständige, unabhängige Data Center innerhalb einer Region. Die physischen Ressourcen in jeder Availability-Domain sind von den Ressourcen in den anderen Availability-Domains isoliert, was eine Fehlertoleranz sicherstellt. Availability-Domains haben keine gemeinsame Infrastruktur wie Stromversorgung oder Kühlung oder das interne Availability-Domainnetzwerk. Es ist daher unwahrscheinlich, dass der Fehler in einer Availability-Domain sich auf die anderen Availability-Domains in der Region auswirkt.

  • Virtuelles Cloud-Netzwerk (VCN) und Subnetze

    Ein VCN ist ein anpassbares, benutzerdefiniertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region einrichten können. Wie herkömmliche Data Center-Netzwerke erhalten Sie mit VCNs vollständige Kontrolle über Ihre Netzwerkumgebung. Ein VCN kann mehrere sich nicht überschneidende CIDR-Blöcke aufweisen, die Sie nach dem Erstellen des VCN ändern können. Sie können ein VCN in Subnetze segmentieren, die sich auf eine Region oder eine Availability-Domain beschränken. Jedes Subnetz besteht aus einem Bereich zusammenhängender Adressen, die sich nicht mit anderen Subnetzen im VCN überschneiden. Sie können die Größe eines Subnetzes nach der Erstellung ändern. Ein Subnetz kann öffentlich oder privat sein.

  • Object Storage

    Mit dem Objektspeicher können Sie schnell auf große Mengen an strukturierten und unstrukturierten Daten eines beliebigen Inhaltstyps zugreifen, darunter Datenbankbackups, analytische Daten und umfangreiche Inhalte, wie Bilder und Videos. Sie können Daten sicher und geschützt speichern und dann direkt aus dem Internet oder aus der Cloud-Plattform abrufen. Sie können den Speicher nahtlos skalieren, ohne die Performance oder Servicezuverlässigkeit zu beeinträchtigen. Verwenden Sie Standardspeicher für "Hot Storage", auf den Sie schnell, sofort und häufig zugreifen müssen. Verwenden Sie Archivspeicher für "Cold Storage", den Sie über lange Zeiträume beibehalten möchten und auf den Sie nur selten zugreifen.

  • Ereignisse

    Oracle Cloud Infrastructure-Services geben Ereignisse aus. Dies sind strukturierte Nachrichten, mit denen die Änderungen an Ressourcen beschrieben werden. Ereignisse werden für CRUD-Vorgänge (Create, Read, Update oder Delete), Änderungen des Ressourcenlebenszyklusstatus und Systemereignisse ausgegeben, die sich auf Cloud-Ressourcen auswirken.

  • Functions

    Oracle Cloud Infrastructure Functions ist eine vollständig verwaltete, mehrmandantenfähige, hoch skalierbare, On-Demand-Funktionalität (FaaS). Es wird von der Open-Source-Engine Fn Project angetrieben. Mit Funktionen können Sie Ihren Code bereitstellen und entweder direkt aufrufen oder als Reaktion auf Ereignisse auslösen. Oracle Functions verwendet Docker-Container, die in Oracle Cloud Infrastructure Registry gehostet werden.

  • DevOps

    Der DevOps-Service ist eine End-to-End-Plattform für kontinuierliche Integration und Bereitstellung (CI/CD) für Entwickler, die das Erstellen von Artefakten und das Deployment in OCI-Compute-Services (Functions, Oracle Container Engine (OKE) oder Compute Instances) erleichtert.

  • Policy

    Eine Oracle Cloud Infrastructure Identity and Access Management-Policy gibt an, wer auf welche Ressourcen zugreifen kann und wie. Der Zugriff wird auf Gruppen- und Compartment-Ebene erteilt. Sie können also eine Policy schreiben, die einer Gruppe einen bestimmten Zugriffstyp in einem bestimmten Compartment oder dem Mandanten gibt.

  • Block-Volume

    Mit Blockspeicher-Volumes können Sie Speicher-Volumes erstellen, anhängen, verbinden und verschieben und die Volume-Performance entsprechend Ihrer Speicher-, Performance- und Anwendungsanforderungen ändern. Nachdem Sie ein Volume an eine Instanz angehängt und damit verbunden haben, können Sie es wie eine herkömmliche Festplatte verwenden. Sie können ein Volume auch trennen und an eine andere Instanz anhängen, ohne Daten zu verlieren.

  • Virtual Machines

    Oracle Cloud Infrastructure (OCI) Compute-VMs bieten sichere und elastische Compute-Kapazität in der Cloud für Workloads, die von kleinen Entwicklungsprojekten bis hin zu großen globalen Anwendungen wie Echtzeitkommunikationsplattformen reichen. Mit flexiblen Ausprägungen können Benutzer VM-Ressourcen mit benutzerdefinierten Prozessor- und Speicherwerten optimieren, um das Preis-Leistungs-Verhältnis zu verbessern.

Empfehlungen

Verwenden Sie die folgenden Empfehlungen als Ausgangspunkt. Ihre Anforderungen können von der hier beschriebenen Architektur abweichen.
  • VCN

    Wenn Sie ein VCN erstellen, bestimmen Sie die Anzahl der erforderlichen CIDR-Blöcke und die Größe jedes Blocks basierend auf der Anzahl der Ressourcen, die Sie an Subnetze im VCN anhängen möchten. Verwenden Sie CIDR-Blöcke innerhalb des standardmäßigen privaten IP-Adressraums.

    Wählen Sie CIDR-Blöcke aus, die sich nicht mit anderen Netzwerken (in Oracle Cloud Infrastructure, Ihrem On-Premise-Data Center oder einem anderen Cloud-Provider) überschneiden, für die Sie private Verbindungen einrichten möchten.

    Nachdem Sie ein VCN erstellt haben, können Sie dessen CIDR-Blöcke ändern, hinzufügen und entfernen.

    Berücksichtigen Sie beim Entwerfen der Subnetze den Trafficfluss und die Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Tier oder Rolle an dasselbe Subnetz an, das als Sicherheitsgrenze dienen kann.

  • Sicherheit

    Es wird dringend empfohlen, dass der Benutzer, der den Stack bereitstellt, Mitglied der Administratorengruppe ist. Wenn der Benutzer Apache Airflow mit der Variablen allowed_source_cidr für das Internet bereitstellt, wird dringend empfohlen, einen bestimmten IP-Subnetz-CIDR-Block auszufüllen.

Hinweise

Beachten Sie beim Deployment dieser Referenzarchitektur die folgenden Punkte.

  • Sicherheit

    Die Instanz, auf der Apache Airflow- und temporäre Worker-Instanzen ausgeführt werden, ist mit einer dynamischen Gruppe autorisiert, Instanzen, Block-Volumes und Leseobjekte in dem Compartment zu verwalten, zu dem sie gehören. Die Funktion ist autorisiert, Lesevorgänge für die Objektressourcen im Compartment auszuführen.

  • Verfügbarkeit

    Die Apache Airflow-API auf Port 8080 der Apache Airflow-Instanz ist nur über das Internet erreichbar, wenn ein neues VCN erstellt wird, die Instanz über eine öffentliche IP-Adresse verfügt und die Variable allowed_source_cidr die Quell-IP enthält, von der aus der Verbindungsversuch unternommen wird.

  • Kostenfaktor

    Eine temporäre Compute-Instanz wird erstellt, um jeden Importvorgang eines virtuellen Datenträgers in Oracle Cloud Infrastructure Block Volumes zu verarbeiten. Nach erfolgreichem Abschluss des Workflows wird die Instanz beendet.

  • Platzierung

    Die Block-Volume-Platzierung kann mit den "ad_number": 1/2/3-Metadaten in der in OCI Object Storage hochgeladenen virtuellen Datenträgerimagedatei angepasst werden.

Stellen Sie

Der Terraform-Code zum Konfigurieren und Bereitstellen der Ressourcen dieser Referenzarchitektur ist in GitHub verfügbar.

  1. Gehen Sie zu GitHub.
  2. Klonen Sie das Repository, oder laden Sie es auf den lokalen Rechner herunter.
  3. Befolgen Sie die Anweisungen im Dokument README.

Mehr erfahren

Weitere Informationen zu Oracle Cloud Infrastructure, Apache Airflow und qemu-img finden Sie in den folgenden Ressourcen.

Danksagungen

Author: Andrei Ilas