5.1 Espejeo (mirroring).

 

5.1 ESPEJEO (MIRRORING).

Base de Datos Espejo es una configuración donde dos o tres servidores de dase de datos que se ejecutan en equipos independientes, cooperan para mantener copias de la base de datos y archivo de registro de transacciones.

Tanto el servidor primario como el servidor espejo mantienen una copia de la base de datos y el registro de transacciones, mientras que el tercer servidor, llamado el servidor árbitro, es usado cuando es necesario determinar cuál de los otros dos servidores puede tomar la propiedad de la base de datos.

El árbitro no mantiene una copia de la base de datos. La configuración de los tres servidores de base de datos (el primario, el espejo y el árbitro) es llamado Sistema Espejo, el servidor primario en conjunto con el espejo son llamados Servidores Operacionales o Compañeros.




Existen varios tipos de mirroring:
* Alta disponibilidad: Garantiza la consistencia transaccional entre el servidor principal y el servidor de espejo y ofrece Automatic Failover mediante unservidor testigo.
* Alta Protección: Garantiza la consistencia transaccional entre el servidor principal y el espejo.
* Alto Rendimiento: Aplica las transacciones en el Servidor Espejo de manera asíncrona ocasionando mejoras significativas en el rendimiento del servidor principal pero no garantiza que dichas transacciones se hallan realizado de manera exitosa en el espejo.



Beneficios del espejeo.
La creación de reflejo de la base de datos es una estrategia sencilla que ofrece las siguientes ventajas:

* Incrementa la disponibilidad de una base de datos. Si se produce un desastre en el modo de alta seguridad con conmutación automática por error, la conmutación por error pone en línea rápidamente la copia en espera de la base de datos, sin pérdida de datos. En los demás modos operativos, el administrador de bases de datos tiene la alternativa del servicio forzado (con una posible pérdida de datos) para la copia en espera de la base de datos.

* Aumenta la protección de los datos. La creación de reflejo de la base de datos proporciona una redundancia completa o casi completa de los datos, en función de si el modo de funcionamiento es el de alta seguridad o el de alto rendimiento.

* Mejora la disponibilidad de la base de datos de producción durante las actualizaciones.

* Se puede minimizar el tiempo de inactividad para una base de datos reflejada, para ello se puede actualizar secuencialmente las instancias de SQL Server que hospedan los asociados de creación de reflejo de la base de datos. Esto incurrirá en el tiempo de inactividad de solo una conmutación por error única. Esta forma de actualización se denomina actualización gradual.

* Mejora la disponibilidad de la base de datos de producción durante las actualizaciones. Para minimizar el tiempo de inactividad para una base de datos reflejada, puede actualizar secuencialmente las instancias de SQL Server que hospedan los asociados de creación de reflejo de la base de datos. Esto incurrirá en el tiempo de inactividad de solo una conmutación por error única. Esta forma de actualización se denomina actualización gradual.



Creación de Espacios de Disco con Espejo.

Espejeado de disco significa que se conectan dos unidades de disco al mismo controlador de disco. Las dos unidades se mantienen idénticas cuando el servidor escribe en una unidad (la primaria), posteriormente se escribe en (la secundaria). Si durante la operación falla, la unidad primaria, en su lugar se utiliza la secundaria. Si la secundaria falla, no importa. En ambos casos los usuarios experimentan una breve pausa mientras el servidor se asegura que la unidad está muerta, y luego se regresa al servicio normal.

Para contar con este nivel de confiabilidad, se necesita un segundo disco duro, lo que duplica el costo del almacenamiento de datos. Pero en lo que concierne a su organización, tal vez valga la pena el costo relativamente pequeño de una unidad de disco, para evitar lo que de otra manera seria un desastre.

Una de las desventajas de los discos espejos es la perdida de rendimiento. Dado que un controlador manejados unidades primarias para escribir los datos en la unidad secundaria. Esto provoca que las escrituras en disco se tarden el doble. En un servidor con carga ligera esto quizás no sea tan malo desde el punto de vista del usuario, ya que el caché de disco del servidor hace que el acceso a disco perezca extremadamente rápido. Sin embargo, la sobrecarga puede llegar a ser significativa en un sistema con carga pesada.

Otra de las desventajas del espejeado es que el controlador de disco duro o los cables de conexión llegan a fallar. Los datos se pueden leer desde la unidad o matriz duplicada sin que se produzcan interrupciones. Es una alternativa costosa para los grandes sistemas, ya que las unidades se deben añadir en pares para aumentar la capacidad de almacenamiento, para los disco espejos. Los discos espejos también llamado "duplicación" (creación de discos en espejo). Se basan en la utilización de discos adicionales sobre los que se realiza una copia en todo momento de los datos que se están modificando. El cual ofrece una excelente disponibilidad delos datos mediante la redundancia total de los mismos. Administración del espacio libre en un disco.

Es necesario saber qué bloques están libres. Las opciones son parecidas a las que se pueden usar para administrar espacio en memoria.

Mapa de bits, Un bit por bloque. Es eficiente si se puede mantener el mapa entero en memoria. Disco de 1 GB, con bloques de 512 KB requiere un mapa de 256 KB. Usado en los MACS. Lista ligada. En un bloque reservado (fijo) del disco se registran las direcciones de los bloques desocupados. La última dirección apunta no a un bloque libre, sino a otro bloque con más direcciones de bloques libres. En MS-DOS se usa la misma FAT para administrar el espacio libre.

Caches de discos.

Ya que el disco es tan lento comparado con la memoria (unas 10000 veces) resulta rentable usar un caché para mantener en memoria física parte de la información que hay en el disco, de manera que, si en el futuro se requiere un bloque que ya está en memoria, se ahorra el acceso al disco.

Igual que en el caso de memoria virtual, hay que tratar de adivinar qué bloques se van a acceder en el futuro cercano, para mantener esos bloques en el caché. Pero al contrario de lo que ocurre con memoria virtual, no se requiere ningún apoyo especial del hardware para implementar LRU. Ya que todos los accesos a disco pasan por las manos del sistema operativo. Paradójicamente, LRU no es necesariamente la mejor alternativa tratándose de bloques de disco.

Por otra parte, algunos de los bloques contienen información crítica respecto del sistema de archivos. Si este bloque es modificado y puesto al final de la cola LRU, puede pasar un buen tiempo antes de que llegue a ser el menos recientemente usado, y sea escrito en el disco para ser reemplazado. Si el sistema se cae antes que eso, esa información crítica se perderá, y el sistema de archivos quedará en un estado inconsistente.

Planificación de disco.

Un disco, mirado desde más bajo nivel, no es simplemente una secuencia de bloques. Están compuestos de platos, cada uno de los cuales contiene una serie de pistas o tracks concéntricos. A su vez, las pistas se dividen en sectores.

Las pistas exteriores, que son más grandes, pueden contener más sectores que las interiores. (En un CD, en realidad hay una espiral de sectores.) Existe un brazo mecánico con un cabezal lector/escritor para cada plato, el brazo mueve todos los cabezales juntos. Un cilindro se conforma por las pistas que los cabezales pueden leer cuando el brazo está en una posición determinadas, los bloques lógicos (secuenciales) que ve el sistema de archivos deben traducirse a un trío (cilindro, plato, sector).

El tiempo requerido para leer un sector depende de:

1. El tiempo de búsqueda (seek time), es decir, el tiempo requerido para mover el brazo al cilindro apropiado.

2. El retardo rotacional, o sea, el tiempo que hay que esperar hasta que el sector requerido pase por debajo del cabezal.

3. El tiempo de transferencia de los datos.

El primero es el que predomina, de manera que conviene reducirlo para aumentar la eficiencia del sistema. El sistema de archivo puede ayudar (por ejemplo, con asignación contigua). Obviamente, bloques en el mismo cilindro deben considerarse contiguos, Pero hay otra cosa que se puede hacer, considerando que en un sistema con muchos procesos la cola de solicitudes pendientes de un dispositivo suele no estar vacía, atenderlas en un orden que reduzca los movimientos del brazo.

Algoritmos de Planificación de Disco:

 FIFO.

Es simple, pero no estamos haciendo nada por la eficiencia. Es malo si las solicitudes se alternan entre cilindros exteriores e interiores.

SSTF (Shortest Seek-Time First)

Se trata de atender primero las solicitudes más cercanas a la posición actual del brazo. El problema es que, cuando hay muchas solicitudes, es posible que sólo se atiendan las cercanas al centro. Puede haber inanición para los procesos que solicitan cilindros delos extremos.

Algoritmo del Ascensor

Para evitar inanición, se mantiene la dirección de movimiento del brazo hasta que no queden solicitudes pendientes en esa dirección. Es lo mismo que hacen los ascensores. Un pequeño problema es que las solicitudes en los extremos tienen, en promedio, un tiempo de espera mayor.

Discos RAM

Gracias a la estructuración en capas, podemos usar el mismo sistema de archivos en cualquier dispositivo de bloques con un driver adecuado, que implemente la interfaz para el software independiente del dispositivo. Por ejemplo, en los primeros computadores personales, que tenían sólo una disquetera como medio de almacenamiento, era habitual crear un disco RAM, es decir reservar un trozo de la memoria para usarlo como un disco virtual, para almacenar archivos. Un driver de disco RAM es extremadamente simple.

Comentarios