Los siguientes términos son útiles para enteneder MySQL Cluster o tienen significado eespecial cuando se usan referidos a ellos.
Cluster:
En sentido genérico, un cluster es un conjunto de máquinas funcionando como unidad y trabajando juntas para tratar una única tarea.
NDB
Cluster
:
Este es el motor de almacenamiento usado en MySQL para implementar almacenamiento de datos, recuperación y administración distribuída entre varias máquinas.
MySQL Cluster:
Se refiere a un grupo de máquinas trabajando juntas usando el
motor NDB
para soportar una base de datos
MySQL distribuída en una arquitectura de
compartición nula usando
almacenamiento en memoria.
Ficheros de configuración:
Ficheros de texto conteniendo directivas e información respecto al cluster, sus máquinas y sus nodos. Son leídos por los nodos de administración de cluster y cuando arranca el cluster. Consulte Sección 16.4.4, “Fichero de configuración” para detalles.
Copia de seguridad:
Una copia completa de todos los datos de cluster, transacciones y logs, guardados en disco y otro medio de almacenamiento.
Restauración:
Retornar el cluster a un prévio estado, como se almacenó en la copia de seguridad.
Checkpoint:
Generalmente hablando, cuando los datos se guardan en disco,
se dice que se llega a un checkpoint. Más específicamente
para el cluster, es un punto en tiempo donde todas las
transacciones que han hecho un commit se guardan en disco.
Respecto al motor NDB
, hay dos clases de
checkpoints que trabajan juntas para asegurar que se mantiene
una vista consistente del cluster:
Local Checkpoint (LCP):
Este es un checkpoint específico a un nodo; sin embargo LCP se realizan para todos los nodos de forma más o menos concurrentes en todo el cluster. Un LCP inplica guardar todos los datos de los nodos en disco, y esto ocurre normalmente cada pocos minutos. El intervalo preciso varía, y depende de la cantidad de datos almacenada por el nodo, el nivel de la actividad del cluster y otros factores.
Global Checkpoint (GCP):
Un GCP se realiza cada pocos segundos, cuando las transacciones para todos los nodos se sincronizan y el log de redo se vuelca en disco.
Equipo Cluster:
Una máquina que forma parte del MySQL Cluster. Un cluster tiene una estructura física y una lógica . Físicamente, el cluster consiste en un número de máquinas , conocidas como equipos del cluster (o más símplemente equipos . Consulte Nodo y Grupo de Nodos a continuación.
Nodo:
Se refiere a un unidad lógica o funcional de MySQL Cluster, y a veces se denomina como nodo de cluster . En el contexto de MySQl Cluster, usamos el término “nodo” para indicar un proceso en lugar de un componente físico del cluster. Hay tres tipos de nodo requeridos para implementar un MySQL Cluster. Son:
Nodos de administración (MGM):
Administra los otros nodos dentro del MySQL Cluster. Proporciona datos de configuración de los otros nodos; arranca y para nodos; trata partición de red; crea copias de seguridad y restaura desde las mismas, y así.
Nodos SQL (MySQL server):
Instancias de MySQL Server que sirve como front end para cuardar datos en los nodos de datos del cluster. Clientes que quieran almacenan, recuperar o actualizar datos pueden acceder a un nodo SQL sólo como si fuera cualquier otro MySQL Server, empleando los métodos de autenticación usual y API; la distribución subyacente de datos entre grupos de nodos es transparente a los usuarios y aplicaciones. Los nodos SQL acceden a las bases de datos del cluster como un total sin tener en cuenta la distribución de datos entre distintos nodos de datos o máquinas del cluster.
Nodos de datos:
Estos nodos almacenan los datos. Los fragmentos de datos se almacenan en un conjunto de grupos de nodos. Cada uno de los nodos creando un grupo de nodos almacena una réplica del fragmento para el que ese grupo de nodos es responsable. Actualmente un único cluster puede soportar hasta 48 nodos de datos en total.
Es posible que más de un nodo coexista en una única máquina. (De hecho, es posible tener un cluster completo en una única máquina, aunque no es recomendable hacerlo en un entorno de producción.) Puede ser útil recordar que, cuando se trabaja con MySQL Cluster, el término máquina se refiere a un componente físico del cluster mientras que nodo es un componente lógico o funcional. (un proceso).
Nota respecto a términos obsoletos: En versiones más antiguas de la documentación de MySQL Cluster , los nodos de datos se llaman a veces "nodos de bases de datos" o "nodos DB". Además, los nodos SQL a veces se conocen como "nodos cliente" o "nodos API". Esta terminología antigua ha quedado obsoleta para minimizar confusión, y por estas razones debería evitarse.
Grupo de nodos:
Conjunto de nodos de datos. Todos los nodos de datos en un grupo de nodos contienen los mismos datos (fragmentos), y todos los nodos en un mismo grupo deben estar en distintas máquinas. Es posible controlar qué nodos pertenecen a qué grupos de nodos.
Fallo de nodo:
MySQL Cluster no sólo depende de la funcionalidad de un único nodo en el cluster; el cluster puede continuar funcionando si uno o más nodos fallan. El número preciso de fallos de nodo que puede tolerar un único cluster depende en el número de nodos de la configuración del cluster.
Reinicio de nodo:
El proceso de restaurar un nodo de cluster fallido.
Reinicio de nodo inicial:
El proceso de arrancar un nodo de cluster con su sistema de fichero eliminado. Esto a veces se usa en actualizaciones de software y en otras circunstancias especiales.
Fallo de sistema:
Puede ocurrir cuando han fallado tantos nodos que el estado del cluster no puede garantizarse.
Reinicio de sistema:
El proceso de reiniciar el cluster y reinicializar su estado de logs de disco y checkpoints. Se requiere tras una parada planficada o no del cluster.
Fragmento:
Una porción de una tabla; en el motor NDB
una tabla se divide y almacena como un número de fragmentos.
Un fragmento es a veces llamado “partición”; sin
embargo, “fragmento” es la denominación
preferida.Las tablas fragmentadas en MySQL Cluster se usan
para facilitar balanceo de carga entre máquinas y nodos.
Réplica:
Bajo el motor NDB
, cada fragmento de tabla
tiene un número de réplicas almacenadas en otros nodos de
datos para proporcionar redundancia. Hay actualmente 4
réplicas por fragmento.
Transporter:
Protocolo que proporciona transferencia de datos entre nodos. MySQL Cluster soporta 4 tipos distintos de conexiones de transporters:
TCP/IP (local)
Protocolo de red habitual que existe bajo HTTP, FTP (y así ) en Internet.
TCP/IP (remoto)
Lo mismo que el anterior, excepto que se usa para comunicación remota.
SCI
Scalable Coherent Interface es un protocolo de alta velocidad usado para montar sistemas multiprocesador y aplicaciones paralelas. El uso de SCI con MySQL Cluster requiere hardware especializado y se discute en Sección 16.7.1, “Configurar MySQL Cluster para que utilice Sockets SCI”. Para una introducción básica a SCI, consulte este ensayo de dolphinics.com.
SHM
shared
memory segments
(segmentos de memoria compartida). Donde se soporta, SHM
se usa automáticamente para conectar nodos en la misma
máquina. La
página de man Unix para
shmop(2)
es un buen sitio
para obtener información adicional acerca de este tema.
Nota: El transporter del cluster es interno. Las aplicaciones que usan MySQL Cluster se comunican con nodos SQL como se hace con cualquier otra versión de MySQL Server (via TCP/IP, o a través del uso de sockets Unix o Windows named pipes). Las consultas pueden enviarse y recibirse los resultados usando la API estándar MySQL .
NDB
:
Significa Network
Database,
y se refiere al motor de almacenamiento usando para permitir
MySQL Cluster. El motor NDB
soporta todos
los tipos de columna MySQL habituales y comandos SQL , y
cumple las reglas ACID. Este motor proporciona soporte para
transacciones (commits y rollbacks).
Arquitectura de compartición cero:
Arquitectura ideal para MySQL Cluster. En un entorno sin compartición, cada nodo se ejecuta en máquinas separadas. La ventaja de este entorno es que ninguna máquina puede ser un punto de fallida único o como cuello de botella del sistema.
Almacenamiento en memoria:
Todos los datos almacenados en cada nodo de datos se mantiene en memoria en la máquina del nodo. Para cada nodo de datos en el cluster, debe tener disponible una cantidad de RAM igual al tamaño de la base de datos multiplicado por el número de réplicas, dividido por el número de nodos de datos. Por lo tanto, si la base de datos ocupa 1 GB de memoria, y quiere tener 4 réplicas en el cluster, necesita para cada nodo un mínimo de 500 . Tenga en cuenta que esto es además de cualquier requerimiento para el sistema operativo u otra aplicación que puede ejecutarse en el equipo.
Tabla:
Como es normal en el contexto de bases de datos relacionales, el término “tabla” denota un conjunto ordenado de requistros de idéntica estructura. En MySQL Cluster, una tabla de base de datos se almacena en un nodo de datos como un conjunto de fragmentos, cada uno de ellos se replica en nodos de datos adicionales. El conjunto de nodos de datos replicando el mismo fragmento o conjunto de fragmentos se conoce como grupo de nodos.
Programas del Cluster:
Son programas de línea de comandos usados para ejecutar, configurar y administrar MySQL Cluster. Incluyen demonios:
ndbd
:
Demonio de nodo de datos (ejecuta un proceso de nodo de datos)
ndb_mgmd
:
Demonio de servidor de administración (ejecuta un proceso de servidor de administración)
y programas cliente:
ndb_mgm
:
El cliente de administración (proporciona una interfaz para ejecutar comandos de administración)
ndb_waiter
:
Usado para verificar el estado de todos los nodos del cluster
ndb_restore
:
Restaura datos del cluster de una copia de seguridad
Para más información de estos programas, consulte Sección 16.5, “Gestión de procesos en MySQL Cluster”.
Log de eventos:
MySQL Cluster registra eventos por categoría (arranque, parada, errores,checkpoints, y así), prioridad, y severidad. Un listado completo de todos los eventos reportables pueden encontrarse en Sección 16.6.2, “Informes de eventos generados por MySQL Cluster”. Los logs de eventos son de dos tipos:
Log de Cluster:
Mantiene un registro de todos los eventos reportables deseados para el cluster entero.
Log de Node:
Un log separado que se mantiene para cada nodo individual.
Bajo circunstancias normales, es necesario y suficiente mantener y examinar sólo el log del cluster. Los logs de nodo tienen que ser consultados sólo para desarrollo de aplicaciones y depuración.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.