Crea e collega un disco non di avvio alla tua macchina virtuale (VM) utilizzando le istruzioni riportate in questa pagina.
Prima di iniziare
Per utilizzare i comandi dell'interfaccia a riga di comando (CLI) gdcloud, assicurati di aver scaricato, installato e configurato la CLI gdcloud.
Tutti i comandi per l'appliance GDC air-gapped utilizzano la CLI gdcloud o
kubectl e richiedono un ambiente del sistema operativo (OS).
Recupera il percorso del file kubeconfig
Per eseguire comandi sul server API Management, assicurati di disporre delle seguenti risorse:
Individua il nome del server dell'API Management o chiedi all'amministratore della piattaforma (PA) qual è il nome del server.
Accedi e genera il file kubeconfig per il server API Management se non ne hai uno.
Utilizza il percorso per sostituire
MANAGEMENT_API_SERVER{"</var>"}}in queste istruzioni.
Richiedere autorizzazioni e accesso
Per eseguire le attività elencate in questa pagina, devi disporre del ruolo Amministratore
macchina virtuale progetto. Segui i passaggi per verificare o chiedere all'amministratore IAM progetto di assegnarti il ruolo Amministratore VirtualMachine progetto (project-vm-admin) nello spazio dei nomi del progetto in cui si trova la VM.
Per le operazioni sulle VM che utilizzano la console GDC o gcloud CLI,
chiedi all'amministratore IAM del progetto di assegnarti sia il ruolo
Project VirtualMachine Admin sia il ruolo Project Viewer (project-viewer).
Collega un disco a una VM
Crea e collega dischi non di avvio alla VM. Ogni disco aggiuntivo può specificare un'immagine personalizzata o un disco vuoto. Puoi aggiungere più dischi contemporaneamente a una VM.
Console
Nel menu di navigazione, fai clic su Virtual Machines > Instances.
Nell'elenco delle VM, fai clic sul nome di una VM per visualizzarne i dettagli.
Fai clic su Aggiungi nuovo disco.
Nella finestra di dialogo di conferma, fai clic su Arresta per arrestare la VM.
Attendi qualche minuto per l'arresto della VM.
Fai clic su Aggiorna.
Quando la VM è in stato arrestato, fai di nuovo clic su Aggiungi nuovo disco.
Nella finestra di dialogo Aggiungi disco, scegli un disco nuovo o uno esistente.
Per eseguire il provisioning di un nuovo disco, fai clic sulla scheda Nuovo disco.
- Nel campo Nome disco, inserisci un nuovo nome disco univoco per il progetto.
- Nel campo Dimensioni, inserisci una dimensione del disco compresa tra 10 e 65.536 GiB. Ad esempio, 10 GiB.
- Nella sezione Regola di eliminazione, fai clic su Conserva disco o Elimina disco.
Per scegliere un disco esistente, fai clic sulla scheda Disco esistente.
- Nell'elenco Disco, seleziona un disco.
- Nella sezione Regola di eliminazione, fai clic su Conserva disco o Elimina disco.
Fai clic su Salva. Il disco viene visualizzato nell'elenco dei dischi per la VM.
API
Crea un
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 EOFAggiungi
VirtualMachineDiskalVirtualMachinespec.disksesistente:kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog -n PROJECT VM_NAMEModifica quanto segue nell'editor di testo:
… disks: - virtualMachineDiskRef: name: VM_BOOT_DISK_NAME boot: true - virtualMachineDiskRef: name: NON_BOOT_BLANK_DISK autoDelete: false …Sostituisci le variabili utilizzando le seguenti definizioni.
Variabile Definizione MANAGEMENT_API_SERVERIl file kubeconfigdel server API Management.PROJECTIl progetto Google Distributed Cloud con air gap (GDC) in cui creare la VM. VM_NAMEIl nome della nuova VM. VM_BOOT_DISK_NAMEIl nome del nuovo disco di avvio della VM. NON_BOOT_BLANK_DISKIl nome del tuo disco aggiuntivo. NON_BOOT_BLANK_DISK_SIZELe dimensioni dei tuoi dischi aggiuntivi, ad esempio 20G.
Formatta e monta un disco non di avvio
Dopo aver collegato un disco alla VM, esegui i passaggi necessari per renderlo accessibile all'interno della VM.
Connettiti alla VM
Formatta il disco
Elenca i dischi collegati all'istanza per numero di serie e individua il disco che vuoi formattare e montare.
ls -l /dev/disk/by-id/Questo output di esempio mostra i nomi dei dischi come numeri di serie:
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 -> ../../sdbLe informazioni che seguono la freccia,
->, su ogni riga indicano il nome del dispositivo del disco. Ad esempio, inscsi-SQEMU_QEMU_HARDDISK_vm-disk-data -> ../../sdb, il numero di serie èscsi-SQEMU_QEMU_HARDDISK_vm-disk-datae il nome del dispositivo èsdb.Identifica il numero di serie del disco da questo elenco.
Comportamento importante delle funzionalità situazionali che può influire sull'elenco dei numeri di serie:
- Se il valore
virtualMachineDiskRef.nameè più lungo di 20 caratteri, vengono utilizzati solo i primi 20 caratteri come numero di serie. - Se ci sono due dischi con gli stessi primi 20 caratteri, solo il primo disco ha un numero di serie.
- Se il valore
Formatta il disco:
sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/disk/by-id/DISK_ID
- Sostituisci
DISK_IDcon il numero di serie del disco che stai formattando. - Per questo esempio, specifica
scsi-SQEMU_QEMU_HARDDISK_vm-disk-dataper formattare l'intero disco senza una tabella di partizione.
Per massimizzare le prestazioni del disco, utilizza le opzioni di formattazione consigliate nel flag
-E. Poiché non è necessario riservare spazio per il volume root sul disco secondario, specifica -m 0 per utilizzare tutto lo spazio su disco disponibile.
Monta il disco
Crea una directory che funga da punto di montaggio per il nuovo disco. Puoi utilizzare qualsiasi directory. L'esempio seguente crea una directory in
/mnt/disks/:sudo mkdir -p /mnt/disks/MOUNT_DIRSostituisci
MOUNT_DIRcon la directory in cui vuoi montare il disco.Monta il disco sull'istanza e attiva l'opzione per eliminare:
sudo mount -o discard,defaults /dev/disk/by-id/DISK_ID /mnt/disks/MOUNT_DIRSostituisci quanto segue:
DISK_IDcon il numero di serie del disco da montare.MOUNT_DIRcon la directory in cui vuoi montare il disco.
(Facoltativo) Configura le autorizzazioni di lettura e scrittura sul disco. Il seguente comando concede l'accesso in scrittura,
a+w, al disco per tutti gli utenti.sudo chmod a+w /mnt/disks/MOUNT_DIR(Facoltativo) Configura il montaggio automatico al riavvio della VM utilizzando l'UUID (Universally Unique Identifier) o lo script di avvio.
Configura il montaggio automatico al riavvio della VM - UUID disco
Aggiungi il disco al file /etc/fstab, in modo che venga montato automaticamente
di nuovo al riavvio della VM. Su un sistema operativo, il nome del dispositivo
cambia a ogni riavvio, ma l'UUID del dispositivo punta sempre allo stesso volume,
anche quando sposti i dischi tra i sistemi. Pertanto, utilizza sempre l'UUID del dispositivo
per configurare il montaggio automatico al riavvio della VM.
Crea un backup del file
/etc/fstabcorrente:sudo cp /etc/fstab /etc/fstab.backupElenca l'UUID per il disco:
sudo blkid /dev/DEVICE_NAMEL'output di esempio mostra l'UUID di
accc19c5-d0d6-4157-9672-37d4e1d48eb5per il disco/dev/sdb: UUID="accc19c5-d0d6-4157-9672-37d4e1d48eb5" TYPE="ext4"DEVICE_NAMEè il nome del dispositivo del disco che vuoi montare automaticamente. Se hai creato una tabella delle partizioni sul disco, specifica la partizione che vuoi montare come suffisso del nome del dispositivo. Ad esempio, sesdbè il nome del dispositivo disco e vuoi montare la partizione 1,DEVICE_NAMEdiventasdb1.Apri il file
/etc/fstabin un editor di testo e crea una voce che includa l'UUID:UUID=UUID_VALUE /mnt/disks/MOUNT_DIR ext4 discard,defaults,MOUNT_OPTION 0 2Sostituisci quanto segue:
UUID_VALUEcon il discoUUID, elencato come output del comando Elenca l'UUID.MOUNT_DIRcon la directory in cui hai montato il disco.MOUNT_OPTIONcon il valoreMOUNT_OPTIONper il tuo sistema operativo, che specifica cosa fa il sistema operativo se non riesce a montare il disco all'avvio.
Verifica che le voci
/etc/fstabsiano corrette:cat /etc/fstabDi seguito è riportato un esempio di output:
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
Se scolleghi questo disco o crei uno snapshot dal disco di avvio di questa VM, modifica il file /etc/fstab e rimuovi la voce relativa a questo disco. Anche se hai impostato
MOUNT_OPTION su nofail o nobootwait, mantieni il file /etc/fstab
sincronizzato con i dispositivi collegati alla tua VM. Rimuovi queste voci
prima di creare lo snapshot del disco di avvio o scollegare il disco.
Configura il montaggio automatico al riavvio della VM - Script di avvio della VM
Puoi anche utilizzare uno script di avvio per montare il disco a ogni riavvio aggiungendo i comandi di Monta il disco a uno script di avvio. Prima di aggiungere lo script per montare il disco, formattalo utilizzando i comandi descritti in Formattare il disco.
Crea il secret dello script di avvio.
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 EOFkubectl create secret -n PROJECT generic VM_NAME-mount-script --from-file=script=mount-disk-scriptrm mount-disk-scriptAggiungi lo script di avvio alla VM.
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog -n PROJECT VM_NAMEModifica
spec.startupScriptsper includere il nome del secret.apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachine metadata: name: VM_NAME namespace: PROJECT spec: … startupScripts: - name: mount-script scriptSecretRef: name: VM_NAME-mount-script
Per ulteriori informazioni sulla configurazione degli script di avvio, consulta.