Erstellen Sie ein Nicht-Bootlaufwerk und hängen Sie es an Ihre VM an. Folgen Sie dazu der Anleitung auf dieser Seite.
Hinweise
Wenn Sie die Befehlszeilenbefehle (Command-Line Interface, CLI) von gdcloud
verwenden möchten, müssen Sie die gdcloud
-CLI heruntergeladen, installiert und konfiguriert haben.
Für alle Befehle für Distributed Cloud wird die gdcloud
- oder kubectl
-CLI verwendet. Außerdem ist eine Betriebssystemumgebung erforderlich.
Pfad der kubeconfig-Datei abrufen
Damit Sie Befehle für den Management API-Server ausführen können, benötigen Sie die folgenden Ressourcen:
Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Management API-Server, falls Sie noch keine haben.
Verwenden Sie den Pfad zur kubeconfig-Datei des Management API-Servers, um
MANAGEMENT_API_SERVER
in dieser Anleitung zu ersetzen.
Berechtigungen und Zugriff anfordern
Zum Ausführen der auf dieser Seite aufgeführten Aufgaben benötigen Sie die Rolle „ProjectVirtualMachine Admin“. Prüfen Sie, ob Sie die Rolle „Project VirtualMachine Admin“ (project-vm-admin
) im Namespace des Projekts haben, in dem sich die VM befindet.
Wenn Sie VM-Vorgänge über die GDC-Konsole oder die gdcloud-CLI ausführen möchten, bitten Sie Ihren Projekt-IAM-Administrator, Ihnen die Rolle „Project VirtualMachine Admin“ und die Rolle „Project Viewer“ (project-viewer
) zuzuweisen.
Laufwerk an eine VM anhängen
Erstellen Sie Nicht-Bootlaufwerke und hängen Sie sie an Ihre VM an. Für jedes zusätzliche Laufwerk kann ein benutzerdefiniertes Image oder ein leeres Laufwerk angegeben werden. Sie können einer VM mehrere Laufwerke gleichzeitig hinzufügen.
Console
Klicken Sie im Navigationsmenü auf Virtuelle Maschinen > Instanzen.
Klicken Sie in der Liste der VMs auf einen VM-Namen, um die Details aufzurufen.
Klicken Sie auf Neues Laufwerk hinzufügen.
Klicken Sie im Bestätigungsdialogfeld auf Beenden, um die VM zu beenden.
Warten Sie einige Minuten, bis die VM beendet wurde.
Klicken Sie auf Aktualisieren.
Wenn sich die VM im Status „Beendet“ befindet, klicken Sie noch einmal auf Neues Laufwerk hinzufügen.
Wählen Sie im Dialogfeld „Laufwerk hinzufügen“ ein neues oder ein vorhandenes Laufwerk aus.
Klicken Sie zum Bereitstellen eines neuen Laufwerks auf den Tab Neues Laufwerk.
- Geben Sie im Feld Laufwerksname einen neuen Laufwerksnamen ein, der für das Projekt eindeutig ist.
- Geben Sie im Feld Größe eine Laufwerkgröße zwischen 10 und 65.536 GiB ein. Beispiel: 10 GiB.
- Klicken Sie im Abschnitt Löschregel auf Laufwerk behalten oder Laufwerk löschen.
Wenn Sie ein vorhandenes Laufwerk auswählen möchten, klicken Sie auf den Tab Vorhandenes Laufwerk.
- Wählen Sie in der Liste Laufwerk ein Laufwerk aus.
- Klicken Sie im Abschnitt „Löschregel“ auf Laufwerk behalten oder Laufwerk löschen.
Klicken Sie auf Speichern. Das Laufwerk wird in der Liste der Laufwerke für die VM angezeigt.
API
Erstellen Sie ein
VirtualMachineDisk
:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -n PROJECT -f - <<EOF apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachineDisk metadata: name: NON_BOOT_BLANK_DISK spec: size: NON_BOOT_BLANK_DISK_SIZE EOF
Fügen Sie
VirtualMachineDisk
dem vorhandenenVirtualMachine
spec.disks
hinzu:kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog -n PROJECT VM_NAME
Bearbeiten Sie Folgendes in Ihrem Texteditor:
... disks: - virtualMachineDiskRef: name: VM_BOOT_DISK_NAME boot: true - virtualMachineDiskRef: name: NON_BOOT_BLANK_DISK autoDelete: false ...
Ersetzen Sie die Variablen anhand der folgenden Definitionen.
Variable Definition MANAGEMENT_API_SERVER
Die kubeconfig-Datei des Management API-Servers. PROJECT
Das Google Distributed Cloud Air-Gapped-Projekt (GDC), in dem die VM erstellt werden soll. VM_NAME
Der Name der neuen VM. VM_BOOT_DISK_NAME
Der Name des neuen VM-Bootlaufwerks. NON_BOOT_BLANK_DISK
Der Name Ihres zusätzlichen Laufwerks. NON_BOOT_BLANK_DISK_SIZE
Die Größe Ihrer zusätzlichen Laufwerke, z. B. 20G
.
Nicht-Bootlaufwerk formatieren und bereitstellen
Nachdem Sie ein Laufwerk an die VM angehängt haben, führen Sie die folgenden erforderlichen Schritte aus, um es in der VM zugänglich zu machen.
Verbindung zur VM herstellen
Stellen Sie eine SSH-Verbindung zur VM her.
Laufwerk formatieren
Listen Sie die Laufwerke auf, die an Ihre Instanz angehängt sind, und suchen Sie das Laufwerk, das Sie formatieren und bereitstellen möchten.
ls -l /dev/disk/by-id/
In dieser Beispielausgabe werden die Laufwerksnamen als Seriennummern angezeigt:
total 0 lrwxrwxrwx 1 root root 9 Sep 13 23:51 ata-QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-0ATA_QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot -> ../../sda lrwxrwxrwx 1 root root 10 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot-part1 -> ../../sda1 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot-part14 -> ../../sda14 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot-part15 -> ../../sda15 lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-data -> ../../sdb lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-1ATA_QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-SATA_QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot -> ../../sda lrwxrwxrwx 1 root root 10 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot-part1 -> ../../sda1 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot-part14 -> ../../sda14 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot-part15 -> ../../sda15 lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-data -> ../../sdb
Die Informationen, die auf jeder Zeile nach dem Pfeil (
->
) stehen, geben den Namen des Laufwerkgeräts an. Im Beispielscsi-SQEMU_QEMU_HARDDISK_vm-disk-data -> ../../sdb
ist die Seriennummerscsi-SQEMU_QEMU_HARDDISK_vm-disk-data
und der Gerätenamesdb
.Suchen Sie in dieser Liste nach der Seriennummer Ihrer Festplatte.
Wichtiges situationsbedingtes Featureverhalten, das sich auf die Liste der Seriennummern auswirken kann:
- Wenn der
virtualMachineDiskRef.name
-Wert länger als 20 Zeichen ist, werden nur die ersten 20 Zeichen als Seriennummer verwendet. - Wenn zwei Festplatten die gleichen ersten 20 Zeichen haben, hat nur die erste Festplatte eine Seriennummer.
- Wenn der
Formatieren Sie das Laufwerk:
sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/disk/by-id/DISK_ID
- Ersetzen Sie
DISK_ID
durch die Seriennummer des Laufwerks, das Sie gerade formatieren. - In diesem Beispiel formatieren Sie mit
scsi-SQEMU_QEMU_HARDDISK_vm-disk-data
das gesamte Laufwerk ohne Partitionstabelle.
Verwenden Sie die empfohlenen Formatierungsoptionen für das Flag -E
zur Optimierung der Leistung des Laufwerks. Da Sie auf Ihrem Sekundärlaufwerk keinen Speicherplatz für das Root-Volume reservieren müssen, geben Sie -m 0
an, um den gesamten verfügbaren Speicherplatz zu verwenden.
Laufwerk bereitstellen
Erstellen Sie ein Verzeichnis als Bereitstellungspunkt für das neue Laufwerk. Sie können ein beliebiges Verzeichnis verwenden. Im folgenden Beispiel wird ein Verzeichnis in
/mnt/disks/
erstellt:sudo mkdir -p /mnt/disks/MOUNT_DIR
Ersetzen Sie
MOUNT_DIR
durch das Verzeichnis, in dem Sie das Laufwerk bereitstellen möchten.Stellen Sie das Laufwerk für die Instanz bereit und aktivieren Sie die Option „discard“:
sudo mount -o discard,defaults /dev/disk/by-id/DISK_ID /mnt/disks/MOUNT_DIR
Ersetzen Sie Folgendes:
DISK_ID
mit der Seriennummer des bereitzustellenden Datenträgers.MOUNT_DIR
durch das Verzeichnis, in dem Sie das Laufwerk bereitstellen möchten.
Optional: Konfigurieren Sie Lese- und Schreibberechtigungen auf dem Laufwerk. Mit dem folgenden Befehl wird allen Nutzern Schreibzugriff (
a+w
) auf das Laufwerk gewährt:sudo chmod a+w /mnt/disks/MOUNT_DIR
Optional: Automatische Bereitstellung beim Neustart der VM konfigurieren – mit der universellen eindeutigen Kennung (UUID) oder dem Startskript.
Automatische Bereitstellung beim Neustart der VM konfigurieren – UUID der Festplatte
Fügen Sie das Laufwerk Ihrer /etc/fstab
-Datei hinzu, damit das Laufwerk automatisch bereitgestellt wird, wenn die VM neu gestartet wird. In einem Betriebssystem ändert sich der Gerätename bei jedem Neustart, die Geräte-UUID verweist jedoch immer auf dasselbe Volume, auch wenn Sie Laufwerke zwischen Systemen verschieben. Verwenden Sie daher immer die Geräte-UUID, um die automatische Bereitstellung beim Neustart der VM zu konfigurieren.
Erstellen Sie eine Sicherungskopie Ihrer aktuellen
/etc/fstab
-Datei:sudo cp /etc/fstab /etc/fstab.backup
UUID für das Laufwerk auflisten:
sudo blkid /dev/DEVICE_NAME
Die Beispielausgabe zeigt die UUID von
accc19c5-d0d6-4157-9672-37d4e1d48eb5
für die Festplatte./dev/sdb: UUID="accc19c5-d0d6-4157-9672-37d4e1d48eb5" TYPE="ext4"
DEVICE_NAME
ist der Gerätename des Laufwerks, das Sie automatisch bereitstellen möchten. Wenn Sie eine Partitionstabelle auf dem Laufwerk erstellt haben, geben Sie die Partition an, die Sie bereitstellen möchten. Fügen Sie dazu das Suffix an den Gerätenamen an: Wenn beispielsweisesdb
der Gerätename des Laufwerks ist und Sie Partition 1 bereitstellen möchten, wirdDEVICE_NAME
zusdb1
.Öffnen Sie die Datei
/etc/fstab
in einem Texteditor und erstellen Sie einen Eintrag mit der UUID:UUID=UUID_VALUE /mnt/disks/MOUNT_DIR ext4 discard,defaults,MOUNT_OPTION 0 2
Ersetzen Sie Folgendes:
UUID_VALUE
mit dem LaufwerkUUID
, das als Ausgabe des Befehls UUID auflisten aufgeführt ist.- Ersetzen Sie
MOUNT_DIR
durch das Verzeichnis, in dem Sie das Laufwerk bereitgestellt haben. MOUNT_OPTION
mit demMOUNT_OPTION
-Wert für Ihr Betriebssystem. Dieser Wert gibt an, was das Betriebssystem tun soll, wenn es das Laufwerk beim Booten nicht bereitstellen kann.
Prüfen Sie, ob Ihre
/etc/fstab
-Einträge korrekt sind:cat /etc/fstab
Im Folgenden finden Sie ein Beispiel für die Ausgabe:
LABEL=cloudimg-rootfs / ext4 defaults 0 1 LABEL=UEFI /boot/efi vfat umask=0077 0 1 UUID=UUID_VALUE /mnt/disks/MOUNT_DIR ext4 discard,defaults,MOUNT_OPTION 0 2
Wenn Sie dieses Laufwerk trennen oder einen Snapshot von dem Bootlaufwerk für diese VM erstellen, bearbeiten Sie die Datei /etc/fstab
und entfernen den Eintrag für dieses Laufwerk. Auch wenn MOUNT_OPTION
auf nofail
oder nobootwait
gesetzt ist, müssen Sie die Datei /etc/fstab
mit den Geräten synchronisiert halten, die an Ihre VM angehängt sind. Entfernen Sie diese Einträge, bevor Sie den Snapshot des Bootlaufwerks erstellen oder das Laufwerk trennen.
Automatische Bereitstellung beim Neustart der VM konfigurieren – VM-Startskript
Sie können auch ein Startskript verwenden, um das Laufwerk bei jedem Neustart zu mounten. Fügen Sie dazu die Befehle aus Laufwerk mounten in ein Startskript ein. Bevor Sie das Skript zum Bereitstellen des Laufwerks hinzufügen, formatieren Sie das Laufwerk mit den Befehlen unter Laufwerk formatieren.
Erstellen Sie das Secret für das Startskript.
cat <<EOF >>mount-disk-script #!/bin/bash mkdir -p /mnt/disks/MOUNT_DIR mount -o discard,defaults /dev/disk/by-id/DISK_ID /mnt/disks/MOUNT_DIR EOF
kubectl create secret -n PROJECT generic VM_NAME-mount-script --from-file=script=mount-disk-script
rm mount-disk-script
Fügen Sie das Startskript der VM hinzu.
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog -n PROJECT VM_NAME
Bearbeiten Sie
spec.startupScripts
, um den Namen des Secrets einzufügen.apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachine metadata: name: VM_NAME namespace: PROJECT spec: … startupScripts: - name: mount-script scriptSecretRef: name: VM_NAME-mount-script
Weitere Informationen zum Konfigurieren von Startskripts