Cache de write-back do Windows Spaces Storage Storage, como configurar o limite que determina se a gravação é executada no cache de write-back?

2

O recurso Espaços de armazenamento incluído no Windows Server 2012 e o Windows Server 2016 em andamento consistem em um disco virtual. Em uma implantação de armazenamento hierárquico, é criado um cache write-back (o tamanho padrão é 1 GB). Existe um limite configurado nos Espaços de Armazenamento que determina se uma determinada operação de gravação irá ou não ao cache de write-back. Esse limite é muito pequeno e faz com que a maioria das gravações não caia no cache de write-back.

Como exemplo, vamos supor que o cache write-back possa atingir 500MB / s, enquanto o nível mais lento opera com apenas 75MB / s. Depois de criar o disco virtual e criar um volume recém-formatado, é imediatamente notado que uma operação de cópia de um arquivo de 386 MB leva mais de um segundo para terminar no Disco Virtual do Storage Spaces. Seria de se esperar que o arquivo fosse copiado em menos de um segundo supondo que o cache write-back consumiria a operação, mas isso não acontece. Em vez disso, a camada de armazenamento detecta que o tamanho da gravação excede o limite predefinido para gravação no cache de write-back e encaminha a gravação para a camada mais lenta, o que leva cerca de 5 segundos para ser concluída. Acho decepcionante que o cache write-back não acelere essa operação de cópia de arquivos.

Informações básicas podem ser encontradas aqui:

Meu objetivo é acelerar mais operações de gravação, não apenas aquelas de tamanho muito pequeno. Aqui está uma lista de alguns outros provedores de software que conseguiram isso:

  • VirtuCache: link
  • Intel CAS: link
  • PrimoCache: (modo de armazenamento em cache de gravação adiada) link

Se a Microsoft tivesse uma maneira de simplesmente permitir o cache de gravação adiada, ou modificar o limite para o que deve ser gravado no cache de write-back, as velocidades de Storage Spaces poderiam ser melhoradas em 20 vezes (de acordo com os benchmarks fornecidos por esses fornecedores de terceiros).

Duas perguntas:

1) Qual é o limite padrão (em Kilobytes) para os Espaços de Armazenamento escolherem realizar gravações no cache de write-back?

2) Qual comando pode ser emitido no PowerShell para modificar o limite para que eu possa instruir os Espaços de Armazenamento a realizar gravações maiores no cache de write-back?

    
por FlashDictionary 09.07.2016 / 01:43

2 respostas

4

Não há limite conhecido para isso. Se o WBC habilitado, todas as gravações passarão a piscar independentemente do tamanho. O único caso em que eles vão para o flash de bypass do disco é quando o flash já está cheio e liberando-o antes de confirmar que a gravação mais recente é inútil: a latência vai aumentar em todo o telhado.

Algumas boas leituras sobre o assunto:

link

link

Eu prefiro evitar o software de armazenamento em cache de terceiros, a menos que eles tenham algo de real valor para trazer, como o f.e. cache de write-back de DRAM distribuído. Você precisa executar um cluster com algo como o StarWind vSAN para isso, já que um cache DRAM enorme em um único servidor está implorando por problemas.

link

Você pode experimentar o cache do CSV, mas é somente leitura até o momento.

link

O próximo Windows Server 2016 também tem algumas otimizações, então vale a pena tentar.

link

    
por 10.07.2016 / 14:53
2

Se você quiser personalizar o tamanho do cache de write-back, use os cmdlets do Windows PowerShell e o parâmetro -WriteCacheSize, por exemplo:

New-VirtualDisk -StoragePoolFriendlyName "Meu pool de armazenamento" -FriendlyName TieredSpace -StorageTiers @ ($ ssd_tier, $ hdd_tier) -StorageTierSizes @ (50 GB, 300 GB) -ResiliencySettingName Mirror -WriteCacheSize 2 GB

Nota: Depois que um disco virtual é criado, seu WriteCacheSize não pode ser modificado.

Fonte: link

De modo geral, o WBC do Storage Spaces não é otimizado para uma grande capacidade de cache e, pessoalmente, não atribuiria mais de 5GB em nenhum caso.

Além disso, como o @ BaronSamedi1958 notou, o cache de RAM distribuído é uma maneira muito melhor de acelerar a E / S de gravação e a implementação de cache do StarWind definitivamente vale a pena tentar.

    
por 11.07.2016 / 12:39