Este guia dá instruções sobre como criar um único cliente do Compute Engine e associá-lo à sua instância do Parallelstore.
Para criar e estabelecer ligação a partir de vários clientes do Compute Engine, pode seguir as instruções em Estabelecer ligação a partir do Compute Engine: vários clientes.
Para um melhor desempenho, as VMs do Compute Engine do cliente devem ser criadas na mesma zona que a instância do Parallelstore.
Autorizações necessárias
Tem de ter a seguinte função do IAM para criar uma VM do Compute Engine:
- Administrador de instâncias do Compute (v1) (
roles/compute.instanceAdmin.v1
). Para mais informações, consulte a documentação do Compute Engine.
Crie uma VM do Compute Engine
Siga as instruções para criar uma VM do Compute Engine com uma das seguintes imagens:
Pode escolher qualquer tipo de máquina e disco de arranque. Recomendamos, pelo menos, um tipo de máquina c2-standard-4
. Para um desempenho do cliente mais elevado, aumente o número de vCPUs para aumentar a taxa de transferência da rede. Por exemplo, uma
c3-standard-176
com rede de nível 1 oferece 200 Gbps de largura de banda de saída.
Google Cloud consola
Na Google Cloud consola, aceda à página Instâncias de VM.
Selecione o projeto e clique em Continuar.
Clique em Criar instância.
Introduza um nome para a VM em Nome. Para mais informações, consulte o artigo Convenção de nomenclatura de recursos.
Selecione a Região e a Zona nos menus pendentes desta VM. A VM deve estar na mesma zona que a instância do Parallelstore.
Selecione uma Configuração da máquina para a sua VM na lista.
Na secção Disco de arranque, clique em Alterar.
Selecione o separador Imagens públicas.
No menu pendente Sistema operativo, selecione uma das seguintes opções: Imagem de VM de HPC, Ubuntu ou Debian.
No menu pendente Versão, selecione uma das seguintes opções: HPC Rocky Linux 8, Ubuntu 22.04 LTS ou Debian GNU/Linux 12 (bookworm). Selecione a versão x86/64 ou a versão Arm64 para corresponder ao tipo de máquina.
Para confirmar as opções do disco de arranque, clique em Selecionar.
Expanda a secção Opções avançadas e, de seguida, expanda Redes.
Em Interfaces de rede, selecione a rede de VPC que criou em Configure uma rede de VPC.
Para criar e iniciar a VM, clique em Criar.
gcloud
Use a ferramenta de linha de comandos gcloud
para criar uma 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 otimizado
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 mais informações sobre as opções disponíveis, consulte a documentação do Compute Engine.
SSH para a VM cliente
Google Cloud consola
Para estabelecer uma ligação SSH à sua VM do Compute Engine, primeiro tem de criar uma regra de firewall que permita o SSH.
Na Google Cloud consola, aceda à página Políticas de firewall.
Clique em Criar regra de firewall.
Introduza um Nome para a regra.
Para Rede, selecione a rede VPC que criou anteriormente.
Selecione Entrada como a Direção do tráfego e Permitir como a Ação na correspondência.
No menu pendente Alvos, selecione Todas as instâncias na rede.
No campo Intervalos IPv4 de origem, introduza
0.0.0.0/0
.Em Protocolos e portas, selecione Protocolos e portas especificados.
Selecione TCP e introduza
22
no campo Portas.Clique em Criar.
Em seguida, faça SSH para a sua VM:
Na Google Cloud consola, aceda à página Instâncias de VM.
Na tabela de instâncias, localize a linha da sua instância e clique em SSH na coluna intitulada Ligar.
Se lhe for pedido, clique em Autorizar para permitir a ligação.
gcloud
Para estabelecer uma ligação SSH à sua VM do Compute Engine, primeiro tem de criar uma regra de firewall que permita o 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
Em seguida, ligue-se através da app gcloud compute ssh
:
gcloud compute ssh VM_NAME --zone=ZONE --project=PROJECT_ID
Instale a biblioteca cliente DAOS
A biblioteca cliente DAOS fornece uma interface semelhante à POSIX para a camada de dados Parallelstore. O software é executado como um agente nos seus computadores cliente e tem de ser instalado e executado antes de poder aceder aos seus dados.
HPC Rocky Linux 8
Os seguintes comandos têm de ser executados em cada VM do Compute Engine.
Adicione o repositório de pacotes 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
Atualize a cache de metadados local:
sudo dnf makecache
Instale
daos-client
:sudo dnf install -y epel-release && \ sudo dnf install -y daos-client
Atualize o
libfabric
:sudo dnf upgrade -y libfabric
Rocky Linux 9 otimizado
Os seguintes comandos têm de ser executados em cada VM do Compute Engine.
Adicione o repositório de pacotes 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
Atualize a cache de metadados local:
sudo dnf makecache
Instale
daos-client
:sudo dnf install -y epel-release && \ sudo dnf install -y daos-client
Atualize o
libfabric
:sudo dnf upgrade -y libfabric
RHEL 9
Os seguintes comandos têm de ser executados em cada VM do Compute Engine.
Adicione o repositório de pacotes 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
Atualize a cache de metadados local:
sudo dnf makecache
Instale
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
Atualize o
libfabric
:sudo dnf upgrade -y libfabric
Ubuntu 22.04
Os seguintes comandos têm de ser executados em cada VM do Compute Engine.
Adicione o repositório de pacotes 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
Atualize o índice de pacotes:
sudo apt update
Instale
daos-client
:sudo apt install -y daos-client
Debian 12
Os seguintes comandos têm de ser executados em cada VM do Compute Engine.
Adicione o repositório de pacotes 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
Atualize o índice de pacotes:
sudo apt update
Instale
daos-client
:sudo apt install -y daos-client
Aumente o limite de ficheiros abertos (apenas no Ubuntu)
Para VMs com o Ubuntu 22.04, tem de aumentar o limite de ficheiros abertos para 131072 para suportar o dfuse e a biblioteca de interceção.
Se optar por não usar a biblioteca de interceção, pode executar ulimit -n 131072
imediatamente antes de iniciar o dfuse.
Para aumentar o limite de ficheiros abertos de 1024, execute os seguintes comandos em cada VM.
sudo tee -a /etc/security/limits.conf <<EOF
* soft nofile 131072
* hard nofile 131072
EOF
Em seguida, reinicie:
sudo reboot
Volte a estabelecer ligação SSH à VM do cliente assim que o reinício estiver concluído.
Atualize a configuração do agente DAOS
Atualize o /etc/daos/daos_agent.yml
da seguinte forma:
Descomente e atualize
access_points
com os endereços IPaccessPoints
das propriedades da instância do Parallelstore. Por exemplo:access_points: ['172.21.95.2', '172.21.95.4', '172.21.95.5']
.Para imprimir os pontos de acesso no formato correto para copiar e colar, execute o seguinte comando:
echo access_points\: $(gcloud beta parallelstore instances describe \ INSTANCE_ID --location LOCATION --project PROJECT_ID \ --format "value[delimiter=', '](format("{0}", accessPoints))")
Descomente as duas linhas seguintes. A indentação é importante, por isso, certifique-se de que mantém os espaços antes de
allow_insecure
:# transport_config: # allow_insecure: false
Altere o valor de
allow_insecure
paratrue
, uma vez que os certificados não são suportados.transport_config: allow_insecure: true
Especifique a interface de rede que fornece conetividade à instância do Parallelstore. A interface é frequentemente
eth0
,ens4
ouenp0s3
, mas pode ser diferente consoante a configuração da sua rede. Pode usar o comandoroute
para mostrar o gateway predefinido da VM. Normalmente, a interface a especificar é a que partilha uma sub-rede com o gateway.Primeiro, liste todas as interfaces de rede disponíveis:
ip a
O resultado é semelhante ao seguinte:
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
Execute
route
para apresentar a tabela de encaminhamento:route
O resultado é semelhante ao seguinte:
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
No exemplo, o gateway predefinido é
10.88.0.1
e é partilhado poreth0
, por isso, especifiqueeth0
como a interface a usar.Edite o pacote
/etc/daos/daos_agent.yml
. Descomenteinclude_fabric_ifaces
e atualize o valor:include_fabric_ifaces: ["eth0"]
Guarde e feche o ficheiro.
Inicie o agente DAOS
HPC Rocky Linux 8
sudo systemctl start daos_agent.service
Pode verificar o estado para se certificar de que o agente está em execução:
systemctl status daos_agent.service
Rocky Linux 9 otimizado
sudo systemctl start daos_agent.service
Pode verificar o estado para se certificar de que o agente está em execução:
systemctl status daos_agent.service
RHEL 9
sudo systemctl start daos_agent.service
Pode verificar o estado para se certificar de que o agente está em execução:
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 &
Configure o registo
Configure o registo local para ajudar na depuração por parte do cliente, se necessário:
export D_LOG_MASK=INFO
export D_LOG_FILE_APPEND_PID=1
rm -f /tmp/client.log.*
export D_LOG_FILE=/tmp/client.log
Monte a instância com o dfuse
Monte a instância do Parallelstore com o dfuse (DAOS FUSE).
Edite
/etc/fuse.conf
para adicionaruser_allow_other
.Especifique a opção
--multi-user
comdfuse
: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 obter ajuda na otimização dos valores de --thread-count
e --eq-count
, consulte a secção Contagem de threads e contagem de filas de eventos da página Considerações sobre o desempenho.
Aceda à sua instância do Parallelstore
A sua instância do Parallelstore está agora montada na VM do Compute Engine no caminho especificado pela flag -m
e é legível/gravável através da sintaxe POSIX padrão, com algumas exceções.
Se executar df
na instância, o valor de SIZE
é 1,5 vezes o valor especificado com --capacity-gib
. A quantidade de espaço utilizável continua a ser --capacity-gib
devido à natureza da codificação de apagamento usada pelo Parallelstore. Cada 2 bytes escritos usam 3 bytes na perspetiva do df
.
Desmonte a instância
Pode desmontar a instância do Parallelstore com o seguinte comando:
sudo umount /tmp/parallelstore/