Si entiendo correctamente,
- un SSD * podría asignarse a la caché de múltiples HDD de respaldo, y luego los dispositivos en caché resultantes podrían RAIDizarse con mdadm
o - múltiples discos duros se podrían RAIDAR en un solo dispositivo de respaldo md y el SSD asignado a la caché que
Me pregunto cuál es el enfoque más sano. Se me ocurre que cultivar un RAID5 / 6 puede ser más simple con una u otra técnica, ¡pero no estoy seguro de cuál!
¿Existen buenas razones (por ejemplo, aumentar el almacenamiento de respaldo o cualquier otra cosa) para elegir un enfoque sobre el otro (para un gran sistema de archivos 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 SSD físicos
bcache
copias de seguridad tendrán que formatearsebcache
, por lo que tendrá que crear unamd
matriz, formatear el único disco resultante completamente como unabcache
partición respaldada, vincularlo a su unidad de caché e ir desde allí, o formatear muchos discos conbcache
, vincúlelos a su unidad de caché, luego formatee los muchos discos como una matriz. En cualquier caso, existen múltiples puntos de posible falla, todos los cuales dependen de la interoperabilidad entre dos sistemas de archivos, sin mencionar los fs finales. ver aquí : desplazarse hacia abajo .Respuestas:
Creo que el almacenamiento en caché de todo el dispositivo MD tiene más sentido.
Poner bcache en la memoria caché de todo el dispositivo md sacrifica la idea de tener una incursión, porque introduce otro punto único de falla.
Los fallos OTH de los discos SSD son relativamente raros, y bcache se puede poner en el modo
writethrough
/writearound
(en contraste con elwriteback
modo), donde no hay datos almacenados solo en el dispositivo de caché, y el fallo del caché no mata la información en La redada la convierte en una opción relativamente segura.Otro hecho es que hay una sobrecarga computacional significativa de RAID-5 suave; Al almacenar en caché cada miembro de la banda giratoria por separado, la computadora aún tiene que volver a calcular todas las paridades, incluso en los aciertos de caché
Obviamente, sacrificaría un espacio ssd costoso, si almacena en caché cada unidad giratoria por separado.- A menos que planee usar caché ssd con incursiones.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 al mayor tráfico de autobuses.
Es un proceso rápido y relativamente simple configurar bcache para eliminar el disco ssd, cuando necesita reemplazarlo. Gracias a los bloques , debería ser posible migrar la configuración de incursión en ambos sentidos in situ.
También debe recordar, que por el momento la mayoría (todos?) Distribuciones-CD en vivo no son compatibles
bcache
, por lo que no se puede simplemente tener acceso a sus datos con este tipo de herramientas, independientemente de labcache
-mdraid
opción de diseño que ha elegido.fuente
Creo que el enfoque sensato es almacenar en caché el dispositivo MD resultante.
bcache está diseñado para pasar lecturas y escrituras secuenciales.
Si almacena en caché cada dispositivo por separado, lógicamente, varios dispositivos que se insertan en un MD incrustado o despojado, desde la perspectiva de bcache, escribirán constantemente bloques al azar.
Si bien un volumen de MD en caché se verá normal, escribir archivos en el volumen, en lugar de bloques aleatorios en varios dispositivos.
El objetivo principal de la incursión dura y de software es hacer la división de datos en el backend para que el sistema de archivos resultante se vea como un volumen normal.
Es posible que esto no sea correcto (ya que los desarrolladores de bcache pueden ser inteligentes y dar cuenta de ese tipo de situación), pero lo más lógico es hacer caché de volúmenes, en lugar de bloquear dispositivos.
fuente