El mito de los clusters y la alta disponibilidad
Omar Crespo (*) Continuamente el negocio exige que los sistemas y servicios de misión crítica basados en TI se encuentren operando continuamente y se reduzca el número de interrupciones o fallas. Los administradores de sistemas usualmente sugieren la inclusión de tecnologías de cluster y asocian esta tecnología como medio para llegar a altos niveles de disponibilidad de los sistemas y servicios. Sin embargo, sólo se concentran en el medio tecnológico, a veces sin considerar otros elementos fundamentales como operación, entrenamiento e incluso, a veces sin considerar por qué requieren implementar clusters. Este artículo pretende orientar la decisión de incluir tecnologías de cluster en los sistemas y presentar los beneficios, limitaciones y expectativas en la implementación de esta tecnología. Para identificar la conveniencia de implementar tecnologías de cluster es muy importante comprender las siguientes definiciones: Disponibilidad Disponibilidad de un componente o servicio es hacer que este componente se encuentre operando permanentemente durante un periodo de tiempo deseado. La disponibilidad puede ser medida en un porcentaje de operación, por ejemplo los “cinco nueves” (99.999%). Se dice que un sistema o servicio es altamente disponible cuando tiene la capacidad de minimizar o enmascarar fallas a través de la inclusión de redundancia en los componentes y tolerancia a fallas. En las soluciones de alta disponibilidad los tiempos fuera de operación son planeados para mantenimientos preventivos y/o actualizaciones, para cumplir con el porcentaje de disponibilidad que el negocio requiere con el fin de alcanzar sus objetivos y mantener a sus clientes. Es preciso comprender que alta disponibilidad es una combinación de tecnología, entrenamiento y buenas prácticas de operación. El costo de la “no disponibilidad” ¿Cuánto dinero podría estar perdiendo una compañía si uno de sus sistemas críticos, basado en tecnología, se interrumpe frecuentemente y no está disponible? ¿Cuánto dinero podría perder un banco si su sistema de cajeros o su sistema de Home Banking no está disponible?, o una tienda de venta de productos por Internet ¿cuántas transacciones de venta podría perder si sus sistemas no están disponibles? En la organización existen sistemas o servicios que no están asociados directamente a una aplicación de negocio, sin embargo juegan un papel fundamental en la operación de una empresa: permiten ayudar a las personas a desempeñar su función, estar comunicados, coordinar mejor y colaborar entre ellos, incrementando su productividad. La “no disponibilidad” de estos sistemas o servicios tiene costos tangibles e intangibles para la operación de una empresa. Los costos tangibles son la productividad de los usuarios y del equipo de administración de TI; perdida de ingresos económicos; pagos de tiempo adicional de trabajo de empleados y de administración de TI; penalidades e inversión adicional en materiales o equipos. Los costos intangibles corresponden a la perdida de imagen de la compañía; perdida de clientes y oportunidades de negocio; y perdida de confianza e insatisfacción de los clientes y usuarios. Cluster Un cluster es un conjunto de computadoras independientes interconectadas, usadas como un recurso unificado de cómputo. Las computadoras trabajan en forma paralela y proveen un servicio específico. Un cluster de alta disponibilidad es un conjunto de dos o más computadoras, que se caracterizan porque comparten los discos de almacenamiento de datos y están en continuo monitoreo entre sí. Si se produce una interrupción o falla en el hardware o en las aplicaciones de alguna de las máquinas del cluster, el software de alta disponibilidad es capaz de transferir automáticamente los servicios que han fallado en cualquiera de las otras computadoras del cluster. Este proceso es conocido como Fail-over. Cuando la computadora que ha fallado se recupera, los servicios son nuevamente transferidos a la computadora original, este proceso se denomina Fail-back. La capacidad de recuperación automática de servicios nos ayuda a garantizar la integridad de la información, ya que no hay pérdida de datos y se reduce el impacto de interrupción al usuario, quien no tienen por qué notar que se ha producido un problema o interrupción en el servicio. Existe un termino que deriva de cluster, este es conocido como Clustering, que es la capacidad de proveer niveles de disponibilidad y escalabilidad de un sistema al menor costo. Es preciso entender que un cluster ayuda a brindar altos niveles de disponibilidad, sin embargo el cluster no protege los sistemas o servicios cuando existe corrupción de datos, fallas en los discos o sistemas de almacenamiento, mensajes malformados, errores de administración, fallas en la infraestructura de red o desastres geográficos (aunque este ultimo punto podría mitigarse con clusters en diferentes ubicaciones). El cluster trae varios beneficios: o Confiabilidad: mínimo número de caídas no planeadas de los sistemas críticos que soportan los servicios del negocio. o Reducción de un único punto de falla (servidor) que atiende el servicio. o Capacidad de realizar mantenimiento y actualizaciones con un mínimo tiempo de interrupción de servicios. o Escalabilidad: capacidad de crecer con mayor número de nodos. Muchos clientes y administradores de sistemas consideran que la inclusión de soluciones cluster ha sido de gran beneficio para cumplir con los acuerdos de niveles de servicio y requerimientos de disponibilidad del negocio para los sistemas críticos. Los negocios de hoy requieren sistemas con alta disponibilidad y las tecnologías de cluster ayudan a cubrir esta necesidad. Al momento de decidir la implementación del cluster se debe considerar primero cuánta disponibilidad requiere un sistema, esto es cuántas horas tiene que estar disponible el servicio o sistema durante un periodo de tiempo determinado, cuánto tiempo está dispuesto a esperar el negocio por una interrupción de un sistema o servicio y cuál es el costo de la no disponibilidad de los mismos. La diferencia fundamental de éxito o fracaso de la tecnología cluster dependerá de la selección correcta de hardware y software, una adecuada implementación, buenas prácticas de operación y el entrenamiento de la gente. (*) El autor es Consultor de Microsoft. |