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 Distributed Cloud utilizzano la CLI gdcloud
o
kubectl
e richiedono un ambiente del sistema operativo.
Recupera il percorso del file kubeconfig
Per eseguire comandi sul server API Management, assicurati di disporre delle seguenti risorse:
Accedi e genera il file kubeconfig per il server API Management se non ne hai uno.
Utilizza il percorso del file kubeconfig del server API Management per sostituire
MANAGEMENT_API_SERVER
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
di disporre del 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 EOF
Aggiungi
VirtualMachineDisk
alVirtualMachine
spec.disks
esistente:kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog -n PROJECT VM_NAME
Modifica 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_SERVER
Il file kubeconfig del server API di gestione. PROJECT
Il progetto Google Distributed Cloud (GDC) con air gap in cui creare la VM. VM_NAME
Il nome della nuova VM. VM_BOOT_DISK_NAME
Il nome del nuovo disco di avvio della VM. NON_BOOT_BLANK_DISK
Il nome del tuo disco aggiuntivo. NON_BOOT_BLANK_DISK_SIZE
Le 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 -> ../../sdb
Le 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-data
e 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_ID
con il numero di serie del disco che stai formattando. - Per questo esempio, specifica
scsi-SQEMU_QEMU_HARDDISK_vm-disk-data
per 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_DIR
Sostituisci
MOUNT_DIR
con 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_DIR
Sostituisci quanto segue:
DISK_ID
con il numero di serie del disco da montare.MOUNT_DIR
con 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/fstab
corrente:sudo cp /etc/fstab /etc/fstab.backup
Elenca l'UUID per il disco:
sudo blkid /dev/DEVICE_NAME
L'output di esempio mostra l'UUID di
accc19c5-d0d6-4157-9672-37d4e1d48eb5
per 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_NAME
diventasdb1
.Apri il file
/etc/fstab
in 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 2
Sostituisci quanto segue:
UUID_VALUE
con il discoUUID
, elencato come output del comando Elenca l'UUID.MOUNT_DIR
con la directory in cui hai montato il disco.MOUNT_OPTION
con il valoreMOUNT_OPTION
per 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/fstab
siano corrette:cat /etc/fstab
Di 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 EOF
kubectl create secret -n PROJECT generic VM_NAME-mount-script --from-file=script=mount-disk-script
rm mount-disk-script
Aggiungi lo script di avvio alla VM.
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog -n PROJECT VM_NAME
Modifica
spec.startupScripts
per 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.