Práticas recomendadas para layout de arquivo em um servidor Hyper-V?

11

Temos um servidor Hyper-V configurado e o layout dos arquivos é inconsistente porque foi configurado por várias pessoas. Aqui estão os dois "modelos" diferentes que foram usados:

Modelo 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

Modelo 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

Modelo 1

O argumento apresentado para o Modelo 1 foi que, quando você faz uma exportação de uma VM, a exportação cria uma pasta com o nome da máquina, coloca pastas separadas para os discos e a VM. Você pode simplesmente apontar para o diretório da máquina ao executar uma importação.

O argumento CONTRA esse estilo de modelo é que não faz sentido que exista um diretório chamado Máquinas Virtuais se houver apenas um arquivo. O outro argumento contrário é que parece que o próprio servidor Hyper-V parece esperar que todos os discos rígidos estejam em uma pasta e todas as Máquinas Virtuais estejam em uma pasta diferente. isto é, não cria pastas separadas para cada VM (exceto aquelas nomeadas por GUID no diretório Máquinas Virtuais)

Modelo 2

O argumento para o modelo 2 é que parece que é isso que o Hyper-V espera que o layout seja.

O argumento CONTRA o Modelo 2 é que você não pode dizer quais arquivos de Máquina Virtual estão associados a uma máquina específica, a menos que você procure dentro dos arquivos xml.

Eu adoraria ouvir sobre quaisquer armadilhas para qualquer layout.

Benjamin Peikes
fonte
2
Parece um barracão de bicicleta para mim.
Evan Anderson
2
Discordo. Por experiência, há alguns bons motivos técnicos para ter uma convenção de nomenclatura em que é possível identificar quais discos pertencem a quais VMs de fora das ferramentas do Hyper-V. Uma de suas opções não permite que você faça isso com facilidade - ou mesmo se os arquivos XML do hyper-v estiverem corrompidos, o que pode acontecer.
Grant
2
Você está certo. O Modelo 2 não separa as VMs por pasta, o que é bom para o VHD inicial (X), mas pode ser problemático para os VHD (X) subsequentes, a menos que você tenha consciência de nomeá-las.
joeqwerty
1
Que tal um modelo sem espaço no caminho?
user2813274
2
@BenjaminPeikes Bike shed refere-se à lei da trivialidade de Parkinson - br.wikipedia.org/wiki/Parkinson's_law_of_triviality
Conceda

Respostas:

12

Você realmente deseja identificar facilmente quais arquivos pertencem a qual máquina virtual. Mesmo se você perder o acesso ao console do Hyper-V.

Isso aparece ao tentar restaurar uma VM a partir de backups. Ou quando o Hyper-V se esquece de todas as suas VMs e você precisa importá-las. Ou os arquivos de configuração da VM estão corrompidos e é necessário recriar a VM e apontar para os arquivos antigos do disco rígido (que agora não é possível identificar, pois o arquivo de configuração está corrompido). Ou você só deseja verificar rapidamente quanto espaço em disco cada VM ocupa. Ou você precisa restaurar a partir de backups, onde é possível ver os nomes dos arquivos, mas não é fácil ler os arquivos XML sem antes passar por todo o processo de restauração.

Dado isso, eu procuraria algo semelhante ao Modelo 1, onde há uma pasta para cada VM - mas deixe de fora as subpastas "Máquinas Virtuais" e "Discos Rígidos de Máquinas Virtuais" - basta colocar todos os arquivos relacionados a uma VM uma pasta com o nome da VM.

Você também não precisa de máquinas virtuais Hyper-V \ - escolha um desses rótulos, não precisará de ambos.

Então:

D: \ Máquinas Virtuais \ MACHINE_A \ GUID_1.xml
D: \ Máquinas Virtuais \ MACHINE_A \ Machine_a_OS.vhdx
D: \ Máquinas Virtuais \ MACHINE_A \ Machine_a_Data.vhdx

D: \ Máquinas Virtuais \ MACHINE_B \ GUID_2.xml
D: \ Máquinas Virtuais \ MACHINE_B \ Machine_b_OS.vhdx
D: \ Máquinas Virtuais \ MACHINE_B \ Machine_b_Data.vhdx

etc.

Ou você pode decidir que não precisa dos nomes dos arquivos para corresponder à máquina virtual - o nome da pasta é suficiente. Nomear dessa maneira tornaria mais fácil clonar uma VM sem ter que se preocupar em renomear seus arquivos:

D: \ VMs \ Máquina A \ GUID_1.xml
D: \ VMs \ Máquina A \ OS.vhdx
D: \ VMs \ Máquina A \ Data.vhdx

D: \ VMs \ Máquina B \ GUID_2.xml
D: \ VMs \ Máquina B \ OS.vhdx
D: \ VMs \ Máquina B \ SQLData.vhdx
D: \ VMs \ Máquina B \ SQLLog.vhdx

O principal argumento aqui é organizar os arquivos para que, olhando apenas para a estrutura do arquivo, você possa dizer a que VM cada arquivo pertence e para que serve esse arquivo.

Conceder
fonte
Eu tenho me inclinado para o layout que você propõe. Uma coisa sobre esse layout em particular que não gosto é que ele usa o nome da máquina na estrutura de pastas e na convenção de nomenclatura de arquivos. Isso significa que você não pode simplesmente copiar uma pasta de uma máquina para criar uma nova.
Benjamin Peikes
Um argumento que ouvi é que você pode dizer quais arquivos pertencem a qual máquina virtual olhando os arquivos xml para cada GUID. Mesmo que seja definitivamente útil ter uma convenção de nomenclatura fácil de entender, ela se desfaz completamente se alguém não a seguir, mesmo uma vez. É como ter comentários no código que não correspondem mais ao código. Como todas as informações sobre a máquina estão no arquivo xml, desconfio de depender de nomes de pastas e arquivos para descobrir alguma coisa.
Benjamin Peikes
@BenjaminPeikes Confiar nos arquivos XML para corresponder os arquivos às VMs é arriscado. Eu tive casos em que, por exclusão acidental ou corrupção de dados, os arquivos XML foram apagados ou ilegíveis. Além disso, é mais rápido do que os GUIDs correspondentes. Mas concordo que você não precisa necessariamente usar o nome da VM no nome do arquivo, apenas a pasta, se preferir. Apenas certifique-se de que, observando apenas a estrutura do arquivo, é possível saber quais arquivos pertencem a qual VM e para qual finalidade eles servem.
Grant
2

Eu não gosto de nenhum.

Como nenhum dos seus modelos é estável no caso de você mover uma VM.

Eu usaria - e faço isso sozinho - usando uma estrutura de pastas idêntica à que você obtém ao migrar uma VM entre hosts. Dessa forma, nada muda quando - você move uma VM entre hosts.

TomTom
fonte
O Modelo 1 não é o que você obtém ao mover uma VM entre hosts?
Benjamin Peikes
Experimente - não é. Por exemplo, os discos acabam em uma pasta "Discos Rígidos Virtuais", na pasta de nome da máquina.
TomTom
é isso que meu modelo 1 faz. Cada máquina possui sua própria pasta e em cada uma dessas pastas há uma pasta Máquinas Virtuais e uma pasta Discos Rígidos Virtuais.
Benjamin Peikes
1
Existe alguma maneira de fazer com que o Hyper-V use a estrutura que você descreveu por padrão quando uma VM é criada, @TomTom? Eu gosto de colocar minhas VMs em uma pasta própria. Mas, toda vez, acabo criando a VM e depois movendo-a imediatamente para obter a estrutura de pastas desejada.
Matty Brown
1

Você precisa executar o modelo 2 para separar o acoplamento de peças de máquinas virtuais das preocupações de armazenamento. Ou seja, um VHDX para uma VM pode ir para um volume de desempenho, outro VHDX para a mesma VM está mais preocupado com a capacidade - e todos podem estar com diferenças na resiliência.

Portanto, você não poderá executar o modelo 1, a menos que também introduza no layout da estrutura do arquivo a complicação de mapear diferentes locais de armazenamento no acoplamento para as partes do arquivo das máquinas virtuais.

Portanto:

MODELO 2

Modelo 2 - Aqui, o gerenciamento de armazenamento tem precedência sobre o layout dos namespaces (enquanto isso, o layout do namespace é tratado na interface do usuário para gerenciar a VM ... ou seja, algumas partes da VM podem nem ser locais, mas estar na nuvem, etc. ônibus)

... gerenciando diferentes preocupações no gerenciamento de armazenamento:

D: \ Armazenamento \ Pool1 \ Hyper-V \ Discos rígidos virtuais \ xxx-xx-xx-System-01-Prod.vhdx

D: \ Armazenamento \ Pool1 \ Hyper-V \ Discos rígidos virtuais \ xxx-xx-xx-Data-01-Prod.vhdx

D: \ Storage \ Pool2 \ Hyper-V \ Discos rígidos virtuais \ xxx-xx-xx-Data-02-Prod.vhdx

D: \ Armazenamento \ Pool3 \ Hyper-V \ Discos rígidos virtuais \ xxx-xx-xx-Recovery-01-Prod.vhdx

D: \ Armazenamento \ Pool1 \ Hyper-V \ Máquinas Virtuais \ GUID_1

D: \ Armazenamento \ Pool1 \ Hyper-V \ Máquinas Virtuais \ GUID_1.xml

D: \ Armazenamento \ Pool1 \ Hyper-V \ Máquinas Virtuais \ GUID_2

D: \ Armazenamento \ Pool1 \ Hyper-V \ Máquinas Virtuais \ GUID_2.xml

MODELO 1

Para fazer esse mapeamento no modelo 1 - em que as preocupações com espaço para nome no sistema de arquivos (também conhecido como ui pseudo-provisionada) têm precedência -, mantendo as preocupações de armazenamento:

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-System-01-Prod.vhdx> (vinculado a) D: \ Storage \ Pool1 \ Hyper-V \ Discos rígidos virtuais \ xxx- xx-xx-System-01-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Data-01-Prod.vhdx> D: \ Armazenamento \ Pool1 \ Hyper-V \ Discos rígidos virtuais \ xxx-xx-xx- Data-01-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Data-02-Prod.vhdx> D: \ Armazenamento \ Pool2 \ Hyper-V \ Discos rígidos virtuais \ xxx-xx-xx- Data-02-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Recovery-01-Prod.vhdx> D: \ Armazenamento \ Pool3 \ Hyper-V \ Discos rígidos virtuais \ xxx-xx-xx- Recovery-01-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_1> D: \ Armazenamento \ Pool1 \ Hyper-V \ Máquinas virtuais \ GUID_1 D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_1.xml > D: \ Armazenamento \ Pool1 \ Hyper-V \ Máquinas Virtuais \ GUID_1.xml D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_2> D: \ Storage \ Pool1 \ Hyper-V \ Máquinas Virtuais \ GUID_2 D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_2.xml> D: \ Armazenamento \ Pool1 \ Hyper-V \ Máquinas virtuais \ GUID_2.xml

computermensch
fonte