Story Transcript
PARTICIONES LOGICAS Y FISICAS EN MAINFRAMES TRABAJO DE INVESTIGACION FINAL Walter Cerrudo
09
PARTICIONAMIENTO Una de las tecnologías utilizadas para realizar la virtualización (Ver Capitulo II) es realizar el particionamiento de los servidores tanto a nivel lógico como físico, para rentabilizar su rendimiento al máximo. Las particiones, físicas o lógicas, son mecanismos que permiten aislar ambientes dentro de un servidor. Cuando una aplicación está aislada dentro de una partición, es capaz de hacer uso dedicado de los recursos del servidor, por separado o en grupo. Las Particiones, aunque simple en concepto, han demostrado ser difíciles de desarrollar y desplegar.
P ORQUE P ARTICIONAR En el mundo de los Mainframes el particionado se ha aplicado desde hace ya muchos años utilizando MVS y Maquinas Virtuales (MV). Hoy en día existe una demanda de sistemas de alta gama, que proporcionen una mayor flexibilidad y la posibilidad de subdividirse en particiones más pequeñas, que son capaces de ejecutar una versión de sistema operativo, o un conjunto especifico de aplicaciones. Las principales razones de un gran sistema de particiones son las siguientes: Consolidación de Servidores: permite ejecutar múltiples aplicaciones que anteriormente residían en sistemas físicos diferentes, proporcionando así beneficios como la reducción de costos, ahorro de espacio y reducción de las operaciones de gestión. Producción y entornos de producción: el particionamiento permite prescindir de equipos físicos necesarios para la prueba de nuevas versiones de aplicaciones, ya que estas pueden realizarse en los mismos equipos físicos en que se desarrollan. Esto evita comprar de computadoras y facilita las migraciones de aplicaciones. Aumento de la Utilización del Hardware: permite optimizar la utilización del hardware, la ejecución de varias instancias de una aplicación en particiones separadas más pequeñas puede proporcionar un mejor rendimiento que ejecutar una sola instancia de la aplicación. Aislamiento de Aplicaciones: permite ejecutar instancias de aplicaciones en particiones separadas, asegurando de que no habrá interferencia entre una y otra, en caso de fallo. También previene el consumo excesivo de recursos que otras aplicaciones puedan necesitar. Mayo flexibilidad en la asignación de recursos: las necesidades de recursos de un trabajo que varían a lo largo del tiempo pueden administrarse fácilmente dentro de una partición de manera de satisfacer las distintas demandas.
VIRTUALIZACIÓN
La virtualización es una tecnología que fue desarrollada por IBM en los años 60s. La primera computadora diseñada específicamente para virtualización fue el mainframe IBM S/360 Modelo 67. Esta característica de virtualización ha sido un Standard de la línea que siguió (IBM S/370) y sus sucesoras, incluyendo la serie actual. Durante los 60s y los 70s fueron muy populares, pero las máquinas virtuales desapareciero n prácticamente durante los 80s y los 90s. No era hasta el final del 90s que volvió a resurgir la tecnología de las maquinas virtuales y no solamente en el área tradicional de servidores sino también en muchas otras áreas del mundo de la computación: “En la actualidad asistimos a su eclosión gracias al fuerte descenso del coste total de propiedad (TCO) atribuible a tecnologías vía hardware como Intel VT, AMD-V Pacifica, NPIV y vía software VMware, XEN, Microsoft Hyper-V, VirtualIron.” La virtualización es un término que se refiere a la abstracción de los recursos de de una computadora llamada Hypervisor o VMM (Virtual Machine Monitor) que crea una capa de la abstracción entre el hardware de la maquina física (host) y el sistema operativo de la maquina virtual (virtual machine, guest). El VMM maneja los recursos de las maquinas físicas subyacentes (designadas por el computador central) de una manera que el usuario pueda crear varias maquinas virtuales presentando a cada una de ellas una interfaz del hardware que sea compatible con el sistema operativo elegido. Esta capa de software (VMM) maneja, gestiona y arbitra los cuatro recursos principales de una computadora (CPU, Memoria, Red, Almacenamiento) y así podrá repartir dinámicamente dichos recursos entre todas las maquinas virtuales definidas en el computador central. La maquina virtual generalmente es un sistema operativo completo que corre como si estuviera instalado en una plataforma de hardware autónoma. Típicamente muchas máquinas virtuales son simuladas en un computador central. Para que el sistema operativo “guest” funcione, la simulación debe ser lo suficientemente robusta (dependiendo del tipo de virtualización).
T IPOS
DE
V IRTUALIZACIÓN
EMULA CIÓN O SIMU LACI ÓN La máquina virtual simula un hardware completo, admitiendo un sistema operativo “guest” sin modificar para una CPU completamente diferente. Este enfoque fue muy utilizado para permitir la creación de software para nuevos procesadores antes de que estuvieran físicamente disponibles. Por ejemplo Bochs, PearPC, Qemu sin aceleración, y el emulador Hércules. La emulación es puesta en práctica utilizando una variedad de técnicas, desde state machines hasta el uso de la recopilación dinámica en una completa plataforma virtual. VIRTU ALIZ ACI ÓN N ATIV A Y VIR TUA LIZA CIÓ N CO MPL ETA La máquina virtual simula un hardware suficiente para permitir un sistema operativo “guest” sin modificar (uno diseñado para la misma CPU) para correr de forma aislada. Típicamente,
muchas instancias pueden correr al mismo tiempo. Este enfoque fue el pionero en 1966 con CP-40 y CP[-67]/CMS, predecesores de la familia de máquinas virtuales de IBM. Algunos ejemplos: VMware Workstation, VMware Server, Parallels Desktop, Virtual Iron, Adeos, Macon-Linux, Win4BSD, Win4Lin Pro y z/VM. VIRTU ALIZ ACI ÓN P ARCI AL La máquina virtual simula múltiples instancias de mucho (pero no de todo) del entorno subyacente del hardware, particularmente address spaces. Este entorno admite compartir recursos y aislar procesos, pero no permite instancias separadas de sistemas operativos “guest”. Aunque no es vista como dentro de la categoría de máquina virtual, históricamente éste fue un importante acercamiento, y fue usado en sistemas como CTSS, el experimental IBM M44/44X, y podría decirse que en sistemas como OS/VS1, OS/VS2 y MVS. PARAV IRTU ALI ZACI ÓN La máquina virtual no necesariamente simula un hardware, en cambio ofrece un API especial que solo puede usarse mediante la modificación del sistema operativo “guest”. La llamada del sistema al hypervisor tiene el nombre de “hypercall” en Xen y Parallels Workstation; está implementada vía el hardware instruction DIAG (“diagnose”) en el CMS de VM en el caso de IBM (este fue el origen del término hypervisor). Ejemplo: VMware ESX Server, Win4Lin 9x y z/VM. VIRTU ALIZ ACI ÓN A NIV EL DEL SIS TEMA OP ERAT IVO Virtualizar un servidor físico a nivel del sistema operativo permitiendo múltiples servidores virtuales aislados y seguros correr en un solo servidor físico. El entorno del sistema operativo “guest” comparte el mismo sistema operativo que el del sistema “host” (el mismo kernel del sistema operativo es usado para implementar el entorno del “guest”). Las aplicaciones que corren en un entorno “guest” dado lo ven como un sistema autónomo. Ejemplos: LinuxVServer, Virtuozzo, OpenVZ, Solaris Containers y FreeBSD Jails. VIRTU ALIZ ACI ÓN D E AP LIC ACIO NES Consiste en el hecho de correr una desktop o una aplicación de server localmente, usando los recursos locales, en una máquina virtual apropiada. Esto contrasta con correr la aplicación como un software local convencional (software que fueron “instalados” en el sistema). Semejantes aplicaciones virtuales corren en un pequeño entorno virtual que contienen los componentes necesarios para ejecutar, como entradas de registros, archivos, entornos variables, elementos de uso de interfaces y objetos globales. Este entorno virtual actúa como una capa entre la aplicación y el sistema operativo, y elimina los conflictos entre aplicaciones y entre las aplicaciones y el sistema operativo. Los ejemplos incluyen el Java Virtual Machine de Sun, Softricity, Thinstall, Altiris y Trigence (esta metodología de virtualización es claramente diferente a las anteriores; solo una pequeña línea divisoria los separa de entornos de máquinas virtuales como Smalltalk, FORTH, Tel, P-code).
VIRTUALIZACIÓN Y PARTICIONAMIENTO
La virtualización de servidores permite optimizar el uso de los recursos (CPUs principalmente) mediante la asignación dinámica de éstos en un entorno multisistema operativo, así como aportar un servicio continuado mediante clusters y pagar sólo por lo que se usa gracias a la solución “utility pricing”. El objetivo de todo ello es consolidar y automatizar los recursos en tiempo real para un uso optimizado que no sólo aumente el rendimiento de los servidores, sino que también pueda garantizar la continuidad de negocio. La virtualización es la solución perfecta a los problemas de infrautilización de servidores porque mejora el rendimiento y la flexibilidad de éstos, proporcionando, además, una importante reducción de costes. Si un servidor es capaz, gracias a los particionamientos, de correr en diferentes sistemas operativos, no sólo se aprovechan mejor sus capacidades, sino que éstas pueden ser utilizadas en caso de emergencia, cuando, por ejemplo, otro equipo se estropea, para no interrumpir en ningún momento el servicio.
NPARTITIONS
(NODE PARTITIONS)
P A R T I C I O N E S F Í S I CA S Permiten configurar un solo servidor como un servidor grande o como múltiples servidores más pequeños. Cada partición cuenta con un o mas células (conteniendo procesadores y memoria) que son asignadas a la partición para uso exclusivo. Cualquier dispositivo de I/O que se asocie a una célula pertenece a una partición, también es asignado solo a esa partición. Puesto que cada nPartition tiene su propio procesador, memoria y recursos de I/O, que consisten en los recursos de las células afectadas, los recursos se pueden quitar de un nPartition y agregar a otro sin tener que quitarlo físicamente o agregar hardware. Además, se puede realizar la creación y la modificación dinámicas de nPartitions. Gracias a la separación eléctrica, las nPart se encuentran aisladas una de otras, de modo que las fallas de hardware se limitan a la partición en la que ocurren. Los nPartitions proporcionan: Aislamiento de la dotación física, eléctrica y de seguridad. Granularity de célula. Flexibilidad de recursos Cada nPartition posee sus propias instancias de Sistemas Operativos, Aplicaciones y Usuarios, Este tipo de tecnología de virtualización le permite: Aumentar la utilización del servidor (utilizando las células no utilizadas en un servidor) Aislamiento de los ambientes de funcionamiento Mejor disponibilidad de sistema
La posibilidad de realizar mantenimiento físico, mientras otras nPartitions siguen en funcionamiento. Una reconfiguración en una de las particiones no requiere que se reinicie todo el sistema Mejore el coste de la propiedad CARAC TERÍ STI CAS Se aplica en la tarjeta celular. Proporciona aislamiento tanto funcional como eléctrico. Las nParticiones se pueden seguir subdividiendo mediante el Particionado de software. En los servidores que las admitan, las nParticiones pueden ejecutar HP-UX, Linux, Microsoft Windows o todos estos sistemas operativos (en particiones separadas). VENTA JAS DE NPART ITI ONS Soporte para Multiple SO, en un servidor pueden correr: HP-UX, Windows, Linux y OpenVMS. Capacidad para realizar mantenimiento físico en parte de una nPartitions, mientras que otros nPartitions seguir corriendo. Una falla en una de las maquinas virtuales no afecta al resto. Una maquina virtual no puede acceder a otra, ni al hardware.
LPAR
(LOGICAL PARTITIONS) PAR TICIONES LÓGICAS LPAR es un subconjunto de recursos de hardware dentro del mismo ordenador, pero virtualizado. Una máquina física puede dividirse en múltiples LPARs, conviviendo en un mismo sistema operativo. La tecnología fue desarrollada inicialmente por separado de Amdahl, Hitachi Data Systems e IBM para el mainframe de arquitectura ESA/390 a mediados de los años 1980, y continuó también para zSeries. Sin embargo, IBM más tarde extendió la idea hacia servidores mainframe, tales como pSeries desde octubre de 2001 e iSeries aunque con distintas especificaciones técnicas.
IBM tiene una larga historia de liderazgo en el área de la virtualización. Esta no es una nueva tecnología - ha estado alrededor desde 1967 en el mainframe, y fue desarrollada inicialmente para el procesador POWER en 1997. Desde entonces hemos estado refinando la tecnología para hacerla más confiable, escalable y a fin de que sirva mejor para sus necesidades empresariales. 1967
IBM desarrolla el hypervisor que eventualmente se convertiría en VM en el mainframe
1973
IBM anuncia el S/370 modelo 158 y modelo 168, las dos primeras máquinas para realizar particionamiento físico
1987
Se anuncia PR/SM (LPAR en el mainframe)
1990
Se anuncia la familia de ES/9000. Éste es el ultimo mainframe IBM para dar soporte al particionamiento físico
1997
El diseño de POWER LPAR comienza
1999
Se anuncia System i LPAR
200
System i envía soporte de sub-processor LPAR / System p envía soporte total de processor LPAR
2001
Se introduce LPAR en POWER4™ con AIX 5L™ V5.1
2004
Micro Partitioning LPAR y Virtual I/O con POWER5™ y AIX 5L V5.3
2007
IBM anuncia POWER6, los primeros servidores UNIX con Live Partition Mobility
Múltiples sistemas operativos son compatibles con LPARs, incluyendo z/OS, z/VM, z/VSE, z/TPF, AIX, GNU/Linux (incluyendo Linux en zSeries), y i5/OS. En sistemas de almacenamiento, tales como el IBM TotalStorage DS8000, pueden permitir que múltiples instancias virtuales de un array de almacenamiento existan dentro de una misma matriz física.
El particionamiento lógico se realiza principalmente en la capa de hardware. Dos LPARs puedan tener acceso a la memoria de un chip de memoria, dentro de los rangos de direcciones de memoria asignadas para que puedan acceder directamente sin solapamiento. Varios CPU pueden usarse para un LPAR, o ser compartida entre varias, pero sólo por el mando de un proceso de la segunda partición para operar directamente en la memoria. CPUs pueden ser dedicados a un único LPAR, o compartidos entre LPARs por separado. Si bien en Amdahl del MDF es posible configurar una LPAR con ambos compartidos y dedicados CPUs ya no es posible con mainframes. En IBM, LPARs son gestionados por la PR/SM instalación. Moderno IBM operar exclusivamente en modo LPAR, incluso cuando sólo hay una partición lógica en una huella. Múltiples LPARs pueden formar un Sysplex o Sysplex Paralelo, ya sea en una huella o propagación a través de múltiples huellas. En condiciones de seguridad permiten la combinación de múltiples ensayos, el desarrollo, garantía de calidad, producción y trabajo en el mismo sistema, que ofrece varias ventajas como disminuir los costos de despliegue más rápido y más comodidad. IBM mainframe LPARs se Common Criteria EAL5 certificable, lo que equivale a separar físicamente los servidores, sin conexiones, así que son apropiados para los más altos requisitos de seguridad, incluidas las de uso militar. Casi todos los mainframes de IBM corren con múltiples LPARs (hasta 60 en los últimos modelos), IBM System z9 y del sistema Z10 apoyo de hasta 60 LPARs. VENTA JAS La primera ventaja de consolidar en un sistema con LPAR es, como ya mencionamos, ahorrar costes de operación, disminuyendo la complejidad de múltiples servidores, pero manteniendo una cierta independencia y control en cada una de las particiones. Esto nos permite contar con diferentes versiones de software, de idioma, de sistema operativo, y trabajar con diferentes husos horarios y criterios de seguridad en cada partición, impidiendo además que el consumo de CPU de un país afecte el rendimiento de otro. Además de los costes de operación, se reducen las necesidades de espacio físico, puede centralizarse el Centro de Datos, se ahorran costes de licencias de software (IBM sólo nos cobrará por una copia de OS/400 para todas las particiones) y es posible compartir dispositivos de backup, consolas, etc. Permite además redistribuir dinámicamente la CPU (interactiva y batch) asignada a cada partición, para ello utiliza una aplicación que se encarga de realizar el monitoreo continuo de la actividad en cada LPAR, y cuando detecta CPU sobrante en una partición, amplía rápidamente la capacidad asignada a las particiones que sufren, moviendo desde centésimas de procesador a procesadores completos, eliminando la fragmentación y acelerando enormemente el sistema. También es posible especificar la importancia, prioridad, y condiciones de ajuste de cada partición, como así también el rango (mínimo y máximo) de CPU interactiva y batch que
puede ser asignado a cada partición, para permitir que el ajuste se haga siempre en función de las necesidades propias de cada empresa. También es posible definir prioridades diferentes en función de la hora del día. El resultado es el máximo aprovechamiento, en todo momento, del componente más caro del sistema (la CPU), mejores tiempos de respuesta y niveles de servicio, usuarios más productivos y contentos, y un mejor retorno de la inversión en hardware.
V IRTUALIZACIÓN
EN SERVIDORES
HP
Las técnicas de virtualización de servidores de HP se apoyan en hardware con una arquitectura basada en celdas que se pueden agrupar formando nPARs: En una máquina con cuatro celdas, podemos formar 4 nPARs de una celda, 2 nPARs de dos celdas, etc. En cada NPAR podemos arrancar instancias de sistema operativo HP-UX o Windows. La granularidad es la celda y el aislamiento es eléctrico.
La primera tecnología fue la Partición Virtual (VPAR) consiste en dividir un servidor físico o una nPAR, en subconjuntos (CPU, Memoria y tarjetas de E/S) dónde se arranca una instancia de sistema operativo HP-UX. Todo ello a nivel físico: Si tenemos una máquina con 4 CPUs, podemos arrancar 4 vPARs con distintas versiones de sistema operativo en cada una de ellas. La granularidad es la CPU y no hay aislamiento eléctrico.
La siguiente tecnología, Máquinas Virtuales (VM), se basa en un sistema operativo anfitrión (host) que gestiona como tareas a otros sistemas operativos invitados (guest). En éste caso, pueden ser HP-UX, Linux o Windows. Los dispositivos de E/S los gestiona el host y los guest sólo ven drivers genéricos: En una máquina con 1 CPU puedo arrancar varias VMs. La granularidad es a nivel de porcentaje de CPU (5%) así que, teóricamente, podría arrancar 20 VMs usando una CPU.
La imagen siguiente ilustra las distintas posibilidades de utilización, de cada una de éstas tecnologías: