
Tengo un disco duro en el que no confío del todo, pero aún quiero usarlo (minería de Burstcoin, donde si obtengo un bloque defectuoso en un archivo, solo perderé unos pocos centavos).
¿Cómo puedo decirle a btrfs que marque ciertos bloques como malos (por ejemplo, desde badblocks
la salida)?
Si no puedo marcar previamente los bloques como malos, ¿se btrfs scrub
evitarán en el futuro los bloques malos identificados por si se elimina el archivo que los utiliza?
Respuesta1
Tristemente no.
btrfs no rastrea los bloques defectuosos y btrfs scrub
no evita que el siguiente archivo alcance los mismos bloques defectuosos.
Esta publicación de la lista de correo de btrfssugiere usar ext4 con mkfs.ext4 -c
(este"crea una lista de bloques defectuosos y luego no usa esos sectores"). La sugerencia de utilizarbtrfs sobre mdadm 3.1+ con RAID0 no funcionará.
Parece queLVM no admite la reasignación de bloques defectuosos.
Una solución alternativa es construir un dispositivo que excluya los bloques que se sabe que son malos:btrfs sobre dmsetup.
Wiki de ideas de proyectos btrfsdice:
No reclamado, aún no hay parches, aún no está en el kernel
Actualmente, btrfs no realiza un seguimiento de los bloques defectuosos, es decir, bloques de disco en los que es muy probable que se pierdan los datos escritos en ellos. Btrfs debería aceptar una lista en el formato de salida de badblocks, almacenarla en un nuevo btree (o tal vez en el árbol de extensión actual, con una nueva bandera), reubicar cualquier dato que contengan los bloques y reservar estos bloques para que no puedan usarse. para futuras asignaciones. Además, se podría enseñar a Scrub a comprobar si hay bloques defectuosos cuando se encuentra un error de suma de comprobación. Esto haría que el exfoliante fuera mucho más útil; Los errores de suma de comprobación generalmente son causados por el disco, pero mientras que Scrub detecta los archivos afectados, lo que en un escenario de respaldo brinda la oportunidad de recrearlos, el siguiente archivo que reutilice los bloques defectuosos simplemente comenzará a recibir errores. Estos dos elementos coincidirían con una característica ext4 (usada a través de e2fsck).
Por favor comente si el estado cambia y actualizaré esta respuesta.
Respuesta2
Así es como estoy pensando en solucionar esta limitación. Una solución imperfecta.
- Cree ext4 sin registrar en diario como sistema de archivos (con los bloques defectuosos marcados)
- Cree una imagen de archivo btrfs encima del archivo ext4.
- Monte la imagen btrfs con el dispositivo de bucle.
Es posible que se produzcan algunos gastos generales adicionales.