Connexion depuis Compute Engine

Ce guide explique comment créer un client Compute Engine unique et le connecter à votre instance Parallelstore.

Pour créer et vous connecter à partir de plusieurs clients Compute Engine, vous pouvez suivre les instructions de la section Se connecter depuis Compute Engine: plusieurs clients.

Pour des performances optimales, les VM Compute Engine clientes doivent être créées dans la même zone que l'instance Parallelstore.

Autorisations requises

Vous devez disposer du rôle IAM suivant pour créer une VM Compute Engine:

Créer une VM Compute Engine

Suivez les instructions pour créer une VM Compute Engine à l'aide de l'une des images suivantes:

Vous pouvez choisir n'importe quel type de machine et n'importe quel disque de démarrage. Nous vous recommandons d'utiliser au moins un type de machine c2-standard-4. Pour améliorer les performances du client, augmentez le nombre de processeurs virtuels afin d'augmenter le débit réseau. Par exemple, un c3-standard-176 avec mise en réseau de niveau 1 fournit 200 Gbit/s de bande passante de sortie.

Console Google Cloud

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Sélectionnez le projet et cliquez sur Continuer.

  3. Cliquez sur Créer une instance.

  4. Dans Nom, saisissez un nom pour votre VM. Pour en savoir plus, consultez Recommandation pour l'attribution de noms aux ressources.

  5. Sélectionnez une région et une zone dans les menus déroulants pour cette VM. Votre VM doit se trouver dans la même zone que votre instance Parallelstore.

  6. Sélectionnez une configuration de machine pour votre VM dans la liste.

  7. Dans la section Disque de démarrage, cliquez sur Modifier.

  8. Sélectionnez l'onglet Images publiques.

  9. Dans le menu déroulant Operating system (Système d'exploitation), sélectionnez l'une des options suivantes: HPC VM image (Image de VM HPC), Ubuntu ou Debian.

  10. Dans le menu déroulant Version, sélectionnez l'une des options suivantes: HPC Rocky Linux 8, Ubuntu 22.04 LTS ou Debian GNU/Linux 12 (bookworm). Sélectionnez la version x86/64 ou la version Arm64 en fonction de votre type de machine.

  11. Cliquez sur Sélectionner pour confirmer vos options de disque de démarrage.

  12. Développez la section Options avancées, puis Mise en réseau.

  13. Sous Interfaces réseau, sélectionnez le réseau VPC que vous avez créé dans Configurer un réseau VPC.

  14. Pour créer et démarrer la VM, cliquez sur Créer.

gcloud

Utilisez l'outil de ligne de commande gcloud pour créer une 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 optimisé

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

Pour en savoir plus sur les options disponibles, consultez la documentation Compute Engine.

Se connecter en SSH à la VM cliente

Console Google Cloud

Pour vous connecter en SSH à votre VM Compute Engine, vous devez d'abord créer une règle de pare-feu autorisant le protocole SSH.

  1. Dans la console Google Cloud, accédez à la page Règles d'administration.

    Accéder à la page "Stratégies de pare-feu"

  2. Cliquez sur Créer une règle de pare-feu.

  3. Saisissez un nom pour la règle.

  4. Sous Réseau, sélectionnez le réseau VPC que vous avez créé précédemment.

  5. Sélectionnez Entrée comme Sens du trafic et Autoriser comme Action en cas de correspondance.

  6. Dans le menu déroulant Cibles, sélectionnez Toutes les instances du réseau.

  7. Dans le champ Plages IPv4 sources, saisissez 0.0.0.0/0.

  8. Dans Protocoles et ports, sélectionnez Protocoles et ports spécifiés.

  9. Sélectionnez TCP, puis saisissez 22 dans le champ Ports.

  10. Cliquez sur Créer.

Connectez-vous ensuite en SSH à votre VM:

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Dans le tableau des instances, recherchez la ligne de votre instance, puis cliquez sur SSH dans la colonne Connecter.

  3. Si vous y êtes invité, cliquez sur Autoriser pour autoriser la connexion.

gcloud

Pour vous connecter en SSH à votre VM Compute Engine, vous devez d'abord créer une règle de pare-feu autorisant le protocole 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

Connectez-vous ensuite à l'aide de gcloud compute ssh:

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

Installer la bibliothèque cliente DAOS

La bibliothèque cliente DAOS fournit une interface POSIX à la couche de données Parallelstore. Le logiciel s'exécute en tant qu'agent sur vos machines clientes et doit être installé et exécuté avant que vous puissiez accéder à vos données.

HPC Rocky Linux 8

Les commandes suivantes doivent être exécutées sur chaque VM Compute Engine.

  1. Ajoutez le dépôt de packages 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. Mettez à jour le cache de métadonnées local:

    sudo dnf makecache
    
  3. Installez daos-client :

    sudo dnf install -y epel-release && \
    sudo dnf install -y daos-client
    
  4. Mettre à niveau libfabric:

    sudo dnf upgrade -y libfabric
    

Rocky Linux 9 optimisé

Les commandes suivantes doivent être exécutées sur chaque VM Compute Engine.

  1. Ajoutez le dépôt de packages 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. Mettez à jour le cache de métadonnées local:

    sudo dnf makecache
    
  3. Installez daos-client :

    sudo dnf install -y epel-release && \
    sudo dnf install -y daos-client
    
  4. Mettre à niveau libfabric:

    sudo dnf upgrade -y libfabric
    

RHEL 9

Les commandes suivantes doivent être exécutées sur chaque VM Compute Engine.

  1. Ajoutez le dépôt de packages 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. Mettez à jour le cache de métadonnées local:

    sudo dnf makecache
    
  3. Installez 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. Mettre à niveau libfabric:

    sudo dnf upgrade -y libfabric
    

Ubuntu 22.04

Les commandes suivantes doivent être exécutées sur chaque VM Compute Engine.

  1. Ajoutez le dépôt de packages 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. Mettez à jour l'index des packages:

    sudo apt update
    
  3. Installez daos-client :

    sudo apt install -y daos-client
    

Debian 12

Les commandes suivantes doivent être exécutées sur chaque VM Compute Engine.

  1. Ajoutez le dépôt de packages 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. Mettez à jour l'index des packages:

    sudo apt update
    
  3. Installez daos-client :

    sudo apt install -y daos-client
    

Augmenter la limite de fichiers ouverts (Ubuntu uniquement)

Pour les VM exécutant Ubuntu 22.04, vous devez augmenter la limite de fichiers ouverts à 131072 pour prendre en charge dfuse et la bibliothèque d'interception.

Si vous choisissez de ne pas utiliser la bibliothèque d'interception, vous pouvez également exécuter ulimit -n 131072 immédiatement avant de démarrer dfuse.

Pour augmenter la limite de fichiers ouverts de 1 024, exécutez les commandes suivantes sur chaque VM.

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

Redémarrez ensuite:

sudo reboot

Connectez-vous à nouveau en SSH à la VM cliente une fois le redémarrage terminé.

Mettre à jour la configuration de l'agent DAOS

Mettez à jour /etc/daos/daos_agent.yml comme indiqué ci-dessous :

  1. Décommentez et mettez à jour access_points avec les adresses IP accessPoints des propriétés d'instance Parallelstore. Exemple : access_points: ['172.21.95.2', '172.21.95.4', '172.21.95.5'].

    Pour imprimer les points d'accès au format approprié pour les copier-coller, exécutez la commande suivante:

    echo access_points\: $(gcloud beta parallelstore instances describe \
      INSTANCE_ID --location LOCATION --project PROJECT_ID \
      --format "value[delimiter=', '](format("{0}", accessPoints))")
    
  2. Annulez la mise en commentaire des deux lignes suivantes. L'indentation est importante. Veillez donc à conserver les espaces devant allow_insecure:

    # transport_config:
    #   allow_insecure: false
    
  3. Remplacez la valeur de allow_insecure par true, car les certificats ne sont pas acceptés.

     transport_config:
       allow_insecure: true
    
  4. Spécifiez l'interface réseau qui fournit la connectivité à l'instance Parallelstore. L'interface est souvent eth0, ens4 ou enp0s3, mais peut être différente en fonction de votre configuration réseau. Vous pouvez utiliser la commande route pour afficher la passerelle par défaut de votre VM. L'interface à spécifier est généralement celle qui partage un sous-réseau avec la passerelle.

    Commencez par lister toutes les interfaces réseau disponibles:

    ip a
    

    Le résultat ressemble à ce qui suit :

    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
    

    Exécutez route pour afficher la table de routage:

    route
    

    Le résultat ressemble à ce qui suit :

    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
    

    Dans l'exemple, la passerelle par défaut est 10.88.0.1 et elle est partagée par eth0. Spécifiez donc eth0 comme interface à utiliser.

    Modifier /etc/daos/daos_agent.yml. Annulez la mise en commentaire de include_fabric_ifaces et mettez à jour la valeur:

    include_fabric_ifaces: ["eth0"]
    

    Enregistrez et fermez le fichier.

Démarrer l'agent DAOS

HPC Rocky Linux 8

sudo systemctl start daos_agent.service

Vous pouvez vérifier l'état pour vous assurer que l'agent est en cours d'exécution:

systemctl status daos_agent.service

Rocky Linux 9 optimisé

sudo systemctl start daos_agent.service

Vous pouvez vérifier l'état pour vous assurer que l'agent est en cours d'exécution:

systemctl status daos_agent.service

RHEL 9

sudo systemctl start daos_agent.service

Vous pouvez vérifier l'état pour vous assurer que l'agent est en cours d'exécution:

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 &

Configurer la journalisation

Configurez la journalisation locale pour faciliter le débogage côté client, si nécessaire:

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

Monter l'instance à l'aide de dfuse

Installez l'instance Parallelstore à l'aide de dfuse (DAOS FUSE).

  1. Modifiez /etc/fuse.conf pour ajouter user_allow_other.

  2. Spécifiez l'option --multi-user avec 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
    

Pour obtenir de l'aide pour optimiser les valeurs de --thread-count et --eq-count, consultez la section Nombre de threads et de files d'attente d'événements de la page Considérations sur les performances.

Accéder à votre instance Parallelstore

Votre instance Parallelstore est désormais montée sur votre VM Compute Engine au chemin d'accès spécifié par l'option -m, et est lisible/inscriptible à l'aide de la syntaxe POSIX standard, avec quelques exceptions.

Si vous exécutez df sur l'instance, la valeur SIZE est 1,5 fois la valeur spécifiée avec --capacity-gib. La quantité d'espace utilisable est toujours --capacity-gib en raison de la nature de l'encodage par effacement utilisé par Parallelstore. Chaque paire d'octets écrite utilise trois octets du point de vue de df.

Démonter l'instance

Vous pouvez démonter l'instance Parallelstore à l'aide de la commande suivante:

sudo umount /tmp/parallelstore/

Étape suivante