Para RAID ou não para RAID: SSDs e virtualização

8

Estou chegando àquele momento em que meu PC principal desacelerou o suficiente devido à podridão do Windows e eu provavelmente deveria reinstalar. Em vez de passar uma semana em queda de braço, reinstalando e configurando apenas para descobrir que eu esqueci de fazer backup das minhas configurações do Visual Studio mais uma vez , vou atualizar. Já comprei todas as peças e estou em processo de benchmarking para encontrar a melhor configuração.

Comprei dois SSDs Crucial M4 de 120GB (atualizados para o firmware mais recente a partir de abril de 12:) 00Fe tenho realizado alguns benchmarks rápidos usando o CrystalDiskMark . Aqui estão alguns resultados:

Unidade única:

Desempenho de unidade única

RAID 0via controlador de chipset Intel Z77 :

RAID 0

Esses benchmarks obviamente não são exaustivos, mas acho que eles me dão uma boa idéia do que esperar entre várias configurações.

Meu entendimento é que, para os padrões de uso mais comuns, como o desenvolvimento com o Visual Studio (meu uso principal), as 4Kleituras e gravações são muito mais comuns, mesmo durante as compilações. Entre RAID 0e não, há pouca diferença. Mas com 512Ke SequentialR / W, as diferenças são suficientes para merecer atenção.

O problema é que, para evitar futuros problemas de podridão - e, francamente, porque eu posso - vou depender muito mais da virtualização. Meu plano é segmentar diferentes partes do meu ambiente de desenvolvimento em máquinas virtuais usando o VMware Workstation : Visual Studio e ferramentas de acompanhamento em um, SQL Server em outro, Adobe Design Suite em outro, etc. Aproveitando os instantâneos da VM e o fácil que é para criar ou clonar novos, acredito que veremos uma melhoria na confiabilidade a longo prazo (e só vejo os pop-ups de atualização da Adobe quando eu quiser).

Então, minha pergunta é: a virtualização merece o uso de uma RAID 0configuração de SSD em vez de uma configuração tradicional (no meu caso, SO e aplicativos bare-metal em um SSD, VM no outro)? A virtualização tirará proveito das vantagens 512Ke Sequentialdesvantagens de R / W RAID 0?


Uma observação:

Eu li que alguns SSDs modernos são capazes de gerenciar a coleta de lixo por conta própria, por isso não TRIMé menos um problema. Eu não sei como habilitar isso nos meus SSDs ou até mesmo ver se eles suportam isso.


Editar:

Com relação à recuperação de desastres, esse sistema também possui grandes unidades de prato padrão para armazenamento de arquivos e um controlador RAID secundário que eu usarei em uma matriz espelhada. Combinado com backups locais noturnos, backup externo constante via Carbonite e check-ins consistentes de controle de origem externa, eu tenho um meio suficiente de impedir a perda de dados.

Chad Levy
fonte
11
Eu evitaria o RAID 0 sem um plano exaustivo de recuperação de desastre, mas a virtualização definitivamente aproveitará a velocidade aprimorada dos SSDs nessa configuração.
Bom ponto. Esqueci de mencionar que também tenho algumas unidades padrão a bordo e tenho backups de várias cabeças no local e fora do local. Portanto, não estou completamente ferrado se uma unidade morrer, mas esse é um bom ponto, porque esqueci que se uma unidade em uma matriz RAID 0 desaparecer, todos os dados serão perdidos.
Chad Levy
11
Outro possível problema que pode merecer alguma atenção: A execução do RAID pode exigir que todas as E / S estejam em unidades de um tamanho de faixa específico. As VMs provavelmente não farão E / S alinhadas com esses tamanhos de faixa, e você causará uma amplificação de gravação massiva que pode reduzir significativamente a vida útil das unidades.
afrazier

Respostas:

5

Primeiro, sabe-se que o código de compilação é basicamente vinculado à CPU; portanto, não espere melhorias em um único SSD.

Em seu benchmark, embora o desempenho da profundidade da fila 0k de 0k não aumente, a profundidade da fila de 4k 32 (QD32) aumenta bastante linearmente. IMO, esse resultado deve orientar sua decisão.

Embora as estações de trabalho não sejam servidores de banco de dados com profundidades de fila constantemente grandes, profundidades de fila de 2 a 20 são comuns pelo menos em intermitência durante o uso semi-intensivo de estações de trabalho - nesses casos, a IO aleatória de fato melhora com o RAID 0. outra camada de atividade simultânea do sistema operacional (e você pode acabar usando mais de 2 VMs simultâneas), acho que essa métrica deve melhorar as coisas no seu cenário.

Você pode monitorar o uso atual da profundidade da fila no Monitor de desempenho do Windows (Adicionar contador ... Disco físico ... Média da profundidade da fila de leitura / gravação) para ter uma idéia.

O RAID adiciona uma camada de complexidade (e problemas de backup / recuperação), mas ter uma partição maior de 240 GB é definitivamente um IMO positivo. Verifique se há problemas com o TRIM antes de usar o RAID com suas unidades - isso pode ser um obstáculo.

mtone
fonte
Ótima informação, obrigado. Em relação ao suporte TRIM - acho que o TRIM está funcionando, ou pelo menos está ativado de acordo com fsutil. O Windows ativaria o TRIM se os comandos não estivessem sendo transmitidos pela interface RAID?
Chad Levy
11
Eu não sou muito familiar (só tenho 1 SSD aqui ..), mas acredito que, como os controladores RAID não suportam TRIM, você nunca verá uma referência a ele em nenhum lugar. Em outras palavras, o TRIM seria tecnicamente desativado, portanto você deve ter certeza de que o firmware do seu SSD está executando um gerenciamento de lixo decente internamente (no entanto, não me cite nisso). Observe que os drivers Intel RST devem suportar RAID TRIM algumas vezes em 2012, se é isso que você está usando. Outros controladores provavelmente seguirão.
Mtone
3

A velocidade do disco rígido é importante para o desempenho geral do Visual Studio. Scott Guthrie toca bem nesse post :

As CPUs com vários núcleos nas máquinas foram rápidas o suficiente nos últimos anos para que, nos cenários de aplicativos mais comuns, você geralmente não acabe bloqueando a capacidade do processador disponível em sua máquina.

Quando você está desenvolvendo com o Visual Studio, acaba lendo / gravando muitos arquivos e passa muito tempo fazendo atividades de E / S do disco. Projetos e soluções grandes podem ter centenas (ou milhares) de arquivos de origem (incluindo imagens, css, páginas, controles de usuário etc.). Quando você abre um projeto, o Visual Studio precisa ler e analisar todos os arquivos de origem, para fornecer intellisense. Quando você está inscrito no controle de origem e faz check-out de um arquivo, está atualizando arquivos e carimbos de data e hora no disco. Quando você faz uma compilação de uma solução, o Visual Studio verifica os assemblies atualizados de vários locais do caminho do disco, grava vários novos assemblies no disco quando a compilação é concluída, além de persistir arquivos de símbolo de depurador .pdb no disco com eles (todos como operações separadas para salvar arquivos).

Na minha experiência pessoal, o uso de um SSD ajudou muito, mas como uma grande quantidade de E / S do disco é provavelmente uma leitura aleatória pequena, o RAID 0 pode não ser uma grande melhoria. A outra coisa que você pode encontrar é que a E / S do disco virtual consome alguns de seus ganhos.

Brad Patton
fonte
3

O Intel Z77 suporta o Trim com RAID e é um dos primeiros chipsets de baixo orçamento a fazê-lo. Mas você precisa especificar na configuração de armazenamento que está usando um SSD.

Daniel
fonte