Ho un file server con un sacco di dischi che corrono insieme in un pool BTRFS e voglio aggiungere un SSD per la memorizzazione nella cache. Non sono principalmente dopo aver accelerato le cose, ma voglio catturare i piccoli accessi regolari per essere in grado di spegnere i dischi rigidi per la maggior parte del tempo di non utilizzo intenso (non eseguirli 24/7 risparmierà energia e dovrebbe rendere i dischi durano più a lungo).
Per quanto ne so, al momento esistono due tecniche di cache SSD implementate in Linux, dm-cache e bcache. dm-cache viene ancora detto di essere più efficiente, ma lo sviluppo è in corso per entrambi e non ho bisogno di sintonizzarmi per la massima efficienza assoluta.
Leggendo la documentazione di bcache , sono arrivato a queste opzioni:
writeback_delay : quando i dati sporchi vengono scritti nella cache e in precedenza non ne contenevano, attende alcuni secondi prima di iniziare il writeback. Il valore predefinito è 30.
writeback_percent : se diverso da zero, bcache tenta di mantenere sporca questa percentuale della cache limitando il writeback in background e utilizzando un controller PD per regolare senza problemi la velocità.
writeback_running : se questa opzione è disattivata, il writeback dei dati sporchi non avrà luogo affatto. I dati sporchi verranno comunque aggiunti alla cache fino a quando non saranno per lo più pieni; inteso solo per benchmarking. L'impostazione predefinita è on.
L'impostazione di un valore abbastanza grande per writeback_delay
sembra fare il lavoro per me: riscrivere solo una volta all'ora, oppure (suppongo che ciò accada) se la cache è piena.
È una configurazione ragionevole e devo considerare qualcos'altro per riuscire a far girare i dischi? Sto anche bene seguendo una strada completamente diversa se soddisfa i miei requisiti.
Sembra che @gorkypl stia cercando un'altra soluzione su un problema simile , ma ha requisiti e ambiente diversi e non ha ancora ricevuto una risposta.
bcache
, per favore.