Come utilizzare un SSD per la memorizzazione nella cache, in modo che i miei dischi rigidi possano girare?


9

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_delaysembra 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.


Usa bcache, per favore.
Mikeserv,

Risposte:


1

Penso che il tuo approccio sia troppo complicato.

leggi la cache : niente da fare qui. Se hai abbastanza RAM, questo viene fatto automaticamente in Linux.

scrivere nella cache Fondamentalmente questo è quello che vuoi. Ma se le scritture finiscono sul disco alla fine, ciò causerà anche un risveglio.

Quindi, invece, è possibile inserire direttamente i file system interessati su ram-disk / dev / shm o ssd.

risparmio energetico : non credo che frequenti spin down / up consentano di risparmiare energia. Al contrario, i dischi potrebbero morire prima, quindi c'è un consumo di energia aggiuntivo per il processo di produzione. Anche lo spin up richiede molta energia.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.