Clusters en Windows Server
CLUSTER EN WINDOWS
En el mundo de la investigación y los negocios cada vez se necesita más capacidad de procesamiento, más disponibilidad y más flexibilidad geográfica. La utilización de Clusters es la respuesta a estos desafíos tecnológicos.
Un Cluster es un grupo de computadoras que trabajan juntas para ejecutar un conjunto de aplicaciones y verse como un sistema único desde el punto de vista de los clientes.
La razón principal por la cual las organizaciones usan Clusters es proveer disponibilidad e integridad de datos y reducir los costos asociados con los momentos en los cuales no se presta servicio por alguna falla. Estos costos están relacionados con la pérdida de productividad de los usuarios o pérdidas de oportunidades de negocios. Si se ofrece un SLA (Service Level Agreement) a los clientes y no se puede cumplir porque hay mucho tiempo durante el cual no se presta servicio, los costos pueden ser más tangibles todavía.
Desafortunadamente, cumplir las necesidades de los servidores para brindar alta disponibilidad es una tarea difícil porque conlleva costos altos de software y entrenamiento del personal, administración, mantenimiento, limitaciones geográficas y de confiabilidad. Por mucho tiempo las soluciones de Clusters tuvieron bastante resistencia entre los usuarios justamente por los altos costos de hardware y de mantenimiento, además de toda la complejidad que agrega al esquema de servidores.
Hoy la tecnología de Clusters en Windows 2003 y 2008 está lo suficientemente madura como para solucionar todos estos problemas.La familia de Windows 2003 / 2008 brinda dos tipos de servicios de Cluster, "Server Cluster" y "Network Load Balancing".
El Cluster de alta disponibilidad al que llamaremos “Server Cluster” es aquél en el cual un grupo de servidores trabajan en conjunto y en el caso en que uno de ellos deje de funcionar, otro toma el trabajo que ese estaba realizando y continúa con la actividad sin que se produzcan interrupciones. La segunda forma, "Network Load Balancing", es a grandes rasgos definida como múltiples procesadores trabajando juntos como si fueran uno solo para proveer un conjunto de aplicaciones o varios servicios.
"Server Cluster" es utilizado por lo general para aplicaciones críticas como bases de datos, CRM, file-servers, impresoras, e-mail, y aplicaciones desarrolladas por las Organizaciones.
Las nuevas implementaciones de Clusters de Windows ofrecen alta disponibilidad para una gran gama de aplicaciones y resultan menos costosas que las anteriores.
Server Cluster
Las implementaciones de Server Cluster permiten tener alta disponibilidad, escalabilidad y también administrar gran cantidad de recursos y aplicaciones. Todos los nodos de un Cluster, que son los distintos servidores, están comunicados constantemente, si uno de ellos se cae por alguna falla o necesita mantenimiento, otro nodo inmediatamente lo reemplaza para brindar servicio a los clientes. Los usuarios que acceden al Cluster permanecen conectados continuamente a los recursos que utilizan. La versión de Windows 2003 es dramáticamente diferente a la del MSCS (Microsoft Cluster Service) incluido en Windows 2000 Advanced Server y Windows 2000 Datacenter Server.
Al instalar un Server Cluster, primero se configuran los servidores que actuarán como nodos. Luego se definen los recursos que se necesitan para la aplicación que se instala en el cluster. Estos recursos pueden ser direcciones IP, nombres de red, aplicaciones, servicios o discos. Finalmente pone el Cluster on-line para comenzar a atender los pedidos de servicio de los clientes. Si el Server Cluster detecta una falla en el nodo primario, o si ese nodo queda off-line por mantenimiento, la aplicación comienza a ejecutarse en un nodo de backup. Los pedidos de los clientes se redirigen inmediatamente al nodo backup para minimizar el impacto de la falla. La mayoría de las aplicaciones en cluster se ejecutan en un nodo a la vez, aunque un cluster puede correr varios servicios simultáneamente para optimizar la utilización del hardware. Algunas aplicaciones que trabajan en Cluster ya están diseñadas para ejecutarse en múltiples nodos al mismo tiempo, como por ejemplo Microsoft SQL Server.
Los nodos utilizan un "quorum" para rastrear qué nodo está ejecutando la aplicación que corre en Cluster. El “quorum" es el dispositivo de Almacenamiento que controla el nodo primario de la aplicación en Cluster. Solamente un nodo a la vez puede controlar el "quorum".
Cuando una aplicación tiene que pasar a ejecutarse en un nodo back-up (momento denominado "fail over"), ese nodo toma el control del "quorum". Cuando los nodos del Cluster se conectan a un solo dispositivo de almacenamiento, el “quorum” se puede crear en el mismo dispositivo. Este tipo de Cluster se llama en Windows 2003 “single quorum device server cluster” (Server Cluster con "quorum" único, ver Figura 1).
Se puede planear toda la redundancia que se quiera, pero si las instalaciones tienen algún problema serio, también se perjudica la continuidad de la disponibilidad de los servicios. Las inundaciones, el fuego, los terremotos y fallas de alimentación entre otras posibles causas externas, van a causar la falla de todo el Cluster. Si la continuidad del negocio necesita que el sistema funcione, un solo dispositivo de “quorum” no va a ser suficiente. Cuando se construye un Cluster en un solo Datacenter, se puede implementar redundancia para todos los servidores o dispositivos, pero no para el Datacenter completo.
Ante un desastre natural, una falla en la infraestructura WAN o si hay una falla de alimentación en la instalación por un período largo de tiempo, todos los nodos del Cluster van a estar off-line.Para hacer frente a este tipo de peligros, Windows Server 2003 provee un servicio que se llama "Majority Node Set" que permite a los nodos del Cluster conectarse usando LANs o WANs en vez de una red SAN (Storage Area Network) u otro tipo de de conexión de almacenamiento que tenga limitaciones de distancia, esto quiere decir, que deba estar conectado directamente a lo servidores. Cualquier red que pueda garantizar una latencia de 1 segundo contra un sitio remoto podría funcionar bien, inclusive una VPN (Virtual Private Network). Una tecnología apropiada para este tipo de implementaciones es iSCSI (ver recuadro).
El desafío más importante de los Clusters distribuidos geográficamente es evitar el fenómeno de "split-brain" (cerebro dividido). Sucede cuando no hay una correcta comunicación entre nodos para determinar quién ejecuta la aplicación y los clientes remotos ven varios nodos activos, porque piensan que el nodo principal está caído. El Cluster de Windows soluciona este tipo de escenario sin que exista la posibilidad de "splitbrain".
Las transacciones pueden continuar sin problemas en los nodos remotos, porque un Cluster es capaz de distribuir la carga hacia servidores activos. "Majority Node Set" utiliza también el concepto de “quorum”, que es una forma de mantener informado al Cluster qué nodo está activo y cuál está teniendo problemas para prestar servicios. La prevención de "split-brain" se hace poniendo como requisito para el Cluster que la mayoría de los nodos estén de acuerdo en qué nodo va a controlar la aplicación que se cayó. Esta información no tiene nada que ver con la replicación de datos. Muchas aplicaciones modernas ya poseen mecanismos de replicación adecuados para sincronizar datos a través de enlaces remotos, por ejemplo Microsoft SQL Server.
Los Clusters que utilizan Majority Node Set (MNS) guardan el “quorum” en un dispositivo de almacenamiento local,conectado directamente a cada uno de los nodos del Cluster.Para que un nodo de backup asuma el control del “quorum”, debe tener una copia de los datos guardados dentro del mismo. (ver Figura 2).
Network Load Balancing
El segundo tipo de tecnología de Cluster es NLB. NLB distribuye el tráfico TCP/IP entre múltiples
NLB también puede ponderar los pedidos de los clientes, lo que permite mezclar servers con mucha potencia con otros menores y asegurarse de que los recursos se usen eficientemente. Por lo general se usa NLB para redundancia y escalabilidad en Firewalls, Servidores Proxy o Web Servers. Otras aplicaciones en las cuales se utiliza generalmente incluyen extremos de VPNs, Streaming Media Servers y Terminal Services. NLB se incluye en todas las versiones de Windows Server 2003, incluyendo Windows 2003 Web Edition. Los Clusters NLB pueden tener hasta 32 nodos.
En Windows 2000, para crear un Cluster NLB, los usuarios debían configurar por separado cada máquina del Cluster, lo cual tenía como inconveniente que si se configuraban dos nodos distintos con los mismos parámetros, todo el conjunto podía fallar. Windows 2003 agrega una nueva funcionalidad llamada NLB Manager, que ayuda a solucionar este tipo de problemas centralizando la configuración y administración de los Clusters. Uno de los mayores beneficios del NLM Manager es que se puede hacer crecer un Cluster de manera sencilla, lo cual es muy conveniente para no comprar equipos de más cuando se proyecta una red, con todo el alto costo que esto implica. Permite tener la infraestructura de servicios ajustada a las necesidades de la compañía, y aumentar la cantidad de los equipos según la demanda real.
Agregando servidores adicionales se puede aumentar la disponibilidad, pero nadie asegura que la demanda del servicio que se presta sea suficiente como para justificar el gasto, por eso la utilización de soluciones para aumentar la dispodisponibilidad de otra forma (léase utilizando NLB), puede ayudar a ahorrar grandes cantidades de dinero. Los requisitos de administración son mínimos. De hecho se pueden monitorear los servicios del Cluster como cualquier otro servicio y de esta forma no alterar el esquema de monitoreo preexistente.
Si se planea implementar varios Clusters, hay muchas herramientas para administrar casi cualquier aspecto. WMIC.exe es una interfaz para administrar servidores, la herramienta Cluster.exe permite automatizar cualquier tarea que se quiera realizar en el Cluster, incluyendo agregar y borrar nodos, analizar la configuración y configurar las aplicaciones para que funcionen en Cluster. Ambas aplicaciones se pueden utilizar para distribuir actualizaciones o configuraciones en sitios remotos con un mínimo esfuerzo.
High Performance Computing
Más allá de la disponibilidad y la confiabilidad para los servicios que se instalan en Cluster, está ganando cada vez más importancia un enfoque que tiene que ver más con el procesamiento que con la seguridad del negocio en las empresas. Para resolver muchos de los desafíos informáticos actuales en el Mundo, cada vez se necesita más capacidad de procesamiento, y los Clusters parecen ser la mejor solución para resolverlos. Las Compañías u Organizaciones pueden instalar gran cantidad de Servidores Windows 2003 y obtener los beneficios de HPC a un precio relativamente bajo.
HPC generalmente se refiere a Clusters con docenas o cientos de máquinas, procesando cada una, una sola instancia de una aplicación. Los sectores que necesitan semejante capacidad de procesamiento son por lo general académicos y científicos, pero cada vez más empresas están viendo los beneficios de esta tecnología para creación de contenidos digitales y cálculos financieros como por ejemplo cálculos de riesgo.
El mercado actual es realmente pequeño, debido a que justamente los sectores de investigación no cuentan con recursos suficientes para generar una gran ganancia, pero de todas maneras el hecho de beneficiar la actividad académica y de investigación es un antecedente importante para cuando sea una tecnología más masiva. Implementar HPC con Microsoft, conllevaría el pago de una licencia por cada nodo. Microsoft se encuentra estudiando diferentes alternativas de licenciamiento. Te digo lo que necesitas:



En el mundo de la investigación y los negocios cada vez se necesita más capacidad de procesamiento, más disponibilidad y más flexibilidad geográfica. La utilización de Clusters es la respuesta a estos desafíos tecnológicos.
"Network Load Balancing" es más recomendable para aplicaciones que son escalables horizontalmente, como Web Servers, Proxy Servers y otros servicios que tienen requerimientos de conexiones distribuidas por parte de los clientes.
Conectar todos los nodos a un solo dispositivo de almacenamiento simplifica el desafío de transferir el control de los datos al nodo de backup. Sin embargo, esta arquitectura tiene algunas debilidades.Si falla el dispositivo de almacenamiento, el Cluster entero se cae. Si utilizamos una SAN (Storage Area Network, Red de área de almacenamiento) y falla,también va a fallar todo el Cluster.
El servicio de Server Cluster maneja este requerimiento replicando la información de “quorum”a través de la red.Solamente se requiere que los nodos estén conectados a la red, pero no necesita ser una LAN,puede ser una WAN o una VPN que conecte nodos del Cluster en diferentes edificios o ciudades, permitiendo al Cluster solucionar problemas de restricciones geográficas impuestas por las conexiones de almacenamiento. Este tipo de Cluster tiene restricciones que el resto no tiene, por ejemplo, debe haber al menos tres nodos en el Cluster, y dos de ellos tienen que estar activos. Si hay 8 nodos, tiene que haber cinco nodos activos para permanecer online.
Los Server Clusters de "quorum" único requieren que solamente un nodo esté activo.
Servidores. Esta funcionalidad estaba implementada en Windows 2000 y se conocía como WLBS; también fue mejorada en Windows 2003. Utilizando NLB en aplicaciones en Cluster, sobre todo Web Servers, se puede procesar más tráfico tener mejor disponibilidad y mejorar los tiempos de respuesta. (ver Figura 3).
Los Clusters que utilizan NLB no usan un “quorum”, entonces no imponen requisitos de almacenamiento o red a los nodos del Cluster. Si un nodo falla, el NLB automáticamente redirige los pedidos que ingresan a los nodos restantes. Si un nodo se pone off-line por mantenimiento se puede usar NLB para permitir que las conexiones existentes no se pierdan y se completen antes de que se baje el nodo. Esto elimina el impacto en los usuarios finales durante el tiempo en que está abajo el servicio.
2 PCs. 2 Tarjetas de red para cada PC. Una caja de discos con dos conexiones SCSI. 1 tarjeta SCSI para cada PC que conectara la caja de discos con cada PC. 1 2003/2008 enterprise para cada PC. Bien, tienes que unir las dos máquinas con cable cruzado a través de las tarjetas de red, la segunda tarjeta de cada equipo va al switch. Tienes que conectar las tarjetas SCSI de cada equipo a la caja de discos. Esto en cuanto a Hardware. Software: Instalas el SO en cada uno de los equipos, una vez tengas los dos instalados, instalas el servicio de cluster y mediante un asistente lo configuras, básicamente tienes que crear una partición Quorum en la caja de discos, en esta partición es donde se almacena la información del cluster, en el resto de espacio de los discos de la caja se pueden crear particiones donde almacenar datos que serán accesibles por el cluster. Cuando creas un cluster, lo que que se crea es una máquina virtual formada con dos máquinas físicas, con una dirección IP y una serie de recursos que ambos comparten. A partir de aquí, con el administrador de cluster, se pueden ir asignando recursos al cluster, con recursos me refiero a carpetas compartidas (en la caja de discos), servidores (web, dhcp) que tienen que estar instalados en ambas máquinas, colas de impresión etcétera. Pero, el cluster de microsoft no hace balanceo de carga, es una solución de alta disponibilidad, la forma de trabajar es la siguiente, los recursos que el cluster tiene asignados siempre son controlados por uno de los nodos, si el nodo que tiene el control cae, le cede el control al otro nodo y los recursos que comparten siguen funcionando con una breve parada. Bueno, igual se puede montar de forma mas casera, mi experiencia siempre a sido con hardware certificado para cluster de microsoft.
Armado de la infraestructura basica
Vamos a utilizar el servicio de Failover Cluster para crear un Cluster de Windows Server 2008 utilizando maquinas virtuales con Windows Server Virtualization.
Antes de comenzar, para ahorrar tiempo y hacer mas corto el tutorial vamos a obviar algunos pasos que convertiremos en prerequisitos.
Instalar un Windows 2003 / 2008 server que hara las veces de Storage (Este paso depende mucho del tipo de iSCSI Target que utilicen, hablaremos mas de este punto en la parte 2), configurarlo con dos discos, uno donde residira el Sistema operativo (default, dinamico 127gb) y uno mas (default, dinamico 127gb) sin particionar. Esta maquina no formara parte del dominio, estara en Workgroup.
Un Domain Controller Windows Server 2003 o 2008.
Para este escenario seran necesarios dos switches uno que hara las veces de red publica donde todas las maquinasestaran conectadas y uno mas para la conexion privada de los nodos llamada Hearbit
Para la creacion de los switches usaremos Virtual Network Manager, crearemos dos switches de similares caracteristicas, uno llamado Cluster Hearbit y otro llamado Red Publica.
Una vez creados los switches conectaremos el Storage y el Domain controller segun el siguiente diagrama. Utilizaremos un direcionamiento IP acorde.
Una vez creado el server que hara las veces de Storage y el Domain controller, vamos a concentrarnos en la creacion del primer nodo.
Un Windows Server 2008 con configuraciones by default al principio al cual le pondremos una segunda placa de red para el hearbit.
Instaleremos Windows Server 2008 con configuraciones by default, luego instalaremos las Integrations Tools
Pondremos dentro tambien el newsid para poder copiar ese nodo y a partir de esa copia hacer el nodo 2 de manera mas simple.
Pegemos un pantallazo a la maquina virtual que hara las veces de nodo 1
Pueden verse aca las dos conexiones de red, el hostname, newsid en el desktop y configuraciones de memoria y microprocesadores.
En este punto apagaremos el nodo 1 y duplicaremos la carpeta para tener el nodo 2.
Una vez encendido el nodo 2, haremos los ajustes de direccionamiento IP necesarios y ejecutaremos NEWSID, cambamos el nombre del nodo y reiniciamos
Una vez reiniciado y con el nodo 1 encendido nuevamente, revisar mediate ping que los nodos se vean entre si tanto por la red publica como por la privada y que tambien puedan ver al storage y al Domain Controller (revisar la configuracion del firewall de todos los servers).
Una vez que todos esos testeos se realizaron satisfactoriamente, unir ambos nodos al dominio.










0 comentarios: