2011-06-09 14 views
5

El producto de mi empresa producirá petabytes de datos cada año en nuestros sitios de clientes. Quiero llenar un NAS de varios petabytes para simular un sistema que se ha estado ejecutando durante mucho tiempo (3 meses, 6 meses, un año, etc.). Queremos analizar nuestro software mientras se ejecuta en un sistema de almacenamiento bajo carga.¿Cómo llené rápidamente un NAS de varios petabytes?

Podría escribir un script que cree estos datos (un solo script podría tomar semanas o meses para ejecutarse). ¿Hay recomendaciones sobre cómo agotar la secuencia de comandos (máquinas múltiples, hilos múltiples)? El NAS tiene 3 enlaces entrantes de carga balanceada ... ¿debería ejecutarlo directamente en el dispositivo NAS?

¿Hay productos de terceros que pueda usar para crear carga? Ni siquiera sé cómo comenzar a buscar productos como este.

¿Importa si los datos son realistas? ¿Alguien sabe algo sobre NAS/arquitectura de almacenamiento? ¿Puede ser simplemente bits aleatorios o importa la regularidad de los datos? Nos avivar los datos en el disco a cabo en este formato

x:\<year>\<day-of-year>\<hour>\<minute>\<guid-file-name>.ext 
+0

Así que desea obtener datos en un NAS más rápido que el NAS es capaz de escribir a sus discos? Parece que es ilógico, Capitán. –

+0

Me da que la velocidad de enlace del NAS y sus discos sería la máxima. Está bien, me encantaría alcanzar la saturación total. El NAS en cuestión tiene tres conexiones entrantes balanceadas de carga separadas. Estoy pidiendo soluciones creativas al problema. No para respuestas sarcásticas. –

+0

Ya conoce la solución: escriba un script que maximice el ancho de banda del disco. Ejecútelo tan cerca del NAS como necesite para obtener suficiente ancho de banda de E/S. Si necesita ideas para escribir a alta velocidad, pruebe el benchmark Bonnie ++. Por definición, esto es capaz de escribir más rápido que un disco. –

Respuesta

3

Usted va a estar limitado por la velocidad de escritura de los discos NAS/- se me ocurre ninguna manera de conseguir alrededor de eso.

Entonces, el desafío es simplemente escribir-saturar los discos durante el tiempo que sea necesario. Una secuencia de comandos o un conjunto de secuencias de comandos que se ejecutan en una máquina razonable debería poder hacer eso sin dificultad.

Para comenzar, use algo como Bonnie ++ para averiguar qué tan rápido pueden escribir sus discos. Entonces podría usar el código de Bonnie como punto de partida para saturar las escrituras; después de todo, para comparar un disco, Bonnie tiene que poder escribir más rápido que el NAS.

Suponiendo que tiene conexiones de Ethernet de 3x1GB, la entrada de red máxima a la caja es de aproximadamente 300 MB/s. Una PC es capaz de saturar una conexión Ethernet de 1GB, por lo que 3 PC deberían funcionar. Haga que cada PC escriba una sección del árbol y listo.

Por supuesto, para llenar un petabyte a 300 MB/s tomará alrededor de un mes.

Como alternativa, podría mentir a su código sobre el estado del NAS. En Linux, podría escribir un sistema de archivos de espacio de usuario que pretendiera tener varios petabytes de datos creando metadatos sobre la marcha (nombre de archivo, longitud, etc.) para un petabytes que valga la pena de los archivos. Cuando el producto lee, genere datos aleatorios. Cuando el producto escribe, escríbalo en un disco real y recuerde que tiene datos "reales" si se vuelven a leer.

Dado que es probable que su producto no lea todo el petabyte durante esta prueba, ni tampoco escriba mucho, podría simular fácilmente un NAS arbitrariamente completo al instante.

Si esto se lleva más o menos de un mes para desarrollar es una pregunta abierta :)

Cuestiones relacionadas