Como usar um SSD para armazenamento em cache, para que meus discos rígidos possam girar para baixo?

9

Eu tenho um servidor de arquivos com vários discos sendo executados juntos em um pool BTRFS e quero adicionar um SSD para armazenamento em cache. Eu não sou principalmente depois de acelerar as coisas, mas quero pegar os pequenos acessos regulares para poder desligar os discos rígidos na maioria das vezes sem uso pesado (não executá-los 24 horas por dia, sete dias por semana, economiza energia e deve fazer com que discos duram mais).

Até onde eu sei, atualmente existem duas técnicas de cache SSD implementadas no Linux, dm-cache e bcache. Diz-se que o dm-cache ainda é mais eficiente, mas o desenvolvimento está acontecendo para ambos e não preciso ajustar a eficiência máxima absoluta.

Ao ler a documentação do bcache , deparei-me com estas opções:

writeback_delay : Quando dados sujos são gravados no cache e anteriormente não continham, aguarda alguns segundos antes de iniciar o write-back. O padrão é 30.

writeback_percent : Se diferente de zero, o bcache tenta manter essa porcentagem do cache suja, limitando a write-back em segundo plano e usando um controlador PD para ajustar suavemente a taxa.

writeback_running : Se desativado, a gravação de dados sujos não ocorrerá. Os dados sujos ainda serão adicionados ao cache até que estejam cheios; destinado apenas para benchmarking. O padrão é ativado.

Definir um valor grande o suficiente para writeback_delayparece fazer o trabalho para mim: apenas escreva de volta uma vez por hora ou (presumo que isso aconteça) se o cache estiver cheio.

Essa é uma configuração razoável e eu considero mais alguma coisa para conseguir girar os discos? Também estou bem em seguir uma rota completamente diferente se ela atender aos meus requisitos.

Parece que a @gorkypl está procurando outra solução para um problema semelhante , mas está tendo requisitos e ambiente diferentes e também não recebeu uma resposta.

Jens Erat
fonte
Use bcachepor favor.
mikeserv

Respostas:

1

Eu acho que sua abordagem é muito complicada.

leia cache : nada a fazer aqui. Se você possui RAM suficiente, isso é feito automaticamente no Linux.

cache de gravação Basicamente, é isso que você deseja. Mas se as gravações forem para o disco no final, isso também causará uma ativação.

Portanto, você pode colocar os sistemas de arquivos afetados diretamente no ram-disk / dev / shm ou ssd.

economia de energia : eu não acho que uma rotação / redução freqüente economize energia. Pelo contrário, os discos podem morrer mais cedo, portanto, há um consumo de energia adicional para o processo de produção. Também girar é muito intensivo em energia.

Nils
fonte