bchache pode ser o que você está procurando. Pode atuar como escrever ou escrever de volta no cache.
ZFS e Btrfs também possui recursos para colocar blocos mais usados no armazenamento flash.
Digamos que eu tenha algumas partições; um em uma unidade SATA e um em um SSD. Eu quero criar um disco híbrido "virtual". Isso é possível?
Se você tiver um conjunto de arquivos para os quais precisa de baixa latência, é possível estabelecer um volume RAID-1 que espelhe o conteúdo SSD em um disco rígido. Declare o componente do disco rígido como “write-mostly”, de modo que o SSD seja favorecido durante a leitura. Por exemplo, se sda
for seu SSD e sdb
for seu disco rígido, crie uma partição sda1
que cubra toda a unidade, crie uma partição sdb1
do mesmo tamanho e crie um volume RAID com
mdadm --create -l 1 -n 2 /dev/md0 /dev/sda1 --write-mostly /dev/sdb1
Existe flashcache . É usado pelo Facebook para acelerar os sistemas de armazenamento de banco de dados.
Ainda não experimentei, por isso a sua milhagem pode variar.
Desde o Linux 3.9 dm- O cache foi mesclado na árvore principal. De acordo com a documentação, é especificamente projetado para este fim.
It aims to improve performance of a block device (eg, a spindle) by dynamically migrating some of its data to a faster, smaller device (eg, an SSD).
Ele também fornecerá o cache de gravação em alguma extensão:
If writeback, the default, is selected then a write to a block that is cached will go only to the cache and the block will be marked dirty in the metadata.
Sobre o disco híbrido virtual que você gostaria de ver:
This device-mapper solution allows us to insert this caching at different levels of the dm stack, for instance above the data device for a thin-provisioning pool.
Em outras palavras, o dm-stack permite que você use qualquer dispositivo / partição de bloco para se tornar um único disco virtual em cache como um dispositivo de armazenamento, assim como um /dev/md0
em um conjunto de invasores de software.