Sistema de archivos Linux para un gran servidor de archivos

8

Me gustaría saber, por parte de personas más experimentadas, cuál sería la mejor opción de sistema de archivos para un servidor de archivos con más de 20 TB de discos duros. Personalmente, siempre usé EXT3 (en aquellos días) y EXT4 (desde que estaba disponible) [y una vez ReiserFS 3, aunque causó muchos daños en los datos] en mis computadoras personales y en los discos BOOT y ROOT de "pequeños servidores".

Sin embargo, como las herramientas EXT4 (aunque no EXT4 en sí) están limitadas a particiones de 16 TB, esta puede no ser mi mejor opción. La distribución será Debian 6.0 (Squeeze) y / o Gentoo (última versión), por lo que el núcleo debe ser bastante reciente (en Debian al menos con backports), lo que significa kernel de Linux> = 2.6.32.

El servidor de archivos se utilizará para tres propósitos principales (y también para particiones separadas, porque el propósito es mantener los datos "seguros" y realmente no les importa mucho la sobrecarga). Sin embargo, todos los discos deben cifrarse con LUKS :

  1. Medios, descargas y repositorio local de Debian [Tengo al menos 6 máquinas que ejecutan Debian]> 20 TB (tal vez una mayor separación entre Medios, Descargas y el repositorio de Debian)
  2. Datos (documentos, fotos, ...) ~ 4TB SAFE (es decir, raid1 o raid6 + disco de respaldo)
  3. Copias de seguridad> = 20 TB para copias de seguridad de otras computadoras en mi gigabit lan (¿puede sugerir un software que haga una copia de seguridad de todo el sistema operativo incluso si es Windows, BackupPC dice que lo hace, alguna alternativa?)

Las velocidades rápidas no son realmente necesarias (accesos concurrentes: máximo de 2 o 3 archivos grandes, digamos videos), incluso si son "solo" lecturas de 200 MB / s de un 10 HDD Raid6, puedo vivir con eso.

En resumen, busco un sistema de archivos confiable, escalable (es decir, fácilmente expandible) que admita más de 20 TB / partición. Cuanto más seguro y confiable sea el FS, mejor. El hardware empleado será al menos de cuatro núcleos (amd x4 630 o intel i5-2500k) y mucha RAM (> 8 GB, quizás> 16 GB), por lo que se deben cumplir los requisitos de hardware.

Mis PC / Servidor se conectarán a un UPS (fuente de alimentación ininterrumpida) en caso de corte de energía. También podrían hacer copias de seguridad y medios en máquinas separadas (es decir, dos servidores).

usuario51166
fuente
77
A esta escala, realmente necesita evaluar seriamente ZFS. Los tiempos de reconstrucción y las tasas de error se convierten en problemas serios con tantos discos como usted está hablando y zfs es el único fs estable disponible ahora con una sólida verificación y corrección de errores en toda la pila.
Afrazier
1
ZFS no es compatible con Linux de forma nativa (solo con FUSE) o es compatible de forma nativa en un estado pre-alfa temprano. No considero que usar solaris sea una opción. Nunca había probado una vez y FreeBSD puede estar interesado, sin embargo, no ahora si su apoyo incursión del software (y apoyo general de hardware) es tan buena como Linux
user51166
1
Lo sé, pero ZFS se ejecuta de forma nativa en otras plataformas. Si bien el soporte de hardware no es lo mismo que Linux, esa debería ser la menor de sus preocupaciones. ZFS es una pila de almacenamiento completa, por lo que la incursión de software está fuera de la ecuación. Evalúe primero cómo va a almacenar, administrar, proteger y respaldar sus datos antes de elegir su sistema operativo o sistema de almacenamiento. No descarte ZFS solo porque no es nativo en Linux, probablemente sea la solución de almacenamiento más avanzada disponible de forma gratuita en este momento.
Afrazier
Gracias por sus respuestas, pero no entiendo: incluso si pudiera usar FreeBSD sin problemas (no estoy tan seguro), ¿hay algo como la incursión de software implementada? ¿Algo como LUKS (Cifrado de Linux) para FreeBSD? Gracias. Estoy familiarizado con Gentoo y Debian GNU / Linux principalmente. El servidor es un servidor doméstico .
user51166
¿O estás sugiriendo otro sistema operativo que FreeBSD?
user51166

Respuestas:

3

Mucha gente sugiere ZFS. Pero ZFS no está disponible de forma nativa en Linux, excepto a través de fusibles. No recomendaría esto para su situación en la que es probable que el rendimiento sea importante.

Desafortunadamente, ZFS nunca estará disponible como un módulo de kernel nativo a menos que los problemas de licencia se resuelvan de alguna manera.

XFS es bueno, pero algunas personas han reportado problemas de corrupción y realmente no puedo comentar sobre eso. Jugué con pequeñas particiones XFS y no tuve estos problemas pero no en producción.

Sin embargo, ZFS tiene muchas ventajas y características útiles que no se pueden ignorar. En resumen, son (ver ZFS Wiki para una descripción completa de lo que significan):

  • Integridad de los datos
  • Agrupaciones de almacenamiento
  • L2ARC
  • Alta capacidad
  • Copiar en escrito
  • Instantáneas y clones
  • Rayas dinámicas
  • Tamaños de bloque variables
  • Creación ligera del sistema de archivos
  • Gestión de caché
  • Endianness adaptativo
  • Deduplicación
  • Cifrado

Entonces, ¿cómo lo solucionamos? Mi alternativa sugerida que puede adaptarse a su situación es considerar nexenta . Este es un kernel de Open Solaris con herramientas GNU userland ejecutándose en la parte superior. Tener un núcleo Open Solaris significa tener ZFS disponible de forma nativa.

Matt H
fuente
Desde su sitio "Community Edition: versión ilimitada y GRATUITA para hasta 18 TB de almacenamiento". Parece que tendría otra limitación como EXT4's
user51166
Y entendí que ZFS es simplemente el "mejor" como casi todos ustedes están diciendo. Solo trato de descubrir el "mejor" sistema operativo / distribución solaris capaz de ejecutarlo.
user51166
Debian GNU / kFreeBSD parece ser compatible con ZFS y me gusta la forma de Debian, sin embargo, no estoy seguro de poder usar esto, ya que parece haber una pequeña comunidad de soporte y todavía tiene algunos errores importantes.
user51166
@ user51166: también debe considerar FreeBSD o FreeNAS si su servidor es exclusivamente para almacenamiento. Ambos tienen soporte ZFS.
Matt H
4

Debería probar XFS, ajustarse bien a sus requisitos:

XFS es un sistema de archivos de 64 bits. Admite un tamaño máximo del sistema de archivos de 8 exbibytes menos un byte, aunque está sujeto a los límites de bloqueo impuestos por el sistema operativo host. En sistemas Linux de 32 bits, esto limita el tamaño de los archivos y del sistema de archivos a 16 tebibytes.

aleroot
fuente
Escuché que podría causar pérdidas de datos cuando se enfrenta a cortes de energía y su registro en el diario no cubre datos (solo el registro en metadatos). Lo usé una vez en mi escritorio pero generé muchos errores de fsck, por lo tanto, preferí no usarlo más. Repito: el rendimiento no es el alcance (principal) de esta elección: la estabilidad sí lo es.
user51166
No creo que XFS sea inestable, lo uso en varios servidores de archivos y no tuve ningún problema ...
aleroot
No, es estable en el sentido de tener una versión estable. ¿Eso implica que no tendré pérdidas de datos a través de los años? XFS seguramente es bueno si está buscando rendimiento, aunque recuerdo haber leído en la red que hubo problemas de pérdida de datos (aunque afortunadamente no tantos como con el reiser 3). Olvidé especificar, pero estoy viendo una configuración LUKS, por lo tanto , se usará LVM , si eso puede ayudar.
user51166
No existe un FileSystem perfecto ... Creo que para sus requisitos XFS es la mejor opción. No debería haber ningún problema al usar LVM en XFS.
aleroot
Seguramente no. ¿Alguna "restricción" / "característica" especial? ¿Problemas de fsck y / o desfragmentación en línea como los problemas de ext4?
user51166
4

Su opción más fácil es usar XFS. Muchas de las malas experiencias en torno a XFS se basan en versiones antiguas y problemas de hardware de escritorio que no creo que sean realmente relevantes para nuevas implementaciones en hardware de servidor de calidad estándar. Escribí una publicación de blog sobre este tema que puede ayudarlo a resolver la situación actual. Hay varias instalaciones de bases de datos XFS ocupadas con cientos de usuarios y terabytes de datos que ayudo a administrar. Todos están en el núcleo de Debian Lenny (2.6.26) o posterior y no he escuchado ningún indicio de problemas con ellos en años. No usaría XFS con ningún kernel anterior a ese. He escuchado algunos informes directos de personas que todavía ven un comportamiento extraño de XFS cuando el sistema se queda sin memoria o espacio en disco; Sin embargo, todavía no lo he visto.

La única otra opción razonable es usar ext4 con alguna piratería para admitir sistemas de archivos más grandes. No esperaría que tuviera un nivel de confiabilidad muy diferente. He tenido que recuperar datos de múltiples sistemas ext4 rotos que se encontraron con errores del kernel, hasta ahora todos arreglados en sentido ascendente pero no en el kernel del distribuidor en ese momento. ext4 tiene su propio conjunto de problemas de metadatos como pérdida de datos de asignación retrasada , cosas que tenían menos probabilidades de suceder en ext3. Yo estimaría que las probabilidades de que usted golpee un error ext4 sería aún mayor de lo normal si lo está forzando por encima del límite de tamaño normal, simplemente porque parece más probable que esté golpeando una nueva ruta de código menos probada en algún momento .

La idea alternativa es usar ext3 más seguro y aburrido, aceptar el límite de 16 TB y dividir las cosas mejor para que ningún sistema de archivos tenga que ser tan grande.

Un extremo suelto relacionado con los problemas de la revista. No habló sobre cómo se conectarán todas estas unidades. Asegúrese de comprender la implicación de cualquier almacenamiento en caché de escritura que esté en su cadena de almacenamiento aquí. Deshabilítelo o asegúrese de que el sistema de archivos esté vaciando el caché. He guardado algunos recursos sobre eso en Escrituras confiables si eso no es algo que estás revisando todavía.

Las unidades apestan. Las matrices RAID apestan. Los sistemas de archivos apestan. Múltiples fallas suceden. Me alegra ver que ya estás pensando en copias de seguridad; pasar de buena a gran confiabilidad en el almacenamiento requiere más que solo RAID y algunas unidades de repuesto. La redundancia cuesta algo en todos los niveles, y el dinero para el hardware frente a la complejidad del software es difícil de navegar. Y observa tus expectativas de rendimiento. Si bien una matriz RAID como la que está considerando generará fácilmente cientos de MB / s, todo lo que necesita son dos lectores simultáneos que buscan constantemente el disco para soltarlo en unos pocos MB / s. Puedo aplastar fácilmente una matriz RAID10 de 24 discos de modo que solo entregue <5 MB / s contra una carga de trabajo de referencia . Una cosa que ayuda allí es asegurarse de ajustar el lector de lectura hacia arriba si es posible tener múltiples lectores de transmisión.

Greg Smith
fuente
Voy a usar esto en casa, por lo tanto, planeo usar hardware convencional. También podría usar el hardware del servidor, pero aún tengo que ver qué SB-E va a ofrecer el próximo año en el departamento de xeon (también me hubiera gustado jugar un poco con la virtualización). Si no es demasiado caro, planeo ir con hardware de servidor barato y memoria ECC (mucha). En cuanto al rendimiento, no quiero nada excepcional.
user51166
Y sí, estoy pensando en copias de seguridad, pero todavía no las he implementado. Todavía estoy buscando una solución de respaldo capaz de crear una imagen del sistema y / o fácilmente tar / zip / ... carpetas requeridas con una interfaz de administración que permite restauraciones automáticas. BackupPC parece un poco limitado y no estoy seguro de confiar en Crashplan (usarlo para hacer una copia de seguridad de los datos en una ubicación remota, me gustaría tener redundancia, por lo tanto, otro sistema). ¿Tengo que escribir una GUI web yo mismo o algo como esto ya existe (software de código abierto, o al menos de forma gratuita para usar)
user51166
2

La implementación en ZFS usando FreeBSD podría ocurrir aquí usando gbde para el cifrado. ZFS mismo sería el proveedor de software RAID, a través de RAIDZ . La complejidad de la gestión de almacenamiento de la construcción de zpools no es significativamente diferente de lo que Linux le hará pasar con mdadm, y en algunos casos en realidad será más fácil. Mi primera instalación de ZFS (en Solaris 10 hace unos 3 años) tenía un sistema de archivos de 17 TB en 48 unidades. Sobreviví a múltiples fallas allí sin problemas, aprendiendo administración de ZFS a medida que avanzaba.

La ventaja principal es que la suma de comprobación de ZFS proporciona una mejor detección de errores que Linux, lo que es una defensa contra el hardware defectuoso que vale la pena considerar. Las principales desventajas son que FreeBSD es menos popular. Aún no sabe cómo administrarlo, el soporte de hardware es un poco más débil que Linux, y dado que es una plataforma menos popular, no hay tanta gente para pedir ayuda si tiene problemas.

Sin embargo, una matriz de almacenamiento de muchos terabytes realmente destaca en qué es bueno ZFS. Vale la pena considerarlo seriamente si está dispuesto a lanzarse a algo nuevo. Si desea explorar la verdadera paranoia de respaldo, cree servidores de respaldo de Linux y FreeBSD, para reducir las probabilidades de errores del sistema operativo como un solo punto de falla.

Greg Smith
fuente
Ya tengo Linux como servidor de archivos y todavía tengo que comenzar a usarlo (solo comencé algunas pruebas de software RAID-6 + LUKS en 6 discos). El único problema es que tengo muy poco tiempo para jugar. Me gusta tu respuesta. Entonces, ¿qué sugiere como sistema operativo si sigue el camino de ZFS? FreeBSD y opensolaris (ya no se mantienen), OpenIndiana (OpenSolaris opensource como lo he visto) y Solaris Express 11 (Oracle: S) parecen ser las únicas opciones. No uso esto en el trabajo, es mi hobby en casa, pero me gustaría algo estable de todos modos y que también sea fácil de usar.
user51166
Realmente me he acostumbrado a usar aptitude y emerger. Comprendo que compile / administre / actualice puertos en freebsd (cd / usr / ... && make install) es que simplemente no parece "correcto" (espero que el purista me perdone por el uso de este término , pero me parece extraño que si desea actualizar un paquete tiene que hacer eso, no se resuelve automáticamente la dependencia [Acabo de echar un vistazo al manual de FreeBSD]). ¿O hay un sistema de gestión de paquetes simple como debian o gentoo?
user51166
Ya sé que podría simplemente sincronizar lo que quiero o tar / diff, etc., pero me gustaría saber si ya existe algo más práctico. Gracias
user51166