Impulsar la investigación con almacenamiento de alto rendimiento

Transcripción del vídeo

Mi nombre es Nick Rathke. Soy subdirector de tecnología de la información en Informática científica e imágenes, que es un instituto de investigación de la Universidad de Utah. Entonces, un poco sobre el Instituto SCI, somos uno de los ocho institutos de investigación permanentes que forman parte de la Universidad de Utah. Somos el hogar de más de 200 estudiantes, personal y profesores. Contamos con 20 profesores titulares provenientes principalmente de Informática Escolar, Departamento de Bioingeniería, Departamento de Matemáticas, Ingeniería Eléctrica e Informática y prácticamente todos nuestros profesores también tienen nombramientos en otros departamentos, por lo que somos un grupo muy interdisciplinario. Hacemos mucho de todo, ¿verdad? Entonces, uno de nuestros reclamos a la fama es nuestro Paquetes de código abierto en computación científica., y el principal de eso se llama "SCIRun, ”Que es lo que llamamos un entorno de resolución de problemas. También hacemos paquetes llamados "Seg3D, ImageVis3D, ShapeWorks, ViSUS, map3d". Todo esto es de código abierto. Todo está disponible en el sitio web de SCI si alguna vez desea consultarlo. Quiero decir, eso es algo que nuestro pan y mantequilla es hacer esta investigación y procesamiento de imágenes. Entonces, un poco sobre nuestra tubería en cuanto a dónde vienen nuestros datos y qué hacen los paquetes. Entonces tenemos modelado basado en imágenes, que incluye adquisiciones de datos. Por lo tanto, tomamos imágenes de microscopía electrónica, imágenes de resonancia magnética, cualquier tipo de imagen médica en su mayor parte. Luego tenemos todos estos paquetes como Seg3D y Cleaver, y ShapeWorks que se ocupan de eso. A medida que giramos alrededor del círculo, este es nuestro tipo de flujo de trabajo y luego vemos algunas de nuestras aplicaciones de renderizado como ImageVis3D y FluoRender que tratan con GPU y la representación de volumen.

Entonces, tratamos con muchos tipos de imágenes diferentes y, por supuesto, para tratar con todos estos tipos de imágenes, tenemos muchos datos. Entonces, con todos estos segmentos diferentes, trabajar tanto en el desarrollo de software como en el análisis de datos significa que tenemos una gran cantidad de datos realmente desestructurados. Entonces, parte de nuestro problema es que esto va desde lo más pequeño de "HelloWorld" como un programa C ++, hasta los conjuntos de datos de la retina de conejo como representaciones de volumen, que es un conjunto de datos de casi cuatro terabytes. Eso es un tamaño de archivo único. Entonces, ejecutamos todo, desde muy pequeños hasta muy grandes. Y en el proceso de hacer esto, también generamos una gran cantidad de datos temporales, lo cual es un gran problema para mantener y realizar un seguimiento. Ya sabes, cuando estás tratando con estos grandes cortes de imágenes, para hacer lo que hacemos con ellos, hay muchos datos intermedios que se generan a partir de eso.

Entonces, este es nuestro diseño de cómo estructuramos el almacenamiento. En nuestro mundo y probablemente en muchos otros entornos, probablemente el segundo lugar después de su red sea el almacenamiento. Probablemente sea una de las cosas más importantes que tiene en su entorno. Entonces, virtualmente, todo en SCI se relaciona con nuestro sistema de almacenamiento. Tenemos dos grupos de Qumulo separados. Tenemos uno en la parte inferior, que es nuestro QC208. Tenemos cuatro de esos y tenemos siete de los QC24, que está en el medio. Y eso está dividido por una razón muy particular es que los 208 en la parte inferior son una especie de nuestro almacenamiento general y general, mientras que los QC24 son menos costosos y es más fácil escribir en una subvención y poner en financiamiento. Entonces, hay una razón real por la que dividimos esto de esa manera.

Entonces, para los clientes, ejecutamos una gran variedad de clientes que acceden a este almacenamiento. Todo, desde los escritorios 200-plus, nuestros servidores web y servicios web, nuestros servidores de correo electrónico, tenemos una gran biblioteca de copia de seguridad en cinta que hace una copia de seguridad de todos los datos de estos dos grupos. Tenemos sistemas de memoria compartida a gran escala que se ejecutan en el rango del núcleo de la CPU 160. Tenemos una gran cantidad de pequeños sistemas especializados que los profesores traen para hacer proyectos específicos, y luego tenemos dos grupos, los nodos totales de 96 se dividen entre dos grupos diferentes, un solo CPU y un grupo de GPU.

Hay una pequeña fila que se dirige al almacenamiento barato y no tan alegre en la parte superior. No permitimos que nuestros usuarios escriban sus datos temporales directamente en el sistema Qumulo y eso se debe a que todos son datos temporales. Lo último que queremos es contaminar nuestro gran almacenamiento y nuestro agradable sistema de almacenamiento con un montón de archivos que al día siguiente simplemente se van a escribir de más o que alguien se va a olvidar y luego se van a quedar ahí durante dos años. y nadie va a limpiar jamás. Entonces, escribimos nuestro temporal en un sistema más pequeño y luego todos los datos finales realmente terminan en nuestro sistema Qumulo, donde luego se puede hacer una copia de seguridad y la gente puede hacer el siguiente paso de su proyecto con eso. En orden con todas estas conexiones diferentes, prácticamente pasamos por nuestra red con solo el DNS de un pobre y hacemos un round robin de DNS, y eso nos ha funcionado bastante bien a lo largo de los años.

Entonces, este es un poco más de un diseño. Es un poco difícil de ver en esa pantalla, pero tenemos un interruptor de 10 gigas entre todos nuestros clientes y en nuestro almacenamiento de Qumulo. Y exportamos todo nuestro almacenamiento a Windows, Linux y Mac. Somos 90% Linux y Mac. Tenemos algunas cajas de Windows en las que hacemos SMB para Samba. Lo realmente bueno para nosotros en Qumulo fue que cuando obtuvimos Qumulo, pudimos poner fin a la vida útil de todos nuestros servidores de directorio activo, que no somos gente de Windows, por lo que fue una gran cosa para nosotros deshacernos de nuestro directorio Activo. Luego, la forma en que interactúa con el sistema de archivos Qumulo, también hemos dedicado dos de nuestras cajas de Linux como notas de control que tienen múltiples interfaces de 10 gigas y las usamos para la migración de datos y para mover datos de un lado a otro a través de múltiples sistemas, y todos esos son a través de NFS. También usamos nuestras cajas de Linux para ejecutar cualquier script de administración a través de la API de Qumulo, además de eso, y eso nos funcionó muy bien y fue bastante eficiente.

Entonces, por supuesto, tenemos todo este gran almacenamiento, pero los datos aborrecen el vacío. Entonces, si hay espacio libre, se llenará. Especialmente si trabajas en educación superior y trabajas con estudiantes graduados, ellos simplemente lo llenarán hasta que se desborde, ¿verdad? Cualquiera que trabaje con estudiantes de posgrado lo sabe. Entonces, esto es un poco interesante porque la línea empinada en el lado derecho es cuando borramos nuestros datos temporales a principios de año y estamos comenzando a mover todos nuestros datos a producción, que es la última vez. año. Entonces, por supuesto, el almacenamiento es de hecho un recurso limitado. Por lo tanto, saber a dónde se dirigen sus datos es realmente importante no solo para lo que está haciendo hoy, sino para la planificación de la capacidad en el futuro, de modo que si usted es como nosotros, tiene fondos federales y tiene que trabajar a través de un ciclo de subvenciones, usted sabe con cuánta anticipación necesita comenzar a programar e intentar incluir el almacenamiento en su presupuesto de investigación.

Entonces, esto está fuera de nuestros Q08 y podemos ver en el lado izquierdo, una pequeña columna resaltada, un usuario ha escrito un montón de datos, y debajo podemos ver exactamente en qué ruta ese usuario ha escrito eso. Se trata de cinco terabytes por dato y es muy fácil averiguar quién escribió eso y hacia dónde van esos datos simplemente haciendo clic en una barra en un gráfico. El objetivo, por supuesto, es ayudar a que los investigadores sigan investigando. Nunca querrá decirle a un investigador: "Lo siento, no tenemos espacio en nuestro sistema". Por lo tanto, la planificación de la capacidad es una parte importante de lo que sucede. Entonces, y podemos ver esto en diferentes resoluciones. Son 52 semanas. También podemos ver esto en una resolución de 30 días, una resolución de 72 en cuanto a lo que el sistema Qumulo proporciona por defecto con las API, con las API de Qumulo. También podemos volcar todos estos datos en un sistema separado para un análisis adicional más adelante.

Bien, entonces, parte de la planificación de la capacidad, la siguiente parte de eso en cuanto a mantener su investigación en marcha es la contención de la capacidad. Para nosotros, poder averiguar dónde están los datos y cuánto se está utilizando en tiempo real es muy importante. Entonces, esto muestra un proyecto de aproximadamente 30 terabytes llamado "Neuro". Una de las razones por las que este proyecto ... es un proyecto que involucra una neuroestimulación profunda para condiciones similares de epilepsia y convulsiones. Entonces, están haciendo muchas neuroestimulaciones. Tienen el peor caso de IO de datos que puedas imaginar haciendo este proyecto. Entonces, se ejecuta en 10 servidores Xeon5 con 256 subprocesos, es su salida. Cada uno de esos subprocesos, por lo que si tiene 2,600 subprocesos aproximadamente, escribe 1 archivo que tiene un valor N16 y luego lo ejecutan todo el tiempo. Y su actuación fue atroz porque están escribiendo un archivo con un número.

Y ahora, gracias a este sistema, en realidad, y algunos otros ajustes de rendimiento que hicimos, ahora han escrito algunos scripts de Python para ayudar a mitigar algunos de sus problemas de IO. Pero sí, probablemente se trate de un archivo pequeño con un número, 2,500 a la vez es bastante brutal. Entonces, por supuesto, parte de esta capacidad de contención es que tenemos estos pequeños guiones geniales que de vez en cuando pasan y dicen: "Oye, estás alcanzando tu cuota". Entonces, escribimos todos estos guiones allí con la API de Qumulo. Hemos asignado cuotas de personas y ahora no solo en el lado de TI sabemos lo que está sucediendo, sino que podemos enviar estos scripts de vez en cuando para que nuestros usuarios sepan y digan: "Oye, estás en algún tipo de de un estado de violación de la cuota ". Y hacemos una base de datos de todo esto porque la facultad quiere saber cómo sus usuarios están usando sus datos y es fácil para nosotros informar sobre eso y generar y escribir informes que son específicos del proyecto y específicos del grupo dentro de nuestro entorno.

Entonces, por supuesto, rendimiento, aquí estamos hablando de un sistema de alto rendimiento. Entonces, el rendimiento es, ya sabes, bastante importante después de todo, pero si el sistema no funciona bien, no importa cuánto almacenamiento tengas, si nadie puede usarlo. Si no puede usar su almacenamiento de alto rendimiento, es cero. Entonces, comprender y observar estas métricas es una parte muy importante de lo que hacemos. El de arriba, puede ver, escribe alrededor de 187 megas por segundo. No está haciendo tantas lecturas. Es algo interesante porque tomé el de arriba a las 9:00 am de la mañana. Entonces, es agradable ver que algunos estudiantes de posgrado en realidad no duermen hasta el mediodía, pero en última instancia, ¿qué significan estos números, verdad? ¿Qué significan 120 megabytes o 187 megabytes para un investigador de la facultad, verdad? Lo que eso significa, en última instancia, para ellos es hora de comprender. ¿Cuánto tiempo me toma recuperar mis resultados, verdad?

Y para un buen desempeño, ya sabes, estos son números excelentes, pero deben traducirse en algo más significativo que solo un número para las personas. Si tiene un desempeño deficiente, entonces lo que sucede es que tiene clientes enojados y profesores enojados y, en general, los profesores enojados no permanecen enojados en su propia oficina. Vienen a mi oficina y están enojados en mi oficina, lo que generalmente no es algo bueno. Una de las otras cosas interesantes, y acabo de agregar esta esta mañana, es este pico en la esquina inferior aquí. Vi este pico esta mañana cuando estaba mirando nuestro sistema y dije: "Bueno, ¿qué es ese pico?"

Y luego, el sistema Qumulo es realmente fácil de entender. Es ese pico allí, esta mañana, en realidad fue el mismo usuario que hizo el gran pico en el anterior en… te lo mostraré. En realidad, es esa línea blanca de ahí. Es el mismo usuario que escribió esos datos y me tomó unos 30 segundos darme cuenta de que esta mañana es el mismo usuario, y lo que el usuario está haciendo es un 2018 ... Voy a leer esto de inmediato, así que haz esto bien. Está trabajando en el “concurso EEE Cyviz [SP] 2018, dedicado a la visualización y análisis de impactos de asteroides en aguas profundas”. Entonces, ya sabes, considerando que eso no es por un año, el estudiante ya está trabajando mucho antes de su horario, lo cual también es un poco inusual para un estudiante.

Muy bien, más sobre el rendimiento, el sistema Qumulo nos ofrece una forma realmente buena de analizar el rendimiento del cliente. Puedes ver que uno de los mejores verdes está haciendo muchas lecturas. Tenemos algunos sistemas haciendo escrituras. Lo bueno es que podemos profundizar y ver muy rápidamente exactamente qué directorios y hacia dónde van todos esos datos. Esto realmente nos ayuda desde ... cuando se trata de 200 escritorios y muchos otros sistemas, averiguar dónde está escribiendo algún sistema es bastante crítico. De hecho, esto ha llevado a algunas conversaciones telefónicas interesantes con el soporte de Qumulo porque no estábamos acostumbrados a ver números muy grandes. En nuestro sistema anterior, no pudimos lograr ni siquiera el rendimiento que tenemos en Qumulo.

Y de hecho ha sido un poco divertido porque llamé al soporte de Qumulo en pánico y dije: “Estoy viendo a un cliente y está funcionando, ya sabes, de 30 a 40 megas por segundo. ¿Qué debo hacer? Va a matar a mi grupo ". Son como, “Oh, está bien. No te preocupes por eso ". Entonces, después de un par de, ya sabes, el otoño comienza cuando comenzamos a ver números de rendimiento a los que simplemente estábamos acostumbrados, ahora estamos muy acostumbrados y no tenemos los desafíos de soporte que tuvimos al llamarlos. innecesariamente.

Entonces, por supuesto, también parte del rendimiento, su rendimiento general es el tiempo de actividad. Durante el último año, hemos tenido cuatro nueves y medio en el sistema. Hemos tenido aproximadamente 28 minutos de tiempo de inactividad en el último año y eso fue solo para hacer parches y actualizaciones menores. Entonces, desde el punto de vista del rendimiento del tiempo de actividad, ya sabes, es algo que, para nosotros, ha sido increíblemente estable. Entonces, una cosa sobre Uptime, que no es una historia tan divertida, es que por una falla menor en nuestro centro de datos tenemos 120 minutos de tiempo de ejecución, pero si perdemos energía no tenemos enfriamiento, nuestro enfriamiento se apaga, de lo que pasará 68 grados a 100 grados en aproximadamente 20 minutos.

Ahora, cuando estábamos probando con Qumulo hace un año y estábamos en el proceso de construir nuestro entorno de producción, eso sucedió dos veces en un día debido a dos cortes de energía diferentes en el Valle de Salt Lake que no tenían ninguna relación. En nuestro sistema Qumulo, normalmente lo que sucede con nuestros grandes clústeres es que tenemos scripts automatizados que cierran todo. Con el cúmulo de Qumulo, todavía no lo teníamos. Así que, literalmente, fui al centro de datos y tiré todos los cables de alimentación. Ahora, esto es absolutamente algo que no te recomiendo que hagas nunca, pero lo hice dos veces en un día para el sistema Qumulo. De todos los sistemas de almacenamiento y todas las matrices de discos que tenemos, Qumulo es el único que regresó sin fallas, sin corrupción de datos, sin pérdidas de disco. Fue el único sistema que manejó eso. En nuestro sistema de archivos principal, que es de otro proveedor, perdimos 6 unidades en 15 nodos. Nuestro sistema barato y alegre fue una completa pérdida. Perdió cada unidad.

Así que creo que fue una prueba interesante, no algo que le recomendaría hacer, pero pudimos hacerlo. Entonces, por supuesto, debido a que hoy tenemos esta planificación de capacidad y ahora podemos ver todos estos datos, ahora sabemos a dónde tenemos que ir y cómo tenemos que planificar esto. Este es nuestro plan de migración para los próximos cinco años. En el primer año, agregaremos otro QC24, que será el próximo año. El año siguiente, agregaremos dos más. Luego del tercer año, agregaremos uno. En ese momento, actualizaremos nuestra red de 10 gigas a 40 gigas, y luego agregaremos otra QC208. Entonces, ese es nuestro plan de migración y, por supuesto, debido a que es una solución de escalamiento horizontal, literalmente podemos agregarlos a todos sin tiempo de inactividad. Los conectamos a la red, le damos una IP y está listo y funcionando, lo cual es genial para nosotros.

Habilidades

Publicado el

31 de julio de 2018