DB2 pureScale
Transcripción
DB2 pureScale
Session: DB2 pureScale Luis Reina IBM 16/11/2010 1 Session DB2 pureScale Luis Reina IBM [email protected] 2 AGENDA Arquitectura de DB2 pureScale Conceptos Escalabilidad Disponibilidad Balanceo de Carga Facilidad de Instalación 3 ¿Qué es DB2 pureScale? Lleva la tecnología del Sysplex del System Z a entorno distribuidos. Multiples servidores se muestran como un única base de datos. Permite Añadir o Quitar servidores según las necesidades de negocio. Proporciona niveles de Escalabilidad y Disponibilidad que no existían en platorma distribuida. Los usuarios nunca saben cuando uno o más miembros fallan ya que DB2 pureSacle permanece ejecutándose. 4 Objetivos de DB2 pureScale • Capacidad iIimitada – Empezar pequeño – Facilidad de crecimiento • Transparente a las Aplicaciones – Evita el riesgo y el coste de ajustar las aplicacicaciones a las topología de la base de datos. • Disponibilidad Continua (Continuous Availability) – Mantener el nivel de servicio tanto con eventos planificados como no planificados. 5 Arquitectura de DB2 pureScale Unica base de datos Balanceo Automático de Carga Miembros de DB2: - Cluster Services - DB2 Engine CF CS DB2 Engine CS Log DB2 Engine CS DB2 Engine CF CS Log Log CF Coupling Facility - Group Bufferpool - Global Lock Manager InfiniBand RDMA Base de Datos (Datos compartidos) 6 Paradas Planificadas Application Servers / DB2 Clients Failover transparente a SW Maintenance las aplicaciones Identify Continuous HW Maintenance Identify Drain Bring Drain Bring Availability Do Member Do Member node Member node Member Maintenance Server2 Server1 Log Server3 Log Log Maintenance back Administration back Reconexión online online automática de los clientes Shared Data 7 Paradas No Planificadas Disponibilidad Maximizada Application Servers / DB2 Clients Datos en Lectura no se bloquean tx tx tx Sólo se bloquean los datos modificados en vuelo Las aplicaciones no tienen que reconectarse Database member failure Server1 Server4 Server3 Server2 Log Log Log Coupling Facility Log Coupling Facility Shared Data % of Data Available IB Only data in-flight updates locked during recovery 100 50 Time (~seconds) 8 CONCEPTOS 9 ¿Qué es un Miembro de DB2 pureScale? • Un motor DB2 (DB2 engine) – i.e. un proceso db2sysc y sus threads. • Los miembros comparten los datos Member 0 db2sysc process db2 agents & other threads – Todos os miembros acceden a la misma base de datos – Data Sharing • Cada miembro tiene su propio: – Bufferpools – Regiones de memoria – Ficheros de logs • Members are logical. Can have … – 1 per machine or LPAR (recommended) – >1 per machine or LPAR (not recommended) Member 1 db2sysc process db2 agents & other threads log buffer, dbheap, & other heaps log buffer, dbheap, & other heaps bufferpool(s) bufferpool(s) Log Log Shared database (Single database partition) 10 ¿Qué es la Coupling Facility? • Tecnología SW que se encarga del Buffer y Bloqueos globales. – – • Derivada del Parallel Sysplex de System z y de su tecnología de Coupling Facility Basada en Software Group Bufferpool (GBP) Global Lock Management (GLM) Shared Communication Area (SCA) Los Miembros duplexan el GBP, GLM, SCA a las dos CF la primaria y la sencundaria: – – – Síncronamente. Duplexación es opcional (pero recomendada). Se establece automáticamente por defecto. db2 agents & other threads log buffer, dbheap, & other heaps log buffer, dbheap, & other heaps Servicios proporcionados: – – – • db2 agents & other threads bufferpool(s) bufferpool(s) Primary Log Log GBP GLM SCA Secondary Shared database (Single database partition) 11 ¿Para qué sirve el Global Bufferpool? GBP acts as fast disk cache – – Member 2 GBP includes a “Page Registry” – – • Member 1 Keeps track of what pages are buffered in each member and at what memory address Used for fast invalidation of such pages when they are written to the GBP ad Re e – DB2 “forces” (writes) updated pages to GBP at COMMIT (or before) GBP synchronously invalidates any copies of such pages on other members – New references to the page on other members will retrieve new copy from GBP – In-progress references to page can continue g Pa – bufferpool(s) ite Wr Force-at-Commit (FAC) protocol ensures coherent access to data across members bufferpool(s) ile nt” Inv ali da te • Dirty pages stored in GBP, then later, written to disk Provides fast retrieval of such pages when needed by other members ge Pa “S • Client B : Update T1 set C1=X where C2=Y Commit Client A : Select from T1 Client C : where C2=Y Select from T1 where C2=Y GBP GLM SCA Page Registry M1 M2 12 ¿Para qué sirve el GLM? Grants locks to members upon request – – If not already held by another member, or held in a compatible mode Which member has what lock, in what mode Also - interest list of pending lock requests for each lock ele ad Re e ase g Pa Loc kR ite Wr – When a member owns a lock, it may grant further, locally “Lock Avoidance” : DB2 avoids lock requests when log sequence number in page header indicates no update on the page could be uncommitted q Re – ck Notes Lo Via asynchronous notification X Grants pending lock requests when available – • Member 2 Maintains global lock state – • Member 1 len t” Inv ali da te • Client B : Update T1 set C1=X where C2=Y Commit ge Pa S L k oc q Re “S i • Client A : Select from T1 Client C : where C2=Y Select from T1 where C2=Y GBP GLM SCA R32 R33 R33 Page M1-X M2-S Registry M1 M2 R34 13 Las Claves de la Escalabilidad y Disponibilidad • Coupling Facility (CF) – DB2 mantiene un lugar para buscar información de bloqueo y páginas compartidas. Member 1 Member 1 Member 1 CF Group Buffer Pool Global Lock Manager • Remote Direct Memory Access (RDMA) – Comunicación entre servidores (microsegundos) – Sin gastar CPU en el servidor destino – Sin context switiching, sin interrupción sin llamas a sockets 14 Ejemplo de uso RDMA I 1. • • 2. • • • • El agente en el Miembro 1 escribe directamente a la memoria del CF con: El numero de página que quiere leer El slot en el Buffer pool donde quiere fijar la página El CF responde escribiendo directamente a la memoria del Miembro 1: Indicando que la página no fue encontrada o Con la página solicitada. El tiempo total de principio a fin para el RAR medido en microsegundos Las llamadas son muy rápidas; es posible que el agente aún esté en el CPU, listo para recibir la respuesta Miembro 1 db2agent 1, No Eaton, lo 10210, tengo,SW 2, Smith, 10111, NE obténgalo del 3, Jones, 11251, NW disco RDMA: Solicitud de grabación RDMA: Respuesta de grabación CF Hebra CF Quiero la página 501. Poner en slot 42 de mi buffer pool. Mucho más escalable, no necesita localidad de datos 15 Ejemplo de uso RDMA II Deep RDMA exploitation over low latency fabric – • Silent Invalidation – – RDMA and dedicated threads enable read page operations in ~10s of microseconds Lock Mgr ge pa Hot pages available without disk I/O from GBP memory Lock Mgr Buffer Mgr w Ne – Informs members of page updates requires no CPU cycles on those members No interrupt or other message processing required Increasingly important as cluster grows Lock Mgr k? loc is th e e. ar av u Ih yo n re Ca e he ag p, im Yu – • Enables round-trip response time ~10-15 microseconds Lock Mgr Re ad Pa ge • GBP GLM SCA 16 ESCALABILIDAD 17 Prueba de Escalabilidad • Prueba con carga de trabajo tipo Web Commerce. – La mayoría de la carga es de lectura, pero no únicamente de lectura. • No dejar que las aplicaciones tengan conocimiento específico del clúster. – Sin direccionamiento de transacciones a los miembros. – Las transacciones obtienen acceso a filas aleatoriamente . – Tenemos que demostrar escalabilidad transparente de aplicaciones. • Más de 100 miembros. 18 Resultados Número de Miembros en el Clúster 19 Ejemplo de Escalabilidad OLTP • Se utiliza una carga de trabajo con más escritura • • 1 transacción de escritura para cada 4 de lectura Ésta es una típica proporción de lectura/escritura de cargas de trabajo OLTP • La aplicación sigue sin conocimiento del clúster • • Sin direccionamiento de transacciones a los miembros Demostrar escalabilidad transparente de la aplicación • Sistema Redundante • Utilizando 14 sistemas p550 con 8cores incluyendo PowerHA pureScale™ duplex • Escalabilidad es superior al 90% 20 Escalabilidad Relativa Resultados OLTP Numero de Miembros en el Clúster 21 DISPONIBILIDAD 22 Mantenimiento del Sistema • Objetivo: Permitir a los DBAs realizar mantenimiento del sistema sin necesidad de necesitar una ventana. • Procedimiento: 1. 2. 3. 4. Drain (aka Quiesce) Remove & Maintain Re-integrate Repeat until done Single Database View DB2 Log DB2 Log DB2 Log DB2 Log 23 Fallo Software de 1 miembro (arranque en el mismo servidor) • • Fallo de un Miembro Los servicios de clúster de DB2 detectan automáticamente el fallo del miembro • • • Clientes Informa a otros miembros y CFs Comienza el rearranque automático del miembro en el mismo host (u otro remoto si es necesario). El rearranque del miembro es como un crash recovery, pero mucho mas rápido. • • Vista de una sola Base de Datos Redo es limitado a transacciones en vuelo. Beneficios del uso del caché de pagina en la CF. • El cliente es redirigido transparentemente a miembros “sanos” del cluster. • Los otros miembros están completamente disponibles todo el tiempo “Online Failover” • • • DB2 CS CF mantiene los bloqueos de actualizaciones adquiridas por el miembro que ha caído. Otros miembros pueden continuar leyendo y actualizando los datos no bloqueados por el miembro caído. Rearranque del Miembro termina • kill -9 Los bloqueos son liberados y todos los datos están totalmente disponibles. Log DB2 CS Log DB2 CS Record de Anotaciones Cronológica s Log CF Secundario Páginas Log CF CS CF CS Páginas Actualizadas Bloqueos Globales DB2 CS Datos Compartidos Páginas Actualizadas Bloqueos Globales CF Primario 24 Fallo Hardware de 1 miembro (arranque en otro miembro) • Power cord tripped over accidentally Clients • DB2 Cluster Services looses heartbeat and declares member down • • • Informs other members & PowerHA pureScale servers Fences member from logs and data Initiates automated member restart on another (“guest”) host • Member restart is like a database crash recovery in a single system database, but is much faster • Using reduced, and pre-allocated memory model • • Redo limited to inflight transactions (due to FAC) Benefits from page cache in PowerHA pureScale Single Database View • In the mean-time, client connections are automatically re-routed to healthy members • • Based on least load (by default), or, Pre-designated failover member • DB2 CS Fe nc e DB2 Log Log Log Pa CS Updated Pages Global Locks Secondary Log s • Member restart completes DB2 CS ec R Primary retains update locks held by member at the time of failure Other members can continue to read and update data not locked for write access by failed member DB2 CS g Lo • Other members remain fully available throughout – “Online Failover” • • DB2 CS Shared Data ge s CS Updated Pages Global Locks Primary Retained locks released and all data fully available 25 Fallo Hardware de 1 miembro (Reintegración) Clients • Power restored and system rebooted Single Database View • DB2 Cluster Services automatically detects system availability • • • Informs other members and PowerHA pureScale servers Removes fence Brings up member on home host DB2 CS DB2 CS DB2 CS DB2 CS DB2 • Client connections automatically rerouted back to member Log Log Log CS CS Updated Pages Global Locks Secondary Log Shared Data Updated Pages Global Locks Primary 26 Fallo de la Coupling Facility Primaria • Power cord tripped over accidentally Clients • DB2 Cluster Services looses heartbeat and declares primary down • • • Single Database View Informs members and secondary PowerHA pureScale service momentarily blocked All other database activity proceeds normally • Eg. accessing pages in bufferpool, existing locks, sorting, aggregation, etc DB2 CS • Members send missing data to secondary • DB2 CS DB2 CS Eg. read locks • Secondary becomes primary • • DB2 CS PowerHA pureScale service continues where it left off No errors are returned to DB2 members Log Log Log CS CS Updated Pages Global Locks Secondary Primary Log Shared Data Updated Pages Global Locks Primary 27 Fallo de la Coupling Facility Primaria (reintegración) Clients • Power restored and system rebooted Single Database View • DB2 Cluster Services automatically detects system availability • Informs members and primary • New system assumes secondary role in ‘catchup’ state • • • DB2 CS Members resume duplexing Members asynchronously send lock and other state information to secondary Members asynchronously castout pages from primary to disk Log DB2 CS Log DB2 CS Log • Secondary in peer state (contains same lock and page state as primary) Updated Pages Global Locks Primary Log CS CS • Catchup complete DB2 CS Shared Data Updated Pages Global Locks Secondary (Catchup (Peer state) state) 28 Fallo de la Coupling Facility Secundaria Clients • Power cord tripped over accidentally Single Database View • DB2 Cluster Services looses heartbeat and declares secondary down • • Informs members and primary Members stop duplexing • (Re-integration similar to previous chart) DB2 CS Log DB2 CS Log DB2 CS Log Secondary Log CS CS Updated Pages Global Locks DB2 CS Shared Data Updated Pages Global Locks Primary 29 Resumen: 1 sólo Fallo ¿Los Otros Miembros siguen online? Tipo de Fallo Member CF DB2 DB2 DB2 DB2 CF Secondary PowerHA pureScale Comentario DB2 DB2 DB2 DB2 CF Primary PowerHA pureScale ¿Automático y Transparente? CF DB2 DB2 DB2 DB2 CF CF Las conexiones al miembro fallido se mueven transparentemente a otro miembro. Only data that was inflight on failed member remains locked temporarily. Momentary “blip” in PowerHA pureScale service. Transparent to members (In-flight PowerHA pureScale requests just take a few more seconds before completing normally.) . Momentary “blip” in PowerHA pureScale service. Transparent to members (In-flight PowerHA pureScale requests just take a few more seconds before completing normally.) . 30 Múltiples Fallos Tipo de Fallo ¿Los Otros Miembros siguen online? ¿Automático y Transparente? Only data that was inflight on failed members remains locked temporarily. DB2 DB2 DB2 DB2 CF CF Comentario Las conexiones al miembro fallido se mueven transparentemente a otro miembro. Recoveries done in parallel. . Same as member failure. DB2 DB2 DB2 DB2 CF CF Las conexiones al miembro fallido se mueven transparentemente a otro miembro. Momentary, transparent, “blip” in PowerHA pureScale service. . . Same as member failure. DB2 DB2 DB2 DB2 CF CF Momentary, transparent, “blip” in PowerHA pureScale service. Las conexiones al miembro fallido se mueven transparentemente a otro miembro. . 31 BALANCEO DE CARGA 32 Balanceo automático de Carga • Información de carga de los servidores para balancear automáticamente la carga del cluster (como en System z sysplex) • Fallo de un miembro • Reintegración Clients Clients 33 Conexión por Afinidad (opcional) • Allows you to target different groups of clients or workloads to different members in the cluster • • Maintained after failover … … and fallback • Consolidate separate workloads/applications on same database infrastructure Minimize total resource requirements for disjoint workloads App Servers App Servers App Servers App Servers Group A Group B Group C Group D • Example use cases • • Easily configured through client configuration • db2dsdriver.cfg file 34 FACILIDAD DE INSTALACION Y USO 35 Una Solución Software Completa • DB2 pureScale es una solución software completa • Una única instalación instala y configura automáticamente todos los componentes • No requiere realizar scripts o configuracion para el cluster 36 Fichero db2nodes.cfg Clients Single Database View db2nodes.cfg host0 DB2 host1 DB2 host2 host3 DB2 DB2 0 1 2 3 4 5 host0 host1 host2 host3 host4 host5 0 0 0 0 0 0 host0ib host1ib host2ib host3ib host4ib host5ib MEMBER MEMBER MEMBER MEMBER CF CF host5 host4 Shared Data 37 38 38