Conectar con segmentos de Cloud Storage

En esta página se presenta Cloud Storage como opción para almacenar los datos de aprendizaje automático y los resultados del entrenamiento, y se describe cómo dar acceso a Cloud TPU a los objetos de datos de Cloud Storage.

Antes de empezar

Necesitas una cuenta de servicio de Cloud TPU para acceder a un segmento de Cloud Storage.

  1. Crea una cuenta de servicio de TPU de Cloud para tu proyecto.

    gcloud beta services identity create --service tpu.googleapis.com --project project-id

    El comando devuelve una cuenta de servicio de TPU de Cloud con el siguiente formato:

    service-project-number@cloud-tpu.iam.gserviceaccount.com
    
  2. Sigue las instrucciones de las guías de inicio rápido de Cloud TPU o de la página Gestionar TPUs para configurar tu proyecto y crear tus recursos de máquina virtual y de TPU de Cloud. Google Cloud

Escribir datos en Cloud Storage

Consola

  1. Ve a la página de Cloud Storage en la Google Cloud consola.

    Ir a la página de Cloud Storage

  2. Crea un segmento con las siguientes opciones:

    • Un nombre único que elijas.
    • Clase de almacenamiento predeterminada: Standard
    • Ubicación: la región en la que has creado la TPU de Cloud. Para obtener más información sobre las regiones y la disponibilidad de las TPU, consulta el artículo Regiones y zonas de TPU.

CLI

  1. Usa el comando gcloud storage buckets create para crear un segmento de Cloud Storage:

    gcloud storage buckets create gs://bucket-name --location region

    donde:

    • region es la región en la que has creado la TPU de Cloud. Para obtener más información sobre las regiones y la disponibilidad de las TPU, consulta Regiones y zonas de TPU.

    • bucket-name es el nombre del contenedor que quieres crear.

  2. Usa el comando gcloud storage cp para escribir archivos en el segmento de Cloud Storage:

    gcloud storage cp -r local-data-dir gs://bucket-name

    local-data-dir es una ruta local a tus datos. Por ejemplo:$HOME/your-data

Dar acceso a Cloud Storage a tu TPU de Cloud

Debes dar a tu TPU de Cloud acceso de lectura y escritura a tus objetos de Cloud Storage. Para ello, debes conceder el acceso necesario a la cuenta de servicio de TPU de Cloud que usa la TPU de Cloud. En las siguientes secciones se muestra cómo encontrar la cuenta de servicio de Cloud TPU y conceder el acceso necesario.

Autorizar la cuenta de servicio de TPU de Cloud

La forma recomendada de autorizar la cuenta de servicio de TPU de Cloud es mediante listas de control de acceso (LCA) detalladas. También puedes conceder permisos más amplios mediante los permisos de gestión de identidades y accesos.

Usar LCAs detalladas para Cloud TPU (recomendado)

Si almacenas datos de entrenamiento en Cloud Storage, la cuenta de servicio de Cloud TPU debe tener permiso de lectura y escritura en el segmento.

Consola

  1. Ve a la página del navegador de Cloud Storage para ver los segmentos de tu propiedad.

    Ir al navegador de Cloud Storage

  2. Seleccione el contenedor cuya lista de control de acceso quiera modificar.

  3. Selecciona la pestaña Permisos.

  4. Selecciona Conceder acceso para añadir un nuevo permiso y escribe el nombre completo de la cuenta de servicio en el cuadro de edición Principales nuevos.

  5. Si lees de este segmento, debes autorizar a la cuenta de servicio de TPU para que lea del recurso. Para ello, concede el rol Storage Legacy > Storage Legacy Bucket Reader a la cuenta de servicio.

  6. Si escribes en este segmento, debes autorizar a la cuenta de servicio de TPU para que escriba en el recurso. Para ello, concede el rol Storage Legacy > Storage Legacy Bucket Writer a la cuenta de servicio.

CLI

  1. Si vas a leer datos de este segmento, concede permiso de lectura a la cuenta de servicio de TPU de Cloud:

     gcloud storage buckets add-iam-policy-binding gs://bucket-name --member=serviceAccount:service-account --role=roles/storage.objectViewer
     

  2. Si vas a escribir en este segmento, concede permiso de escritura a la cuenta de servicio de TPU de Cloud:

     gcloud storage buckets add-iam-policy-binding gs://bucket-name --member=serviceAccount:service-account --role=roles/storage.objectCreator

Usar permisos de gestión de identidades y accesos para Cloud TPU (alternativa)

Si quieres conceder permisos más amplios en lugar de conceder acceso a cada segmento de forma explícita, puedes asignar el rol Administrador de Storage de Gestión de Identidades y Accesos (IAM) a la cuenta de servicio de Cloud TPU.

  1. Ir a IAM

  2. Haga clic en el botón Grant access (Conceder acceso) para añadir principales al proyecto.

  3. Introduce los nombres de las cuentas de servicio de TPU de Cloud en el cuadro de texto Principales.

  4. Haz clic en la lista desplegable Roles.

  5. Habilita los siguientes roles:

    • Proyecto > Lector

    • Almacenamiento > Administrador de almacenamiento

FUSE de Cloud Storage

Cloud Storage FUSE te permite montar y acceder a segmentos de Cloud Storage como sistemas de archivos locales. Esto permite que las aplicaciones lean y escriban objetos en tu segmento mediante la semántica estándar del sistema de archivos.

Consulta la documentación de Cloud Storage FUSE para obtener información detallada sobre cómo funciona Cloud Storage FUSE y una descripción de cómo se asignan las operaciones de Cloud Storage FUSE a las operaciones de Cloud Storage. Puedes consultar más información sobre cómo usar Cloud Storage FUSE, como cómo instalar la CLI de gcsfuse y montar los contenedores en GitHub.

Limpieza

  1. Desconéctate de la TPU de Cloud, si aún no lo has hecho:

    (vm)$ exit
  2. En Cloud Shell, elimina la TPU de Cloud:

    gcloud compute tpus tpu-vm delete tpu-name --zone=zone
  3. Para comprobar que la máquina virtual se ha eliminado, ejecuta gcloud compute tpus tpu-vm list. El proceso de eliminación puede tardar varios minutos.

    gcloud compute tpus tpu-vm list --zone=zone

    Una respuesta como la siguiente indica que tus instancias se han eliminado correctamente.

    Listed 0 items
    
  4. Ejecuta el siguiente comando para eliminar el segmento de Cloud Storage y su contenido. Sustituye bucket-name por el nombre del segmento que has creado:

    gcloud storage rm --recursive gs://bucket-name

Siguientes pasos