bcache en md o md en bcache

bcache permite una o más unidades de disco rápidas, como las basadas en flash unidades de estado sólido (SSD) para que actúen como caché para una o más unidades de disco duro más lentas .

Si lo entiendo correctamente,

  • una SSD * podría asignarse para almacenar en caché múltiples HDD de respaldo, y luego los dispositivos en caché resultantes podrían ser RAID con mdadm
    o
  • múltiples HDD podrían ser RAID en un solo dispositivo de respaldo md y el SSD asignado a la caché que

Me pregunto cuál es el enfoque más sensato. Se me ocurre que hacer crecer un RAID5 / 6 puede ser más simple con una u otra técnica, pero no ¡seguro cuál!

¿Hay buenas razones (por ejemplo, aumentar el almacenamiento de respaldo o cualquier otra cosa) para elegir un enfoque sobre el otro (para un sistema de archivos grande no root que contiene archivos de respaldo de VM)?


* por «un SSD» me refiero a algún tipo de dispositivo SSD redundante, por ejemplo, un RAID1 de dos físicos al SSD

Comentarios

  • En cualquier caso, todos los discos que bcache los respaldos deberán formatearse con bcache, por lo que ' tendrá que crear un md, formatee el único disco resultante por completo como una bcache partición respaldada, vincúlelo a su unidad de caché y vaya desde allí, o formatee muchos discos con bcache, vincúlelos a su unidad de caché, luego formatee los muchos discos como una matriz. En cualquier caso, hay múltiples puntos de posible falla, todos los cuales dependen de la interoperabilidad entre dos sistemas de archivos, sin mencionar los fs finales. vea aquí : desplácese hacia abajo .
  • Gracias a github.com/g2p/blocks , puede convertirlo en el lugar, aunque hay algunas limitaciones para esto.
  • @mikeserv Entiendo todo eso, esto es para un servidor especialmente diseñado por lo que ' está todo bien. ¿Qué quieres decir con " dos sistemas de archivos "? bcache no es un sistema de archivos; el único sistema de archivos que ' tendré será XFS en el dispositivo final bcache o mdadm (según la opción que elija).
  • Gracias @Adam, la conversión en el lugar no es un problema para mí.
  • @mikeserv no, no es ' t. Los sistemas de archivos (por ejemplo, btrfs, xfs, extN, etc.) se encuentran en la parte superior de los dispositivos de bloque. mdadm y bcache funcionan a nivel de dispositivo de bloque, no a nivel de sistema de archivos (btrfs confunde el problema con su ' s violación de capas, pero esa es una conversación completamente separada).

Respuesta

Creo que almacenar en caché todo el dispositivo md tiene más sentido.

Poner bcache en caché Todo el dispositivo md sacrifica la idea de tener un raid, porque introduce otro punto único de falla.

  • OTRAS fallas de los discos SSD son relativamente raras, y bcache se puede colocar en writethrough / writearound modo (en contraste con el modo writeback), donde no hay datos almacenado solo en el dispositivo de caché, y la falla del caché no mata la información en el raid, lo que lo convierte en una opción relativamente segura.

  • Otro hecho es que hay una importante sobrecarga de RAID-5 suave; al almacenar en caché cada miembro de raid giratorio por separado, la computadora aún tiene que vuelva a calcular todas las paridades, incluso en los aciertos de caché

  • Obviamente, sacrificaría algo de espacio ssd costoso, si almacena en caché cada unidad giratoria por separado. : a menos que planee utilizar una caché ssd allanada.

  • Ambas opciones relativamente no afectan el tiempo del proceso de crecimiento, aunque la opción con unidades giratorias que se almacenan en caché por separado tiene el potencial de ser más lenta debido a más tráfico de autobús.

Es un proceso rápido y relativamente simple configurar bcache para eliminar la unidad ssd, cuando necesite reemplazarla. Gracias a la bloques debería ser posible migrar la configuración del raid en ambos sentidos en el lugar.

También debe recordar que, en este momento, la mayoría (¿todos?) Las distribuciones de CD no son compatibles con bcache , por lo que no puede simplemente acceder a sus datos con estas herramientas independientemente de bcachemdraid opción de diseño que eligió.

Comentarios

  • I ' he actualizado la pregunta para dejar en claro que ' m no planeo tener una caché SSD no redundante. Su segunda viñeta el punto es un excelente punto de vista nt, gracias por eso. Su tercera viñeta sobre el espacio: ¿quiere decir porque ' almacenaría la paridad en SSD? Como su último parámetro, ' estoy usando F20 pero eventualmente usaré RHEL / CentOS7 o Debian Jessie (si bcache-tools hace el corte).
  • @JackDouglas Ad 3rd bullet: Sí, exactamente eso. Pero dado que planeas usar unidades SSD allanadas, eso no ' no se aplica a ti.
  • Aún lo hace porque ' no solo se duplicará, sino que también necesitará almacenar la paridad RAID para las unidades de respaldo. Esto no es ' t el caso si el RAID se realiza debajo de bcache, lo cual pensé que era su punto
  • Creo que quiere decir lo contrario: la matriz ssd hace ' No es necesario almacenar los discos giratorios ' en paridad, si se alimenta toda la unidad mdraid.
  • sí, eso ' s exactamente lo que quiero decir!

Responder

I » Creo que el enfoque sensato es almacenar en caché el dispositivo MD resultante.

bcache está diseñado para pasar lecturas y escrituras secuenciales.

Si bcache cada dispositivo por separado, lógicamente, varios dispositivos rayado en un MD allanado o despojado, desde la perspectiva de bcache, estará constantemente escribiendo bloques aleatorios.

Mientras que un volumen MD en bcached se verá como normal, escribir archivos en el volumen, en lugar de bloques aleatorios en varios dispositivos.

El objetivo de la incursión de hardware y software es hacer la división de datos en el backend para que los archivos resultantes El tem parece un volumen normal.

Esto puede no ser correcto (ya que los desarrolladores de bcache pueden ser inteligentes y dar cuenta de ese tipo de situación), pero lo lógico y óptimo es almacenar en caché los volúmenes, en lugar de bloquear dispositivos.

Comentarios

  • también un muy buen punto
  • Una escritura secuencial grande en un RAID5 / 6 produce escrituras secuenciales en todos los dispositivos componentes. Cada dispositivo componente obtiene cada bloque de datos N-1 (o paridad), pero los datos que obtiene son secuenciales. Pero ' tiene razón en que distorsionará las cosas. Si hay algunos fragmentos que ven escrituras frecuentes de bandas parciales, lo que da como resultado una lectura-modificación-escritura de (parte de) la banda de paridad, eso podría almacenarse en caché mediante bcache. Sin embargo, almacenarlo en caché más arriba, antes de que la escritura de banda parcial llegue al dispositivo MD, sería aún mejor.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *