Automatizar las actualizaciones de VIOS: Evitando la trampa del controlador SDDPCM
¿Te parece fácil automatizar las actualizaciones de los servidores de E/S virtuales (VIOS) en IBM Power? Tal vez tengas Python, Ansible y el comando de actualización de VIOS a mano. Pero, ¿has considerado los requisitos previos ocultos?
En este artículo te desvelaremos un obstáculo común: el controlador SDDPCM. Entenderlo y superarlo te ahorrará tiempo y frustraciones en tus procesos de automatización.
El problema: SDDPCM y almacenamiento legado
Antiguos proveedores de almacenamiento usaban software de multitrayectorización propietario (como PowerPath para EMC). IBM introdujo SDDPCM para estandarizar el proceso. Pero, lamentablemente, el soporte para SDDPCM ha desaparecido casi por completo después de 2020. Ahora, AIXPCM es el estándar. ¿Y qué pasa si tu almacenamiento no es de IBM?
Pues, probablemente no te encuentres con este problema. El detalle crucial es el archivo devices.sddpcm.72.rte
. Si lo encuentras en tu VIOS, ¡cuidado! Podría significar incompatibilidades y fallos en la actualización.
Prerrequisitos clave para la automatización
Antes de empezar, necesitas:
- Montar un recurso NFS con la imagen de actualización
- Proveer un disco alternativo para alt_rootvg
- Verificar el módulo
viosupgrade
de Ansible:
- name: Iniciar actualización VIOS
ibm.power_vios.viosupgrade:
cluster: false
post_install_binary: /tmp/postupgrade.sh
image_file: "/mnt/{{ mksysb }}"
mksysb_install_disks: "{{ alt_hdisk }}"
wait_reboot: true
La solución: eliminando SDDPCM y migrando a AIXPCM
Sigue estos pasos en orden para garantizar una actualización exitosa:
- Política “no_reserve”:
- name: Establecer no_reserve para mpioosdisk ansible.builtin.command: cmd: /usr/ios/utils/rules -o modify -t disk/fcp/mpioosdisk -a reserve_policy=no_reserve
- Cambiar controladores predeterminados:
- name: Cambiar a AIXPCM ansible.builtin.command: cmd: manage_disk_drivers -d {{ item }} -o AIX_AAPCM loop: - IBMFlash - 2107DS8K - IBMSVC
- Reiniciar VIOS:
- name: Reiniciar el servidor ibm.power_aix.reboot: reboot_timeout: 600
- Verificar la política:
- name: Verificar reserve_policy ansible.builtin.shell: cmd: lsdev -t mpioosdisk -F name | while read A ; do chdev -l $A -a reserve_policy=no_reserve -P ; done
- Eliminar SDDPCM:
- name: Desinstalar SDDPCM ibm.power_aix.installp: action: deinstall install_list: - devices.fcp.disk.ibm.mpio.rte - devices.sddpcm.72.rte
- Limpiar discos “Definidos”:
- name: Eliminar discos en estado Defined ansible.builtin.shell: cmd: lsdev -Cc disk -t 2145 -F "name status" | grep -w Defined | while read HD _ ; do rmdev -dl $HD ; done
Conclusión: automatización sin sorpresas
Estos pasos previos son cruciales para evitar fallos durante la actualización. La clave está en:
- Eliminar completamente SDDPCM
- Configurar correctamente AIXPCM
- Limpiar el entorno de discos residuales
Invierte tiempo en preparar estos scripts de Ansible una vez, y podrás replicar el proceso en todos tus VIOS de forma consistente.