Com o advento da virtualização em soluções de produto, os dispositivos físicos passaram a dividir um único espaço lógico-software em várias partes. Por exemplo, uma interface de rede pode ser dividida em várias independentes entre si, mas utilizando o mesmo canal de comunicação.
O mesmo aconteceu com os dispositivos de armazenamento — surgiram os discos virtuais, que são arquivos. Neste artigo, vamos considerar um desses formatos utilizados em virtualização!
O que é VMDK e como ele funciona?
VMDK (VMware Disk) é um formato de arquivo que contém uma cópia de disco semelhante às imagens ISO, sendo um padrão da VMware. O algoritmo de funcionamento envolve as seguintes etapas:
- O programa de virtualização cria um arquivo .vmdk, no qual é especificado o tamanho máximo e o tipo (fixo ou dinâmico).
- A máquina virtual (ou o próprio host) monta esse arquivo como um disco rígido — o sistema operacional "acredita" que está trabalhando com um disco real.
Como mencionado anteriormente, o próprio disco é uma cópia bit a bit, que consiste em:
- Setor de inicialização (boot);
- Tabela de partições (MBR ou GPT);
- Sistema de arquivos (NTFS, ext4 etc.);
- Dados do usuário.
Tipos de discos virtuais:
- Fixo — o arquivo VHD ocupa imediatamente todo o tamanho especificado (por exemplo, 50 GB).
- Dinâmico — o tamanho do arquivo VHD cresce à medida que os dados são gravados.
- Diferencial — um disco “filho” que contém apenas as alterações em relação ao “pai” (usado para snapshots).
Como criar e conectar um disco virtual?
De tempos em tempos, surge a necessidade de utilizar discos de máquinas virtuais no sistema host para fins de recuperação de dados, limpeza, entre outros. Vamos ver como eles são criados e conectados para uso no sistema operacional do host. O processo é clássico: selecionamos um novo disco de uma máquina existente ou criamos um novo:
Selecionamos o controlador lógico recomendado, que nos permitirá gerenciar os discos, e em seguida avançamos para a escolha do tipo de disco:
Selecionamos o tipo de armazenamento de disco na máquina. É possível usar um ou mais arquivos que ocuparão o espaço reservado imediatamente ou à medida da necessidade:
Usar todo o espaço declarado do disco de uma vez aumentará a velocidade de leitura e gravação no próprio disco. Portanto, se o desempenho for importante para você, leve isso em conta na configuração. Depois disso, selecionamos o local de armazenamento do disco e já podemos começar a utilizá-lo.
Vamos imaginar que precisamos recuperar informações dos discos ou fazer uma cópia deles. Para isso, usaremos o utilitário FTK Imager, que permite montar uma imagem.
Ao conectar um disco, é importante entender o algoritmo de funcionamento do sistema operacional com ele. Ao conectar um disco, o driver começa a trabalhar com ele apenas lendo os dados bit a bit. Mas para o funcionamento correto, é necessário gerenciar os arquivos do disco: suas permissões de acesso, rótulos, fluxos alternativos de dados. Isso já é feito pelo sistema de arquivos e pelos manipuladores que conseguem interpretar o formato dos dados armazenados e fornecer uma interface para trabalhar com eles.
Portanto, se quisermos trabalhar com os arquivos no disco, usamos uma conexão lógica. Se, por outro lado, uma conexão bit a bit for suficiente, usamos uma conexão física. A partir daí, o disco se torna acessível!
Se a conexão de um disco físico com o sistema operacional já está clara, então como isso funciona: de um arquivo para um disco virtual? Na verdade, é a mesma coisa — só que, em vez de um disco com espaço de kernel, entra em ação o software e o VMDK. Os dados são lidos bit a bit, transferidos para o driver, onde o módulo do sistema de arquivos também atua e fornece acesso aos arquivos.