En este documento se muestra la infraestructura de almacenamiento masivo con que cuenta Grid UNAM. Asimismo se explica como acceder a ellos desde un nodo "Submit" y desde su interaz WEB. Finalmente, se muestra el uso de los comandos báscos de manupulación de archivos de esta plataforma.
Introducción
GridUNAM tiene integrado un conjunto de servidores de almacenamiento basados en la tecnología "High Performance Object Storage", que en conjunto tiene la capacidad de almacenar hasta 600 TB TeraBytes de datos. A estos servidores los llamaremos "Servidores-S3". La intención es que usted coloque en los Servidores-S3 los archivos o datos que requiera para la ejecución de su aplicación, así como los archivos de resultados al finalizar su experimento. En la Tabla 1 se muestran los nombres de los Servidores-S3 disponibles en GridUNAM, su capacidad, la liga para accederlos desde un navegador, un identificador del nodo submit necesario en el ambiente de envíos de trabajo y la entidad Grid UNAM a la que pertenecen.
Servidor-S3 | Capacidad total | Acceso URL | Identificador | Entidad Grid UNAM |
---|---|---|---|---|
s3.lamod.unam.mx | 50 TB | https://s3.lamod.unam.mx:9001/ | dgtic | sumbmit.lamod.unam.mx |
atenea.astrosen.unam.mx | 50 TB | https://atenea.astrosen.unam.mx:9001/ | atenea | jamatu.astrosen.unam.mx |
s3.grid.unam.mx | 500 TB | https://s3.grid.unam.mx:9001/ | lamod | submit.grid.unam.mx |
Tabla 1. Servidores-S3 disponibles en Grid UNAM.
Los Servidores-S3 están enlazados con una red de alta velocidad de 10 Gbps y distribuidos en distintas entidades geográficamente distantes. Alguno de ellos están ubicados en las instalaciones de Ciudad Universitaria en la Ciudad de México y uno de ellos en Ensenada, Baja California. La red de alta velocidad, permite que sus datos puedan ser alojados en cualquiera de los Servidores-S3 y el programa que los utiliza resida o pueda ser enviados desde cualquiera de las 4 entidades Grid UNAM. Es así, que los tiempos de transporte de datos no impactarán de forma sustancial el rendimiento de algoritmo.
Los Servidores-S3 de Grid UNAM están basados en el software MinIO Enterprise Object Store, https://min.io/, que es compatible con el protocolo Simple Storage Service (S3) desarrollado por Amazon, disponible para procesos de almacenamiento masivo en la nube. En particular la seguridad está basado en la generación de "Tokens" y este es el mecanísmo base de autenticación de nuestra plataforma. Es así, que para operar a los Servidores-S3 es a través de un comando llamado "mcli", https://min.io/docs/minio/linux/reference/minio-mc.html. En este documento solo probaremos con los comandos más sencillos de MinIO.
Adicionalmente, Grid UNAM ha desarrollado una utileria llamada "gridauth.sh" que nos permite:
- Generar un "token" de acceso de manera simple.
- El "token" tiene una duración de 3 días, equivalente al tiempo máximo de ejecución de cualquier trabajo sometido a nuestra plataforma.
- Genera una etiqueta única para un acceso uniforme a los Servidores-S3 desde cualquier nodo de envío. Esta etiqueta es:
Requerimientos
- Tener un proyecto Grid UNAM vigente
- Tener una cuenta para acceso a un nodo submit
- Tener una cuenta para acceso a un nodo de almacenamiento.
De las Cuentas
- Cada uno de los proyectos aprobados tienen un directorio raiz único, que en el contexto de almacenamiento S3 lo llamaremos "Bucket-Raiz", y está especificado en el momento de alta del proyecto.
- Cada proyecto tiene un espacio almacenamiento total permitido para todo el proyecto.
- Cada proyecto tiene un Servidor-S3 asociado. Solo en casos especiales puede tener mas de un Servidor-S3, que será especificado en el momento de la aprobación del proyecto o solicitado en el desarrollo del mismo.
- Cada proyecto puede tener mas de un colaboradores.
- Cada integrante de un proeycto debe tener su propia cuenta.
- Los integrantes de un proyecto pueden leer, escribir y borrar el contenido del Bucket-Raiz.
Acceso a los Servidores-S3 desde un nodo submit
Una buena práctica para los usuarios de Grid UNAM, es tener la información de los accesos de los diferentes componentes de esta plataforma disponibles para su consulta. En la siguiente tabla mostramos el ejemplo del proyecto "Taller Grid UNAM" cuyo nombre corto es "tallergu". En este proyecto se generaron 50 cuentas para acceso al nodo submit, equivalente a 50 colaboradores.
Para el uso del almacenamiento se creo un solo usuario llamado "tallergu" en el servidor atenea.astrosen.unam.mx. Se le asignó 5 TB de espacio de almacenamiento al proyecto. Al Bucket-Raiz se le asignó el nombre "tallergu" y es aquí en donde cada usuario crea y trabaja en su propio directorio. Nótese que el nombre corto del proyecto es igual que el nombre del Bucket-Raiz, ésta es una política que mantendrá el grupo de desorrollo Grid UNAM, siempre y cuando no exista una razón para cambiarla.
Descriptor | Valor |
---|---|
Nombre del proyecto: | Taller Grid UNAM |
Nombre Corto: | tallergu |
Nodo Submit: | jamatu.astrosen.unam.mx |
Cuenta nodo submit: | tgu40 |
Palabra de acceso: | xxxxxx |
Servidor-S3: | atenea.astrosen.unam.mx |
Cuota de almacenamiento: | 5 TB |
Cuenta de almacenamiento: | tallergu |
Palabra de acceso almacenamiento: | yyyyyy |
Bucket-Raiz: | tallergu |
Identificador-S3: | atenea |
URL: | https://atenea.astrosen.unam.mx:9001/ |
Tabla 2. Información de accesos a la plataforma Grid UNAM
Generación del "Token" de acceso.
- Conectese al nodo submit que le fué asignado
En nuestro caso sería
ssh Cuenta-nodo-submit@Nodo-Submit
ssh tgu40@jamatu.astrosen.unam.mx
tgu40@jamatu.astrosen.unam.mx' s password: xxxxxx
[tgu40@jamatu ~]$
- Ejecute el comando gridauth.sh en el directorio "$HOME" de su cuenta en el nodo submit.
cd $HOME
source gridauth.sh Identificador-S3
Identificador
Usuario: Cuenta-de-almacenamiento
Password: Palabra-de-acceso-almacenamiento
Para nuestro caso sería
[tgu40@jamatu ~]$ cd $HOME
[tgu40@jamatu ~]$ source gridauth.sh atenea
atenea
Usario: tallergu
Password: yyyyyy
A partir de este momento usted tiene acceso a la sección de almacenamiento S3 de la plataforma Grid UNAM.
Comandos básicos de manipulación de archivos y directorios.
La forma de interactuar con Grid UNAM es a través del comando "mcli", en las versiones mas recientes cambia a simplemente "mc". La sintaxis tiene la forma siguiente:
mcli comando opciones
MinIO | Comando | Descripción |
---|---|---|
mcli | ls | Lista el nombre de los objetos y buckets |
mcli | cp | Copia un archivo desde o hacia el Servidor-S3 |
mcli | rm | Borra un objeto del Servidor-S3 |
mcli | mb | Crea un directorio o bucket en el Servidor-S3 |
mcli | rb | Borra un directorio o bucket del Servidor-S3 |
Tabla 3. Comandos básicos de manejo de archivos
-
Listar el contenido. La etiqueta "gridunam" es la que activa el acceso Servidor-S3. Entonces, listar
esta etiqueta significa listar el nombre de nuestro Bucket-Raiz.Nótese que para el caso de este taller aparecen dos Bucket-Raiz, "tallergu/" y "tallergusrc/". Esto se debe a que los talleristas tienen acceso a un segundo Bucket-Raiz llamado "tallergusrc/", en donde están los documentos y programas o aplicaiones de interés para estos talleres, sin embargo el acceso a éste es solo de lectura.[tgu40@jamatu ~]$ mcli ls gridunam [2023-09-21 13:11:59 PDT] 0B tallergu/ [2023-09-21 13:15:01 PDT] 0B tallergusrc/
-
Copiar archivos. La sintaxis más simples es:
Si en el nodo submit tengo el archivo $HOME/Dir/file1_30MB.raw y quiero subirlo al Servidor-S3 en el Bucket-Raiz, el comando sería:mcli cp fuente destino
[tgu40@jamatu ~]$ mcli cp $HOME/Dir1/file1_30MB.raw gridunam/tallergu/ .../file1_30MB.raw: 30.00 MiB / 30.00 MiB ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.20 MiB/s [tgu40@jamatu ~]$ mcli ls gridunam/tallergu/ [2024-10-24 11:49:46 PDT] 30MiB STANDARD file1_30MB.raw
Ahora bien, si tengo un "objet" en el servidor Servidor-S3 en la trayectoria gridunam/tallergu/file1_30MB.raw y lo quiero colocar en un direcotrio de nodo submit $HOME/Dir2 el comnado es:
[tgu40@jamatu ~]$ mcli cp gridunam/tallergu/file1_30MB.raw $HOME/Dir2/
.../file1_30MB.raw: 30.00 MiB / 30.00 MiB ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 109.85 MiB/s
[tgu40@jamatu ~]$ ls -l $HOME/Dir2/
-rw-r--r-- 1 tgu40 GridIAE 31457280 Oct 24 11:22 file1_30MB.raw
-
Borrado de un objeto. La sintaxis más simple es:
Ahora, quiero borrar el archivo file1_30MB.raw del Servidor-S3. El comnado seríamcli rm objetc
[tgu40@jamatu ~]$ mcli rm gridunam/tallergu/file1_30MB.raw Removed `gridunam/tallergu/file1_30MB.raw`. [tgu40@jamatu ~]$ mcli ls gridunam/tallergu/
-
Crear directorios en el Servidor-S3. La sintaxís básica es:
Para generar el directorio "MiDirectorio" en el Bucket-Raiz el comando sería:mcli mb gridunam/Bucket-Raiz/Nombre_Directorio
[tgu40@jamatu ~]$ mcli mb gridunam/tallergu/MiDirectorio Bucket created successfully `gridunam/tallergu/MiDirectorio`. [tgu40@jamatu ~]$ mcli ls gridunam/tallergu/ [2024-10-24 12:04:48 PDT] 0B MiDirectorio/
-
Borrar un "bucket". Un directorio en el Servidor-S3 solo puede ser borrado si éste está vacío. Por lo tanto habrá que borrar todos los archivos y sub-directorios dentre de él. No obstante, MinIO ofrece opciones para hacer un borrado recursivo, pero hay que usarlo con cuidado, ya que puede eliminar el contenido completo del *Bucket-Raiz". La sintaxis simplé es:
Si quiero borrar el "bucket" que generé anteriormente el comando sería:mcli rb bucket
[tgu40@jamatu ~]$ mcli rm gridunam/tallergu/MiDirectorio Removed `gridunam/tallergu/MiDirectorio`. [tgu40@jamatu ~]$ mcli ls gridunam/tallergu
Finalizar la sesión de almacenamiento
Antes de abandonar el node submit es una buena práctica limpiar las variables de ambiente generadas por gridauth.sh. También será necesario hacer este proceso si usted tiene acceso a 2 o mas *Servisores-S3", primero finaliza la sesión en el primero e inicia la sesión en el segundo. Ejecuté la secuencia siguiente:
cd $HOME
source gridauth.sh logout
logout
Referencias del comando "mcli"
La información completa de los comnado "mcli" se puede consulatr en la liga:
https://min.io/docs/minio/linux/reference/minio-mc.html
O bien desde la línea de comandos de la forma:
mcli --help
mcli comando --help
Acceso a los Servidores-S3 desde el WEB
La interfaz WEB de acceso a los servidores es intuitiva y puede ser visualizada
desde cualquier navegador y desde cualquier punto del Internet.
Es muy útil cuando los trabajos que son enviados a Grid UNAM, guardan información directamenta al Servidor-S3, ya sea parcial, por cada paso o iteracción o bien al término del mismo. Entonces, se pude revisar el progreso desde cualquier sitio. De la misma forma, si los archivos de entrada se encuentran en su servidor o computadora persona y se almacenar en el Servidor-S3 sin hacer uso del nodo submit.
El procedmiento es el siguiente:
- Desde cualquier navegador accese al Servidor-S3 que se muestra en la columna "Aceso URL" de la Tabla 1. Seleccione "Other Authentication Methods" → "GridUMAM", vea la Figura 1.
Figura 1: Pantalla de inicio
- Llene los campos de "Username or email" con en nombre de la "Cuenta de almacenamiento:" y de "Password" con "Palabra de acceso almacenamiento:", descritos en la Tabla 2. Seguido presione "Sign In", vea la Figura 2.
Figura 2: Pantalla de acceso
- Seguido le aparecen el o los *Buckets-Raiz" que su proyecto tiene aprobado.
Figura 3: Bucket-Raiz del proyecto