Consejos para almacenar de manera eficiente 25TB + millones de files en el sistema de files

Digamos que se enfrentan con 25 TB de files de logging sin comprimir y tienen a su disposition una serie de 20 cajas de productos básicos con capacidad de almacenamiento colectivo de 25 TB.

¿Cómo savelas?

a) ¿Qué sistema de files distribuido utilizar?

b) ¿Qué formatting / algorithm de compression / descompression?

c) El tamaño del file de logging es 1MB a 7MB máximo todo el text y la porción de whitespace

d) El uso es a) las personas quieren los últimos files de logging más de lo anterior por lo que el sistema de caching para usar b) las personas sólo leer los files de logging no eliminarlos c) las personas quieren list de files de logging en un range de dates

e) El sistema operativo que se ejecuta en las cajas de productos básicos es Linux,

f) En cuanto a la copy de security bien tenemos una matriz de almacenamiento que se encarga de eso. Así que la capacidad de restaurar los datos de matriz existen.

No quiero que accedan al sistema de files directamente. Que debería hacer ? ¿Cómo puedo get una API basada en REST para esto?

Por favor, ahorre 2 centavos y qué haría usted?

Ankur

6 Solutions collect form web for “Consejos para almacenar de manera eficiente 25TB + millones de files en el sistema de files”

No soy un sistema de files distribuido ninja, pero después de consolidar tantas unidades puedo en tan pocas máquinas como puedo, intentaría usar iSCSI para conectar la mayor parte de las máquinas a una máquina principal. Allí podría consolidar cosas en esperanzadamente un almacenaje tolerante a la falla. Preferiblemente, tolerante a fallos dentro de una máquina (si una unidad se apaga) y entre máquinas (si toda una máquina está apagada).

Personalmente me gusta ZFS. En este caso, la construcción en compression, deduplicación y tolerancia a fallos sería útil. Sin embargo, estoy seguro de que hay muchas otras maneras de comprimir los datos mientras que lo hace tolerante a fallos.

Ojalá tuviera una verdadera solución de file distribuida llave en mano para recomendar, sé que esto es realmente kludgey pero espero que te señala en la dirección correcta.

Edit: Todavía soy nuevo en ZFS y configuro iSCSI, pero recuerdo haber visto un video de Sun en Alemania donde mostraban la tolerancia a fallos de ZFS. Conectaron tres concentradores del USB a una computadora y pusieron cuatro impulsiones del flash en cada eje. A continuación, para evitar que un hub de tomar la piscina de almacenamiento hacia abajo que hizo un volumen RAIDz consistente en una unidad flash de cada hub. A continuación, distribuyen los cuatro volúmenes ZFS RAIDz juntos. De esa manera sólo se usaron cuatro unidades flash para la paridad. Después, por supuesto, el hub unplugged uno y que degradado cada zpool, pero todos los datos estaban disponibles. En esta configuration se podría perder hasta cuatro unidades, pero sólo si dos unidades no estuvieran en la misma agrupación.

Si esta configuration se utilizó con la unidad en bruto de cada cuadro, entonces que preservar más unidades de datos y no para la paridad. Oí que FreeNAS podía (o iba a ser capaz de) compartir unidades de una manera "cruda" a través de iSCSI, por lo que presumo Linux puede hacer lo mismo. Como he dicho, todavía estoy aprendiendo, pero este método alternativo sería less derrochador de unidad punto de paridad de punto de mi sugerencia anterior. Por supuesto, se basaría en el uso de ZFS que no sé si sería aceptable. Sé que por lo general es mejor quedarse con lo que sabes si vas a tener que build / mantener / reparar algo, a less que sea una experiencia de aprendizaje.

Espero que esto sea mejor.

Edit: Hizo un poco de excavación y encontró el video de que hablé. La parte donde se explica la difusión de la unidad flash USB a través de los hubs comienza a 2m10s. El video es para demostrar su server de almacenamiento "Thumper" (X4500) y cómo distribuir los discos a través de los controlleres por lo que si usted tiene un fallo en el controller de disco duro sus datos seguirán siendo buenos. (Personalmente, creo que esto es sólo un video de geeks divertirse.Me gustaría tener una caja de Thumper yo, pero a mi esposa no le gusta me corriendo un gato de paleta a través de la casa.: D Esa es una caja grande.)

Edit: Recuerdo que se estaba cruzando un sistema de files distribuido llamado OpenAFS . No lo había probado, sólo había leído algunos sobre él. Tal vez otros saben cómo maneja en el mundo real.

En primer lugar, los files de logging se pueden comprimir en proporciones muy altas. Encuentro mis files de logging comprimir en una proporción de 10: 1. Si comprimen hasta una proporción de 5: 1, eso es sólo 5 GB, o el 20% de su capacidad de almacenamiento.

Dado que tiene más que suficiente almacenamiento, el algorithm de compression específica no es demasiado importante. Tú podrías…

  • Utilice files zip si los usuarios de Windows acceden a los files directamente.
  • Utilice gzip si se accede a través de Linux y la descompression rápida es importante.
  • Utilice bzip2 si se accede a través de Linux y es importante tener los files más pequeños posibles.

La pregunta más importante es: ¿cómo va a proporcionar a sus usuarios un fácil acceso a estos files? Parte de esto depende de cómo se configuran sus máquinas.

Si puede poner suficiente espacio de almacenamiento en una sola máquina, puede hacer algo extremadamente simple, como un recurso compartido de files de Windows de sólo lectura. Simplemente organice los files en subdirectorys y ya está listo.

Si no puede crear un solo server de files para estos files, es posible que necesite un sistema de files distribuido. Windows tiene un sistema de files distribuido (DFS) que podría satisfacer sus necesidades.

Si sus necesidades son más avanzadas, es posible que desee una aplicación web como un front-end donde sus usuarios pueden navegar y download files de logging. En este caso, recomiendo usar MogileFS, que es un sistema de files distribuido diseñado para ser utilizado con un server de aplicaciones de aplicaciones para usuario. Es muy fácil integrarse con la mayoría de los lenguajes de progtwigción web. No puede montarlo como una unidad compartida en su computadora, pero es de primera categoría como un almacén de datos para una aplicación web.

lessfs es un sistema de files de compression de deduplicación. Si bien no va a resolver todo el problema, puede valer la pena mirar como un backend.

exportar estas carpetas a través de NFS

montarlos en una sola máquina con apache en ejecución (bajo raíz de documento) como un tree

uso zip para comprimirlos – buena relación de compression, zip se puede abrir de todos los sistemas operativos

files de la list en Apache -so usted está dando a usuarios el acceso readonly (los files de logging no se supone para ser corregir, a la derecha)

¿Alguna vez pensaste en comprimir los files de logging? Luego haga algo en el frontend para descomprimirlos antes de servirlos al usuario final. Tal vez un guión CGI de las classs.

@Ankur y @Porch. Estoy totalmente de acuerdo con la necesidad de comprimir estos loggings.

@jet Creo que el esquema más simple es mejor – por lo tanto httpd para el usuario final es casi ideal. Y backend podría ser cualquiera.

Mi opinión – dividir los loggings en 2 grupos – carpetas "viejo" y "nuevo".

Combinarlos en la raíz del documento de httpd. Utilice la compression fuerte para los viejos (los files de xz o de 7z, populares para todos los OS) con tamaños grandes del dictionary y del bloque, pueden incluso ser files sólidos.

Utilice la compression de fs para las nuevas: lessfs (rw, deduplicación + methods de compression de luz), fusecompress 0.9.x (rw, methods de compression de luz a fuerte), btrfs / zfs, squashfs (ro, methods de compression de luz a fuerte, dedup, use para troncos recién rotados).

Incluso puede escribir transparentemente loggings en fs comprimido (fusecompress, lessfs, btrfs / zfs). Proporcione el acceso R / o por httpd a los loggings que están siendo escritos. Serán transparentes para los usuarios y descomprimidos de forma transparente para ellos.

Advertencias sobre fusecompress: 1) utilizar sólo 0.9.x – es estable. Clonar desde aquí https://github.com/hexxellor/fusecompress

Las versiones posteriores no admiten lzma bien o pierden datos.

2) utiliza sólo 1 núcleo de la CPU para comprimir un file, por lo que puede ser lento.

Vuelva a comstackr cada logging en la carpeta "nueva", más vieja que algún time (varios meses) y mueva a "viejo".

  • Migración en vivo de Hyper V 2012 y de Cluster de SQL
  • ¿Cómo QoS NFS?
  • entendiendo RAID Nivel 5
  • Servidor web en SAN vs SSD
  • 3WARE 9650-4LPML JBOD DISK a RAID - 1 Mirror Migration Cómo hacer?
  • Instalador de Debian Partman y bloques reservados
  • ¿Se pierde todo cuando se tiene un disco duro falla en un disco duro multi-LVM que no utiliza RAID?
  • ¿Puedo agregar la tarjeta del HBA a una estación de trabajo o él necesidad de ser server?
  • ¿Con qué frecuencia debo limpiar mi RAID?
  • ¿Cómo get la integridad de los datos de comprobación en ext4?
  • ¿La adición de más unidades a una matriz RAID 10 aumenta el rendimiento?
  • ¿Hay una manera de hacer algo como LVM sobre NFS?
  • ¿Cómo puedo desmarcar una partición como activa?
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.