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/fstab
y 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 --block
y --bucket
?
Respuesta1
Logré solucionar este problema recreando el superbloque en /dev/sdc4
. Parece que --block 4k --bucket 2M
era 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-show
para 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_state
de invalid
, sus datos de respaldo están a merced de fsck
.
Si bcache-super-show
dice que el dev.data.cache_state
estado de respaldo es clean
y cset.uuid
consta 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