Questo documento descrive come utilizzare la denominazione dei dispositivi permanenti sulla VM Linux.
Per le VM che utilizzano un sistema operativo Linux, i nomi dei dispositivi, ad esempio /dev/sda
,
potrebbero cambiare dopo l'esecuzione di procedure come le seguenti:
- Avvio e arresto di una VM
- Scollegare e ricollegare i dischi
- Modifica dei tipi di macchina
Questa modifica del nome del dispositivo si verifica perché i nomi dei dispositivi vengono assegnati da un intervallo disponibile quando viene avviata una VM o viene collegato un dispositivo. Se scolleghi un dispositivo o se interrompi la VM, il nome del dispositivo viene liberato. Quando il dispositivo viene ricollegato o la VM viene riavviata, viene assegnato un nuovo nome dispositivo dall'intervallo disponibile. Il kernel Linux non garantisce l'ordinamento dei dispositivi dopo i riavvii.
La modifica del nome del dispositivo potrebbe causare il malfunzionamento di applicazioni o script che dipendono dal nome del dispositivo originale o potrebbe impedire il riavvio della VM dopo un riavvio.
Per evitare questo problema, ti consigliamo di utilizzare nomi di dispositivi permanenti quando fai riferimento a dischi e partizioni sulle VM Linux. Puoi anche utilizzare i link simbolici.
Prima di iniziare
- Controlla la gestione dei dispositivi per il tuo sistema operativo Linux:
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
nvme0n1
- Persistent Disknvme0n1p1
nvme0n1p2
nvme0n2
- Hyperdisknvme0n2p1
nvme0n2p2
nvme1n1
- prima SSD localenvme2n1
- seconda SSD locale- Utilizzando un'etichetta. Questa opzione richiede che il file system supporti le etichette e che tu aggiunga un'etichetta alle partizioni del disco.
- Utilizzando un UUID di partizione o disco. Quando viene creato un disco con una tabella delle partizioni, viene generato un UUID univoco per ogni partizione.
- Utilizzando un ID disco permanente (
/dev/disk/by-id
) per Persistent Disk o Google Cloud Hyperdisk oppure un symlink basato sul nome della risorsa del disco. - Connettiti alla VM.
Se non conosci il nome del dispositivo per il disco, puoi trovarlo utilizzando il link simbolico.
ls -l /dev/disk/by-id/google-*
L'output è simile al seguente:
lrwxrwxrwx 1 root root 9 Oct 23 15:58 /dev/disk/by-id/google-my-vm -> ../../sda lrwxrwxrwx 1 root root 10 Oct 23 15:58 /dev/disk/by-id/google-my-vm-part1 -> ../../sda1 lrwxrwxrwx 1 root root 11 Oct 23 15:58 /dev/disk/by-id/google-my-vm-part15 -> ../../sda15 lrwxrwxrwx 1 root root 9 Oct 23 15:58 /dev/disk/by-id/google-my-vm-app-data -> ../../nvme0n1
Recupera l'UUID della partizione del disco eseguendo uno dei seguenti comandi:
blkid
sudo blkid -s UUID
L'output è simile al seguente:
/dev/sda1: UUID="4f570f2d-fffe-4c7d-8d8f-af347af7612a" /dev/sda15: UUID="E0B2-DFAF" /dev/nvme0n1: UUID="9e617251-6a92-45ff-ba40-700a9bdeb03e"
ls -l
sudo ls -l /dev/disk/by-uuid/
L'output è simile al seguente:
lrwxrwxrwx 1 root root 10 Sep 22 18:12 4f570f2d-fffe-4c7d-8d8f-af347af7612a -> ../../sda1 lrwxrwxrwx 1 root root 13 Sep 22 18:15 9e617251-6a92-45ff-ba40-700a9bdeb03e -> ../../nvme0n1 lrwxrwxrwx 1 root root 11 Sep 22 18:12 E0B2-DFAF -> ../../sda15
Aggiungi una voce per l'UUID del tuo dispositivo nel file
/etc/fstab
.UUID=9e617251-6a92-45ff-ba40-700a9bdeb03e /data ext4 defaults 0 0
In questo esempio,
/data
è il punto di montaggio eext4
è il tipo di file system.Verifica che il dispositivo sia montato correttamente eseguendo
mount -av
.sudo mount -av
Se il dispositivo è montato correttamente, l'output è simile al seguente:
/ : ignored /boot/efi : already mounted mount: /data does not contain SELinux labels. You just mounted an file system that supports labels which does not contain labels, onto an SELinux box. It is likely that confine applications will generate AVC messages and not be allowed access to this filesystem. For more details see restorecon(8) and mount(8). /data : successfully mounted
- Connettiti alla VM.
Recupera l'ID sul disco eseguendo il seguente comando:
sudo ls -lh /dev/disk/by-id/google-*
L'output è simile al seguente:
lrwxrwxrwx. 1 root root 9 May 16 17:34 google-disk-2 -> ../../sdb lrwxrwxrwx. 1 root root 9 May 16 09:09 google-persistent-disk-0 -> ../../sda lrwxrwxrwx. 1 root root 10 May 16 09:09 google-persistent-disk-0-part1 -> ../../sda1 lrwxrwxrwx. 1 root root 10 May 16 09:09 google-persistent-disk-0-part2 -> ../../sda2
Per i dischi
NVME
, l'output è simile al seguente:lrwxrwxrwx 1 root root 13 Jun 1 10:27 google-disk-3 -> ../../nvme0n2 lrwxrwxrwx 1 root root 13 Jun 1 10:25 google-t2a -> ../../nvme0n1 lrwxrwxrwx 1 root root 15 Jun 1 10:25 google-t2a-part1 -> ../../nvme0n1p1 lrwxrwxrwx 1 root root 16 Jun 1 10:25 google-t2a-part15 -> ../../nvme0n1p15
Aggiungi il link simbolico al file
/etc/fstab
./dev/disk/by-id/google-disk-2 /data ext4 defaults 0 0
Verifica che il dispositivo sia montato correttamente eseguendo
mount -av
.sudo mount -av
Se il dispositivo è montato correttamente, l'output è simile al seguente:
/ : ignored /boot/efi : already mounted mount: /data does not contain SELinux labels. You just mounted an file system that supports labels which does not contain labels, onto an SELinux box. It is likely that confine applications will generate AVC messages and not be allowed access to this file system. For more details see restorecon(8) and mount(8). /data : successfully mounted
Denominazione dei dispositivi nelle VM Linux
I nomi dei dispositivi Linux per i dischi collegati alla VM dipendono dall'interfaccia che scegli quando crei i dischi. Quando utilizzi il comando
lsblk
del sistema operativo per visualizzare i dispositivi di disco, viene visualizzato il prefissonvme
per i dischi collegati con l'interfaccia NVMe e il prefissosd
per i dischi collegati con l'interfaccia SCSI.L'ordinamento dei numeri dei dischi o dei controller NVMe non è prevedibile o coerente nei riavvii delle VM. Al primo avvio, un disco permanente potrebbe essere
nvme0n1
(osda
per SCSI). Al secondo avvio, il nome del dispositivo per lo stesso disco permanente potrebbe esserenvme2n1
onvme0n3
(osdc
per SCSI).Quando accedi ai dischi collegati, devi utilizzare i link simbolici creati in
/dev/disk/by-id/
. Questi nomi rimangono invariati dopo i riavvii. Per ulteriori informazioni sui link simbolici, consulta Link simbolici per i dischi collegati a una VM.Nomi dei dispositivi SCSI
Il formato di un dispositivo disco collegato tramite SCSI è
sda
per il primo disco collegato. Le partizioni del disco vengono visualizzate comesda1
. Ogni disco aggiuntivo utilizza una lettera sequenziale, ad esempiosdb
esdc
. Quando viene raggiunto il valoresdz
, i dischi aggiunti successivamente avranno nomi comesdaa
,sdab
esdac
, fino asddx
.Nomi dei dispositivi NVMe
Il formato di un dispositivo di disco collegato a NVMe nei sistemi operativi Linux è
nvmenumbernnamespace
.number
rappresenta il numero del controller del disco NVMe e namespace è un ID dello spazio dei nomi NVMe assegnato dal controller del disco NVMe. Per le partizioni, pn viene aggiunto al nome del dispositivo, dove n è un numero, che inizia con 1, che indica la nth partizione.Il numero del controller inizia da
0
. Un singolo disco NVMe collegato all'istanza di calcolo ha il nome del dispositivonvme0n1
. La maggior parte dei tipi di macchine utilizza un singolo controller di dischi NVMe. I nomi dei dispositivi NVMe sono quindinvme0n1
,nvme0n2
,nvme0n3
e così via.I dischi SSD locali collegati alle serie di macchine di terza generazione o alle istanze successive hanno un controller NVMe separato per ogni disco. Su queste VM, i nomi dei dispositivi collegati all'SSD locale NVMe sono
nvme0n1
,nvme1n1
envme2n1
. Il numero di dischi SSD locali collegati dipende dal tipo di macchina della VM.Le istanze di calcolo basate su serie di macchine di terza generazione o successive utilizzano NVMe sia per Persistent Disk sia per Google Cloud Hyperdisk, nonché per i dischi SSD locali. Ogni VM ha un controller NVMe per Persistent Disk e Hyperdisk e un controller NVMe per ogni disco SSD locale. Il controller NVMe di dischi permanenti e Hyperdisk ha un singolo spazio dei nomi NVMe per tutti i dischi collegati. Pertanto, un'istanza della serie di macchine di 3ª generazione con un disco Persistent Disk e un Hyperdisk (ciascuno con 2 partizioni) e 2 dischi SSD locali non formattati utilizza i seguenti nomi di dispositivo:
Utilizzare nomi dei dispositivi permanenti
Per configurare un nome del dispositivo permanente, assegna un nome del punto di montaggio per il dispositivo di disco nel file
fstab
. Esistono tre modi per configurare un nome dispositivo permanente.Ti consigliamo di utilizzare l'UUID della partizione o il link simbolico per le VM Linux.
UUID partizione
Per trovare l'UUID di un disco, svolgi i seguenti passaggi:
ID disco permanente
Per trovare il nome del dispositivo del disco utilizzando l'ID del disco permanente o il link simbolico, completa i seguenti passaggi:
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-11-23 UTC.
-