Não é possível anexar o dispositivo de cache ao dispositivo de apoio

Não é possível anexar o dispositivo de cache ao dispositivo de apoio

Eu tenho um LVM e queria usar o bcache para armazenar em cache um de seus LVs. (Sim, eu sei que poderia usar o lvmcache, mas estava tendo problemas para inicializar e desisti de usá-lo.)

Primeiro, useiblocospara converter o LV em um dispositivo de apoio bcache (isso pareceu realmente funcionar!):

blocks to-bcache /dev/my_vg/my_lv

Criei um dispositivo de cache no meu SSD:

make-bcache --block 4k --bucket 2M -C /dev/sdc4

Em seguida, tentei anexar o cache ao dispositivo de apoio:

bcache-super-show /dev/sdc4 | grep cset.uuid
echo 'above_uuid' > /sys/block/bcache0/bcache/attach

Em seguida, reiniciei minha máquina (depois de adicionar /dev/bcache0) /etc/fstabe percebi que o cache não estava funcionando.

# cat /sys/block/bcache0/bcache/state
no cache

# bcache-super-show /dev/my_vg/my_lv | grep cache_state
dev.data.cache_state    0 [detached]

Estou esquecendo de algo? Existe outro comando que preciso usar para ativar o cache?

Por que o bcache não gosta do meu dispositivo de cache e não me permite conectá-lo ao meu dispositivo de backup? Usei os valores errados para --blocke --bucket?

Responder1

Consegui consertar isso recriando o superbloco no /dev/sdc4. Parece que --block 4k --bucket 2Mestava incorreto e é por isso que o dispositivo de cache não estava conectado.

Limpei o superbloco e executei:

make-bcache -C /dev/sdc4

Agora, quando eu fiz:

echo 'uuid' > /sys/block/bcache0/bcache/attach

funcionou!

Responder2

Eu tive o mesmo problema:

make-bcache --block 4k --bucket 2M -C /dev/nvme0n1p1

causou o erro de gravação: argumento inválido.

Especificamente, foi o --block 4k que causou o problema.

make-bcache --bucket 2M -C /dev/nvme0n1p1 

Funcionou perfeitamente.

Responder3

Primeiro, tente alguma limpeza:

echo $cset_uuid | sudo tee /sys/fs/bcache/pendings_cleanup
echo $backing_uuid | sudo tee /sys/fs/bcache/pendings_cleanup

Use bcache-super-showpara obter os uuids.

Em seguida, tente novamente se registrar:

echo $cset_uuid | sudo tee /sys/fs/bcache/register
echo $backing_uuid | sudo tee /sys/fs/bcache/register

O uuid do cache deve existir em /dev/fs/bcache se o dispositivo de cache for registrado com sucesso.

Se o seu dispositivo de backup tiver um cache_statede invalid, seus dados de backup estarão à mercê de fsck.

If bcache-super-showdiz que o dev.data.cache_stateestado de apoio é cleane cset.uuidconsiste apenas em zeros, o dispositivo bcache está no estado inválido e deve ser recriado. [fonte]

No entanto, se estiver limpo, você pode tentar forçar a inicialização do dispositivo de apoio sem dispositivo de cache:

echo 1 | sudo tee /sys/class/block/$dev/bcache/running

informação relacionada