En su respuesta a la pregunta "tipos de incursiones mixtas" , HBruijn sugiere utilizar LVM para implementar RAID frente al MDRAID más estándar.
Después de una pequeña investigación, parece que LVM también es compatible con la funcionalidad RAID. En el pasado, he usado LVM sobre MDRAID, y hasta ahora no sabía que LVM también es compatible con la funcionalidad RAID. Esto parece ser un desarrollo relativamente reciente, pero no he descubierto exactamente cuándo se implementó.
Entonces, estas son formas alternativas de implementar RAID de software en Linux. ¿Cuáles son los pros y los contras de estos dos enfoques diferentes? Estoy buscando comparaciones de características entre los dos enfoques para que las personas puedan decidir cuál es mejor para ellos. Las conclusiones basadas en la experimentación (como en, esta característica no funciona tan bien como esta característica y aquí es por qué) también están bien, siempre que incluya sus datos en la respuesta.
Algunos problemas específicos para abordar:
- Supongamos que quiero hacer sw RAID + LVM (un escenario común). ¿Debo usar el soporte de LVM para sw RAID y, por lo tanto, usar una utilidad en lugar de dos? ¿Este enfoque más integrado tiene alguna ventaja?
- ¿El soporte de LVM para SW RAID tiene deficiencias significativas en comparación con el MDADM más maduro? Específicamente, ¿qué tan estable / libre de errores es el soporte LVM para sw RAID? Parece que este soporte solo se remonta a 2011 (ver más abajo), mientras que MDADM es mucho más antiguo. Además, ¿cómo se compara en términos de conjunto de características? ¿Tiene deficiencias de características significativas en comparación con MDADM? Por el contrario, ¿tiene soporte para las funciones de sw RAID que MDADM no tiene?
NOTAS
Hay una discusión detallada en http://www.olearycomputers.com/ll/linux_mirrors.html pero no pude averiguar en qué fecha se escribió.
Pregunta similar sobre Serverfault: linux LVM mirror vs. MD mirror . Sin embargo, esta pregunta se hizo en 2010, y las respuestas pueden estar desactualizadas.
La entrada del registro de cambios para la versión 2.02.87 - 12 de agosto de 2011 tiene
Agregue configure --with-raid para el nuevo 'raid' segtype para MD RAID 1/4/5/6 soporte
Por lo tanto, parece que el soporte RAID en LVM tiene aproximadamente 3 años.
fuente
md
volúmenes. Así que tienelvextend
y estápvmove
disponible para moverse entre dispositivos, mientras que conmd
el proceso es mucho más manual sin un beneficio claro.Respuestas:
¿Qué nivel de madurez y funcionalidad tiene LVM RAID?
LVM-RAID es realmente mdraid debajo de las cubiertas. Básicamente funciona creando dos volúmenes lógicos por dispositivo RAID (uno para datos, llamado "rimage"; uno para metadatos, llamado "rmeta"). Luego los pasa a los controladores mdraid existentes. Por lo tanto, cosas como el manejo de errores de lectura de disco, el equilibrio de carga de E / S, etc. deben ser bastante maduros.
Esa es la buena noticia.
Herramientas
No puede usarlo
mdadm
(al menos, no de una manera fácil¹) y las herramientas RAID LVM no son tan maduras. Por ejemplo, en Debian Wheezy,lvs
no puedo decirte el estado de sincronización de RAID5. Dudo mucho que la reparación y la recuperación (especialmente de las situaciones "¡eso nunca debería suceder!") Sea tan buena como mdadm (y accidentalmente me topé con uno de esos en mis pruebas, y finalmente me di por vencido en recuperarlo: recuperación con mdadm hubiera sido fácil).Especialmente si no está utilizando las versiones más recientes de todas las herramientas, empeora.
Funciones faltantes
Las versiones actuales de LVM-RAID no admiten reducir (
lvreduce
) un volumen lógico RAID. Tampoco admiten cambiar el número de discos o el nivel RAID (lvconvert
muestra un mensaje de error que dice que aún no es compatible).lvextend
funciona, e incluso puede aumentar los niveles de RAID para los que mdraid solo obtuvo soporte recientemente, como RAID10. En mi experiencia, extender los LV es mucho más común que reducirlos, por lo que en realidad es razonable.Algunas otras características de mdraid no están presentes, y especialmente no puedes personalizar todas las opciones que puedes usar con mdadm.
En versiones anteriores (como se encuentra, por ejemplo, en Debian Wheezy), LVM RAID tampoco admite el crecimiento. Por ejemplo, en Wheezy:
En general, no desea ejecutar las versiones de Wheezy.
Lo anterior es una vez que lo tienes instalado. Ese tampoco es un proceso trivial.
Problemas de herramientas
Jugando con mi VM Jessie, desconecté (virtualmente) un disco. Eso funcionó, la máquina siguió funcionando.
lvs
, sin embargo, no dio ninguna indicación de que las matrices estaban degradadas. Volví a conectar el disco y eliminé un segundo. Permaneció corriendo (esto es raid6). Vuelva a adjuntar, todavía no hay indicación delvs
. Corrílvconvert --repair
en el volumen, me dijo que estaba bien. Luego saqué un tercer disco ... y la máquina murió. Vuelva a insertarlo, reinicié, y ahora no estoy seguro de cómo solucionarlo.mdadm --force --assemble
solucionaría esto; nivgchange
tampocolvchange
parece tener esa opción (lvchange acepta--force
, pero no parece hacer nada). Incluso tratandodmsetup
de alimentar directamente la tabla de mapeo al kernel, no pude descubrir cómo recuperarla.Además,
mdadm
es una herramienta dedicada solo para administrar RAID. LVM hace mucho más, pero se siente (y admito que esto es bastante subjetivo) que la funcionalidad RAID se ha introducido allí; No encaja del todo.¿Cómo se instala realmente un sistema con RAID LVM?
Aquí hay un breve resumen de cómo instalarlo en Debian Jessie o Wheezy. Jessie es mucho más fácil; tenga en cuenta que si va a probar esto en Wheezy, lea todo primero ...
Utilice una imagen de CD completa para instalar, no una imagen netinst.
Proceda normalmente, acceda al particionamiento del disco, configure sus volúmenes físicos LVM. Usted puede poner
/boot
en LVM-RAID (en Jessie, y en Wheezy con algo de trabajo se detalla a continuación).Crea tus grupos de volúmenes. Déjalo en el menú LVM.
Primero divertido: el instalador no tiene el
dm-raid.ko
módulo cargado, ¡ni siquiera está disponible! Entonces puedes obtenerlo del paquete linux-image que se instalará. Cambie a una consola (por ejemplo, Alt- F2) y:El instalador no sabe cómo crear LVM-RAID LV, por lo que debe usar la línea de comandos para hacerlo. Tenga en cuenta que no hice ninguna evaluación comparativa; el tamaño de la franja (
-I
) a continuación es una conjetura para mi configuración de VM:En Jessie, puede usar RAID10 para el intercambio. En Wheezy, RAID10 no es compatible. Por lo tanto, puede usar dos particiones de intercambio, cada RAID1. Pero debe decirle exactamente en qué volúmenes físicos colocarlos o coloca ambas mitades del espejo en el mismo disco . Si. Seriamente. De todos modos, eso se ve así:
Finalmente, vuelva al instalador y presione 'Finalizar' en el menú LVM. Ahora se le presentarán muchos volúmenes lógicos que se muestran. Ese es el instalador que no comprende lo que está sucediendo; ignore todo con
rimage
ormeta
en su nombre (vea el primer párrafo arriba para obtener una explicación de cuáles son).Continúe y cree sistemas de archivos, intercambie particiones, etc., como de costumbre. Instale el sistema base, etc., hasta llegar al indicador de grub.
En Jessie, grub2 funcionará si está instalado en el MBR (o probablemente con EFI, pero no lo he probado). En Wheezy, la instalación fallará, y la única solución es hacer backport a grub2 de Jessie. Eso es bastante fácil, se compila limpiamente en Wheezy. De alguna manera, obtenga sus paquetes de grub con respaldo
/target
(o hágalo en un segundo, después del chroot) y luego:En realidad, en mi instalación de grub Jessie VM más reciente se colgó. Cambiando a F2 y haciendo
while kill $(pidof vgs); do sleep 0.25; done
, seguido de lo mismo paralvs
, lo consiguió a través de grub-install. Parecía generar una configuración válida a pesar de eso, pero por si acaso hice unachroot /target /bin/bash
, me aseguré/proc
y fui/sys
montada, e hice unaupdate-grub
. Esa vez, se completó. Luego hice unadpkg-reconfigure grub-pc
selección de instalación de grub en todos los MBR de los discos virtuales.En Wheezy, después de hacer lo anterior, seleccione 'continuar sin un gestor de arranque'.
Termina la instalación. Arrancará. Probablemente.
Conocimiento de la comunidad
Hay un buen número de personas que conocen
mdadm
y tienen mucha experiencia en la implementación. Es probable que Google responda a la mayoría de las preguntas que tiene. En general, puede esperar una pregunta al respecto aquí para obtener respuestas, probablemente dentro de un día.No se puede decir lo mismo de LVM RAID. Es difícil encontrar guías. La mayoría de las búsquedas de Google que he realizado en cambio me encuentran cosas sobre el uso de matrices mdadm como PV. Para ser honesto, esto probablemente se deba en gran parte a que es más nuevo y se usa con menos frecuencia. De alguna manera, se siente injusto sostener esto en su contra, pero si algo sale mal, la comunidad existente mucho más grande alrededor de mdadm hace que sea más probable recuperar mis datos.
Conclusión
LVM-RAID avanza con bastante rapidez. En Wheezy, no es realmente utilizable (al menos, sin hacer backports de LVM y el kernel). Anteriormente, en 2014, en las pruebas de Debian, se sintió como una idea interesante, pero inacabada. Las pruebas actuales, básicamente lo que se convertirá en Jessie, se sienten como algo que realmente podría usar, si con frecuencia necesita crear pequeñas porciones con diferentes configuraciones RAID (algo con lo que es una pesadilla administrativa
mdadm
).Si sus necesidades son atendidas adecuadamente por unos pocos arreglos RAID mdadm grandes, divididos en particiones usando LVM, sugeriría continuar usándolo. Si, en cambio, termina creando muchas matrices (o incluso matrices de volúmenes lógicos), considere cambiar a LVM-RAID. Pero mantenga buenas copias de seguridad.
Muchos de los usos de LVM RAID (e incluso mdadm RAID) están siendo asumidos por cosas como el almacenamiento de clúster / sistemas de objetos, ZFS y btrfs. Recomiendo también investigarlos, pueden satisfacer mejor sus necesidades.
Agradecimientos
Me gustaría agradecer a psusi por hacerme volver a visitar el estado de LVM-RAID y actualizar esta publicación.
Notas al pie
Sospecho que podría usar el mapeador de dispositivos para pegar los metadatos y los datos de una manera que
mdadm --assemble
lo tome en cuenta. Por supuesto, podrías ejecutarmdadm
en volúmenes lógicos bien ... y eso sería más sensato.Cuando hice la instalación de Wheezy, no pude hacerlo por primera vez, y terminé sin configuración de grub. Tuve que arrancar el sistema ingresando toda la información en el indicador de grub. Una vez arrancado, funcionó, así que creo que funcionará bien desde el instalador. Si termina en el indicador de grub, aquí están las líneas mágicas para escribir:
PD: Ha pasado un tiempo desde que hice los experimentos originales. He puesto a disposición mis notas originales . Tenga en cuenta que ahora he hecho más recientes, cubiertos en esta respuesta, y no en esas notas.
fuente
dpkg-deb
proporciona una forma más limpia de extraer archivos de los paquetes deb, sin necesidad de saltar por etapas.dpkg-deb
disponible en el entorno del instalador? No solía ser ... Asegúrate de revisar a Wheezy también.ar -x
debería funcionar para descomprimir archivos deb, aunque es más torpe. Además, ¿qué tal actualizar su respuesta con el estado actual?Tampoco sabía que LVM podía hacer RAID. Personalmente, me quedaría con mdadm ya que es un software mucho más maduro que hace lo mismo. Si algo se rompe con LVM RAID, es probable que no pueda obtener tanta ayuda como si se hubiera ido con mdadm. Además, no confiaría en LVM RAID ya que LVM ha demostrado históricamente que no es el software más robusto.
ZFS y BTRFS son el futuro. Los beneficios que brindan van más allá de lo posible en la capa de bloques. A menos que esté buscando compatibilidad, ya no usaré LVM / mdadm. ZFS y BTRFS tienen muchas características como compresión, deduplicación y copia en escritura, pero no voy a entrar en eso aquí, ya que estaría un poco fuera de alcance.
Al final, investigue y use lo que se adapte a sus necesidades / deseos.
fuente
LVM+XFS
BTRFS que en su dirección. Admiten BTRFS pero eso es más una cosa de Oracle / SuSE.