Virtuelle Laufwerke manuell importieren

Zum Importieren von Bootlaufwerk-Images in Compute Engine von Ihren physischen Datencentern, von virtuellen Maschinen auf Ihrer lokalen Workstation oder von virtuellen Maschinen, die auf einer anderen Cloudplattform ausgeführt werden, wird das virtuelle Laufwerkimporttool empfohlen. Dieses Tool automatisiert alle in dieser Übersicht beschriebenen Schritte.

Wenn Sie das automatisierte Tool nicht verwenden möchten, können Sie der Anleitung in dieser Übersicht Schritt für Schritt folgen.

Beim Importieren von Images kann jeweils nur ein Laufwerk importiert werden. In dieser Übersicht wird das Importieren von Bootlaufwerk-Images beschrieben.

Importieren Sie vorhandene Bootlaufwerke nur, wenn Sie Anwendungen nicht so erstellen oder migrieren können, dass sie basierend auf öffentlichen Compute Engine-Images ausgeführt werden. Öffentliche Images sind bereits zur Ausführung in der Compute Engine-Umgebung konfiguriert, sodass Anwendungen auf diesen Images ausgeführt werden können, ohne dass Sie sich um Bootloader- und Betriebssystemkonfigurationen Gedanken machen müssen. In folgenden Fällen müssen Sie jedoch eigene Bootlaufwerk-Images importieren:

  • Die Anwendungen erfordern ein Betriebssystem, das nicht als öffentliches Image bereitgestellt wird.
  • Sie haben bereits einen Satz Basis-Images, mit dem Sie virtuelle Maschinen auf einer anderen Cloud-Plattform erstellen können.
  • Der Arbeitsaufwand zur Migration von Anwendungscode zu einem der öffentlichen Images ist größer als der Aufwand für das Importieren des Bootlaufwerks.

Sie können auch von Partnerdiensten Unterstützung bei der Migration für virtuelle Maschinen erhalten. Weitere Einzelheiten finden Sie unter VMs zu Compute Engine migrieren.

Übersicht

So importieren Sie ein Bootlaufwerk-Image in Compute Engine:

  1. Planen Sie den Importpfad. Sie müssen festlegen, wo Sie das Bootlaufwerk-Image vorbereiten, bevor Sie es hochladen. Außerdem müssen Sie festlegen, wie Sie die Verbindung zu diesem Image herstellen, nachdem es in der Compute Engine-Umgebung gestartet wurde.
  2. Bereiten Sie das Bootlaufwerk so vor, dass es in der Compute Engine-Umgebung gestartet werden kann, damit Sie nach dem Starten auf das Laufwerk zugreifen können.
  3. Erstellen und komprimieren Sie die Image-Datei des Bootlaufwerks.
  4. Laden Sie die Image-Datei in Google Cloud Storage hoch und importieren Sie das Image als neues benutzerdefiniertes Image in Compute Engine.
  5. Erstellen Sie mithilfe des importierten Images eine VM-Instanz und überprüfen Sie, ob sie ordnungsgemäß gestartet werden kann.
  6. Wenn das Image nicht ordnungsgemäß gestartet wird, können Sie das Problem beheben, indem Sie einer anderen Instanz das Bootlaufwerk-Image hinzufügen und es neu konfigurieren.
  7. Optimieren Sie das Image und installieren Sie die Gastumgebung, damit das importierte Betriebssystem-Image mit dem Metadatenserver kommunizieren und weitere Compute Engine-Funktionen verwenden kann.

Anforderungen

Anforderungen an das Bootlaufwerk

Damit vorhandene Bootlaufwerke in Compute Engine importiert werden können, müssen sie die folgenden Anforderungen erfüllen:

  • Wenn Sie einen benutzerdefinierten Betriebssystem-Kernel erstellen, muss er die Anforderungen an die Hardware- und Kernel-Konfiguration erfüllen. Die meisten vordefinierten Linux-Distributionen erfüllen diese Anforderungen bereits, sodass diese Anforderung nur für erfahrene Nutzer gilt, die ihre eigenen benutzerdefinierten Betriebssysteme zur Ausführung in Compute Engine erstellen.
  • Das Bootlaufwerk darf nicht größer als 2.048 GB (2 TB) sein.
  • Das importierte Bootlaufwerk muss eine funktionsfähige MBR-Partitionstabelle oder die Hybridkonfiguration einer GPT-Partitionstabelle mit einem MBR-Bootloader haben.
  • Die primäre Partition des Bootlaufwerks kann ein beliebiges Format haben, solange sie ordnungsgemäß aus dem MBR-Bootloader startet.
  • Der Bootloader im Bootlaufwerk darf nicht die Kernel-Befehlszeilenargumente quiet, rhgb oder splashimage= enthalten. Compute Engine unterstützt beim Start keine Startbildschirme. Sie können diese Werte während der Bootloader-Konfiguration aus der GRUB-Konfiguration entfernen.
  • Das Betriebssystem auf dem Bootlaufwerk muss ACPI unterstützen.

Anforderungen an die Image-Datei

Die Image-Datei, die Sie importieren, muss folgende Anforderungen erfüllen:

  • Der Dateiname des Laufwerk-Images muss disk.raw sein.
  • Die RAW-Image-Datei muss eine Größe in Inkrementen von 1 GB haben. Die Datei kann also z. B. eine Größe von 10 GB oder 11 GB, aber nicht von 10,5 GB haben.
  • Die komprimierte Datei muss eine Datei vom Typ .tar.gz mit gzip-Komprimierung sein und die Option --format=oldgnu für das Dienstprogramm tar (manuell) verwenden.

Sie können Bootlaufwerk-Images für jedes Betriebssystem importieren, aber einige Systeme können einfacher für die Compute Engine-Umgebung konfiguriert werden als andere. Die folgenden Betriebssysteme wurden für diese Anleitung getestet:

  • Debian 7 und Debian 8
  • RHEL/CentOS 6
  • openSUSE 13.x
  • Ubuntu 12.04, 14.04 und 16.04

Für die folgenden Betriebssysteme sind möglicherweise zusätzliche Konfigurationsschritte erforderlich, die in dieser Anleitung nicht beschrieben werden:

  • Debian 6 und niedriger
  • RHEL/CentOS 7
  • RHEL/CentOS 5 und niedriger
  • Ubuntu 10.04 und niedriger

Anforderungen an das Projekt

Wenn Sie eine VM-Instanz aus einem importierten Image erstellen, muss die Instanz auf das externe Package Repository für das Betriebssystem zugreifen können, das auf dem Bootlaufwerk konfiguriert wurde.

Auf dieses Repository kann direkt vom Betriebssystem aus oder über eine Netzwerkverbindung zu Ihrer lokalen Infrastruktur zugegriffen werden, in der die Repositories gehostet sind.

Führen Sie in Ihrem Projekt einen der folgenden Schritte aus, um den Zugriff auf das externe Repository einzurichten:

Kosten für das Importieren von Images

Bevor Sie beginnen, müssen Sie verstehen, welche Kosten beim Importvorgang anfallen. Es entstehen keine Kosten für den eingehenden Netzwerktraffic beim Hochladen der Bootlaufwerk-Image-Datei in Google Cloud Storage und beim Importieren dieses Images als benutzerdefiniertes Compute Engine-Image. Es fallen jedoch Kosten bei einigen Importschritten an:

  • Kosten für die temporäre Speicherung der komprimierten Image-Dateien in einem Google Cloud Storage-Standard-Bucket. Sie müssen einen temporären Google Cloud Storage-Bucket zur Speicherung der Dateien verwenden, bevor Sie sie als benutzerdefinierte Compute Engine-Images importieren können. Sie können den Bucket entfernen, nachdem Sie den Importvorgang abgeschlossen haben.
  • Kosten für die Speicherung benutzerdefinierter Images, nachdem Sie sie in Compute Engine importiert haben.
  • Potenzielle Kosten für ausgehende Daten für das vorhandene Rechenzentrum, den Netzwerkanbieter oder den aktuellen Cloud-Dienst. Image-Dateien können auch nach der Komprimierung sehr groß sein. Wenn diese Dateien also in Compute Engine kopiert werden, kann es bei einigen Plattformen zu beträchtlichen Kosten für ausgehende Daten kommen.
  • Kosten für nichtflüchtige Speicher und VM-Instanzen von Compute Engine, auf denen Sie das Image nach dem Import in Compute Engine konfigurieren können.

Importpfad planen und vorbereiten

Die Methode für das Importieren des Laufwerks hängt von der aktuellen Konfiguration des Systems ab, das Sie in Compute Engine verschieben möchten. Sie benötigen ein System, bei dem Sie die Image-Datei des Bootlaufwerks erstellen und komprimieren können, sowie ein System, bei dem Sie die Image-Datei in Google Cloud Storage hochladen können. Beachten Sie beim Planen des Importpfads Folgendes:

  • Für den Image-Importpfad müssen Sie das Bootlaufwerk in einer funktionierenden Betriebssystemumgebung konfigurieren. Dies kann dazu führen, dass das Bootlaufwerk nicht außerhalb einer Compute Engine-Umgebung gestartet werden kann. Achten Sie darauf, dass keine Daten auf dem Laufwerk verloren gehen und dass keine funktionierenden Geschäftsanwendungen unterbrochen werden, während das System in Compute Engine importiert wird.
  • Ermitteln Sie die vorhandene Systemzugriffskonfiguration und planen Sie, wie Sie auf das System zugreifen möchten, nachdem es in Compute Engine importiert wurde.
    • Wenn das System vorhandene Nutzeranmeldungs- oder SSH-Konfigurationen hat, können Sie erst nur den Bootloader und später das Image konfigurieren, damit es in Compute Engine optimal ausgeführt wird. Sie können über die vorhandene SSH-Konfiguration oder eine direkte Nutzeranmeldung in der interaktiven seriellen Konsole auf die Instanz zugreifen.
    • Wenn das System keine vorhandenen Nutzeranmeldungs- oder SSH-Konfigurationen hat, müssen Sie das Bootlaufwerk so konfigurieren, dass Sie auf das Laufwerk zugreifen können, nachdem es in Compute Engine gestartet wurde.
  • Der Import kann je nach Größe des Bootlaufwerks und Geschwindigkeit der Netzwerkverbindung mehrere Stunden oder Tage dauern.
  • Das System, auf dem Sie das Bootlaufwerk-Image erstellen und komprimieren, muss genügend Speicherplatz zum Erstellen der Image-Dateien auf einem anderen Speichergerät als dem Bootlaufwerk haben. Im Allgemeinen belegen die Image- und tar.gz-Dateien zwei- bis dreimal so viel Speicherplatz wie das Bootlaufwerk.
  • Machen Sie sich mit der Dateisystemstruktur des vorhandenen Systems vertraut, das importiert werden soll.
    • Wenn die Betriebssystem- und Anwendungsdateien über mehrere Laufwerke verteilt sind, importieren Sie jedes dieser Laufwerke einzeln und erstellen Sie mit jedem Image einen speziellen nichtflüchtigen Speicher für die Compute Engine-VM-Instanz.
    • Wenn die Systeme Start-Volumes in einer RAID-Konfiguration haben, bei der mehrere Laufwerke als einzelnes logisches Volume fungieren, erstellen Sie ein einzelnes Image aus dem gesamten Array statt eines Images für jedes Laufwerk im Array. Nichtflüchtige Compute Engine-Speicher machen RAID-Konfigurationen unnötig.
  • Wenn das System den Inhalt des Bootlaufwerks mit einem Trusted Platform Module oder einer Verschlüsselung auf Softwareebene verschlüsselt, entschlüsseln Sie das Bootlaufwerk, bevor Sie die Bootlaufwerk-Image-Datei erstellen. Google kann verschlüsselte Images nicht lesen. Google verschlüsselt die Images nach dem Hochladen. Dabei können Sie eigene Verschlüsselungsschlüssel für nichtflüchtige Speicher und Cloud Storage-Buckets angeben.

Nachdem Sie ein System gefunden oder erstellt haben, in dem Sie den Importvorgang abschließen können, stellen Sie eine Verbindung zu diesem System her und konfigurieren Sie den Bootloader.

Bootlaufwerk-Image vorbereiten

Bereiten Sie das Bootlaufwerk-Image in einem laufenden System so vor, dass es in einer Compute Engine-Umgebung ausgeführt werden kann.

  • Konfigurieren Sie den Bootloader auf dem Bootlaufwerk so, dass das Image in Compute Engine gestartet werden kann.
  • Konfigurieren Sie den Zugriff über SSH oder Nutzeranmeldung auf dem Bootlaufwerk so, dass Sie darauf zugreifen können, nachdem Sie es in Compute Engine importiert haben, und es als VM-Instanz starten können.

Dieser Vorgang kann dazu führen, dass das System außerhalb von Compute Engine nicht gestartet werden kann. Es empfiehlt sich, diesen Schritt auf einem isolierten System mithilfe einer Kopie des zu importierenden Bootlaufwerks auszuführen.

Bootloader konfigurieren

Konfigurieren Sie den Bootloader auf dem System, damit es in Compute Engine gestartet werden kann.

  1. Stellen Sie die Verbindung zum Terminal auf dem System mit dem Bootlaufwerk her, das importiert werden soll.

  2. Bearbeiten Sie die GRUB-Konfigurationsdatei. Im Allgemeinen ist diese Datei unter /etc/default/grub gespeichert. Bei einigen älteren Distributionen kann sie jedoch in einem nicht standardmäßigen Verzeichnis gespeichert sein.

  3. Nehmen Sie die folgenden Änderungen an der GRUB-Konfigurationsdatei vor:

    • Entfernen Sie Zeilen, die splashimage= enthalten. Compute Engine unterstützt beim Start keine Startbildschirme.
    • Entfernen Sie die Kernel-Befehlszeilenargumente rhgb und quiet.
    • Fügen Sie den Kernel-Befehlszeilenargumenten console=ttyS0,38400n8d hinzu, damit die Instanz mit der interaktiven seriellen Konsole zusammenarbeiten kann.
  4. Generieren Sie die Datei grub.cfg neu. Verwenden Sie je nach Distribution einen der folgenden Befehle.

    • Debian und Ubuntu: sudo update-grub
    • RHEL, CentOS: sudo grub-mkconfig -o /boot/grub/grub.cfg
    • SUSE, openSUSE: sudo grub2-mkconfig -o /boot/grub/grub.cfg
  5. Bearbeiten Sie die Datei /etc/fstab und entfernen Sie Verweise auf alle Laufwerke und Partitionen mit Ausnahme des Bootlaufwerks und der Partitionen auf diesem Bootlaufwerk. Ungültige Einträge in /etc/fstab können dazu führen, dass der Systemstartvorgang angehalten wird.

Erstellen Sie nach dem Konfigurieren des Bootloaders die Laufwerk-Image-Datei und komprimieren Sie sie.

SSH- oder Nutzeranmelde-Zugriff auf das Image konfigurieren

Sobald das Image in Compute Engine als VM-Instanz ausgeführt wird, müssen Sie auf diese Instanz zugreifen können. Sie können die Verbindung zur Instanz mithilfe einer vorhandenen SSH-Konfiguration herstellen oder sich mit Nutzernamen und Passwort anmelden, indem Sie eine Verbindung zur interaktiven seriellen Konsole herstellen.

Schließen Sie die SSH- oder Nutzeranmelde-Konfiguration ab, bevor Sie die Laufwerk-Image-Datei erstellen und komprimieren.

Laufwerk-Image-Datei erstellen und komprimieren

Erstellen und komprimieren Sie die Bootlaufwerk-Image-Datei für das System, das Sie in Compute Engine importieren möchten. Das Erstellen und Komprimieren der Image-Datei verläuft unterschiedlich je nach Plattform, auf der die Systeme ausgeführt werden.

Allgemein

Dieser Vorgang kann auf nahezu jedem System verwendet werden, um eine RAW-Image-Datei zu erstellen, die Sie in Compute Engine importieren können. Sie können diesen Vorgang auf dem gestarteten System ausführen, das Sie importieren, oder das Bootlaufwerk als sekundäres Laufwerk auf einem anderen System hinzufügen und das Bootlaufwerk-Image über das angehaltene Laufwerk erstellen. Es muss genügend Speicherplatz zur temporären Speicherung der Laufwerk-Image-Dateien vorhanden sein. In diesem Beispiel wird ein Image über ein laufendes System erstellt.

  1. Stellen Sie die Verbindung zum Terminal auf dem System her, das das zu importierende Bootlaufwerk enthält.

  2. Mit dem Befehl lsblk bestimmen Sie das Quell-Bootlaufwerk, von dem aus Sie ein Image erstellen möchten, sowie einen Speicherort, an dem genügend Speicherplatz zum Schreiben der Image-Dateien vorhanden ist. In diesem Beispiel ist /dev/sda das Quell-Bootlaufwerk und /dev/sdb ist ein großes sekundäres Laufwerk, das im Verzeichnis /tmp bereitgestellt ist. Obwohl /dev/sda in Betrieb ist wird, können Sie ein Image erstellen. Dies erfolgt am besten auf einem System mit wenig Aktivität, auf dem keine Daten aktiv verarbeitet und keine Anwendungen ausgeführt werden.

    $ lsblk
    
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0  100G  0 disk
    ├─sda1   8:1    0   96G  0 part /
    ├─sda2   8:2    0    1K  0 part
    └─sda3   8:5    0    4G  0 part [SWAP]
    sdb      8:16   0  500G  0 disk /tmp
    sr0     11:0    1 1024M  0 rom
    
  3. Erstellen Sie die Image-Datei vom Bootlaufwerk.

    $ sudo dd if=/dev/sda of=/tmp/disk.raw bs=4M conv=sparse
    
  4. Wechseln Sie zu dem Verzeichnis, in dem Sie die Datei disk.raw geschrieben haben.

    $ cd /tmp
    
  5. Komprimieren Sie das RAW-Laufwerk im tar.gz-Format. Mit diesem Schritt wird die Image-Datei komprimiert, damit Sie sie schneller in Google Cloud Storage hochladen können. Installieren Sie gtar unter OSX und verwenden Sie es anstelle von tar für diesen Schritt.

    $ sudo tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
    

AWS EC2

Wenn Sie eine Amazon EC2-Instanz importieren, bündeln Sie das Amazon EBS-Volume mithilfe der AMI-Tools:

  1. Ermitteln Sie die Amazon-Konto-ID in der Konsole für Kontoeinstellungen und notieren Sie die ID.

  2. In der Amazon EC2-Instanz können Sie die EC2-AMI-Tools herunterladen und installieren.

  3. Führen Sie ec2-bundle-vol als Root mit den folgenden Argumenten aus und ersetzen Sie dabei cert-<hash>.pem durch die Zertifikatsdatei, pk-<hash>.pem durch den privaten Schlüssel und AWS_ACCOUNT_ID durch Ihre Amazon-Konto-ID. Mit diesem Befehl wird die image-Datei erstellt.

    ec2-bundle-vol -c /tmp/build/cert-<hash>.pem \
        -k /tmp/build/pk-<hash>.pem -u AWS_ACCOUNT_ID \
        -r x86_64 --no-filter --exclude /tmp/build \
        --grub-config /tmp/build/menu.lst \
        --fstab /tmp/build/fstab
    
  4. Komprimieren Sie das RAW-Laufwerk im tar.gz-Format. Mit diesem Schritt wird die Image-Datei komprimiert, damit Sie sie schneller in Google Cloud Storage hochladen können. Installieren Sie gtar unter OSX und verwenden Sie es anstelle von tar für diesen Schritt.

    $ sudo tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
    

VirtualBox

Wenn Sie das System in einer VirtualBox-Umgebung vorbereitet haben, können Sie das VBoxManage-Tool verwenden, um ein .vdi- oder .qcow2-Laufwerk-Image in das disk.raw-Format zu konvertieren.

  1. Fahren Sie die VirtualBox-Gastmaschine herunter, die importiert werden soll. Sie können die Gastmaschine über die VirtualBox-Oberfläche oder das VBoxManage-Dienstprogramm herunterfahren.

    VBoxManage controlvm [GUEST_NAME] acpipowerbutton
    

    Dabei ist [GUEST_NAME] der Name der Gastmaschine.

  2. Konvertieren Sie das Gast-Image mit dem VBoxManage-Dienstprogramm ins RAW-Format:

    VBoxManage clonemedium [GUEST_IMAGE] \
        ~/disk.raw --format RAW
    

    Dabei ist [GUEST_IMAGE] der Pfad zur Gast-Image-Datei .vdi oder .qcow2.

  3. Komprimieren Sie das RAW-Laufwerk im tar.gz-Format. Mit diesem Schritt wird die Image-Datei komprimiert, damit Sie sie schneller in Google Cloud Storage hochladen können. Installieren Sie gtar unter OSX und verwenden Sie es anstelle von tar für diesen Schritt.

    $ sudo tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
    

Die Image-Datei wird komprimiert und kann in Google Cloud Storage hochgeladen werden.

Image in die Liste benutzerdefinierter Images importieren

Laden Sie die Datei in Google Cloud Storage hoch und importieren Sie das Image in die Liste benutzerdefinierter Images. Bei Bedarf können Sie das Image verschlüsseln, während es importiert wird.

Importieren Sie das Image mit der Konsole oder den Cloud SDK-Tools:

Konsole

Kopieren Sie die Datei compressed-image.tar.gz auf die lokale Workstation und verwenden Sie die GCP Console, um einen Bucket zu erstellen und die Datei hochzuladen.

  1. Wechseln Sie in der GCP Console zum Cloud Storage-Browser.

    Zur Seite "Browser"

  2. Klicken Sie oben auf der Seite auf Bucket erstellen.
  3. Geben Sie einen eindeutigen Bucket-Namen, die Standard-Storage-Klasse und einen Standort an, in dem Sie die Image-Dateien speichern möchten.
  4. Klicken Sie auf Erstellen, um den Bucket zu erstellen. Auf der Seite "Browser" wird der neue Bucket angezeigt.
  5. Klicken Sie oben auf der Seite auf Dateien hochladen.
  6. Wählen Sie im Dateidialogfeld die Datei compressed-image.tar.gz aus, die Sie von Ihrem System heruntergeladen haben. Die Datei wird von der lokalen Workstation hochgeladen. Dieser Schritt kann je nach Größe der komprimierten Image-Datei und Geschwindigkeit der Netzwerkverbindung mehrere Stunden dauern.

Nachdem Sie das Image in Google Cloud Storage hochgeladen haben, importieren Sie die Image-Datei in die Liste benutzerdefinierter Images.

  1. Rufen Sie in der GCP Console die Seite "Images" auf.

    Zur Seite "Images"

  2. Klicken Sie oben auf der Seite auf Image erstellen.
  3. Geben Sie im Feld Name einen eindeutigen Namen für das Image an.
  4. Geben Sie bei Bedarf eine Image-Familie für das neue Image an oder konfigurieren Sie Verschlüsselungseinstellungen für das Image.
  5. Klicken Sie auf das Menü Quelle und wählen Sie Cloud Storage-Datei aus.
  6. Geben Sie den Pfad zur Datei compressed-image.tar.gz ein, die Sie in Cloud Storage hochgeladen haben.

    [BUCKET_NAME]/compressed-image.tar.gz
    
  7. Klicken Sie auf Erstellen, um das Image zu importieren. Dieser Vorgang kann je nach Größe des Bootlaufwerk-Images einige Minuten dauern.

Das Image ist jetzt auf der Seite "Images" zu sehen. Sie müssen jedoch zuerst den Bootloader konfigurieren, damit Sie mit dem Image eine funktionsfähige VM-Instanz erstellen können.

gcloud und gsutil

Mit den Tools gsutil und gcloud können Sie die komprimierte Bootlaufwerk-Image-Datei hochladen. Dazu können Sie das System verwenden, auf dem Sie das Bootlaufwerk-Image erstellt haben. Sie können diese Datei aber auch auf ein anderes System kopieren und von dort hochladen.

  1. Installieren und initialisieren Sie das Cloud SDK auf dem System, von dem Sie die Datei compressed-image.tar.gz hochladen möchten.

  2. Mit dem gsutil-Tool können Sie einen neuen Cloud Storage-Bucket erstellen.

     $ gsutil mb gs://[BUCKET_NAME]
     

  3. Laden Sie die Datei compressed-image.tar.gz in den neuen Bucket hoch.

     $ gsutil cp compressed-image.tar.gz gs://[BUCKET_NAME]
     

  4. Importieren Sie die Image-Datei als neues benutzerdefiniertes Image.

     $ gcloud compute images create [IMAGE_NAME] --source-uri gs://[BUCKET_NAME]/compressed-image.tar.gz
     

Das Image ist jetzt in der Liste benutzerdefinierter Images enthalten. Sie müssen aber den Bootloader konfigurieren, bevor Sie mit dem Image eine funktionsfähige VM-Instanz erstellen können.

  $ gcloud compute images list --no-standard-images
  
  NAME                                            PROJECT                  FAMILY                    DEPRECATED  STATUS
  [IMAGE_NAME]                                    [PROJECT_ID]                                                   READY
  

Importiertes Image testen

Prüfen Sie, ob das importierte Image wie erwartet funktioniert. Erstellen Sie eine Instanz mit einem Bootlaufwerk, das das importierte Image verwendet.

Konsole

  1. Rufen Sie in der GCP Console die Seite "VM-Instanzen" auf.

    Zur Seite "Instanzen"

  2. Klicken Sie auf "Instanz erstellen".
  3. Klicken Sie im Abschnitt "Bootlaufwerk" auf Ändern, um mit der Konfiguration des Bootlaufwerks zu beginnen.
  4. Klicken Sie auf dem Tab Benutzerdefinierte Images auf das Image, das Sie importiert haben.
  5. Klicken Sie auf Auswählen, um die Konfiguration des Bootlaufwerks zu bestätigen.
  6. Klicken Sie auf Erstellen, um die Instanz zu erstellen.

gcloud

gcloud compute instances create [INSTANCE_NAME] --zone [ZONE] --image [IMAGE_NAME]

Dabei gilt:

  • [INSTANCE_NAME] ist ein eindeutiger Name für die Instanz.
  • [ZONE] ist die Zone, in der Sie das eigenständige Laufwerk erstellt haben.
  • [IMAGE_NAME] ist der Name des Images, das Sie importiert haben.

Nachdem die Instanz erstellt wurde, vergewissern Sie sich, dass sie ordnungsgemäß gestartet wurde. Prüfen Sie die Ausgabe des seriellen Ports:

Konsole

  1. Rufen Sie in der GCP Console die Seite "VM-Instanzen" auf.

    Zur Seite "Instanzen"

  2. Klicken Sie in der Liste der Instanzen auf den Namen der Instanz, die Sie aus dem importierten Image erstellt haben. Die Seite mit den Instanzdetails wird geöffnet.
  3. Klicken Sie unten auf der Seite mit den Instanzdetails auf Seriellen Port ansehen, um die Ausgabe des seriellen Ports für diese Instanz zu sehen.

Wenn die Instanz bei Booting from Hard Disk 0... beendet wurde, beheben Sie die Probleme innerhalb der Compute Engine-Umgebung. Sie können auch das Bootlaufwerk auf dem ursprünglichen System neu konfigurieren und den Importvorgang wiederholen.

gcloud

gcloud compute instances get-serial-port-output [INSTANCE_NAME]

Wenn die Instanz bei Booting from Hard Disk 0... beendet wurde, beheben Sie die Probleme innerhalb der Compute Engine-Umgebung. Sie können auch das Bootlaufwerk auf dem ursprünglichen System neu konfigurieren und den Importvorgang wiederholen.

Sie können die Instanz auch testen, indem Sie eine Verbindung zu ihr herstellen. Verwenden Sie dazu eine der folgenden Möglichkeiten:

  • SSH: Wenn die Instanz eine funktionierende SSH-Konfiguration hat, können Sie die Verbindung zur Instanz mit SSH und dem privaten Schlüssel herstellen. Sie finden die IP-Adresse der Instanz auf der Seite "Instanzen".
  • Interaktive serielle Konsole: Wenn Sie sich direkt ohne SSH in der Instanz anmelden müssen, können Sie die interaktive serielle Konsole aktivieren und sich mit Nutzernamen und Passwort anmelden.

Probleme mit Bootlaufwerk beheben

Wenn die Instanz nicht gestartet wird und Sie weder eine Verbindung zu ihr herstellen noch sich über die interaktive serielle Konsole anmelden können, prüfen Sie, warum das Bootlaufwerk nicht gestartet und hochgefahren wird.

Nachdem Sie die Ursache für den Fehler beim Starten und Hochfahren ermittelt haben, gibt es zwei Möglichkeiten, das Problem zu beheben:

Probleme mit Bootlaufwerken in Compute Engine beheben

Stellen Sie das importierte Image auf einem zweiten Laufwerk bereit, das einer temporären VM-Instanz hinzugefügt wurde. Verwenden Sie die GCP Console oder das gcloud-Tool, um ein eigenständiges Laufwerk basierend auf dem hochgeladenen Image und eine temporäre virtuelle Maschine zu erstellen, an dem das eigenständige Laufwerk angehängt ist. Mit dieser Instanz können Sie Dateien auf dem eigenständigen Laufwerk ändern und Probleme beheben, die den Fehler beim Starten des Images verursacht haben.

Konsole

Erstellen Sie ein eigenständiges Laufwerk aus dem importierten Bootlaufwerk-Image. Alternativ können Sie ein Bootlaufwerk von einer Instanz trennen und die Instanz mit dem frei gewordenen Bootlaufwerk erstellen.

  1. Rufen Sie in der GCP Console die Seite Laufwerke auf.

    Zur Seite „Laufwerke“

  2. Klicken Sie auf Laufwerk erstellen.
  3. Legen Sie auf der Seite Neue Festplatte erstellen die folgenden Attribute fest:
    • Zone: Wählen Sie eine Zone in Ihrer Nähe aus. Sie müssen dieselbe Zone beim Erstellen der temporären Instanz verwenden.
    • Quelltyp: Image
    • Quell-Image: Geben Sie den Namen des importierten Bootlaufwerk-Images an.
  4. Klicken Sie auf Erstellen, um das Laufwerk anzulegen.

Erstellen Sie eine temporäre Instanz, der Sie das eigenständige Laufwerk hinzufügen können, und konfigurieren Sie den Bootloader so, dass er in der Umgebung der GCP Console verwendet werden kann.

  1. Gehen Sie in der Cloud Platform Console zur Seite "VM-Instanzen".

    Zur Seite "Instanzen"

  2. Klicken Sie auf Instanz erstellen.
  3. Geben Sie auf der Seite Neue Instanz erstellen einen Instanznamen und eine Zone an, in der die Instanz gespeichert wird. Die Zone muss mit der Zone identisch sein, in der Sie das eigenständige Laufwerk erstellt haben.
  4. Erweitern Sie den Abschnitt Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
  5. Klicken Sie unter dem Tab Laufwerke im Abschnitt Zusätzliche Laufwerke auf Vorhandenes Laufwerk hinzufügen. Ein neuer Abschnitt wird angezeigt.
  6. Wählen Sie im Abschnitt Laufwerk das eigenständige Laufwerk aus, das Sie im Drop-down-Menü erstellt haben. Dadurch wird der Instanz das eigenständige Laufwerk hinzugefügt, sodass Sie es bereitstellen und den Inhalt des Laufwerks später ändern können.
  7. Klicken Sie auf Fertig, um das Hinzufügen des Laufwerks abzuschließen.
  8. Klicken Sie auf "Erstellen", um die Instanz zu erstellen.

gcloud

Erstellen Sie ein eigenständiges Laufwerk aus dem Bootlaufwerk-Image, das Sie importiert haben. Sie können ein Bootlaufwerk auch von einer Instanz trennen und die Instanz stattdessen mithilfe dieses getrennten Bootlaufwerks erstellen.

gcloud compute disks create [DISK_NAME] --zone [ZONE] --image [IMAGE_NAME]

Dabei gilt:

  • [DISK_NAME] ist der Name des neuen eigenständigen Laufwerks.
  • [ZONE] ist eine Zone in Ihrer Nähe. Wenn Sie die temporäre Instanz erstellen, müssen Sie dieselbe Zone verwenden.
  • [IMAGE_NAME] ist der Name des importierten Bootlaufwerk-Images.

Erstellen Sie eine temporäre Instanz, der Sie das eigenständige Laufwerk hinzufügen können, und konfigurieren Sie den Bootloader so, dass er in der Umgebung der GCP Console verwendet werden kann.

gcloud compute instances create [INSTANCE_NAME] --zone [ZONE] --disk name=[DISK_NAME]

wobei:

  • [INSTANCE_NAME] ist ein eindeutiger Name für die Instanz.
  • [ZONE] ist die Zone, in der Sie das eigenständige Laufwerk erstellt haben.
  • [DISK_NAME] ist der Name des eigenständigen Laufwerks, das Sie aus dem importierten Bootlaufwerk-Image erstellt haben.

Nachdem Sie die Instanz mit dem hinzugefügten eigenständigen Laufwerk erstellt haben, ist eine virtuelle Umgebung vorhanden, in der Sie den Bootloader auf dem ursprünglichen Bootlaufwerk-Image ändern können.

Stellen Sie die Verbindung zur Instanz her, stellen Sie das eigenständige Laufwerk bereit und konfigurieren Sie den Bootloader so, dass er in Compute Engine ordnungsgemäß gestartet wird.

  1. Stellen Sie eine Verbindung zur temporären Instanz her. Verwenden Sie dazu SSH über den Browser oder den Befehl gcloud compute ssh.
  2. Identifizieren das zu ändernde Laufwerk sowie die bereitzustellenden Partitionen über den Befehl blkid. In diesem Beispiel ist /dev/sdb das importierte Laufwerk.

    $ lsblk
    
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   10G  0 disk
    └─sda1   8:1    0   10G  0 part /
    sdb      8:16   0  100G  0 disk
    ├─sdb1   8:17   0   96G  0 part
    ├─sdb2   8:18   0    1K  0 part
    └─sdb5   8:21   0    4G  0 part
    
  3. Stellen Sie die Root-Partition über das eigenständige Laufwerk im Verzeichnis /tmp bereit. In diesem Beispiel ist /dev/sdb1 die Root-Partition. Die anderen Partitionen müssen nicht geändert werden. Sie müssen für Ihr Partitionsschema möglicherweise mehrere Partitionen bereitstellen, um auf alle Dateien, die Sie ändern müssen, zugreifen zu können.

    $ sudo mount /dev/sdb1 /tmp
    
  4. Bearbeiten Sie die Dateien, die möglicherweise verhindern, dass das Laufwerk gestartet wird. Weitere Einzelheiten finden Sie in der Anleitung zur Bootloader-Konfiguration.

  5. Heben Sie die Bereitstellung des Bootlaufwerks über die temporäre Instanz auf.

    $ sudo umount /tmp
    

Heben Sie, nachdem Sie dieses Laufwerk konfiguriert haben, seine Bereitstellung auf und verwenden es als Bootlaufwerk für die neue Instanz.

Konsole

Heben Sie die Bereitstellung des eigenständigen Laufwerks über die temporäre Instanz auf.

  1. Gehen Sie in der Cloud Platform Console zur Seite "VM-Instanzen".

    Zur Seite "Instanzen"

  2. Klicken Sie in der Liste der Instanzen auf den Namen der temporären Instanz, in der Sie das eigenständige Bootlaufwerk geändert haben. Die Seite mit den Instanzdetails wird geöffnet.
  3. Klicken Sie oben auf der Seite mit den Instanzdetails auf Bearbeiten.
  4. Klicken Sie unter dem Abschnitt Zusätzliche Laufwerke auf das X neben dem eigenständigen Laufwerk, um anzugeben, dass Sie es von der temporären Instanz trennen möchten.
  5. Klicken Sie unten auf der Seite auf Speichern, um die Änderungen zu speichern.

Verwenden Sie das getrennte eigenständige Laufwerk, um eine neue Instanz zu erstellen.

  1. Gehen Sie in der Cloud Platform Console zur Seite "VM-Instanzen".

    Zur Seite "Instanzen"

  2. Klicken Sie auf Instanz erstellen.
  3. Geben Sie auf der Seite Neue Instanz erstellen einen Instanznamen und eine Zone an, in der die Instanz gespeichert wird. Die Zone muss mit der Zone identisch sein, in der Sie das eigenständige Laufwerk erstellt haben.
  4. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern, um mit der Konfiguration des Bootlaufwerks zu beginnen.
  5. Wählen Sie auf dem Tab Vorhandene Laufwerke das eigenständige Bootlaufwerk aus, um es als Bootlaufwerk für diese neue Instanz zu verwenden.
  6. Klicken Sie auf "Erstellen", um die Instanz zu erstellen.

gcloud

Heben Sie die Bereitstellung des eigenständigen Laufwerks über die temporäre Instanz auf.

gcloud compute instances detach-disk [INSTANCE_NAME] --disk [DISK_NAME]

Dabei gilt:

  • [INSTANCE_NAME] ist ein eindeutiger Name für die Instanz.
  • [DISK_NAME] ist der Name des neuen eigenständigen Laufwerks.

Verwenden Sie das getrennte eigenständige Laufwerk, um eine neue Instanz zu erstellen.

gcloud compute instances create [INSTANCE_NAME] --zone [ZONE] --disk name=[DISK_NAME],boot=yes

Dabei gilt:

  • [INSTANCE_NAME] ist ein eindeutiger Name für die Instanz.
  • [ZONE] ist die Zone, in der das eigenständige Laufwerk gespeichert ist.
  • [DISK_NAME] ist der Name des eigenständigen Laufwerks, das Sie aus dem importierten Bootlaufwerk-Image erstellt haben.

Testen Sie die erstellte Instanz mit dem geänderten Bootlaufwerk. Wenn Sie immer noch keine Verbindung zur Instanz herstellen können, prüfen Sie in der Ausgabe der seriellen Konsole, wo der Bootvorgang fehlschlägt. Wiederholen Sie die Fehlerbehebung, bis die Probleme mit dem Bootlaufwerk-Image behoben sind.

Nächste Schritte