problema / efeito observado
Parece que o cache de páginas ignora os dispositivos de bloco que não estão abertos. E pior: as leituras dos dispositivos do dispositivo de mapeamento (DM) que usam um dispositivo em cache não são armazenadas em cache (a menos que sejam abertas).
Eu uso este comando (em repetição) para testes:
time dd if=/dev/sda11 of=/dev/null bs=50M count=1
Se sda11
for aberto para leitura ( exec 4</dev/sda11
), montado ou parte de um dispositivo de mapeamento de dispositivo ( echo "0 1427456 linear /dev/sda11 0" | dmsetup create cache1
), o cache funciona.
Mas se eu criar / dev / mapper / cache1 em cima de sda11, nem a primeira leitura nem a segunda vem do cache (se ela não estiver aberta de alguma forma).
motivação
A razão pela qual estou fazendo isso: eu tenho um volume criptografado e a inicialização do meu sistema (KDE) leva um bom tempo. Eu faço algumas preparações manuais antes de abrir o volume criptografado, portanto, pensei que poderia usar esse tempo para ler o dispositivo criptografado (LVM) para acelerar o início do KDE. Mas, para o problema de cache mencionado, isso é inútil.
pergunta
Existe algum truque para ler a partir do LV de uma maneira que o dispositivo de criptografia DM criado posteriormente lê a partir dele através do cache (preenchido)?