¿Cuál es la diferencia entre btrfs raid1 y btrfs -m dup -d dup en un solo dispositivo?

¿Cuál es la diferencia entre btrfs raid1 y btrfs -m dup -d dup en un solo dispositivo?

He estado usando btrfs durante aproximadamente dos años en varios dispositivos.

Estoy planeando probar algunas configuraciones de btrfs en un HDD (plato único) que tiene sectores no confiables. A veces, una docena de sectores del disco duro no son legibles.

¿Habría alguna diferencia en términos de integridad de datos y velocidad general de lectura y escritura en estas configuraciones?

1 TB HDD
-1 TB btrfs partition created with `mkfs.btrfs -d dup -m dup /dev/sda1`

1 TB HDD
-500 GB partition
-500 GB partition
--500 GB btrfs Raid 1 `mkfs.btrfs -m raid1 -d raid1 /dev/sda1 /dev/sda2`

Respuesta1

Sugeriría usar la variante con dupen lugar de poner varias particiones en el mismo dispositivo y atacarlas. La variante raid es mala porque solicita que se lean ambas copias mientras se accede a los datos (esto es bueno para raid multidispositivo normal porque si cualquiera de los dispositivos es más rápido, los datos estarán disponibles antes). Con un dispositivo giratorio de un solo dispositivo, esto hace que el cabezal de lectura salte entre diferentes particiones, por lo que si tiene varias solicitudes en la cola (el caso habitual), terminará con un rendimiento realmente malo. Aumentar la profundidad de la cola y el programador CFQ puede reducir un poco la latencia general, pero es mejor evitar ese desorden.

La dupvariante debe ser lo suficientemente sensata como para leer solo una copia por lo general y solo recurrir a otra copia si el sector no es legible.

No estoy seguro de dupla implementación, pero supongo que eso dupno aleja el dispositivo de copia 1/2 de la primera copia, por lo que dupprobablemente también aumente el rendimiento de escritura. Con la incursión de un solo dispositivo, el rendimiento de escritura también será malo, porque una operación de escritura lógica debe escribirse en dos ubicaciones en un dispositivo giratorio físico y la diferencia es siempre 1/2 dispositivo, por lo que termina con un algoritmo que prácticamente implementa el conjunto. peor comportamiento de un dispositivo rotacional.

Respuesta2

Se me ocurre una diferencia entre DUP y RAID1:

  • Si tienes (como yo) algunos SSD que cuando no se usan empiezan a decir que los sectores aleatorios no son legibles
  • Entonces DUP puede ser PÁNICO, ya que uno de esos sectores no legibles en el encabezado de la partición BTRFS y BTRFS no pueden montar, leer, etc., nada almacenado en él. Mientras que con RAID1, monta el otro (si no hay uno de esos sectores no legibles en el otro encabezado de partición BTRFS) y realiza una limpieza para reescribir los sectores no legibles.
  • RAID1 implica dos particiones, cada una con su encabezado, por lo que si un encabezado se dañó (reformatear la partición) y el encabezado de la otra partición es correcto, puede montar la otra partición y acceder en modo degradado y arreglarlo (agregar otra partición nueva). , eliminar el que falta, equilibrar en el nivel RAID1)

Ahora mi historia personal con los SSD KingDian, que sufren sectores aleatorios no legibles después de un largo período de tiempo (más de ocho días) sin energía; y cómo BTRFS RAID1 puede guardarse y permitir el uso de dichos SSD (hasta una colisión en sectores no legibles).

Primero quiero agradecer a BTRFS y su DUP (lo probaré en un futuro próximo) y RAID1 (ya probado con resultados perfectos); Me permitió usar mis SSD de la marca KingDian. Para las marcas Yucun y Samsung, todavía no veo el problema de los "sectores no legibles" que muestran los tres SSD de la marca KingDian. Tengo en uso un total de 11 SSD, un KingDian murió, por lo que ahora solo uso 10) y un SSD KingDian 1TiB que tengo miedo de comenzar a usar (tenía planeado usarlo en FAT32 o NTFS para reproducción de TV, mi legalmente comprar DVD convertidos a H.264/2xAAC).

El problema con los SSD KingDian es realmente extraño así que te contaré lo que hago paso a paso para ver el problema:

  1. Cree una partición solo al 90% y formatéela, hasta hace unos días usé Ext4 (Linux) / NTFS (partición del sistema de Windows); Realmente odio Windows pero me veo obligado a usarlo.
  2. Instalar el sistema en esa partición
  3. Utilice el sistema todos los días --> No se muestra ningún problema
  4. Apague y déjelo encendido por más de ocho días --> Aparece un problema en KingDian SS
  5. Para ver el problema, inicio con una distribución Live Linux (DVD / USB / etc.), uso principalmente SystemRescueCD, pero cualquier otra que tenga "ntfsclone" / "partclone.*" / "partimage" o simplemente un simple "dd" atender
  6. Hago una clonación de la partición y la guardo como un archivo (como guardar la partición del sistema en un medio de respaldo)
  7. El problema aparece, hay algunos sectores (entre unos pocos hasta cerca de 25 o 30) que no son legibles.
  8. Tomo nota (en un papel) qué sectores no son legibles
  9. Ahora comienza lo raro, lo apago correctamente y lo dejo apagado por otros ocho o más días.
  10. Repito los pasos 4 al 7 para ver qué sectores ahora no son legibles, la lista cambia mucho, la mayoría de veces ambas listas no tienen nadie en común, por lo que todos los sectores no legibles se habían vuelto legibles y otros que ahora eran legibles no lo son.
  11. Puedo repetir esto muchas veces (sin escribir nada en el SSD) y todas las listas de sectores no legibles tienden a no tener ningún sector en común (a veces uno está en dos listas)

¿Por qué estos SSD (solo con la marca KingDian) hacen cosas tan feas y raras? aleatoriamente dicen que algunos sectores no son legibles después de un largo período (más de ocho días) sin suministro de energía, y después de otro período (más de ocho días) sin suministro de energía volvieron a ser legibles.

Lo más extraño es que después de no ser legibles y volver a ser legibles, todos siempre tienen los datos correctos.

Además, consulto datos SMART y dice que no hay ningún nuevo sector reasignado (tiene algunos porque una vez usé en Windows una herramienta para forzar la reasignación de sectores no legibles).

SMART info también dice que no hay error de lectura, mientras que algunos sectores no son legibles, y también dice que no hay error de escritura.

Obviamente no hay ningún error de "lectura", nada "leído" con datos "incorrectos"... eso es técnicamente diferente a no poder leer... y los datos SMART no tienen ningún campo que pueda ver que muestre un recuento de errores no legibles. ... etc.

Por cierto, si reescribo sectores no legibles con datos, se vuelven legibles nuevamente sin que se haya reasignado ningún sector, tal vez porque los internos que se usan no son los que fallan (recuerde que SSD en escrituras usa diferentes lugares para extender En vivo, SSD utiliza un mapa interno LBA (posición real dentro de los chips).

Por cierto, clonar una partición con 30 GiB de datos y sin ese problema solo tomó menos de un minuto (el SSD puede leer a 550 MiB/s sostenido mientras clona la partición, también conocido como lecturas en su mayoría secuenciales); pero con 25 sectores no legibles tardó más de 24 horas (ignorando dichos errores o sino no termina) y tendrá algunos datos "corrompidos" (el que no se pudo leer).

Aquí es donde BTRFS viene a salvarme:

  • En primer lugar, estaba usando dos particiones en el mismo SSD en el nivel RAID1 de BTRFS para DATOS y METADATOS.
  • Ahora que conozco DUP en lugar de RAID1, probaré con DUP; y eso me permitirá evitar ejecutar dos copias de seguridad de particiones clonadas cada vez, solo una; eso sería genial (si funciona)

¿Cómo será salvarme? Fácil: antes de hacer una clonación del medio de copia de seguridad, hago una limpieza en lo que quiero clonar para que los sectores no legibles hagan que BTRFS los sobrescriba con la otra copia (esperando que no haya ningún sector no legible para ambas copias al mismo tiempo). mismo tiempo y misma posición).

Con dos particiones funcionó bien (lento, pero funcionó) y no perdió algunos sectores en los datos clonados; Ahora debo probar con DUP en una partición en lugar de RAID1 en dos particiones de idéntico tamaño.

No reduce el tiempo para realizar la copia de seguridad (también la limpieza requiere tiempo extra), pero al menos puedo estar seguro de que todos los datos son correctos... hasta que un día aparecen dos sectores no legibles para los mismos datos (colisión) en el misma posición al mismo tiempo, eso será irrecuperable.

La otra opción es obvia: No usar más ningún SSD KingDian, que hasta ahora son los únicos que he usado que presentan ese problema (sectores no legibles después de largos periodos sin energía).

¡Imagínese que sale de vacaciones, corta la energía general de la casa, regresa y sus SSD tienen partes no legibles! Gran problema para los usuarios domésticos, no para los centros de datos donde los SSD siempre funcionan.

¡¡¡Gran BTRFS!!! Ahora piense en la otra parte fea (para mí), ¿cómo hacer algo similar para la partición NTFS (partición del sistema de Windows)? De ninguna manera, NTFS no tiene esa opción (recuerde las versiones de Windows HOME, no SERVIDORES, etc.).

Entonces, gracias BTRFS, Linux es mucho mejor de lo que pensaba hace unos días... soy un usuario de Linux desde hace décadas... pero me negué a probar BTRFS porque toda la información MALA sobre corrupción total, etc.; hasta que encuentro un problema de SSD y necesito algo con redundancia.

La otra opción en la que estaba pensando era ZFS, mucho más complicado, no integrado en el gestor de arranque GRUB2, no integrado en el Kernel (y tal vez nunca lo esté debido al sistema de licencias), etc.; Así que probé (ayer) BTRFS... y qué sorpresa, parece realmente estable, relativamente fácil de usar (advertencia al agregar un disco nuevo, lo agrega en RAID0, no en RAID1, no uso RAID5/6/ etc ni quiero usarlo), fácil de recuperar de daños catastróficos (volver a formatear una de las dos particiones) sin que se pierdan datos (en SSD que no sean KingDian), etc.

Por supuesto, no uso subvolúmenes, instantáneas, etc. solo como un sistema de archivos simple para la raíz de Linux "/" en RAID1; Como dije, debo probar con DUP en lugar de RAID1, pero me temo (soy muy paranoico) que me quedaré con DOS particiones en el mismo SSD en RAID1, ya que un sector no legible en el encabezado de la partición implicará que todos los BTRFS no son recuperables. /legible.

Si todavía puedo ver SSD KingDian entre los que presentan fallas en sectores aleatoriamente no legibles, me ahorraría dinero, los SSD no son baratos ya que solo quiero usar SSD de celda de un solo bit y eso es realmente costoso, más a medida que aumenta el tamaño (digo Soy muy paranoico) y tengo más de 10 copias de seguridad fuera de línea de todos los datos con historial de más de cien últimos estados (demasiado paranoico, lo sé).

Respuesta3

He encontrado al menos una diferencia:

Puedes montar tu raid1 rw degradado solo una vez. La posibilidad de que una partición falle mientras otra partición de su dispositivo está en buen estado puede ser mínima, sin embargo, esta es una diferencia.

Fuente: https://btrfs.wiki.kernel.org/index.php/Gotchas#raid1_volumes_only_mountable_once_RW_if_degraded

Los volúmenes raid1 solo se pueden montar una vez RW si están degradados

Incluso si no hay fragmentos de perfil únicos, los volúmenes raid1, si se degradan, solo se pueden montar en lectura y escritura una vez con las opciones -o degradado,rw.

Notas:

  • Esto no sucede (según se informa) cuando hay más de 2 dispositivos.

  • Esto no sucede con los volúmenes de perfil raid10.

  • Esto a menudo se debe al problema de "Conversión de fragmentos incompleta", donde quedan fragmentos individuales.

Posibles recuperaciones:

  • Si todavía es de lectura y escritura, puede convertir los fragmentos del perfil raid1 al perfil único (o perfil dup) si tiene suficiente espacio).

  • Si todavía es de lectura y escritura, puede reemplazar el dispositivo que falta por el dispositivo btrfs.

  • Cuando un volumen raid1 se bloquea como de solo lectura por cualquier motivo, solo se puede recuperar volcando su contenido, recreándolo y restaurándolo.

Respuesta4

Tarde a la fiesta, pero de todos modos. Me preguntaba sobre la misma pregunta y en el hombre que leí (sobre dup):

"Por ejemplo, una unidad SSD puede reasignar los bloques internamente a una sola copia, deduplicándolos así. Esto anula el propósito de una mayor redundancia (sic) y simplemente desperdicia espacio"

Quizás raid1 sería una forma de evitar esa preocupación (o no).

información relacionada