Questo documento descrive come utilizzare la denominazione permanente dei dispositivi sulla tua VM Linux.
Per le VM che utilizzano un sistema operativo Linux, i nomi dei dispositivi, ad esempio /dev/sda
,
potrebbe cambiare dopo aver eseguito procedure come le seguenti:
- Avvio e arresto di una VM
- Scollegamento e ricollegamento dei 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 dopo l'avvio di una VM o il collegamento di un dispositivo. Lo scollegamento di un dispositivo o l'arresto della VM libera il nome del dispositivo. Quando il dispositivo viene ricollegato o La VM è stata riavviata e viene quindi assegnato un nuovo nome dispositivo dall'intervallo disponibile. La Il kernel Linux non garantisce l'ordinamento dei dispositivi tra i riavvii.
La modifica del nome di un dispositivo potrebbe causare la comparsa di eventuali applicazioni o script che dipendono il nome originale del dispositivo non funziona correttamente o la VM potrebbe non funzionare dopo il riavvio.
È consigliabile utilizzare la denominazione dei dispositivi permanente quando fai riferimento ai dischi e partizioni di rete sulle VM Linux per evitare questo problema. Puoi anche utilizzare link simbolici.
Prima di iniziare
- Esamina la gestione dei dispositivi per il tuo sistema operativo Linux:
-
Se non l'hai già fatto, configura l'autenticazione.
Autenticazione è
Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione
Compute Engine come segue.
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.
-
Denominazione dei dispositivi sulle VM Linux
I nomi dei dispositivi Linux per i dischi collegati alla VM dipendono dall'interfaccia
che scegli al momento della creazione dei dischi. Quando utilizzi il sistema operativo di lsblk
comando di sistema per visualizzare i dispositivi disco, mostra il prefisso nvme
dischi collegati all'interfaccia NVMe e il prefisso sd
per i dischi collegati
con l'interfaccia SCSI.
L'ordine dei numeri dei dischi o dei controller NVMe non è prevedibile o
in modo coerente tra i riavvii delle VM. Al primo avvio, un disco permanente potrebbe essere
nvme0n1
(o sda
per SCSI). Al secondo avvio, il nome del dispositivo
un disco permanente potrebbe essere nvme2n1
o nvme0n3
(o sdc
per SCSI).
Per accedere ai dischi collegati, devi utilizzare i link simbolici creati in
/dev/disk/by-id/
in alternativa. Questi nomi vengono mantenuti durante i riavvii.
Per ulteriori informazioni sui collegamenti simbolici, vedi
Link simbolici per i dischi collegati a una VM.
Nomi dei dispositivi SCSI
Il formato di un dispositivo disco collegato a SCSI è sda
per il primo disco collegato.
Le partizioni del disco vengono visualizzate come sda1
. Ogni disco aggiuntivo
utilizza una lettera sequenziale, come sdb
e sdc
. Quando il valore di sdz
è
raggiunto, i dischi successivi aggiunti hanno nomi quali sdaa
, sdab
e sdac
,
fino a sddx
.
Nomi dei dispositivi NVMe
Il formato di un dispositivo disco collegato a NVMe nei sistemi operativi Linux è
nvmenumbernnamespace
. La
number
rappresenta il numero di controller del disco NVMe e
namespace è un ID dello spazio dei nomi NVMe assegnato dal disco NVMe
un controller di deployment. Per le partizioni, al nome del dispositivo viene aggiunto pn,
dove n è un numero, che inizia con 1, che indica la
na partizione.
Il numero del controller parte da 0
. Un singolo disco NVMe collegato alla tua rete di computing
il nome dispositivo dell'istanza è nvme0n1
. La maggior parte dei tipi di macchina utilizza una singola NVMe
da un controller di disco. I nomi dei dispositivi NVMe saranno quindi nvme0n1
, nvme0n2
, nvme0n3
e così via.
Dischi SSD locali collegati a
serie di macchine di terza generazione
o successive hanno un controller NVMe separato per ogni disco. In queste VM,
i nomi dei dispositivi collegati a NVMe SSD locale sono simili a nvme0n1
, nvme1n1
e
nvme2n1
. 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 per Persistent Disk e Google Cloud Hyperdisk, nonché dischi SSD locali. Ogni VM dispone di 1 controller NVMe per Persistent Disk e Hyperdisk e 1 NVMe per ogni disco SSD locale. Persistent Disk e Hyperdisk Il controller NVMe ha un singolo spazio dei nomi NVMe per tutti i dischi collegati. Quindi, un terzo di macchina virtuale di generazione con un Persistent Disk Hyperdisk (ognuno con 2 partizioni) e 2 SSD locali non formattati utilizzano i seguenti nomi di dispositivo:
nvme0n1
- Persistent Disknvme0n1p1
nvme0n1p2
nvme0n2
- Hyperdisknvme0n2p1
nvme0n2p2
nvme1n1
- primo SSD localenvme2n1
- secondo SSD locale
Usa denominazione permanente dei dispositivi
Per configurare un nome di dispositivo permanente, assegna un nome del punto di montaggio
dispositivo disco nel file fstab
. Esistono tre modi per configurare un'istanza
nome del dispositivo.
- Utilizzando un'etichetta. Questa opzione richiede che il file system supporti le etichette e che tu aggiunga una alle partizioni del disco.
- Tramite l'utilizzo di una partizione o di un UUID del disco. Un UUID viene generato quando viene creato un disco con una tabella di partizione e L'UUID è univoco per partizione.
- Mediante un ID disco permanente (
/dev/disk/by-id
) per Persistent Disk Google Cloud Hyperdisk, o link simbolico, che si basa sul nome della risorsa del disco.
Ti consigliamo di utilizzare l'UUID della partizione o il link simbolico per le VM Linux.
UUID partizione
Per trovare l'UUID per un disco, segui questi passaggi:
- Connettiti alla tua VM.
Se non conosci il nome dispositivo del disco, puoi trovare nome del dispositivo disco 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 per il disco eseguendo una delle 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 montaggioext4
è il tipo di file system.Verifica che il dispositivo sia montato correttamente eseguendo
mount -av
.sudo mount -av
Se il dispositivo è stato montato correttamente, l'output è simile al seguenti:
/ : 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
ID disco permanente
Per trovare il nome dispositivo disco utilizzando l'ID disco permanente o il link simbolico, completa i seguenti passaggi:
- Connettiti alla tua VM.
Recupera l'ID sul disco eseguendo questo 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
NVME
dischi, 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 è stato montato correttamente, l'output è simile al seguenti:
/ : 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