Conectar desde Compute Engine

En esta guía, se proporcionan instrucciones para crear un solo cliente de Compute Engine y conectarlo a tu instancia de Parallelstore.

Para crear y conectarte desde varios clientes de Compute Engine, puedes seguir las instrucciones que se indican en Cómo conectarse desde Compute Engine: varios clientes.

Para obtener un mejor rendimiento, las VMs de Compute Engine cliente deben crearse en la misma zona que la instancia de Parallelstore.

Permisos necesarios

Debes tener el siguiente rol de IAM para crear una VM de Compute Engine:

Crea una VM de Compute Engine

Sigue las instrucciones para crear una VM de Compute Engine con una de las siguientes imágenes:

Puedes elegir cualquier tipo de máquina y disco de arranque. Recomendamos, al menos, un tipo de máquina c2-standard-4. Para obtener un mejor rendimiento del cliente, aumenta la cantidad de CPU virtuales para aumentar la capacidad de procesamiento de red. Por ejemplo, un c3-standard-176 con redes de nivel 1 proporciona 200 Gbps de ancho de banda de salida.

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Selecciona el proyecto y haz clic en Continuar.

  3. Haz clic en Crear instancia.

  4. Ingresa un nombre para tu VM en Nombre. Para obtener más información, consulta Convención de asignación de nombres de recursos.

  5. Selecciona la Región y la Zona en los menús desplegables de esta VM. La VM debe estar en la misma zona que tu instancia de Parallelstore.

  6. Selecciona una Configuración de máquina para tu VM en la lista.

  7. En la sección Disco de arranque, haz clic en Cambiar.

  8. Selecciona la pestaña Imágenes públicas.

  9. En el menú desplegable Sistema operativo, selecciona una de las siguientes opciones: Imagen de VM de HPC, Ubuntu o Debian.

  10. En el menú desplegable Versión, selecciona una de las siguientes opciones: HPC Rocky Linux 8, Ubuntu 22.04 LTS o Debian GNU/Linux 12 (bookworm). Selecciona la versión x86/64 o la versión Arm64 para que coincida con tu tipo de máquina.

  11. Para confirmar las opciones del disco de arranque, haz clic en Seleccionar.

  12. Expande la sección Opciones avanzadas y, luego, Herramientas de redes.

  13. En Interfaz de red, selecciona la red de VPC que creaste en Configura una red de VPC.

  14. Para crear y, también, iniciar la VM, haz clic en Crear.

gcloud

Usa la herramienta de línea de comandos de gcloud para crear una VM:

HPC Rocky Linux 8

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c2d-standard-112 \
  --network-interface=stack-type=IPV4_ONLY,subnet=NETWORK_NAME,nic-type=GVNIC \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image=projects/cloud-hpc-image-public/global/images/hpc-rocky-linux-8-v20240126,\
mode=rw,size=100,type=pd-balanced

Rocky Linux 9 optimizado

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c2d-standard-112 \
  --network-interface=stack-type=IPV4_ONLY,subnet=NETWORK_NAME,nic-type=GVNIC \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image=projects/rocky-linux-cloud/global/images/rocky-linux-9-optimized-gcp-v20241112,\
mode=rw,size=100,type=pd-balanced

RHEL 9

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c2d-standard-112 \
  --network-interface=stack-type=IPV4_ONLY,subnet=NETWORK_NAME,nic-type=GVNIC \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image=projects/rhel-cloud/global/images/rhel-9-v20241112,\
mode=rw,size=100,type=pd-balanced

Ubuntu 22.04

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c2d-standard-112 \
  --network-interface=stack-type=IPV4_ONLY,subnet=NETWORK_NAME,nic-type=GVNIC \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image=projects/ubuntu-os-cloud/global/images/ubuntu-2204-jammy-v20240927,\
mode=rw,size=100,type=pd-balanced

Debian 12

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c2d-standard-112 \
  --network-interface=stack-type=IPV4_ONLY,subnet=NETWORK_NAME,nic-type=GVNIC \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image=projects/debian-cloud/global/images/debian-12-bookworm-v20240415,\
mode=rw,size=100,type=pd-balanced

Para obtener más información sobre las opciones disponibles, consulta la documentación de Compute Engine.

Conéctate a la VM del cliente mediante SSH

Consola de Google Cloud

Para establecer una conexión SSH a tu VM de Compute Engine, primero debes crear una regla de firewall que permita SSH.

  1. En la consola de Google Cloud, ve a la página Políticas de firewall.

    Ir a Políticas de firewall

  2. Haz clic en Crear regla de firewall.

  3. Ingresa un Nombre para la regla.

  4. En Red, selecciona la red de VPC que creaste antes.

  5. Selecciona Ingress como Dirección de tráfico y Permitir como Acción en caso de coincidencia.

  6. En el menú desplegable Destinos, selecciona Todas las instancias de la red.

  7. En el campo Rangos de IPv4 de origen, ingresa 0.0.0.0/0.

  8. En Protocolos y puertos, selecciona Protocolos y puertos especificados.

  9. Selecciona TCP y, luego, ingresa 22 en el campo Puertos.

  10. Haz clic en Crear.

Luego, establece una conexión SSH a tu VM:

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. En la tabla de instancias, busca la fila de tu instancia y haz clic en SSH en la columna titulada Conectar.

  3. Si se te solicita, haz clic en Autorizar para permitir la conexión.

gcloud

Para establecer una conexión SSH a tu VM de Compute Engine, primero debes crear una regla de firewall que permita SSH.

gcloud compute firewall-rules create FIREWALL_RULE_NAME \
  --allow=tcp:22 \
  --network=NETWORK_NAME \
  --source-ranges=0.0.0.0/0 \
  --project=PROJECT_ID

Luego, conéctate con gcloud compute ssh:

gcloud compute ssh VM_NAME --zone=ZONE --project=PROJECT_ID

Instala la biblioteca cliente de DAOS

La biblioteca cliente de DAOS proporciona una interfaz similar a POSIX a la capa de datos de Parallelstore. El software se ejecuta como agente en tus máquinas cliente y se debe instalar y ejecutar antes de que puedas acceder a tus datos.

HPC Rocky Linux 8

Los siguientes comandos se deben ejecutar en cada VM de Compute Engine.

  1. Agrega el repositorio de paquetes de Parallelstore:

    sudo tee /etc/yum.repos.d/parallelstore-v2-6-el8.repo << EOF
    [parallelstore-v2-6-el8]
    name=Parallelstore EL8 v2.6
    baseurl=https://us-central1-yum.pkg.dev/projects/parallelstore-packages/v2-6-el8
    enabled=1
    repo_gpgcheck=0
    gpgcheck=0
    EOF
    
  2. Actualiza la caché de metadatos local:

    sudo dnf makecache
    
  3. Instala daos-client:

    sudo dnf install -y epel-release && \
    sudo dnf install -y daos-client
    
  4. Actualiza libfabric:

    sudo dnf upgrade -y libfabric
    

Rocky Linux 9 optimizado

Los siguientes comandos se deben ejecutar en cada VM de Compute Engine.

  1. Agrega el repositorio de paquetes de Parallelstore:

    sudo tee /etc/yum.repos.d/parallelstore-v2-6-el9.repo << EOF
    [parallelstore-v2-6-el9]
    name=Parallelstore EL9 v2.6
    baseurl=https://us-central1-yum.pkg.dev/projects/parallelstore-packages/v2-6-el9
    enabled=1
    repo_gpgcheck=0
    gpgcheck=0
    EOF
    
  2. Actualiza la caché de metadatos local:

    sudo dnf makecache
    
  3. Instala daos-client:

    sudo dnf install -y epel-release && \
    sudo dnf install -y daos-client
    
  4. Actualiza libfabric:

    sudo dnf upgrade -y libfabric
    

RHEL 9

Los siguientes comandos se deben ejecutar en cada VM de Compute Engine.

  1. Agrega el repositorio de paquetes de Parallelstore:

    sudo tee /etc/yum.repos.d/parallelstore-v2-6-el9.repo << EOF
    [parallelstore-v2-6-el9]
    name=Parallelstore EL9 v2.6
    baseurl=https://us-central1-yum.pkg.dev/projects/parallelstore-packages/v2-6-el9
    enabled=1
    repo_gpgcheck=0
    gpgcheck=0
    EOF
    
  2. Actualiza la caché de metadatos local:

    sudo dnf makecache
    
  3. Instala daos-client:

    sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
    
    sudo dnf install -y epel-release && \
    sudo dnf install -y daos-client
    
  4. Actualiza libfabric:

    sudo dnf upgrade -y libfabric
    

Ubuntu 22.04

Los siguientes comandos se deben ejecutar en cada VM de Compute Engine.

  1. Agrega el repositorio de paquetes de Parallelstore:

    curl https://us-central1-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -
    echo "deb https://us-central1-apt.pkg.dev/projects/parallelstore-packages v2-6-deb main" | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
  2. Actualiza el índice de paquetes:

    sudo apt update
    
  3. Instala daos-client:

    sudo apt install -y daos-client
    

Debian 12

Los siguientes comandos se deben ejecutar en cada VM de Compute Engine.

  1. Agrega el repositorio de paquetes de Parallelstore:

    curl https://us-central1-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -
    echo "deb https://us-central1-apt.pkg.dev/projects/parallelstore-packages v2-6-deb main" | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
  2. Actualiza el índice de paquetes:

    sudo apt update
    
  3. Instala daos-client:

    sudo apt install -y daos-client
    

Aumenta el límite de archivos abiertos (solo para Ubuntu)

En el caso de las VMs que ejecutan Ubuntu 22.04, debes aumentar el límite de archivos abiertos a 131072 para admitir dfuse y la biblioteca de intercepción.

Si decides no usar la biblioteca de intercepción, puedes ejecutar ulimit -n 131072 de inmediato antes de iniciar dfuse.

Para aumentar el límite de archivos abiertos de 1,024, ejecuta los siguientes comandos en cada VM.

sudo tee -a /etc/security/limits.conf <<EOF
* soft nofile 131072
* hard nofile 131072
EOF

Luego, reinicia el dispositivo:

sudo reboot

Vuelve a establecer una conexión SSH a la VM del cliente una vez que termine de reiniciarse.

Actualiza la configuración del agente de DAOS

Actualiza /etc/daos/daos_agent.yml de la siguiente manera:

  1. Quita el comentario y actualiza access_points con las direcciones IP de accessPoints de las propiedades de la instancia de Parallelstore. Por ejemplo: access_points: ['172.21.95.2', '172.21.95.4', '172.21.95.5'].

    Para imprimir los puntos de acceso en el formato correcto para copiar y pegar, ejecuta el siguiente comando:

    echo access_points\: $(gcloud beta parallelstore instances describe \
      INSTANCE_ID --location LOCATION --project PROJECT_ID \
      --format "value[delimiter=', '](format("{0}", accessPoints))")
    
  2. Quita los comentarios de las siguientes dos líneas. El sangría es importante, así que asegúrate de mantener los espacios delante de allow_insecure:

    # transport_config:
    #   allow_insecure: false
    
  3. Cambia el valor de allow_insecure a true, ya que los certificados no se admiten.

     transport_config:
       allow_insecure: true
    
  4. Especifica la interfaz de red que proporciona conectividad a la instancia de Parallelstore. La interfaz suele ser eth0, ens4 o enp0s3, pero puede ser diferente según la configuración de red. Puedes usar el comando route para mostrar la puerta de enlace predeterminada de tu VM. La interfaz que se especifica suele ser la que comparte una subred con la puerta de enlace.

    Primero, enumera todas las interfaces de red disponibles:

    ip a
    

    El resultado es similar a este:

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    2: eth0@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc noqueue state UP group default
        link/ether e4:9x:3f:x7:dx:f7 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 10.88.0.3/16 brd 10.88.255.255 scope global eth0
           valid_lft forever preferred_lft forever
    3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1460 qdisc noqueue state DOWN group default
        link/ether 02:4x:6y:1z:84:45 brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
           valid_lft forever preferred_lft forever
    

    Ejecuta route para mostrar la tabla de enrutamiento:

    route
    

    El resultado es similar a este:

    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    default         10.88.0.1       0.0.0.0         UG    0      0        0 eth0
    10.88.0.0       0.0.0.0         255.255.0.0     U     0      0        0 eth0
    172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
    

    En el ejemplo, la puerta de enlace predeterminada es 10.88.0.1 y la comparte eth0, por lo que debes especificar eth0 como la interfaz que se usará.

    Editar /etc/daos/daos_agent.yml. Quita el comentario de include_fabric_ifaces y actualiza el valor:

    include_fabric_ifaces: ["eth0"]
    

    Guarde y cierre el archivo.

Inicia el agente de DAOS

HPC Rocky Linux 8

sudo systemctl start daos_agent.service

Puedes verificar el estado para asegurarte de que el agente se esté ejecutando:

systemctl status daos_agent.service

Rocky Linux 9 optimizado

sudo systemctl start daos_agent.service

Puedes verificar el estado para asegurarte de que el agente se esté ejecutando:

systemctl status daos_agent.service

RHEL 9

sudo systemctl start daos_agent.service

Puedes verificar el estado para asegurarte de que el agente se esté ejecutando:

systemctl status daos_agent.service

Ubuntu 22.04

sudo mkdir /var/run/daos_agent && \
sudo daos_agent -o /etc/daos/daos_agent.yml &

Debian 12

sudo mkdir /var/run/daos_agent && \
sudo daos_agent -o /etc/daos/daos_agent.yml &

Configura el registro

Configura el registro local para ayudar con la depuración del cliente, si es necesario:

export D_LOG_MASK=INFO
export D_LOG_FILE_APPEND_PID=1
rm -f /tmp/client.log.*
export D_LOG_FILE=/tmp/client.log

Activa la instancia con dfuse

Activa la instancia de Parallelstore con dfuse (DAOS FUSE).

  1. Edita /etc/fuse.conf para agregar user_allow_other.

  2. Especifica la opción --multi-user con dfuse:

    mkdir -p /tmp/parallelstore
    dfuse -m /tmp/parallelstore \
      --pool default-pool \
      --container default-container \
      --disable-wb-cache \
      --thread-count=20 \
      --eq-count=10 \
      --multi-user
    

Para obtener ayuda para optimizar los valores de --thread-count y --eq-count, consulta la sección Cantidad de subprocesos y cantidad de colas de eventos de la página Consideraciones de rendimiento.

Accede a tu instancia de Parallelstore

Tu instancia de Parallelstore ahora se activa en tu VM de Compute Engine en la ruta de acceso especificada por la marca -m y se puede leer o escribir con la sintaxis estándar de POSIX, con algunas excepciones.

Si ejecutas df en la instancia, el valor de SIZE es 1.5 veces el valor especificado con --capacity-gib. La cantidad de espacio utilizable sigue siendo --capacity-gib debido a la naturaleza de la codificación de borrado que usa Parallelstore. Cada 2 bytes escritos usan 3 bytes desde la perspectiva de df.

Desmonta la instancia

La instancia de Parallelstore se puede desmontar con el siguiente comando:

sudo umount /tmp/parallelstore/

¿Qué sigue?