Diferencia entre revisiones de «Tutorial gdrive y rclone»

De NLHPC
Sin resumen de edición
Sin resumen de edición
Línea 8: Línea 8:
* Los ejemplos presentados están pensados para ser utilizados en las particiones '''login''' y '''main''',
* Los ejemplos presentados están pensados para ser utilizados en las particiones '''login''' y '''main''',
* Siempre se recomendará que la descarga de archivos debe realizarse de manera independiente a la ejecución de simulaciones que requieran una alta demanda de poder de cómputo.
* Siempre se recomendará que la descarga de archivos debe realizarse de manera independiente a la ejecución de simulaciones que requieran una alta demanda de poder de cómputo.
== Compartir directorio y/o archivo de Google Drive ==
=== Configuración de acceso ===
Es necesario acceder a la cuenta de Google Drive u obtener la URL del directorio o archivo que deseamos copiar hacia el clúster.
En el caso de que seamos propietarios del contenido a copiar, podemos:
# Buscar directorio o archivo a compartir
# Click derecho sobre el nombre para abrir menú contextual
# Seleccionar "Compartir" y luego en "Compartir" nuevamente
# En la ventana para configurar los permisos de "Acceso General" seleccionamos "Cualquier persona con el enlace" en modo "Lector"
# Presionar el botón "Hecho"
[[File:GDRIVE-sharing.png]]
=== Copiar URL de directorio o archivo compartido ===
Cuando ya se realizan los ajustes a la configuración deltipo de acceso, será posible copiar la URL siguiendo los pasos:
# Buscar directorio o archivo a compartir
# Click derecho sobre el nombre para abrir menú contextual
# Seleccionar "Compartir" y luego "Copiar enlace"
[[File:GDRIVE-sharing-url.png]]
La URL quedará en el buffer por lo que podremos pegar dicha información (CTRL+V), lo que será similar a:
https://drive.google.com/drive/folders/1BgVf...Bag?usp=drive_link


== Carga y configuración de '''rclone''' ==
== Carga y configuración de '''rclone''' ==
Línea 83: Línea 57:


# New Remote ('''n''')
# New Remote ('''n''')
# Name for new remote (a discreción del usuario)
# Name for new remote (a discreción del usuario, ejemplo '''my_gdrive''')
# Type of storage ('''19''' equivale al valor de '''Google Drive''', el valor numerico puede variar)
# Type of storage ('''19''' equivale al valor de '''Google Drive''', el valor numerico puede variar)
# Client ID (dejar en blanco)
# Client ID (dejar en blanco)
Línea 128: Línea 102:


En el último paso podrá agregar un nuevo origen de datos demoto, editar o borrar, aunque estas acciones quedan fuera del alcance de este documento.
En el último paso podrá agregar un nuevo origen de datos demoto, editar o borrar, aunque estas acciones quedan fuera del alcance de este documento.
== Uso básico de rclone ==
A continuación se muestran algunos comandos básicos para utilizar
=== Listar contenido remoto ===
Para listar el contenido remoto ejecutaremos:
rclone ls my_gdrive:
Esto listará todo el contenido disponible en Google Drive.
Si deseamos listar únicamente el contenido de un directorio, es necesario especificar la ruta:
rclone ls my_gdrive:images/
Si el directorio o archivo no existe, obtendremos un mensaje de error.
También debe notar que al referirnos al contenido remoto se debe utilizar ''':''' entre el nombre del contenido remoto y el directorio.
=== Copiar desde Google Drive hacia el clúster ===
Para copiar '''desde''' Google Drive hacia nuestra cuenta en el clúster ejecutamos:
rclone copy my_gdrive:/images ~/copia_local
El comando anterior copiará el contenido de '''my_gdrive:/images''' a nuestro directorio local '''copia_local'''.
Debe notar que al referirnos al contenido remoto se debe utilizar ''':''' entre el nombre del contenido remoto y el directorio.
=== Copiar hacia Google Drive desde el clúster ===
Para copiar '''hacia''' Google drive ejecutamos:
rclone copy ~/copia_local my_gdrive:/images2
El comando anterior copiará el contenido de '''copia_local''' a '''my_gdrive:/images2'''.
Debe notar que al referirnos al contenido remoto se debe utilizar ''':''' entre el nombre del contenido remoto y el directorio.
== Ejemplo de tarea SLURM para copiar archivos ==
Si deseamos realizar una copia de archivos utilizando [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM] podemos hacer algo similar a:

Revisión del 19:54 28 oct 2024

Introducción

El siguiente tutorial tiene como finalidad ayudar a los usuarios a obtener datos desde Google Drive utilizando la utilidad rclone, permitiendo que puedan copiar datos para que ser utilizados en sus cálculos y tareas.

Es necesario considerar que lo aquí presente considera:

  • El acceso es a directorios y archivos compartido de manera pública,
  • No se utilizará identificaciones de Google mediante su API para un acceso sencillo,
  • Los ejemplos presentados están pensados para ser utilizados en las particiones login y main,
  • Siempre se recomendará que la descarga de archivos debe realizarse de manera independiente a la ejecución de simulaciones que requieran una alta demanda de poder de cómputo.

Carga y configuración de rclone

El proceso de configuración inicial de rclone se realizará:

  • Carga de módulos,
  • Identificación de nodo de acceso,
  • Configuración de parámetros iniciales,
  • Crear túnel SSH,
  • Autorizar acceso a cuenta de Google Drive,
  • Finalizar la configuración.

Carga de módulos

Cargamos rclone mediante el uso de módulos ejecutando a:

ml purge
ml rclone/1.68.1

Con estos pasos ya tendremos acceso a la aplicación rclone

Identificación de nodo de acceso

Para identificar el nodo de acceso en que estemos trabajando, podemos ejecutar el comando:

hostname

El que nos indicará el nombre del nodo, los que pueden ser:

  • leftraru1
  • leftraru2

De manera alternativa, es posible acceder de manera específica a uno de los nodos de acceso.

Por ejemplo, si queremos acceder a leftraru2 ejecutaremos:

ssh dbowman@lefraru2.nlhpc.cl 

La identificación del nodo de acceso es importante para cuando se realice la autorización de acceso a Google Drive.

Configuración de parámetros iniciales

Ya podremos ejecutar el comando:

rclone config

Y configuraremos los siguientes parámetros (se pone entre paréntesis el valor a seleccionar):

  1. New Remote (n)
  2. Name for new remote (a discreción del usuario, ejemplo my_gdrive)
  3. Type of storage (19 equivale al valor de Google Drive, el valor numerico puede variar)
  4. Client ID (dejar en blanco)
  5. Client Secret (dejar en blanco)
  6. Access Scope (1)
  7. Service account file (dejar en blanco)
  8. Advence Setting (n)
  9. Web Browser authentication (y)

En este punto es necesario tomar nota de la URL que ofrecerá, similar a:

http://127.0.0.1:53682/auth?state=levQe...v1X7Q

El puerto indicado en el ejemplo anterior es el 53682, el que se utilizará para generar el túnel SSH y permitir el acceso a nuestra cuenta.

Crear túnel SSH y

Necesitamos saber el nombre del nodo de acceso, como se indicó en la sección Identificación de nodo de acceso.

Consideraremos que estamos utilizando leftraru1.

En nuestro computador local crearemos un túnel SSH ejecutando:

ssh -p 4603 -NL 53682:localhost:53682 -l dbowman leftraru1.nlhpc.cl

Es importante a considerar qué el valor 53682 es indicado en la pantalla al momento de seleccionar Web Browser authentication.

Autorizar acceso a cuenta de Google Drive

Eventualmente podremos abrir en nuestro navegador local la URL http://localhost:53682/auth?state=levQe...v1X7Q.

Recuerde verificar el puerto y la generación del túnel SSH.

Al abrir la dirección se deberá autorizar que rclone pueda acceder a nuestro Google Drive.

GDRIVE-sharing-auth.png

Finalizar la configuración.

Una vez autorizado el acceso a Google Drive, podemos continuar con los pasos finales de configuración:

  • Keep this remote (y note que se indicará el nombre dado al proceso de configuración)
  • Quit config (q)

En el último paso podrá agregar un nuevo origen de datos demoto, editar o borrar, aunque estas acciones quedan fuera del alcance de este documento.

Uso básico de rclone

A continuación se muestran algunos comandos básicos para utilizar

Listar contenido remoto

Para listar el contenido remoto ejecutaremos:

rclone ls my_gdrive:

Esto listará todo el contenido disponible en Google Drive.

Si deseamos listar únicamente el contenido de un directorio, es necesario especificar la ruta:

rclone ls my_gdrive:images/

Si el directorio o archivo no existe, obtendremos un mensaje de error.

También debe notar que al referirnos al contenido remoto se debe utilizar : entre el nombre del contenido remoto y el directorio.

Copiar desde Google Drive hacia el clúster

Para copiar desde Google Drive hacia nuestra cuenta en el clúster ejecutamos:

rclone copy my_gdrive:/images ~/copia_local

El comando anterior copiará el contenido de my_gdrive:/images a nuestro directorio local copia_local.

Debe notar que al referirnos al contenido remoto se debe utilizar : entre el nombre del contenido remoto y el directorio.

Copiar hacia Google Drive desde el clúster

Para copiar hacia Google drive ejecutamos:

rclone copy ~/copia_local my_gdrive:/images2

El comando anterior copiará el contenido de copia_local a my_gdrive:/images2.

Debe notar que al referirnos al contenido remoto se debe utilizar : entre el nombre del contenido remoto y el directorio.

Ejemplo de tarea SLURM para copiar archivos

Si deseamos realizar una copia de archivos utilizando SLURM podemos hacer algo similar a: