Os pratos giratórios são mais lentos que a RAM. Usamos o cache de leituras / gravações para 'ocultar' esse fato.
O aspecto útil da gravação de E / S é que ela não exige que a E / S de disco aconteça imediatamente - ao contrário de uma leitura, na qual você não pode retornar dados ao usuário até que a leitura seja concluída no disco.
Assim, as gravações operam com uma restrição de tempo flexível - desde que nossa taxa de transferência sustentada não exceda a do nosso disco, podemos ocultar muitas das penalidades de desempenho em um cache de gravação.
E precisamos escrever em cache - os discos giratórios são muito lentos comparativamente. Mas, para fazer isso, os tipos modernos de RAID têm uma penalidade significativa na operação.
Um RAID 6, por exemplo, para concluir uma E / S de gravação deve:
- Ler bloco de atualização
- ler paridade1
- paridade de leitura 2
- escreva novo bloco
- paridade de gravação 1
- paridade de gravação 2
Assim, cada gravação é na verdade 6 operações de E / S - e, particularmente, quando você tem discos lentos como grandes unidades SATA, isso fica extremamente caro.
Mas há uma solução fácil e agradável - escreva coalescente. Se você pode criar uma gravação de 'faixa completa' em um buffer, não precisa ler a paridade do disco - você pode calculá-la com base no que tem na memória.
É muito desejável fazer isso, porque você não tem mais amplificação de gravação. Na verdade, você pode acabar com uma penalidade de gravação menor que o RAID 1 + 0.
Considerar:
Eixos RAID 6, 8 + 2 - 10.
8 blocos de dados consecutivos para gravação - calcule a paridade no cache e grave um bloco em cada disco. 10 gravações por 8, significa uma penalidade de gravação de 1,25. 10 discos de RAID 1 + 0 ainda têm uma penalidade de gravação de 2 (porque você precisa gravar em cada subespelho). Portanto, nesse cenário, você pode realmente fazer o RAID 6 ter um desempenho melhor que o RAID1 + 0. No uso no mundo real, você obtém um pouco mais de um perfil de IO misto.
Portanto, o cache de gravação faz uma enorme diferença no desempenho percebido dos conjuntos RAID - você pode gravar na velocidade da RAM e tem uma penalidade baixa de gravação - melhorando o rendimento sustentado, se o fizer.
Caso contrário, você sofre o desempenho lento do SATA, mas multiplique por 6 e adicione alguma contenção. Seu SATA RAID-6 de 10 vias sem cache de gravação seria um pouco mais rápido que uma única unidade sem RAID ... mas não muito.
Você se arrisca - como observa - a perda de energia significa perda de dados. Você pode atenuar isso realizando ciclos de liberação de cache, backup de bateria do cache ou usando SSD ou outros caches não voláteis.