Connetti da Compute Engine

Questa guida fornisce istruzioni per creare un singolo client Compute Engine e collegarlo all'istanza Parallelstore.

Per creare e connetterti da più client Compute Engine, puoi seguire le istruzioni riportate in Connessione da Compute Engine: più client.

Per ottenere prestazioni migliori, le VM Compute Engine client devono essere create nella stessa zona dell'istanza Parallelstore.

Autorizzazioni obbligatorie

Per creare una VM Compute Engine, devi disporre del seguente ruolo IAM:

Crea una VM di Compute Engine

Segui le istruzioni per creare una VM Compute Engine utilizzando una delle seguenti immagini:

Puoi scegliere qualsiasi tipo di macchina e disco di avvio. Consigliamo almeno un tipo di macchina c2-standard-4. Per un rendimento del client più elevato, aumenta il numero di vCPU per aumentare il throughput di rete. Ad esempio, un c3-standard-176 con la rete di livello 1 fornisce 200 Gbps di larghezza di banda in uscita.

Console Google Cloud

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Seleziona il progetto e fai clic su Continua.

  3. Fai clic su Crea istanza.

  4. Inserisci un nome per la VM in Nome. Per ulteriori informazioni, consulta la convenzione di denominazione delle risorse.

  5. Seleziona Regione e Zona dai menu a discesa per questa VM. La VM deve trovarsi nella stessa zona dell'istanza Parallelstore.

  6. Seleziona una configurazione macchina per la VM dall'elenco.

  7. Nella sezione Disco di avvio, fai clic su Cambia.

  8. Seleziona la scheda Immagini pubbliche.

  9. Dal menu a discesa Sistema operativo, seleziona una delle seguenti opzioni: Immagine VM HPC, Ubuntu o Debian.

  10. Dal menu a discesa Versione, seleziona una delle seguenti opzioni: HPC Rocky Linux 8, Ubuntu 22.04 LTS o Debian GNU/Linux 12 (bookworm). Seleziona la versione x86/64 o la versione Arm64 in base al tipo di macchina.

  11. Per confermare le opzioni del disco di avvio, fai clic su Seleziona.

  12. Espandi la sezione Opzioni avanzate, quindi Networking.

  13. In Interfacce di rete, seleziona la rete VPC che hai creato in Configurare una rete VPC.

  14. Per creare e avviare la VM, fai clic su Crea.

gcloud

Utilizza lo strumento a riga di comando gcloud per creare 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 ottimizzato

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

Per ulteriori informazioni sulle opzioni disponibili, consulta la documentazione di Compute Engine.

Accedi tramite SSH alla VM client

Console Google Cloud

Per connetterti tramite SSH alla VM Compute Engine, devi prima creare una regola firewall che consenta SSH.

  1. Nella console Google Cloud, vai alla pagina Policy firewall.

    Vai a Policy del firewall

  2. Fai clic su Crea regola firewall.

  3. Inserisci un nome per la regola.

  4. Per Rete, seleziona la rete VPC creata in precedenza.

  5. Seleziona In entrata come Direzione del traffico e Consenti come Azione in caso di corrispondenza.

  6. Dal menu a discesa Destinazioni, seleziona Tutte le istanze nella rete.

  7. Nel campo Intervalli IPv4 di origine, inserisci 0.0.0.0/0.

  8. In Protocolli e porte, seleziona Protocolli e porte specificati.

  9. Seleziona TCP e inserisci 22 nel campo Porte.

  10. Fai clic su Crea.

Quindi, accedi tramite SSH alla VM:

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Nella tabella delle istanze, individua la riga dell'istanza e fai clic su SSH nella colonna Connetti.

  3. Se richiesto, fai clic su Autorizza per consentire la connessione.

gcloud

Per connetterti tramite SSH alla VM Compute Engine, devi prima creare una regola firewall che consenta 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

Quindi connettiti utilizzando gcloud compute ssh:

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

Installa la libreria client DAOS

La libreria client DAOS fornisce un'interfaccia simile a POSIX per il livello di dati Parallelstore. Il software viene eseguito come agente sulle macchine client e deve essere installato ed eseguito prima che tu possa accedere ai tuoi dati.

HPC Rocky Linux 8

I comandi riportati di seguito devono essere eseguiti su ogni VM Compute Engine.

  1. Aggiungi il repository del pacchetto 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. Aggiorna la cache dei metadati locali:

    sudo dnf makecache
    
  3. Installa daos-client:

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

    sudo dnf upgrade -y libfabric
    

Rocky Linux 9 ottimizzato

I seguenti comandi devono essere eseguiti su ogni VM Compute Engine.

  1. Aggiungi il repository del pacchetto 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. Aggiorna la cache dei metadati locali:

    sudo dnf makecache
    
  3. Installa daos-client:

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

    sudo dnf upgrade -y libfabric
    

RHEL 9

I seguenti comandi devono essere eseguiti su ogni VM Compute Engine.

  1. Aggiungi il repository del pacchetto 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. Aggiorna la cache dei metadati locali:

    sudo dnf makecache
    
  3. Installa 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. Upgrade libfabric:

    sudo dnf upgrade -y libfabric
    

Ubuntu 22.04

I seguenti comandi devono essere eseguiti su ogni VM Compute Engine.

  1. Aggiungi il repository del pacchetto 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. Aggiorna l'indice del pacchetto:

    sudo apt update
    
  3. Installa daos-client:

    sudo apt install -y daos-client
    

Debian 12

I comandi riportati di seguito devono essere eseguiti su ogni VM Compute Engine.

  1. Aggiungi il repository del pacchetto 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. Aggiorna l'indice del pacchetto:

    sudo apt update
    
  3. Installa daos-client:

    sudo apt install -y daos-client
    

Aumentare il limite di file aperti (solo Ubuntu)

Per le VM con Ubuntu 22.04, devi aumentare il limite di file aperti a 131072 per supportare dfuse e la libreria di intercettazione.

Se scegli di non utilizzare la libreria di intercettazione, puoi eseguire ulimit -n 131072 immediatamente prima di avviare dfuse.

Per aumentare il limite di file aperti da 1024, esegui i seguenti comandi su ogni VM.

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

Dopodiché, riavvia:

sudo reboot

Accedi di nuovo alla VM client tramite SSH al termine del riavvio.

Aggiorna la configurazione dell'agente DAOS

Aggiorna /etc/daos/daos_agent.yml come segue:

  1. Rimuovi il commento e aggiorna access_points con gli indirizzi IP accessPoints dalle proprietà dell'istanza Parallelstore. Ad esempio: access_points: ['172.21.95.2', '172.21.95.4', '172.21.95.5'].

    Per stampare i punti di accesso nel formato corretto per copiarli e incollarli, esegui il seguente comando:

    echo access_points\: $(gcloud beta parallelstore instances describe \
      INSTANCE_ID --location LOCATION --project PROJECT_ID \
      --format "value[delimiter=', '](format("{0}", accessPoints))")
    
  2. Rimuovi il commento dalle due righe seguenti. Il rientro è importante, quindi assicurati di mantenere gli spazi davanti a allow_insecure:

    # transport_config:
    #   allow_insecure: false
    
  3. Modifica il valore di allow_insecure in true poiché i certificati non sono supportati.

     transport_config:
       allow_insecure: true
    
  4. Specifica l'interfaccia di rete che fornisce la connettività all'istanza Parallelstore. L'interfaccia è spesso eth0, ens4 o enp0s3, ma potrebbe essere diversa a seconda della configurazione di rete. Puoi utilizzare il comando route per mostrare il gateway predefinito della VM. L'interfaccia da specificare è in genere quella che condivide una sottorete con il gateway.

    Per prima cosa, elenca tutte le interfacce di rete disponibili:

    ip a
    

    L'output è simile al seguente:

    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
    

    Esegui route per visualizzare la tabella di routing:

    route
    

    L'output è simile al seguente:

    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
    

    Nell'esempio, il gateway predefinito è 10.88.0.1 ed è condiviso da eth0, quindi specifica eth0 come interfaccia da utilizzare.

    Modifica /etc/daos/daos_agent.yml. Rimuovi il commento da include_fabric_ifaces e aggiorna il valore:

    include_fabric_ifaces: ["eth0"]
    

    Salva e chiudi il file.

Avvia l'agente DAOS

HPC Rocky Linux 8

sudo systemctl start daos_agent.service

Puoi controllare lo stato per assicurarti che l'agente sia in esecuzione:

systemctl status daos_agent.service

Rocky Linux 9 ottimizzato

sudo systemctl start daos_agent.service

Puoi controllare lo stato per assicurarti che l'agente sia in esecuzione:

systemctl status daos_agent.service

RHEL 9

sudo systemctl start daos_agent.service

Puoi controllare lo stato per assicurarti che l'agente sia in esecuzione:

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 il logging

Se necessario, configura il logging locale per facilitare il debug lato client:

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

Monta l'istanza utilizzando dfuse

Monta l'istanza Parallelstore utilizzando dfuse (DAOS FUSE).

  1. Modifica /etc/fuse.conf per aggiungere user_allow_other.

  2. Specifica l'opzione --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
    

Per assistenza sull'ottimizzazione dei valori di --thread-count e --eq-count, consulta la sezione Numero di thread e numero di code di eventi della pagina Considerazioni sul rendimento.

Accedi all'istanza Parallelstore

L'istanza Parallelstore è ora montata sulla VM Compute Engine nel percorso specificato dal flag -m ed è leggibile/scrivibile utilizzando la sintassi POSIX standard, con alcune eccezioni.

Se esegui df sull'istanza, il valore SIZE è pari a 1,5 volte il valore specificato con --capacity-gib. La quantità di spazio utilizzabile è ancora --capacity-gib a causa della natura della codifica di cancellazione utilizzata da Parallelstore. Ogni 2 byte scritti utilizzano 3 byte dal punto di vista di df.

Smonta l'istanza

L'istanza Parallelstore può essere smontata utilizzando il seguente comando:

sudo umount /tmp/parallelstore/

Passaggi successivi