Configuración del sistema Oracle® Solaris 11.2 como enrutador o equilibrador de carga

Salir de la Vista de impresión

Actualización: Septiembre de 2014
 
 

Supervisión de las comprobaciones de estado en ILB

    El ILB proporciona los siguientes tipos de comprobaciones de estado del servidor opcionales:

  • Sondeos de ping integrado

  • Sondeos de TCP integrado

  • Sondeos de UDP integrado

  • Pruebas personalizadas proporcionadas por el usuario que se pueden ejecutar como comprobaciones de estado

De manera predeterminada, el ILB no realiza ninguna comprobación de estado. Puede especificar las comprobaciones de estado para cada grupo de servidores cuando crea una regla de equilibrio de carga. Solo se puede configurar una comprobación de estado por regla de equilibrio de carga. Siempre que un servicio virtual esté activado, las comprobaciones de estado del grupo de servidores asociado con el servicio virtual se inician automáticamente y se repiten periódicamente. Las comprobaciones de estado se detienen cuando se desactiva el servicio virtual. Los estados de la comprobación anterior no se conservan cuando el servicio virtual se vuelva a activar.

Cuando se especifica un TCP, UDP o sondeo de prueba personalizada para ejecutar una comprobación de estado, el ILB envía un sondeo de ping, de manera predeterminada, para establecer si se puede acceder al servidor antes de enviarle el TCP, UDP o sondeo de prueba personalizada. Si el sondeo de ping falla, el servidor correspondiente se desactiva con el estado de comprobación unreachable. Si el sondeo de ping se efectúa correctamente, pero el TCP, el UDP o el sondeo de prueba personalizada fallan, el servidor se desactivará con el estado de comprobación dead.

Puede desactivar el sondeo de ping predeterminado, excepto para el sondeo del UDP. El sondeo de ping es siempre el valor de sondeo predeterminado para las comprobaciones de estado del UDP.

Creación de una comprobación de estado

Puede crear una comprobación de estado y asignarla a un grupo de servidores al crear una regla de equilibrio de carga. En el siguiente ejemplo, se crean dos objetos de comprobación de estado, hc1 y hc-myscript. La primera comprobación de estado utiliza el sondeo de TCP incorporado. La segunda comprobación de estado utiliza una prueba personalizada, /var/tmp/my-script.

# ilbadm create-healthcheck -h hc-timeout=3,\
hc-count=2,hc-interval=8,hc-test=tcp hc1
# ilbadm create-healthcheck -h hc-timeout=3,\
hc-count=2,hc-interval=8,hc-test=/var/tmp/my-script hc-myscript

Los argumentos son los siguientes:

hc-timeout

Especifica el tiempo de espera para considerar que la comprobación de estado ha fallado si no se completa.

hc-count

Especifica el número de intentos para ejecutar la comprobación de estado hc-test.

hc-interval

Especifica el intervalo entre dos comprobaciones de estado consecutivas. Para evitar el envío de sondeos a todos los servidores al mismo tiempo, el intervalo real es aleatorio entre 0.5 * hc-interval y 1.5 * hc-interval.

hc-test

Especifica el tipo de comprobación de estado. Puede especificar la comprobación de estado incorporada, como tcp, udp y ping, o la comprobación de estado externa, que debe estar especificada con el nombre de ruta completo.


Notas -  La especificación del puerto para hc-test se define mediante la palabra clave hc-port en el subcomando create-rule. Para obtener más información, consulte la página del comando man ilbadm(1M).

Una prueba personalizada proporcionada por el usuario puede ser un código binario o una secuencia de comandos.

  • La prueba puede residir en cualquier parte del sistema. Debe especificar la ruta absoluta al utilizar el subcomando create-healthcheck.

    Si especifica la prueba (por ejemplo, /var/tmp/my-script) como parte de la especificación de comprobación de estado en el subcomando create-rule, el daemon ilbd realiza la bifurcación de un proceso y ejecuta la prueba, de la siguiente manera:

    /var/tmp/my-script $1 $2 $3 $4 $5

    Los argumentos son los siguientes:

    $1

    VIP (dirección IPv4 o IPv6 literal)

    $2

    IP del servidor (dirección IPv4 o IPv6 literal)

    $3

    Protocolo (UDP, TCP como cadena)

    $4

    Rango numérico de puertos (el valor especificado por el usuario para hc-port)

    $5

    Tiempo máximo (en segundos) que debe esperar la prueba antes de informar un fallo. Si la prueba se ejecuta durante un tiempo mayor al especificado, esta podría detenerse, y se consideraría que la prueba falló. Este valor está definido por el usuario y especificado en hc-timeout.

    • La prueba proporcionada por el usuario, no tiene que utilizar todos los argumentos, pero debe devolver uno de los siguientes valores:

    • Tiempo de recorrido de ida y vuelta (RTT, Round-Trip Time) en microsegundos

    • 0 si la prueba no calcula el RTT

    • -1 en caso de fallo

De manera predeterminada, las pruebas de comprobación de estado se ejecutan con los siguientes privilegios: PRIV_PROC_FORK, RIV_PROC_EXEC y RIV_NET_ICMPACCESS.

Si se requiere un conjunto de privilegios más amplio, debe implementar setuid en la prueba. Para obtener más detalles sobre los privilegios, consulte la página del comando man privileges(5).

Enumeración de comprobaciones de estado

Para obtener información detallada sobre las comprobaciones de estado configuradas, emita el siguiente comando:

# ilbadm show-healthcheck
HCNAME      TIMEOUT COUNT   INTERVAL DEF_PING TEST
hc1         3       2       8        Y        tcp
hc2         3       2       8        N        /var/usr-script

Visualización de resultados de comprobación de estado

Puede utilizar el subcomando ilbadm list-hc-result para obtener los resultados de la comprobación de estado. Si una regla o una comprobación de estado no se especifica, el subcomando lista todas las comprobaciones de estado.

En el ejemplo siguiente, se muestran los resultados de las comprobaciones de estado asociados con una regla denominada rule1.

# ilbadm show-hc-result rule1
RULENAME   HCNAME     SERVERID   STATUS   FAIL LAST      NEXT      RTT
rule1      hc1        _sg1:0     dead     10   11:01:19  11:01:27  941
rule1      hc1        _sg1:1     alive    0    11:01:20  11:01:34  1111 

Notas -  El comando show-hc-result sólo muestra el resultado de las comprobaciones de estado cuando las reglas tienen comprobaciones de estado asociadas.

En la columna LAST del resultado, se muestra hace cuánto tiempo se realizó una comprobación de estado en un servidor. La columna NEXT muestra la hora a la que se realizará la próxima comprobación de estado.

Supresión de una comprobación de estado

Para suprimir una comprobación de estado, utilice con el comando ilbadm delete-healthcheck. En el siguiente ejemplo, se suprime una comprobación de estado denominada hc1.

# ilbadm delete-healthcheck hc1