Devo desfragmentar o disco rígido em execução em uma máquina virtual?


18

Eu sei que não faz sentido (na verdade é uma péssima idéia) executar o Defrag em um SSD. Que tal uma máquina virtual rodando em um SSD, devo desfragmentar seu disco rígido, pois basicamente está acessando o disco rígido da mesma maneira?


Não
faço

O VSS pode aumentar o armazenamento se você não usar um desfragmentador compatível com VSS.

Somente se a opção desfragmentar fizer parte do seu software de virtualização.
qasdfdsaq

Respostas:


14

Eu desfragmentar meus VHDs, mas por razões de espaço, não de tempo:

Eu uso a opção alocada dinamicamente para VHDs, então eles começam pequenos e expandem conforme necessário. Mas, à medida que o VHD (não necessariamente os arquivos) se fragmenta, ele se expande para incluir todos os blocos alocados. A desfragmentação do VHD é o primeiro passo para compactá-lo novamente.


O fator de espaço pode ser relevante porque a VM está em um SSD, embora, em geral, desfragmentar qualquer coisa em um SSD não seja necessária por motivos de desempenho e é desencorajada.
Bigbio2002

3

Não há necessidade de desfragmentar um SSD. Um disco rígido comum precisa girar para encontrar (as partes de) arquivos. Um SSD é comparável à RAM, todos os arquivos podem ser alcançados com o mesmo atraso.

A Wikipedia afirma que "o desempenho da leitura não muda com base em onde os dados são armazenados em um SSD"


Forneça um link para o artigo da Wikipedia .
Wizlog 13/02/12

11
@wizlog Voila;)
Simon Verbeke

2

Esta é apenas a minha opinião, não tenho resultados de testes para fazer o backup. Aqui está uma aproximação aproximada de como as coisas provavelmente acontecem:

SO real:

  1. Aplicativo pede dados X (rápido)
  2. O SO solicita ao driver de disco dados X (rápido)
  3. O disco físico busca os dados X e os retorna ao SO ( lento se fragmentado )

Aqui seria a cadeia de comando equivalente em uma VM:

  1. Aplicativo VM solicita dados X (rápido)
  2. VM OS solicita dados X (rápido)
  3. O host da VM pede que o sistema operacional real obtenha os dados X armazenados no arquivo do disco virtual (rápido)
  4. O sistema operacional real pede ao driver de disco para obter dados X (rápido)
  5. O disco físico busca dados X e os retorna ao SO ( lento se fragmentado ).

Como você pode ver, em ambos os casos, a fragmentação realmente se torna um problema no estágio da operação em que o disco rígido físico tenta ler os dados, e isso acontece no sistema operacional real, fora do contexto da VM. Antes disso, tudo provavelmente acontece na memória.

Concluindo, como sabemos que os SSDs não sofrem fragmentação no sistema operacional real e que o problema de fragmentação em uma VM provavelmente ocorre apenas na última etapa física da operação, eu acho que a desfragmentação do seu sistema operacional virtual ou do sistema operacional O arquivo de disco virtual no sistema operacional principal não melhoraria o desempenho em um SSD, sendo tão prejudicial / inútil quanto desfragmentar o sistema operacional real.

Edit: E se estiver correto, é uma boa razão para colocar uma VM em um SSD! Em um disco rígido, a fragmentação em qualquer estágio (sistema operacional convidado, arquivo de disco virtual, sistema operacional real) interrompe a linearidade e causa fragmentação na etapa do disco físico.


2

Se sua máquina virtual está acessando dados armazenados no HDD magnético tradicional ou no SSD eletrônico, o arquivo NTFS do Windows e a fragmentação de espaço livre diminuem a velocidade de acesso dos aplicativos que solicitam dados. A fragmentação do arquivo NTFS e do espaço livre ocorre com muito mais frequência do que você imagina. Tem potencial para acontecer assim que você instala o sistema operacional. Isso pode acontecer quando você instala aplicativos ou atualizações do sistema, acessa a Internet, baixa e salva fotos, cria e-mail, documentos de escritório, etc. todos os aplicativos e desempenho do sistema. À medida que a fragmentação ocorre, o sistema do computador e o armazenamento subjacente estão executando mais trabalho do que o necessário. Cada solicitação de E / S leva um tempo mensurável. Mesmo em ambientes SSD, não existe uma solicitação de E / S "instantânea". Sempre que um aplicativo solicita a leitura ou gravação de dados e esse pedido é dividido em pedidos de E / S adicionais, isso faz mais trabalho. Esse trabalho extra causa um atraso exatamente naquele exato momento.

As unidades de disco ficaram mais rápidas ao longo dos anos, mas as CPUs também. De fato, a diferença entre a diferença de velocidade entre os discos rígidos e a CPU aumentou de fato. Isso significa que os aplicativos podem obter muitos ciclos de CPU, mas ainda estão morrendo de fome para obter os dados do armazenamento. Além disso, a quantidade de dados que estão sendo armazenados aumentou dramaticamente. Pense em todas as fotos digitais tiradas e compartilhadas durante as férias. Cada foto costuma ter aproximadamente 1 MB de tamanho, agora elas ultrapassam 15 MB por foto e algumas vão muito além disso. A edição de vídeo, a renderização e o armazenamento de filmes digitais também se tornaram bastante populares e, como resultado, os aplicativos estão manipulando centenas de Gigabytes de dados. Com tamanhos de cluster de disco típicos de 4k, um arquivo de tamanho de 15 MB pode ser potencialmente fragmentado em quase 4.000 extensões. Isso significa mais 4, São necessárias 000 solicitações de E / S de disco para ler ou gravar o arquivo. Não importa que tipo de armazenamento, simplesmente levará mais tempo para concluir a operação.

O posicionamento físico dos dados em um SSD não importa realmente como em HDDs magnéticos regulares. Com um SSD, não há latência rotacional ou busca tempo para enfrentar. Muitos especialistas assumem que a fragmentação não é mais um problema, mas a velocidade de acesso aos dados do aplicativo não é apenas definida nesses termos. Cada solicitação de E / S executada leva um tempo mensurável. Os SSDs são rápidos, mas não instantâneos. O sistema de arquivos Windows NTFS não se comporta de maneira diferente porque o armazenamento subjacente é um SSD vs. HDD e, portanto, ainda ocorre fragmentação. Reduzir as E / S desnecessárias impedindo e erradicando a fragmentação reduz o número de solicitações de E / S e, como resultado, acelera o tempo de resposta dos dados do aplicativo e melhora a vida útil geral do SSD. Em essência,

Além disso, os SSDs exigem que os dados antigos sejam apagados antes que novos dados sejam gravados sobre eles, em vez de apenas escrever sobre as informações antigas, como nos HDDs. Isso dobra o desgaste e pode causar grandes problemas com o desempenho da velocidade e a vida útil do SSD. A maioria dos fabricantes de SSD possui tecnologias sofisticadas de nível de desgaste para ajudar nisso. A questão principal é a degradação da velocidade de gravação devido à fragmentação do espaço livre. Pequenos espaços livres espalhados pelo SSD fazem com que o sistema de arquivos NTFS grave um arquivo em pedaços fragmentados nesses pequenos espaços livres disponíveis. Isso tem o efeito de causar mais tráfego de E / S aleatório, mais lento que as operações seqüenciais.

Tenho resultados de benchmark para apoiar isso. Se desejar, poste um comentário, solicitando esses resultados, e ficarei feliz em compartilhá-los com você.


Howard Butler, você é novo neste site, seja bem-vindo. Em geral, é realmente desaconselhável publicar informações pessoais na internet.
Wizlog 13/02/12

@wizlog Não há nada errado em postar informações pessoais na Internet se as informações forem suas. No entanto, para fins no StackExchange, publicar suas informações de contato ou 'assinatura' em uma resposta é redundante. Os usuários podem clicar no seu perfil para obter mais informações, se desejarem.
22412 iglvzx

@iglvzx Eu estava compondo um comentário que sugeria essencialmente a mesma coisa ... Como recomendado por esta resposta.
Wizlog 13/02/12

2

Com relação à questão original de uma desfragmentação tradicional de um SSD, eu concordo que é uma má idéia, mas existem soluções específicas disponíveis que abordam as preocupações de movimentação de arquivos e vida útil do SSD.

Uma máquina virtual que está executando o Windows como seu sistema operacional, a fragmentação ainda ocorrerá e o efeito combinado do tráfego extra de E / S reduzirá a velocidade e a eficiência não apenas dos sistemas convidados, mas também do host. A Microsoft e a VMware recomendam a necessidade de lidar com a fragmentação no nível de convidado.

Aqui está o porquê…

  1. Aplicativo pede dados X

  2. A solicitação é processada pelo NTFS.sys

  3. Os atributos do arquivo são examinados ($ MFT) e, se os dados não estiverem contidos em uma única extensão (fragmento), solicitações de E / S adicionais serão criadas para cada extensão / fragmento para satisfazer a solicitação de dados original.

  4. Cada uma dessas solicitações é enviada ao driver de armazenamento em disco.

  5. Depois que os dados são recuperados, eles são transmitidos de volta à pilha para o usuário / aplicativo.

Cada máquina virtual do Windows está enviando esse tipo de tráfego de E / S para o sistema host. Se a estrutura do sistema de arquivos estiver fragmentada no nível de máquina virtual / convidado, isso se traduzirá em tráfego de E / S adicional e desnecessário que deverá ser tratado pelo host e gerido o armazenamento de back-end. Isso fica ainda mais complexo à medida que você adiciona mais e mais máquinas virtuais. De fato, você pode ter fragmentação dentro da fragmentação no nível do sistema de arquivos host.

Se os dados são armazenados em um SSD ou em um HDD tradicional, se você estiver executando o Windows, o sistema de arquivos NTFS ficará fragmentado e, como resultado, você nunca obterá a velocidade e a taxa de transferência dos fabricantes devido à fragmentação do arquivo NTFS e do espaço livre. Os efeitos podem ser medidos via PerfMon observando o Comprimento médio da fila de leitura de disco, o comprimento médio da fila de gravação e, o mais importante, a divisão de E / S.


1

A partir do Windows Server 2008 e do Windows Vista, tenha cuidado com a tarefa de desfragmentação padrão do Windows.

Pode ser desativado com: schtasks /change / tn “microsoft\windows\defrag\ScheduledDefrag” /disable

ou usando o PowerShell:

Get-ScheduledTask ScheduledDefrag | Disable-ScheduledTask

Extraído de: http://www.sysadmit.com/2015/10/vmware-y-gpo-defrag-windows.html


0

Acabei de desfragmentar uma VM do VMLite XPMode usando a desfragmentação do Windows hospedada no INTEL SSDSC2CW240A3 de 240 GB.

Tamanho de pré-desfragmentação da VM no host - 7,83Gb (espaço usado no C: na VM, 5,81Gb de 121Gb)

Pós-desfragmentação - 9,86 GB (espaço usado em C: na VM, 5,80 GB de 121 GB)

Não é o resultado que eu esperava e restaurei a versão pré-desfragmentação.


-1

Não, na verdade não. Existem coisas como "Hyperfast" do Diskeeper, mas não tenho idéia de quão eficientes são essas tecnologias. (Talvez seja apenas uma imitação para que eles não caiam no mercado depois que o SSD se tornar popular.)


Hyperfast, soa como molho mágico.
Jafin
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.