Best practice per il layout dei file in un server Hyper-V?


11

Abbiamo un server Hyper-V configurato e il layout dei file è incoerente perché è stato impostato da più persone. Ecco i due "modelli" diversi utilizzati:

Modello 1

D:\Hyper-V\Virtual Machines\MACHINE_NAME_1\Virtual Hard Disks\MACHINE_NAME_1.vhdx
D:\Hyper-V\Virtual Machines\MACHINE_NAME_1\Virtual Machines\GUID_1
D:\Hyper-V\Virtual Machines\MACHINE_NAME_1\Virtual Machines\GUID_1.xml

D:\Hyper-V\Virtual Machines\MACHINE_NAME_2\Virtual Hard Disks\MACHINE_NAME_2.vhdx
D:\Hyper-V\Virtual Machines\MACHINE_NAME_2\Virtual Machines\GUID_2
D:\Hyper-V\Virtual Machines\MACHINE_NAME_2\Virtual Machines\GUID_2.xml

....

e

Modello 2

D:\Hyper-V\Virtual Hard Disks\MACHINE_NAME_1.vhdx
D:\Hyper-V\Virtual Hard Disks\MACHINE_NAME_2.vhdx

D:\Hyper-V\Virtual Machines\GUID_1
D:\Hyper-V\Virtual Machines\GUID_1.xml
D:\Hyper-V\Virtual Machines\GUID_2
D:\Hyper-V\Virtual Machines\GUID_2.xml

Modello 1

L'argomento fatto per FOR Template 1, era che quando si esegue un'esportazione di una VM l'esportazione crea una cartella con il nome della macchina, mette cartelle separate per i dischi e vm. È quindi possibile semplicemente puntare alla directory della macchina quando si esegue un'importazione.

L'argomento CONTRO questo stile modello è che non ha senso che ci sia una directory chiamata Macchine Virtuali se c'è un solo file. L'altro argomento contro è che sembra che lo stesso server Hyper-V sembra aspettarsi che tutti i dischi rigidi siano in una cartella e tutte le macchine virtuali siano in una cartella diversa. cioè non crea cartelle separate per ogni VM (eseguito per quelle nominate dal GUID nella directory delle macchine virtuali)

Modello 2

L'argomento FOR Template 2 è che sembra che Hyper-V si aspetti che sia il layout.

L'argomento CONTRO il Modello 2, è che non puoi dire quali file della Macchina Virtuale sono associati a una macchina specifica a meno che non guardi all'interno dei file XML.

Mi piacerebbe conoscere le insidie ​​di entrambi i layout.


2
Mi sembra una rimessa per bici.
Evan Anderson,

2
Non sono d'accordo. Per esperienza, ci sono alcuni buoni motivi tecnici per avere una convenzione di denominazione in cui è possibile identificare quali dischi appartengono a quali macchine virtuali esterne agli strumenti Hyper-V. Una delle sue opzioni non ti consente di farlo facilmente - o affatto, se i file XML hyper-v sono corrotti, il che può accadere.
Concedi il

2
Hai ragione. Il modello 2 non segrega le VM in base alla cartella, il che va bene per il VHD iniziale (X) ma potrebbe essere problematico per i successivi VHD (X) a meno che non siate coscienziosi nel nominarli.
joeqwerty,

1
Che ne dici di un modello senza spazio nel percorso?
user2813274

2
@BenjaminPeikes Bike shed si riferisce alla legge di banalità del Parkinson - en.wikipedia.org/wiki/Parkinson's_law_of_triviality
Concessione

Risposte:


12

Vuoi davvero, davvero essere in grado di identificare facilmente quali file appartengono a quale macchina virtuale. Anche se si perde l'accesso alla console Hyper-V.

Questo si presenta quando si tenta di ripristinare una macchina virtuale dai backup. O quando Hyper-V dimentica tutte le macchine virtuali e devi importarle. Oppure i file di configurazione della VM sono corrotti e devi ricreare la VM e puntare ai vecchi file del disco rigido (che ora non puoi identificare, poiché il tuo file di configurazione è danneggiato). Oppure vuoi solo controllare rapidamente quanto spazio su disco occupa ogni VM. Oppure è necessario ripristinare dai backup in cui è possibile visualizzare i nomi dei file, ma non è possibile leggere facilmente i file XML senza passare prima attraverso l'intero processo di ripristino.

Detto questo, sceglierei qualcosa di simile al modello 1, in cui è presente una cartella per ogni macchina virtuale, ma tralasciando le sottocartelle "Macchine virtuali" e "Dischi rigidi macchina virtuale", inserisco tutti i file relativi a una macchina virtuale in una cartella con il nome della VM.

Inoltre non hai bisogno di macchine Hyper-V \ Virtual: scegli una di quelle etichette, non hai bisogno di entrambe.

Così:

D: \ Macchine virtuali \ MACHINE_A \ GUID_1.xml
D: \ Macchine virtuali \ MACHINE_A \ Machine_a_OS.vhdx
D: \ Macchine virtuali \ MACHINE_A \ Machine_a_Data.vhdx

D: \ Macchine virtuali \ MACHINE_B \ GUID_2.xml
D: \ Macchine virtuali \ MACHINE_B \ Machine_b_OS.vhdx
D: \ Macchine virtuali \ MACHINE_B \ Machine_b_Data.vhdx

eccetera.

Oppure potresti decidere di non aver bisogno dei nomi dei file per abbinare la macchina virtuale - il nome della cartella è sufficiente. La denominazione in questo modo semplificherebbe la clonazione di una VM senza doversi preoccupare di rinominare i suoi file:

D: \ VMs \ Machine A \ GUID_1.xml
D: \ VMs \ Machine A \ OS.vhdx
D: \ VMs \ Machine A \ Data.vhdx

D: \ VMs \ Machine B \ GUID_2.xml
D: \ VMs \ Machine B \ OS.vhdx
D: \ VMs \ Machine B \ SQLData.vhdx
D: \ VMs \ Machine B \ SQLLog.vhdx

Il principale takeaway qui è quello di organizzare i file in modo che, osservando nient'altro che la struttura dei file, si possa dire a quale VM appartiene ogni file e a cosa serve quel file.


Mi sono orientato verso il layout che proponi. Una cosa su questo particolare layout che non mi piace è che utilizza il nome della macchina sia nella struttura delle cartelle che nella convenzione di denominazione dei file. Ciò significa che non puoi semplicemente copiare una cartella di una macchina per crearne una nuova.
Benjamin Peikes,

Un argomento che ho sentito è che puoi dire quali file appartengono a quale macchina virtuale guardando i file xml per ciascun GUID. Anche se è sicuramente utile avere una convenzione di denominazione facile da capire, cade completamente a pezzi se qualcuno non lo segue, nemmeno una volta. È come avere commenti nel codice che non corrispondono più al codice. Dal momento che tutte le informazioni sulla macchina si trovano nel file xml, sono cauto nel fare affidamento sulla denominazione di cartelle e file per capire qualcosa.
Benjamin Peikes,

@BenjaminPeikes Fare affidamento sui file XML per abbinare i file alle macchine virtuali è rischioso. Ho avuto casi in cui attraverso l'eliminazione accidentale o la corruzione dei dati i file XML erano spariti o illeggibili. Inoltre, è semplicemente più veloce della corrispondenza dei GUID. Ma sono d'accordo che non devi necessariamente usare il nome della VM nel nome del file, solo la cartella se preferisci. Assicurati solo che - osservando solo la struttura dei file - puoi sapere quali file appartengono a quale VM e quale scopo servono.
Concedi il

2

Non mi piace nessuno.

Poiché nessuno dei modelli è stabile nel caso in cui si sposti una VM.

Vorrei - e lo faccio da solo - usando una struttura di cartelle identica a quella che si ottiene quando si sposta una VM tra host. In questo modo non cambia nulla quando si sposta una VM tra host.


Il Template 1 non è quello che ottieni quando sposti una VM tra host?
Benjamin Peikes,

Provalo - non lo è. Ad esempio, i dischi finiscono in una cartella "Dischi rigidi virtuali" nella cartella del nome della macchina.
TomTom,

questo è ciò che fa il mio modello 1. Ogni macchina ha la propria cartella e in ognuna di quelle cartelle si trovano una cartella Macchine virtuali e una cartella Dischi rigidi virtuali.
Benjamin Peikes,

1
Esiste un modo per far sì che Hyper-V usi la struttura descritta per impostazione predefinita quando viene creata una macchina virtuale, @TomTom? Mi piace mettere le mie VM in una cartella a parte. Ma ogni volta finisco per creare la VM e poi spostarla subito dopo per ottenere la struttura di cartelle che desidero.
Matty Brown,

1

È necessario eseguire il modello 2 per separare l'accoppiamento per le parti della macchina virtuale dai problemi di archiviazione. Vale a dire un VHDX per una macchina virtuale potrebbe andare per un volume delle prestazioni, un altro VHDX per la stessa macchina virtuale è più interessato alla capacità, e tutto può avere differenze di resilienza.

Pertanto, non sarà possibile eseguire il modello 1 a meno che non si introduca anche nel layout della struttura dei file la complicazione della mappatura di posizioni di archiviazione diverse nell'accoppiamento per le parti del file delle macchine virtuali.

Così:

MODELLO 2

Modello 2: qui la gestione dell'archiviazione ha la precedenza sul layout degli spazi dei nomi (nel frattempo, il layout dello spazio dei nomi viene gestito nell'interfaccia utente per la gestione della VM ... vale a dire che alcune parti della VM potrebbero non essere nemmeno locali ma essere nel cloud ecc., Ad esempio utilizzando l'archiviazione autobus)

... gestire diverse preoccupazioni nella gestione dello storage:

D: \ Storage \ Pool1 \ Hyper-V \ dischi rigidi virtuali \ xxx-xx-xx-System-01-Prod.vhdx

D: \ Storage \ Pool1 \ Hyper-V \ dischi rigidi virtuali \ xxx-xx-xx-Data-01-Prod.vhdx

D: \ Storage \ Pool2 \ Hyper-V \ dischi rigidi virtuali \ xxx-xx-xx-Data-02-Prod.vhdx

D: \ Storage \ Pool3 \ Hyper-V \ dischi rigidi virtuali \ xxx-xx-xx-Recovery-01-Prod.vhdx

D: \ Storage \ Pool1 \ Hyper-V \ Macchine virtuali \ GUID_1

D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_1.xml

D: \ Storage \ Pool1 \ Hyper-V \ Macchine virtuali \ GUID_2

D: \ Storage \ Pool1 \ Hyper-V \ Macchine virtuali \ GUID_2.xml

MODELLO 1

Per eseguire questa mappatura nel modello 1 - in cui i problemi di spazio dei nomi nel file system (noto anche come pseudo provisioning ui) hanno la precedenza - pur mantenendo i problemi di archiviazione:

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-System-01-Prod.vhdx> (collegato a) D: \ Storage \ Pool1 \ Hyper-V \ dischi rigidi virtuali \ xxx- xx-xx-System-01-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Data-01-Prod.vhdx> D: \ Storage \ Pool1 \ Hyper-V \ dischi rigidi virtuali \ xxx-xx-xx- Data-01-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Data-02-Prod.vhdx> D: \ Storage \ Pool2 \ Hyper-V \ dischi rigidi virtuali \ xxx-xx-xx- Data-02-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Recovery-01-Prod.vhdx> D: \ Storage \ Pool3 \ Hyper-V \ dischi rigidi virtuali \ xxx-xx-xx- Recupero-01-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_1> D: \ Storage \ Pool1 \ Hyper-V \ Macchine virtuali \ GUID_1 D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_1.xml > D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_1.xml D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_2> D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_2 D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_2.xml> D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_2.xml

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.