Suggerirei di usare udev per impostare i parametri per i dischi SSD. In questo modo è possibile configurare uno scheduler di coda specifico più appropriato per SSD, ecc. È inoltre possibile applicare parametri solo ad alcuni dispositivi, in base a molti parametri.
Puoi ottenere gli attributi specifici necessari per abbinare i tuoi dispositivi (es. Il modello del disco e il produttore) eseguendo:
udevadm info -a -p /sys/block/sda
e controllando tutte le coppie ATTR per il dispositivo a blocchi.
Un altro vantaggio è la possibilità di impostare i parametri per i dischi collegabili (ad es. In alloggiamenti o alloggiamenti per hotswap) e l'impostazione verrà applicata a tutti i nuovi dispositivi, a condizione che i parametri del dispositivo corrispondano.
Ecco un esempio per applicare uno scheduler specifico per SSD Intel, il valore di lettura desiderato (4096 blocchi = 2048 kb) e anche uno scheduler diverso per tutti gli altri SSD:
cat /etc/udev/rules.d/99-ssd.rules
# http://unix.stackexchange.com/a/71409/36574
# Setting specific kernel parameters for a subset of block devices (Intel SSDs)
SUBSYSTEM=="block", ATTRS{model}=="Intel SSDSC*", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{bdi/read_ahead_kb}="2048", ATTR{queue/scheduler}="deadline"
# for all other non-rotational block devices set a scheduler to 'noop' and readahead to 1024KB
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{bdi/read_ahead_kb}="1024", ATTR{queue/scheduler}="noop"
Dopo aver salvato il file, puoi verificare se la tua regola corrisponderà al dispositivo e cosa farà udev usando udevadm:
udevadm test --action=add /sys/block/sda
Questo stampa tutte le regole che udev carica, cosa corrisponde, cosa no e quali decisioni prenderà udev quando il dispositivo viene collegato.
Spero che sia di aiuto.