Diferencia entre revisiones de «Tutorial gdrive y rclone»

De NLHPC
Sin resumen de edición
 
(No se muestran 3 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
== Introducción ==
== 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 descargar datos para que puedan ser utilizados en sus cálculos y tareas que puedan resolver utilizando nuestro clúster.
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:
Es necesario considerar que lo aquí presente considera:
Línea 9: Línea 9:
* 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 ==
== 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):
 
# New Remote ('''n''')
# 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)
# Client ID (dejar en blanco)
# Client Secret (dejar en blanco)
# Access Scope ('''1''')
# Service account file (dejar en blanco)
# Advence Setting ('''n''')
# 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.
 
[[File: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:


=== Configuración de acceso ===
Esto listará todo el contenido disponible en Google Drive.


Es necesario acceder a la cuenta de Google Drive u obtener la URL del directorio o archivo que deseamos copiar hacia el clúster.
Si deseamos listar únicamente el contenido de un directorio, es necesario especificar la ruta:


En el caso de que seamos propietarios del contenido a copiar, podemos:
rclone ls my_gdrive:images/
# 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 ===
Si el directorio o archivo no existe, obtendremos un mensaje de error.


Cuando ya se realizan los ajustes a la configuración deltipo de acceso, será posible copiar la URL siguiendo los pasos:
También debe notar que al referirnos al contenido remoto se debe utilizar ''':''' entre el nombre del contenido remoto y el directorio.
# 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:
=== Copiar desde Google Drive hacia el clúster ===


https://drive.google.com/drive/folders/1BgVf...Bag?usp=drive_link
Para copiar '''desde''' Google Drive hacia nuestra cuenta en el clúster ejecutamos:


== Carga y configuración de '''rclone''' ==
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'''.


=== Carga de módulos ===
Debe notar que al referirnos al contenido remoto se debe utilizar ''':''' entre el nombre del contenido remoto y el directorio.


Cargamos '''rclone''' mediante el uso de módulos ejecutando a:
== 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:
#!/bin/bash
#SBATCH -J fromGdrive
#SBATCH -p main
#SBATCH -n 1
#SBATCH -c 1
#SBATCH --mem-per-cpu=2839
#SBATCH --mail-type=ALL
#SBATCH -o fromGdrive_%j.out
  ml purge
  ml purge
  ml rclone/1.68.1
  ml rclone/1.68.1
mkdir mi_copia_local
rclone copy my_gdrive:images2/ mi_copia_local
Y de esta manera obtener los archivos que necesitará para sus eventuales simulaciones.


=== Configuración inicial de rclone ===
== Enlaces de interés ==


El proceso de configuración inicial de '''rclone''' se realizará:
Lo invitamos a ver los siguientes enlaces, que pueden resultar de utilidad:


* En un nodo de acceso,
* [[Tutorial de acceso a archivos|Tutorial de Acceso a Archivos]]
* Configuración de parámetros iniciales,
* [[Tutorial de acceso a Leftraru via SSH|Tutorial de acceso vía SSH]]
* Crear túnel SSH,
* [https://rclone.org/drive/ Dolcumentación oficial de RClone y el uso con GDrive]
* Autorizar acceso a cuenta de Google Drive,
* Finalizar la configuración.

Revisión actual - 19:58 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:

#!/bin/bash
#SBATCH -J fromGdrive
#SBATCH -p main
#SBATCH -n 1
#SBATCH -c 1
#SBATCH --mem-per-cpu=2839
#SBATCH --mail-type=ALL
#SBATCH -o fromGdrive_%j.out
ml purge
ml rclone/1.68.1
mkdir mi_copia_local
rclone copy my_gdrive:images2/ mi_copia_local


Y de esta manera obtener los archivos que necesitará para sus eventuales simulaciones.

Enlaces de interés

Lo invitamos a ver los siguientes enlaces, que pueden resultar de utilidad: