User Tools

Site Tools


confluent

Confluent

Distribuciones y profiles

Actualmente (por los comandos que están en la siguiente sección)hay cuatro profiles principales en uso:

  1. RedHat 8.6 (rhel-8.6-x86_64-default): Usado en los nodos de login (snmgt01, snmgt02) y los nodos de visualización (vlmgt01, vlmgt02; es posible que estos no estén bien instalados).
  2. RedHat 8.8 Diskless CPU (rhel-8.8-x86_64-diskless-cpu): Usado en los nodos de cómputo exclusivos para CPU (cn075-cn080).
  3. RedHat 8.8 Diskless GPU (rhel-8.8-x86_64-diskless-gpu): Usado en los nodos de cómputo con GPU (cn001-cn074). Puede que haga falta modificar simultáneamente este perfil y el de CPU para que sea limpio.
  4. Lenovo Distributed Storage Solution for IBM® Storage Scale™ (DSS-G) 4.5A (dssg-standard-4.5a): Usado en los nodos de quorum de GPFS/IBM Storage Scale (sdmgt01, sdmgt02). Seguramente acá esté toda la config persistente de GPFS.

Los nodos de management (mmgt01, mmgt02) no tienen definidos profiles, pero sí tienen su propio node en confluent. Habría que mirarlo bien con la documentación.

Ideas básicas

Las distribuciones y perfiles se pueden listar con osdeploy:

# osdeploy list
Distributions:
  rhel-8.6-x86_64
  rhel-8.8-x86_64

Profiles:
  dssg-standard-4.5a
  genesis-x86_64
  rhel-8.6-x86_64-default
  rhel-8.8-x86_64-diskless-cpu
  rhel-8.8-x86_64-diskless-gpu

Los perfiles que están armados en los headnodes se pueden encontrar en el directorio /var/lib/confluent/public/os/:

$ ls /var/lib/confluent/public/os
dssg-standard-4.5a  genesis-x86_64  rhel-8.6-x86_64-default  rhel-8.8-x86_64-diskless-cpu  rhel-8.8-x86_64-diskless-gpu

Las distribuciones en /var/lib/confluent/distributions:

$ ls /var/lib/confluent/distributions/
rhel-8.6-x86_64  rhel-8.8-x86_64

Con nodeattrib se puede ver cuál imagen usa cada nodo:

# nodeattrib snmgt01 | grep deployment.profile
snmgt01: deployment.profile: rhel-8.6-x86_64-default
# nodeattrib snmgt02 | grep deployment.profile
snmgt02: deployment.profile: rhel-8.6-x86_64-default
# nodeattrib sdmgt01 | grep deployment.profile
sdmgt01: deployment.profile: dssg-standard-4.5a
# nodeattrib sdmgt02 | grep deployment.profile
sdmgt02: deployment.profile: dssg-standard-4.5a
# nodeattrib vlmgt01 | grep deployment.profile
vlmgt01: deployment.profile: rhel-8.6-x86_64-default
# nodeattrib vlmgt02 | grep deployment.profile
vlmgt02: deployment.profile: rhel-8.6-x86_64-default
# nodeattrib cn064 | grep deployment.pendingprofile
cn064: deployment.pendingprofile: rhel-8.8-x86_64-diskless-gpu
# nodeattrib cn080 | grep deployment.pendingprofile
cn080: deployment.pendingprofile: rhel-8.8-x86_64-diskless-cpu

También tiene otros atributos, deployment.pendingprofile y deployment.stagingprofile. La documentación dice:

       deployment.pendingprofile
              An OS profile that is pending deployment. This indicates to the network boot subsystem what should be offered when a potential network boot request comes in

       deployment.profile
              The  profile that has most recently reported completion of deployment. Note that an image may opt to leave itself both current and pending, for example a stateless profile
              would be both after first boot.
       (...)
       deployment.stagedprofile
              A  profile  that  has been staged, but is awaiting final boot to be activated. This allows an OS profile to remove itself from netboot without indicating completion to any
              watcher.

Esto seguramente sea relevante para el deployment de perfiles nuevos, de hecho los nodos de cómputo están con pendingprofile.

Scripts

Los perfiles tienen scripts de inicio en /var/lib/confluent/public/os/(…)/ preboot.d onboot.d y postboot.d

Se pueden aplicar cambios usando bash normalmente, para forzar el deploy hay que ejecutar

nodeapply --scripts=post.d/scriptname <noderange>

Actualizar imagen

Desempaquetar la imagen actual en

 # imgutil unpack rhel-9.4-x86_64-diskless-gpu-v5 /tmp/rhel-9.4-x86_64-diskless-gpu-v6 

Realizar los cambios pertinentes. Puede usarse un volumen como

 # imgutil exec -v /install/:/install/ /tmp/rhel-9.4-x86_64-diskless-gpu-v6 

Editar CHANGELOG

Empacar

 # imgutil pack -b rhel-9.4-x86_64-diskless-gpu-v5 /tmp/rhel-9.4-x86_64-diskless-gpu-v6 rhel-9.4-x86_64-diskless-gpu-v6 

Luego asignar la imagen a un nodo de prueba

# nodeattrib cn001 deployment.pendingprofile=rhel-9.4-x86_64-diskless-gpu-v6 

Utilizamos el flag -b para replicar los scripts y configs de la imagen anterior, verificar que la nueva imagen los posee.

[root@mmgt02 ~]# ls /var/lib/confluent/public/os/rhel-9.4-x86_64-diskless-gpu-v6/scripts/
add_local_repositories  confignet         firstboot.d        firstboot.sh  getinstalldisk  image2disk.pyc  imageboot.sh  onboot.custom  onboot.service  post.d   pre.d     syncfileclient
autoconsole             firstboot.custom  firstboot.service  functions     image2disk.py   image2disk.pyo  installimage  onboot.d       onboot.sh       post.sh  setupssh
[root@mmgt02 ~]# ls /var/lib/confluent/public/os/rhel-9.4-x86_64-diskless-gpu-v5/scripts/
add_local_repositories  confignet         firstboot.d        firstboot.sh  getinstalldisk  image2disk.pyc  imageboot.sh  onboot.custom  onboot.service  post.d   pre.d     syncfileclient
autoconsole             firstboot.custom  firstboot.service  functions     image2disk.py   image2disk.pyo  installimage  onboot.d       onboot.sh       post.sh  setupssh 

Actualizar pending profile en el resto de los nodos.

confluent.txt · Last modified: by joaquintorres