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:
- Administrador de instancias de Compute (v1) (
roles/compute.instanceAdmin.v1
). Para obtener más información, consulta la documentación 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
En la consola de Google Cloud, ve a la página Instancias de VM.
Selecciona el proyecto y haz clic en Continuar.
Haz clic en Crear instancia.
Ingresa un nombre para tu VM en Nombre. Para obtener más información, consulta Convención de asignación de nombres de recursos.
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.
Selecciona una Configuración de máquina para tu VM en la lista.
En la sección Disco de arranque, haz clic en Cambiar.
Selecciona la pestaña Imágenes públicas.
En el menú desplegable Sistema operativo, selecciona una de las siguientes opciones: Imagen de VM de HPC, Ubuntu o Debian.
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.
Para confirmar las opciones del disco de arranque, haz clic en Seleccionar.
Expande la sección Opciones avanzadas y, luego, Herramientas de redes.
En Interfaz de red, selecciona la red de VPC que creaste en Configura una red de VPC.
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.
En la consola de Google Cloud, ve a la página Políticas de firewall.
Haz clic en Crear regla de firewall.
Ingresa un Nombre para la regla.
En Red, selecciona la red de VPC que creaste antes.
Selecciona Ingress como Dirección de tráfico y Permitir como Acción en caso de coincidencia.
En el menú desplegable Destinos, selecciona Todas las instancias de la red.
En el campo Rangos de IPv4 de origen, ingresa
0.0.0.0/0
.En Protocolos y puertos, selecciona Protocolos y puertos especificados.
Selecciona TCP y, luego, ingresa
22
en el campo Puertos.Haz clic en Crear.
Luego, establece una conexión SSH a tu VM:
En la consola de Google Cloud, ve a la página Instancias de VM.
En la tabla de instancias, busca la fila de tu instancia y haz clic en SSH en la columna titulada Conectar.
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.
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
Actualiza la caché de metadatos local:
sudo dnf makecache
Instala
daos-client
:sudo dnf install -y epel-release && \ sudo dnf install -y daos-client
Actualiza
libfabric
:sudo dnf upgrade -y libfabric
Rocky Linux 9 optimizado
Los siguientes comandos se deben ejecutar en cada VM de Compute Engine.
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
Actualiza la caché de metadatos local:
sudo dnf makecache
Instala
daos-client
:sudo dnf install -y epel-release && \ sudo dnf install -y daos-client
Actualiza
libfabric
:sudo dnf upgrade -y libfabric
RHEL 9
Los siguientes comandos se deben ejecutar en cada VM de Compute Engine.
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
Actualiza la caché de metadatos local:
sudo dnf makecache
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
Actualiza
libfabric
:sudo dnf upgrade -y libfabric
Ubuntu 22.04
Los siguientes comandos se deben ejecutar en cada VM de Compute Engine.
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
Actualiza el índice de paquetes:
sudo apt update
Instala
daos-client
:sudo apt install -y daos-client
Debian 12
Los siguientes comandos se deben ejecutar en cada VM de Compute Engine.
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
Actualiza el índice de paquetes:
sudo apt update
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:
Quita el comentario y actualiza
access_points
con las direcciones IP deaccessPoints
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))")
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
Cambia el valor de
allow_insecure
atrue
, ya que los certificados no se admiten.transport_config: allow_insecure: true
Especifica la interfaz de red que proporciona conectividad a la instancia de Parallelstore. La interfaz suele ser
eth0
,ens4
oenp0s3
, pero puede ser diferente según la configuración de red. Puedes usar el comandoroute
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 comparteeth0
, por lo que debes especificareth0
como la interfaz que se usará.Editar
/etc/daos/daos_agent.yml
. Quita el comentario deinclude_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).
Edita
/etc/fuse.conf
para agregaruser_allow_other
.Especifica la opción
--multi-user
condfuse
: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/