miércoles, 11 de mayo de 2011

Control umbral de disco

Una de las preocupaciones de todo administrador de sistemas es la del espacio en disco disponible en el sistema.
Debemos evitar una caída del sistema por ocupación en disco, ya que un IPL anormal por dicha causa tendrá una larga duración, y ademas no es seguro que se libere el espacio en disco suficiente para terminarla sin intervención manual desde la consola.
Nuestro sistema AS400 tiene dos formas de avisarnos cuando el sistema esta llegando al porcentaje de uso del umbral (predefinido) de ocupación en disco:

(A) La de "toda la vida": El sistema operativo empieza a enviar mensajes de aviso cuando la ocupación en disco supera el umbral definido en la configuración del disco, normalmente del 90%. A partir de ese momento empieza a enviar el mensaje CPF0907 "Serious storage condition may exist. Press HELP." a la cola del operador (QSYSOPR) y al histórico del sistema (DSPLOG). Este mensaje nos indica la cantidad de almacenamiento disponible, el usado y el porcentaje de almacenamiento libre en ese instante. Si tenemos creada la cola de mensaje QSYSMSG (ver Cola de mensajes QSYSMSG) también los recibiremos en esa cola de mensajes especial.

Para ver y/o modificar el umbral, debemos arrancar las herramientas de servicio (DST), para ello nuestro perfil de usuario debe ser de tipo *SECOFR y tener autorización *SERVICE como mínimo. Para entrar en la herramienta de las DST teclearemos el mandato STRSST, que nos pedirá el usuario de servicio y contraseña.
 
Seleccionamos la opción 3. Work with disk units  
Después seleccionar la opción 2. Work with disk configuration y a continuación seleccionaremos la opción 3. Work with ASP threshold, que nos mostrara los umbrales de todas las ASP de disco que tengamos configuradas.
Para modificar el umbral de una ASP, seleccionarla con un 1 y pulsar Intro:
Introducir el nuevo umbral, en %, que deseemos que el i5/OS a partir del cual nos envié el mensaje de aviso.
Para salir de las DST iremos pulsando F3 y finalmente nos pedirá confirmación para salir pulsando Intro.

(B) La otra de las opciones es utilizar los valores de sistema de control del almacenamiento, usar WRKSYSVAL SYSVAL(*STG) para verlos:
  • QSTGLOWACN  Auxiliary storage lower limit action
  • QSTGLOWLMT  Auxiliary storage lower limit
El valor de sistema QSTGLOWLMT, nos permite, conjuntamente con el valor QSTGLOWACN, controlar que debe hacer el sistema operativo cuando llega a cierto limite de ocupación en disco. Su valor indica el porcentaje de disco libre (límite inferior), por omisión es el 5%, a partir del cual empezara a ejecutar la acción definida en el valor QSTGLOWACN, en este caso cuando el sistema llegue al 95% de ocupación en disco.
El valor de sistema QSTGLOWACN puede tener los siguientes valores, con los 3 primeros valores hemos de preocuparnos de que hacer cuando el sistema llegue a su limite inferior de almacenamiento:
  • *MSG: Este es el valor por omisión, e indica que se envié el mensaje CPI099C " Critical storage lower limit reached" a la cola del operador QSYSOPR (y por ende al histórico del sistema) y a la cola QSYSMSG, si esta existe.
  • *CRITMSG: Indica que se enviará el mensaje CPI099B "Critical storage condition exists" a los usuarios designados en los atributos de servicio (CHGSRVA).
  • *ENDSYS: Indica que finalizara TODOS los trabajos y subsistemas y dejara el sistema en estado restringido (subsistema QCTL o QBASE activo desde consola). Esta opción es la más recomendable en sistemas de desarrollo, o no críticos, ya que, aunque podrían haber perdidas de datos (ya que se cancelaran los trabajos que se están ejecutando así como dejaremos de dar servicio), en cambio nos protege una parada incontrolada del sistema cuando llegue al 100% de ocupación en disco y que nos forzaría a una IPL anormal, mucho mas lenta, ademas nos permitirá liberar espacio de disco manualmente, desde la consola, con lo que acortaremos el tiempo de recuperación del sistema.
  • *PWRDWNSYS: Ejecutará el mandato PWRDWSYS dejando el sistema apagado. No recomiendo para nada esta opción, antes es mejor tener el valor *ENDSYS para dejarlo en restringido.
  • *REGFAC: Ejecutará el exit program registrado para el exit point "QIBM_QWC_QSTGLOWACN". Con esto podemos conseguir que cuando se llegue al límite inferior de ocupación en disco, el sistema operativo ejecute el  programa que definamos nosotros. Este programa podría ejecutar, entre otras cosas:
  1. La finalización controlada de aplicaciones no necesarias.
  2. La finalización controlada de transcriptores (impresoras).
  3. Retener colas de trabajos batch.
  4. La eliminación de datos, u objetos, temporales y no necesarios.
  5. etc...
  6. Si no podemos corregir la situación, podremos realizar una parada controlada del sistema para evitar daños mayores.
Para ver, definir, o cambiar el valor del exit program, ejecutar el mandato WRKREGINF EXITPNT(QIBM_QWC_QSTGLOWACN) y la opción 8=Work with exit programs.