No se puede conectar el dispositivo de caché al dispositivo de respaldo

No se puede conectar el dispositivo de caché al dispositivo de respaldo

Tengo un LVM y quería usar bcache para almacenar en caché uno de sus LV. (Sí, sé que podría usar lvmcache, pero tuve problemas al iniciar y dejé de usarlo).

Primero, usébloquespara convertir el LV en un dispositivo de respaldo bcache (¡esto realmente pareció funcionar!):

blocks to-bcache /dev/my_vg/my_lv

Creé un dispositivo de almacenamiento en caché en mi SSD:

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

Luego intenté adjuntar el caché al dispositivo de respaldo:

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

Luego reinicié mi máquina (después de agregarla /dev/bcache0) /etc/fstaby me di cuenta de que el caché no se estaba ejecutando.

# 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]

¿Me estoy perdiendo de algo? ¿Hay algún otro comando que deba usar para habilitar el almacenamiento en caché?

¿Por qué a bcache no le gusta mi dispositivo de caché y no me permite conectarlo a mi dispositivo de respaldo? ¿Usé valores incorrectos para --blocky --bucket?

Respuesta1

Logré solucionar este problema recreando el superbloque en /dev/sdc4. Parece que --block 4k --bucket 2Mera incorrecto y es por eso que el dispositivo de caché no se conectaba.

Borré el superbloque y luego ejecuté:

make-bcache -C /dev/sdc4

Ahora cuando lo hice:

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

¡funcionó!

Respuesta2

Yo tuve el mismo problema:

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

provocó el error de escritura: Argumento no válido.

Específicamente, fue el --block 4k el que causó el problema.

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

Funcionó perfectamente.

Respuesta3

Primero, intente un poco de limpieza:

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

Úselo bcache-super-showpara obtener los uuids.

Luego intente nuevamente registrarse:

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

El uuid de caché debe existir en /dev/fs/bcache si el dispositivo de caché se registró correctamente.

Si su dispositivo de respaldo tiene un cache_statede invalid, sus datos de respaldo están a merced de fsck.

Si bcache-super-showdice que el dev.data.cache_stateestado de respaldo es cleany cset.uuidconsta solo de ceros, el dispositivo bcache está en un estado no válido y debe volver a crearse. [fuente]

Sin embargo, si está limpio, puede intentar forzar el inicio del dispositivo de respaldo sin dispositivo de caché:

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

información relacionada