Servidor de archivos - Configuración de almacenamiento: RAID vs LVM vs ZFS ¿algo más ...?

35

Somos una pequeña empresa que hace edición de video, entre otras cosas, y necesitamos un lugar para guardar copias de seguridad de grandes archivos multimedia y hacer que sea fácil compartirlos.

Tengo una caja configurada con Ubuntu Server y 4 unidades de 500 GB. Actualmente están configurados con Samba como cuatro carpetas compartidas que las estaciones de trabajo Mac / Windows pueden ver bien, pero quiero una mejor solución. Hay dos razones principales para esto:

  1. 500 GB no es lo suficientemente grande (algunos proyectos son más grandes)
  2. Es engorroso administrar la configuración actual, porque los discos duros individuales tienen diferentes cantidades de espacio libre y datos duplicados (para copias de seguridad). Es confuso ahora y que sólo va a empeorar una vez que hay múltiples servidores. ("el proyecto está en sever2 en share4", etc.)

Por lo tanto, necesito una forma de combinar los discos duros para evitar la pérdida completa de datos con la falla de una sola unidad, y para que los usuarios vean solo un recurso compartido en cada servidor. He hecho el software RAID5 de Linux y tuve una mala experiencia con él, pero lo intentaría de nuevo. LVM se ve bien, pero parece que nadie lo usa. ZFS parece interesante pero es relativamente "nuevo".

¿Cuál es la forma más eficiente y menos riesgosa de combinar los discos duros que sea conveniente para mis usuarios?


Editar: El objetivo aquí es básicamente crear servidores que contengan un número arbitrario de discos duros pero que limiten la complejidad desde la perspectiva del usuario final. (es decir, ven una "carpeta" por servidor) La copia de seguridad de los datos no es un problema aquí, pero la forma en que cada solución responde a una falla de hardware es una preocupación seria. Es por eso que agrupo RAID, LVM, ZFS y quién sabe qué juntos.

Mi experiencia previa con RAID5 también fue en una caja de Ubuntu Server y hubo un conjunto de circunstancias difíciles e improbables que condujeron a la pérdida completa de datos. Pude evitar eso nuevamente, pero me quedé con la sensación de que estaba agregando un punto de falla adicional innecesario al sistema.

No he usado RAID10, pero estamos en hardware de consumo y la mayoría de las unidades de datos por caja está más o menos fija en 6. Tenemos muchas unidades de 500 GB y 1,5 TB son bastante pequeñas. (Sin embargo, sigue siendo una opción para al menos un servidor)

No tengo experiencia con LVM y he leído informes contradictorios sobre cómo maneja la falla de la unidad. Si una configuración LVM (no rayada) pudiera manejar la falla de una sola unidad y solo se perdieran los archivos que tuvieran una parte almacenada en esa unidad (y almacenaran la mayoría de los archivos en una sola unidad), incluso podríamos vivir con eso.

Pero mientras tenga que aprender algo totalmente nuevo, bien podría ir hasta ZFS. Sin embargo, a diferencia de LVM, también tendría que cambiar mi sistema operativo (?) Para que aumente la distancia entre donde estoy y dónde quiero estar. Sin embargo, usé una versión de solaris en la universidad y no me importaría mucho.

En el otro extremo del espectro de TI, creo que también puedo explorar FreeNAS y / o Openfiler, pero eso realmente no resuelve el problema de cómo combinar unidades.

privado
fuente
44
ZFS realmente solo se considera una opción lista para producción estable en Solaris / OpenSolaris (aunque algunas personas discutirían incluso si está listo allí).
Christopher Cashell
66
Otra nota con respecto a LVM. . . deje de pensar en términos de redundancia y falla del disco. LVM nunca debe saber sobre fallas de disco, ya que debe manejarse en un nivel inferior (RAID). LVM le brinda la capacidad de administrar y particionar sus discos de una manera más limpia y flexible, pero no agrega redundancia y maneja una falla de disco de la misma manera que lo hace una partición que no es LVM (explota).
Christopher Cashell

Respuestas:

28

LVM es realmente bastante usado. Básicamente, LVM se encuentra por encima de la capa de hardware (controlador). No agrega redundancia ni mayor confiabilidad (se basa en el sistema de almacenamiento subyacente para manejar la confiabilidad). En cambio, proporciona mucha flexibilidad adicional y características adicionales. LVM nunca debería ver un disco desaparecer o fallar, porque la falla del disco debe ser manejada por RAID (ya sea software o hardware). Si pierde un disco y no puede continuar operando (reconstruir el RAID, etc.), entonces debería ir a las copias de seguridad. Intentar recuperar datos de una matriz incompleta nunca debería ser necesario (si es así, debe reevaluar todo su diseño).

Entre las cosas que obtiene con LVM están la capacidad de aumentar y reducir fácilmente las particiones / sistemas de archivos, la capacidad de asignar dinámicamente nuevas particiones, la capacidad de capturar particiones existentes y montar las instantáneas como particiones de solo lectura o grabables. Las instantáneas pueden ser increíblemente útiles, particularmente para cosas como las copias de seguridad.

Personalmente, uso LVM para cada partición (excepto / arranque) en cada caja que construyo, y lo he estado haciendo durante los últimos 4 años. Tratar con cajas que no sean LVM es un gran problema cuando desea agregar o modificar el diseño de su disco. Si está utilizando Linux, definitivamente quiere usar LVM. [Nota: lo anterior en LVM se ha actualizado para explicar mejor qué es y cómo encaja en la ecuación de almacenamiento.]

En cuanto a RAID, no hago servidores sin incursión. Con precios de disco tan baratos como son, elegiría RAID1 o RAID10. Más rápido, más simple y mucho más robusto.

Sin embargo, honestamente, a menos que esté casado con Ubuntu (que normalmente recomendaría), o si la caja está realizando otras tareas, es posible que desee consultar OpenFiler . Convierte su caja en un dispositivo de almacenamiento con una interfaz web y manejará todos los RAID / LVM / etc. por usted, y le permitirá exportar el almacenamiento como SMB, NFS, iSCSI, etc.

Christopher Cashell
fuente
2
Secundo la sugerencia de OpenFiler. Parece que uno nunca puede mantenerse al día con la cantidad de espacio en disco necesario, y separar el Servidor de los Datos puede hacer que la experiencia del usuario final y la administración sean mucho más fáciles y mejores. Hay una razón por la cual Netapp ha tenido tanto éxito. Sugeriría seguir ese modelo.
pcapademic
1
Había examinado brevemente freeNAS ... ¿alguna razón para elegir OpenFiler en su lugar?
privatehuff
Cuando comencé a jugar con ellos hace un par de años, OpenFiler parecía más estable, más funcional, tenía mejor soporte de controladores y estaba en desarrollo más activo. Decidí darle una oportunidad, y funcionó muy bien para mí. Sinceramente, no he mirado a FreeNAS desde entonces. Puede ser que FreeNAS haya alcanzado a OpenFiler, pero no lo sé.
Christopher Cashell
He estado usando FreeNAS para SMB y el objetivo iSCSI y ha sido brillante, nunca he perdido el ritmo. Por otro lado, no he evaluado OpenFiler, así que no tengo idea de cómo se compara
Mark Henderson
13

ZFS es realmente confiable y seguro hace que su administración de almacenamiento sea mucho más fácil. Como beneficio adicional: smb está integrado con ZFS en OpenSolaris y maneja Raid muy bien. Espere unos días, descargue la versión 2009.6 ya lanzada y pruébela en una máquina de prueba. Estoy seguro de que te encantará ZFS.

Y sobre tu comentario, ZFS es nuevo: ¡ya no es muy nuevo!

Wijnand
fuente
"Nuevo" significaba principalmente para mí, y solo que no había escuchado sobre eso y jugaba con él durante años, etc. Pero, entonces, ¿necesito ejecutar OpenSolaris para usar ZFS?
privatehuff
He oído que hay algún soporte en otros Unixes, para ZFS.
Brad Gilbert
1
Si necesita ZFS, lo necesita en OpenSolaris. Las implementaciones en Linux se realizan a través del espacio de usuario y, como resultado, están sujetas a una sobrecarga de rendimiento y políticas de caché conflictivas.
jldugger
3
El soporte de ZFS en otros sistemas operativos carece de funcionalidad. Y realmente, OpenSolaris es un sistema operativo realmente agradable, pero utilice el verdadero OpenSolaris. zfs set sharesmb = en backup / share1 integración realmente agradable.
Wijnand
9

La pregunta central es: "¿Qué importancia tienen estos datos?"

Si la respuesta es "Puedo recrearlo fácilmente", quiere RAID5, posiblemente con LVM encima para simplificar la administración.

Si la respuesta es "Puedo recrearlo, pero tomaría un tiempo y la gente se quejaría", quiere RAID 6 o más probablemente RAID 1/10.

Si la respuesta es "Nadie trabaja mientras lo recreo y me aseguro de que sea perfecto", quiere ZFS / Raid-Z

Tenga en cuenta que siempre puede recrearlo. RAID no es una copia de seguridad.

usuario2108
fuente
1
"Si la respuesta es" Nadie hace ningún trabajo mientras lo recreo y me aseguro de que sea perfecto "quieres ZFS / Raid-Z" Esta declaración muestra que no sabes nada sobre ZFS o RAID en general. Todos los sistemas que implican intentos de redundancia de bloques sufren problemas de rendimiento durante la reconstrucción.
jharley
Estaba buscando la importancia de los datos más que las características de rendimiento relativo. La degradación durante la reconstrucción también es importante, por supuesto, pero no es lo que estaba abordando.
user2108
¿Cómo proporciona RAID-Z o RAIDZ2 una mejor redundancia que RAID6? Ambos manejan 2 discos que fallan en una matriz como máximo. Además, RAID10 maneja un segundo disco defectuoso que no es tan bueno como RAID6 porque necesita el disco correcto para fallar, no ninguno de los restantes. El rendimiento es mucho mejor con RAID10 que con RAID6. Nota al margen: Linux 2.6.30 está fuera y le permite migrar desde RAID1 -> RAID5 <-> RAID6 == genialidad!
serverhorror
5

Para conectar muchas unidades en el mismo chasis, un controlador RAID de hardware es la mejor herramienta. Proporcionará muchos conectores SATA para sus unidades, redundancia a través de RAID-5 o preferiblemente RAID-6, y también puede proporcionar un mejor rendimiento.

El rendimiento de RAID de software es a menudo mejor que el RAID de hardware en los puntos de referencia, sin embargo, el servicio de archivos y el RAID de software son intensivos en CPU y compiten por sus procesadores mientras trabajan. Mi experiencia muestra que, a menos que use sistemas duales de cuatro núcleos, el RAID de hardware configurado correctamente superará a las RAID de software.

Buenos controladores de hardware con buen soporte de Linux:

  • Areca
  • 3Ware
  • la nueva serie Adaptec (las antiguas son deslumbrantes)
  • LSI MegaRAID
wazoox
fuente
2
Voy a intervenir en las tarjetas 3ware, son malvadas especialmente la 9650se y la 9690se, usaron ambos tipos de tarjetas con hasta 16 unidades en la 9650se, sin problemas reales y un buen producto estable.
4

RAID NO es como LVM. Puede usar RAID para crear particiones con tolerancia a fallas, pero LVM se usa para facilitar la partición del disco y la edición del sistema de archivos. Puede usar RAID sobre LVM o ZFS (ZFS puede funcionar tanto RAID como LVM). En mi opinión, ZFS funciona mejor que LVM, pero:

  • solo en Solaris 10/11 / OpenSOlaris, no puede usarlo desde Linux
  • ZFS es administración de discos y sistema de archivos, LVM permite usar cualquier sistema de archivos que necesite

En Ubuntu prefiero usar RAID5 MD con LVM.

Paul Rudnitskiy
fuente
1
ZFS está disponible en FreeBSD 7.x y Nexenta.
jharley
4

Eche un vistazo a lo que ofrecen Nexenta y OpenSolaris y creo que le complacerá que no pueda obtener nada. Se rumorea que las próximas versiones de OpenFiler también utilizarán el puerto ZFS de FreeBSD (aunque, desde una perspectiva de características, están bastante rezagadas).

Dicho esto, trato de evitar hacer RAID5, RAID6 o RAID50 en el software y prefiero usar controladores de hardware para descargar todo el trabajo XOR. RAID1 y RAID10 en el software Linux funcionan bastante bien, y desde allí puse LVM encima de ellos para permitir una mayor flexibilidad en lo que se hace con los bloques que tengo después de la redundancia. RAID + LVM + XFS es mi configuración de Linux favorita, pero tomaría ZFS sobre ella cualquier día.

jharley
fuente
Tradicionalmente, el RAID de hardware no ha funcionado tan bien como el RAID de software; por lo general, tiene una ventaja solo cuando hay múltiples escrituras que el controlador dedicado puede duplicar (es decir, no tiene que pasar por el bus PCI), es decir, RAID 1. Existen otras preocupaciones con RAID de hardware, por ejemplo, la calidad del firmware y la imposibilidad de actualizarse (fácilmente). Finalmente, agrega otro punto de falla. Por estas razones, tiendo a evitar RAID de hardware. Dicho esto, por estas mismas razones, ¡no he jugado con las nuevas opciones RAID de hardware! :)
Brian M. Hunt
2

RAID vs LVM no es realmente una buena comparación, realizan roles separados y se usan con frecuencia juntos. RAID se usa para la redundancia de la unidad, LVM se puede usar para dividir su dispositivo RAID en volúmenes lógicos, se usa para cambiar el tamaño fácilmente y para tomar instantáneas.

Zoredache
fuente
2

Ejecuté el servidor de archivos para una empresa / situación muy similar. Básicamente, un departamento de gráficos para 3 personas con 30 TB de almacenamiento y el presupuesto reducido de una pequeña empresa. Nuestros proyectos típicos iban desde 0.5TB a 6TB. Y el servidor de archivos estaba sirviendo a una granja de renderización considerable que realmente podría golpearlo.

En mi configuración, ejecuté un servidor 3U que ejecuta Linux con matrices RAID6 de hardware externo conectadas a él. Gestioné los volúmenes físicos y lógicos con LVM y ejecuté el sistema de archivos XFS. Lo que haría es crear un volumen lógico para cada proyecto y luego expandirlo a medida que el proyecto creciera. Cuando el proyecto estuvo terminado, pude archivar el trabajo en cinta y eliminar el volumen lógico. Esto devolvería ese espacio al grupo de volúmenes donde se reasignaría a los siguientes proyectos.

Esta era una forma muy limpia de utilizar nuestro almacenamiento, pero este enfoque tiene dos inconvenientes. Usted termina teniendo que administrar de manera microestable los tamaños de los volúmenes lógicos tratando de equilibrar la cantidad de espacio asignado a un volumen lógico para tener suficiente espacio para hacer su trabajo pero no sobre asignarlo y terminar desperdiciando espacio. Nuestra granja de renderizado era capaz de generar muchos TB de datos por día y si no prestaba mucha atención a esto, se quedaría sin espacio rápidamente. Finalmente configuré algunos scripts que supervisaban las tendencias en el espacio disponible en los volúmenes lógicos y los haría crecer automáticamente. Incluso con eso en su lugar con más o menos 80 volúmenes lógicos, había mucho espacio no utilizado en todos los volúmenes lógicos. Ya he insinuado el segundo problema ... LVM no Realmente realizo el aprovisionamiento delgado y XFS solo le permite hacer crecer un sistema de archivos. Por lo tanto, la asignación excesiva de espacio a un volumen lógico puede sumar mucho espacio inutilizable.

Todo esto se configuró hace unos 5 años y si lo estuviera configurando hoy usaría OpenSolaris y ZFS. La razón principal es que el enfoque de almacenamiento agrupado de ZFS significa menos administración de volumen. Todavía puede separar cada proyecto en su propio sistema de archivos, pero sin tener que administrar micro los tamaños de los volúmenes individuales. ZFS tiene algunas otras características muy agradables que lo convierten en una mejor opción, pero hay otras preguntas sobre la falla del servidor que se incluyen en eso.

En mi opinión, ZFS simplemente es la mejor solución gratuita disponible en la actualidad.

3dinfluence
fuente
2

Algunas cosas a tener en cuenta si te quedas con Linux:

  • Piense también en el sistema de archivos. Su ejemplo de 4x 500GB es la capacidad más grande que recomendaría con buena conciencia para ext3. No recomiendo crear sistemas de archivos ext3 mucho más grandes porque, por ejemplo, el tiempo fsck puede ser enorme. Cree varios sistemas de archivos más pequeños en lugar de uno grande.
  • Como mencionó los datos de video: ext3 maneja archivos grandes de manera ineficiente porque tendrá que crear bloques de metadatos indirectos, doble indirectos y triples indirectos para almacenar los datos de archivos grandes y usted pagará el precio. Hoy en día, ext4 admite extensiones y maneja esto mucho mejor. Pero entonces, es bastante nuevo y, por ejemplo, Red Hat Enterprise Linux 5 aún no lo admite. (Algunas distribuciones de Enterprise admitirán alternativas como XFS).
  • Si hay corrupción de datos en cualquier bloque de datos, será difícil incluso notarlo con los sistemas de archivos de Linux. ZFS, por otro lado, suma todos los metadatos y datos y también verifica la suma de verificación cada vez que se leen datos del disco. (También hay depuración de fondo)
  • El tiempo de reconstrucción de RAID en Linux es proporcional al tamaño del disco porque la capa RAID no conoce el contenido del sistema de archivos (capa). El tiempo de reconstrucción de RAID-Z de ZFS depende de la cantidad de datos reales en el disco fallido porque solo los bloques usados se copiarán / reconstruirán en un disco de reemplazo.
  • ¿Quieres tomar una foto de tus sistemas de archivos? Las instantáneas de LVM ni siquiera se comparan con las instantáneas instantáneas de ZFS. Este último también puede exponerse fácilmente a los usuarios finales, por ejemplo, para restauraciones fáciles.
  • Use RAID6 (RAID-Z2) y no solo RAID5 (RAID-Z) con discos grandes (> 500GB) porque es probable que otro disco falle durante la reconstrucción.
Knweiss
fuente
Excelentes puntos que no había considerado sobre ext3. Ext4 todavía es un poco nuevo para mi sangre, pero XFS debería ser compatible con el servidor Ubuntu que estoy usando, ¿lo recomiendas para esto?
privatehuff
1

Use la utilidad "mdadm" para crear una matriz RAID-5 a partir de sus unidades.

Esto proporciona la redundancia que necesita, por lo que si una unidad se apaga, puede reemplazarla sin pérdida de datos, y también le permite usar 3 de las 4 unidades.

También te recomiendo que crees un volumen LVM encima del RAID, para que puedas dividir el espacio según sea necesario.

ph.
fuente
1

Es posible que desee echar un vistazo a AFS. Esto le dará una medida de la disponibilidad (puede acceder a estos archivos dentro y fuera de su red) y la redundancia (los archivos se pueden replicar). Para un flujo de trabajo en el que abra un archivo, trabaje en él durante un tiempo y luego guárdelo, esto sería mejor (desde el punto de vista de la red) que NFS, al menos un NFS más antiguo.

Chris
fuente
1

Como dice la otra respuesta, LVM se usa ampliamente y puede combinar varios discos en un solo "grupo de volumen" que se parece a un gran dispositivo de bloque. Sin embargo, vale la pena recordar que hacer esto aumenta su probabilidad de falla: solo se necesita un disco para fallar en un grupo de volúmenes para eliminar todo el sistema de archivos, y si tiene cuatro discos unidos, esto es cuatro veces más probable. Es mejor usar LVM encima de un RAID1 o similar para mitigar esto. El software RAID de Linux es bastante adecuado para esto, aunque el hardware RAID puede ser más conveniente.

Dan
fuente
Su afirmación "solo se necesita un disco para fallar en un grupo de volúmenes para extraer todo el sistema de archivos" depende en gran medida de cómo cree y use los volúmenes lógicos dentro del grupo de volúmenes. Si solo crea un solo volumen lógico llenando todo el volumen, agrúpelos, lo que usted dice es verdadero. Es completamente posible, y dependiendo de los requisitos del sistema de archivos, incluso recomendado, crear múltiples volúmenes lógicos en un solo grupo de volúmenes.
pgs
1

Lo siento, este sería un comentario, pero no tengo el representante ...

¿Cómo proporciona RAID-Z o RAIDZ2 una mejor redundancia que RAID6?

ZFS tiene suma de comprobación en todas partes

Sobre la pregunta original. Cualesquiera que sean los datos, usaría 2 paridades activas por 10 discos. Usaría una tarjeta RAID de buena calidad, las 3ware son excelentes. Personalmente uso RAID de hardware con batería de respaldo. LVM solo para que pueda migrar los datos fácilmente al final de la vida útil del hardware. XFS como el sistema de archivos.

James
fuente
0

¿Por qué no utiliza un disco o una tarjeta SSD para tener el servidor del sistema para iniciar y los 500 GB como único almacenamiento? Use un disco de 500 GB y cuando esté lleno, cámbielo manualmente Puede hacer la copia de seguridad más tarde en otra computadora con calma. Porque mientras el disco duro está girando (girando) puede dañarse. De todos modos, si conecta todos los discos al mismo tiempo, todos están girando y pueden sufrir daños si los usa o no. La probabilidad de falla aumenta cuando tienes más discos encendidos. Use uno por vez e cámbielo cuando esté lleno o en un período de tiempo anticipando una falla (use también la capacidad INTELIGENTE para deshacerse de eso). Use un disco de transporte o use un adaptador de disco SCSI / SATA externo para que no necesite desmontar el servidor de la computadora cada vez que intercambie un disco. Esa es la forma más segura y confiable. El uso de RAID es más costoso y solo desperdicia algunos discos (porque deja que se encienda con el riesgo de dañarse por dejarlo encendido? ¿Estúpido o no?). Si desea obtener más datos, utilice una configuración RAID para eso, supongo que es una buena opción, pero nunca confíe en la configuración de una computadora. La copia de seguridad debe realizarse siempre manualmente con una persona (el administrador de la red o del servidor). Ese es uno de los trabajos de un administrador. Puede usar cintas, DVD, BlueRay u otros discos para hacer la copia de seguridad. Pero siempre necesitará un medio de almacenamiento confiable y un disco en ejecución no es uno. Un disco apagado y bien guardado (en un lugar fresco y sin humedad) es un medio de almacenamiento confiable. Si desea obtener más datos, utilice una configuración RAID para eso, supongo que es una buena opción, pero nunca confíe en la configuración de una computadora. La copia de seguridad debe realizarse siempre manualmente con una persona (el administrador de la red o del servidor). Ese es uno de los trabajos de un administrador. Puede usar cintas, DVD, BlueRay u otros discos para hacer la copia de seguridad. Pero siempre necesitará un medio de almacenamiento confiable y un disco en ejecución no es uno. Un disco apagado y bien guardado (en un lugar fresco y sin humedad) es un medio de almacenamiento confiable. Si desea obtener más datos, utilice una configuración RAID para eso, supongo que es una buena opción, pero nunca confíe en la configuración de una computadora. La copia de seguridad debe realizarse siempre manualmente con una persona (el administrador de la red o del servidor). Ese es uno de los trabajos de un administrador. Puede usar cintas, DVD, BlueRay u otros discos para hacer la copia de seguridad. Pero siempre necesitará un medio de almacenamiento confiable y un disco en ejecución no es uno. Un disco apagado y bien guardado (en un lugar fresco y sin humedad) es un medio de almacenamiento confiable. Pero siempre necesitará un medio de almacenamiento confiable y un disco en ejecución no es uno. Un disco apagado y bien guardado (en un lugar fresco y sin humedad) es un medio de almacenamiento confiable. Pero siempre necesitará un medio de almacenamiento confiable y un disco en ejecución no es uno. Un disco apagado y bien guardado (en un lugar fresco y sin humedad) es un medio de almacenamiento confiable.


fuente