Tema 2 - TAI

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 16

TEMA 7

1. SISTEMA GESTOR DE BASE DE DATOS


El sistema gestor de base de datos actúa de interface entre el usuario y la información
almacenada, funciones esenciales:

- Función de descripción/definición: especificar los elementos de datos.


- Función de manipulación: permite a los usuarios buscar, añadir, suprimir o modificar
los datos de la base de datos.
- Función de utilización: comunicarse con la base de datos.

Usuarios:

- Administrador: responsable del diseño, definición y control de la base de datos.


- Programación: acceder a base de datos en un lenguaje de alto nivel.
- Usuario final: requerirá medios más sencillos para comunicarse con la base de datos.

1.1. FUNCIONES PARA EL USUARIO FINAL


La mayoría de operaciones sobre una base de dato se puede realizar mediante
consultas. El usuario podrá realizar determinadas consultas en función de la autorización que
el administrador de bases de datos le proporcione. Las consultas como operaciones que se
efectúan sobre los datos de una base de datos.

Según el tipo de operaciones:

- Consultas de selección de datos: permiten recuperar datos almacenados en las tablas.


o Consultas de selección de datos: se decide que filas se desea recuperar y que
columnas de esas filas.
o Consultas de unión: recuperar datos pertenecientes a varias tablas
relacionadas.
o Consultas de agrupamiento: obtener resultados estadísticos del conjunto de
filas recuperadas.
- Consultas de inserción de datos: permitirán añadir filas a una tabla.
- Consultas de modificación de datos: modificar los valores de los campos de una o
varias filas de una tabla, también se podrán eliminar las filas de forma selectiva.
- Consultas de borrado: permiten eliminar filas de una tabla.
- Consultas de creación de tablas: crear nuevas tablas en las que las columnas y filas son
creadas a partir d otras tablas de la base de datos.

Las consultas se hacen en un lenguaje definido para el acceso a la base de datos: SQL
(Standard Query Language) es un estándar, independientemente del sistema gestor de bases
de datos con el que se esté trabajado se podrá realizar las consultas antes indicadas en SQL,
este lenguaje permitirá tanto el acceso a los datos contenidos en la base de datos como la
consulta y modificación de la estructura de tablas, tipos de datos de las columnas, relaciones
entre tablas…)

Algunos sistemas gestores también disponen de una interface visual, en la que se pueden
realizar todas las operaciones anteriores en un entorno de ventanas y menús:

- Formularios: son formatos de pantalla destinados para que le usuario los emplee como
interface para la manipulación de datos, un formulario tiene asociada una tabla de la
que toma información y se puede definir en él, el aspecto con el cual se visualizaran los
datos, operaciones a realizar sobre los datos… (se da al usuario la posibilidad de
trabajar con los datos en un entorno visual.
- Informes: definen la presentación para la edición de los datos recuperados.
- Macros: funciones semejantes a las que ya vimos en los procesadores de texto y hojas
de cálculo.

1.2. FUNCIONES PARA EL ADMINISTRADOR


El administrador de la base de datos es el responsable de realizar su diseño y definir su
estructura. El proceso de definición de tablas implica indicar las columnas y el tipo de datos de
cada una de ellas.

El concepto de “tipo de dato” es una forma de indicar los valores que puede tomar una
columna y las operaciones que se pueden realizar sobre ella, casi todos los tipos de dato
permiten:

- Texto: secuencia de caracteres con una longitud máxima.


- Numérico: números enteros o reales.
- Fecha/Hora.
- Moneda: numérico con formato monetario.
- Lógico o booleano: valores de verdadero o falso.
- Autonumérico: numero que se incrementa en una unidad automáticamente.

Una vez definidas las tablas se procederá a definir las relaciones entre ellas y las restricciones
de integridad derivadas de estas relaciones, se puede indicar como se desea que actual el
gestor ante una violación la integridad:

- Exigir integridad referencial: impedirá que se introduzcan datos que violen la regla de
integridad.
- Actualizar en salto o en caída: si se modifica un atributo referenciado en otra tabla,
también cambia en todas las tablas relacionadas.
- Borrado en salto o en caída: en caso de que se borre una fila de una tabla, elimina
también todas la relacionadas con ella.

Garantizar la seguridad de la información almacenada (robo de información, destrucción de


datos…), una forma de lograr seguridad es la “definición de vistas”: el administrador puede
hacer que cada usuario tenga una vista diferente de la base de datos, contendrá solo la
información que necesite conocer, ocultando tablas o filas de una tabla a determinados
usuarios. “Definición de autorizaciones”: cada usuario tendrá autorización para hacer algún
tipo de consultas sobre la base de datos (lectura, inserción, actualización y borrado de datos).

Responsable de definir la estructura de base de datos y el método de acceso, el DBMS


proporciona las operaciones necesarias para que el administrador decida como se estructuran
físicamente en el disco los datos y tablas, la definición de procedimientos para facilitar un
acceso más rápido de los usuarios a los datos (creación de índices, optimización de
consultas…). El administrador es el único que conoce como se almacena la información
realmente, el resto de usuarios tienen la visión de alto nivel.

Funciones del administrador de DBMS:

- Funciones de gestión:
o Selección de un DBMS: diseño físico e implementación de la base de datos.
o Comunicación con los usuarios: debe aconsejar a los usurarios sobre la forma
apropiada de utilizar el sistema (consultas sobre diseño, instrucción técnica,
localización y resolución de problemas…), debe asegurar que los datos que
necesitan los usuarios están disponibles.
o Hacer de enlace con la gerencia de la organización: informa a la gerencia sobre
posibles deficiencias y mejoras a introducir en el sistema como nuevos
requerimientos.
o Mantenimiento del catalogo o diccionario de datos: contiene información que
describe la estructura de los datos (METADATOS) y almacena información
utilizada por DBMS referente a la estructura interna de usurario, tablas,
restricciones…
- Funciones relacionadas con la seguridad:
o Concesiones de autorización para el acceso a los datos: otorgamiento y
revocación de privilegios.
o Definición de los procedimientos de respaldo y recuperación.
o Definición de auditorías sobre los usuarios.
- Funciones diarias:
o Monitorización de la capacidad: predecir el crecimiento del espacio requerido
en función de los patrones de uso de la misma.
o Monitorización de la actividad y del rendimiento: generar informes periódicos
sobre el uso de recursos y sobre le rendimiento de las aplicaciones.
o Modificación en la base de datos: pueden incluir tanto al esquema conceptual
especifico como a la organización física o los parámetros de configuración de
la base de datos.

2. SEGURIDAD EN LA BASE DE DATOS


Autenticación y autorización de usurarios, el DBMS dispone de un control de usuario y
permisos semejante al de un SO, estas órdenes las puede usar el propietario de los objetos o el
administrador:

Para crear un usuario se utiliza la sentencia CREATE USER, para modificar su cuenta ALTER
USER, para borrarlos DROP USER (con la opción CASCADE se borran todos los objetos que
tenga creados), con GRANT o REVOKE se modifican permisos:

- Permisos sobre objetos: especificar el tipo de permiso y el objeto al que se aplicará.


- Tipos de permisos: SELECT, INSERT, DELETE, UPDATE, ALTER, REFERENCES, INDEX,
EXECUTE, ALL… (el propietario tiene todos los permisos sobre el objeto).
- Tipos de objetos: tablas, vistas, secuencias, procedimientos, funciones, snapshots…
- Permisos del sistema: permisos para crear, modificar, borrar, consultar… (objetos,
tablas, vistas, usuarios, roles…)

Formato:

GRANT {<lista_permisos>|privilegios} [ON <objeto>]


TO <usuarios> [with {GRANT|ADMIN} option]

REVOKE <lista_permisos> [ON <objeto>] FROM <usuario>


2.1 BACKUP Y RECUPERACIÓN
Planear y comprobar los procedimientos de backup del sistema es la única garantía
que existe contra los fallos del sistema, las causas de error de un sistema de Base de datos:
- Físicas: causadas por fallos del hardware, como por ejemplo del disco o de la CPU.
- Diseño: agujeros en el software, ya sea en el SO o en el DBMS.
- Funcionamiento: causadas por la intervención humana, debido a fallos del
administrador, configuraciones inapropiadas o mal planteamiento de los
procedimientos de backup.
- Entorno: desastres naturales, fallos de corriente…

Mecanismos de protección hardware y de redundancia:


- UPS o fuentes de corriente ininterrumpido.
- Espejado de disco (RAID).
- Componentes duplicados.
- Sistemas redundantes.
El administrador debe decidir si arrancar la base de datos en modo “archivelog”
- Ventajas:
o Se puede recuperar la Base de Datos con una copia antigua de los ficheros de
datos y los ficheros de “redo log” archivados.
o Es posible realizar BackUPs en caliente.
- Desventajas:
o Necesitará más espacio en disco.
o El trabajo del administrador se incrementa al tener que determinar el destino
del archivado de los “redo log”.
Los BackUPs se pueden clasificar en físicos y lógicos. Los físicos se realizan cuando se copian los
ficheros que soportan la base de datos:
- BackUP del SO: el mas sencillo de ejecutar, consume mucho tiempo y hace inaccesible
al sistema mientras se lleva a cabo, aprovecha el backup del SO para almacenar
también todos los ficheros de la base de datos, pasos:
o Parar la Base de Datos y el SO.
o Arrancar en modo superusuario.
o Realizar la copia de todos los ficheros del sistema de ficheros.
o Arrancar el sistema en modo normal y luego la Base de Datos.
- BackUP de la BD en frio: implican parar la BD en modo normal y copiar todos los
ficheros sobre los que se asienta.
- BackUP de la BD en caliente: se realiza mientras la BD está abierta y funcionando en
modo “archivelog”, se realiza cuando la carga es pequeña. Consiste en copiar todos los
ficheros correspondientes a un tablespace, los ficheros redo log archivados y los
ficheros de control.
Los BackUP lógicos solo extraen los datos de las tablas utilizando comandos SQL, las utilidades
Export/Import permiten hacer copias de determinados objetos de la BD, restaurarlos o
moverlos de una BD a otra. Una vez que se ha planeado una estrategia de backup y se ha
probado, se automatizarla, responsabilidades del administrador: consiste en tener la BD a
punto, prepararla ante la posibilidad de que se produzca un fallo, recuperar la BD en el menor
tiempo posible, los procesos de recuperación dependen del tipo de error y de las estructuras
afectadas. Diferentes modos de recuperar un fallo en la BD:
- Recuperación de Bloques: mecanismo de recuperación mas simple, cuando un proceso
muere justo cuando está cambiando un bloque, se utilizan los registros redo log en
línea para reconstruir el bloque y escribirlo en disco.
- Recuperación de threads: cuando se descubre que una instancia muere dejando
abierto un thread, se restauran los bloques de datos modificados que estaban en el
caché de la instancia muerta y cerrando el thread que estaba abierto.
- Recuperación física: respuesta a un comando “recover”, convertir los ficheros backup
en actuales, restaurar los cambios que fueron perdidos cuando un fichero de datos fue
puesto offline sin un checkpoint aplicando los ficheros “redo log” archivados en línea.
2.2. FUNCIONES PARA PROGRAMADORES
Necesario realizar consultas a la BD desde programas de aplicación de propósito
especifico, para esto, hace falta que desde programas escritos en lenguaje de alto nivel se
puedan realizar operaciones obre la BD. El proceso consiste en incluir la sentencia de consulta
a la BD (lenguaje SQL) en los lugares adecuados del programa, el DBMS proporciona la
funcionalidad de “precompilador”, antes de proceder a traducción del programa del lenguaje
de alto nivel a código maquina (compilar), sean transformadas las sentenciáis SQL en llamadas
a procedimientos de lenguaje de programación que se utiliza.
Concepto de transacción: colección de operaciones que forman una unidad lógica de trabajo,
es una unidad de la ejecución de un programa que accede y actualiza varios elementos de
datos, está delimitada por instrucciones de inicio transacción y fin transacción (la transacción
consiste en todas las operaciones que se ejecutan entre inicio y fin de transacción).
Una transacción es una unidad en la ejecución de un programa, un conjunto de sentencias de
acceso a la BD, garantiza que se tratan como una unidad. Es necesario garantizar que el
sistema de BD mantenga las siguientes propiedades:
- Atomicity: las operaciones que ejecuta la transacción sobre la BD se realizan todas o
ninguna.
- Consistency: tiene que conservar la consistencia de los datos, es decir, la transacción
no debe llevar a que aparezca información contradictoria.
- Isolation: aunque se ejecuten varias transacciones a la vez sobre la BD, el resultado de
ejecución es el mismo que si se ejecutasen una detrás de otra.
- Durability: las modificaciones que hubiera realizado sobre la base de datos,
permanecerán incluso si hubiera fallos en el sistema.
Estados de una transacción:
- Activa: la transacción comienza.
- Parcialmente comprometida: después de ejecutar la última operación de la
transacción.
- Fallida o Fracasada: transacción no puede seguir con la ejecución normal.
- Abortada: la BD se deja como estaba justo antes de empezar la ejecución, después se
reinicia o elimina.
- Cometida: modificaciones realizadas por la transacción han quedado almacenadas en
almacenamiento estable.
Para comprometer una transacción se utiliza la sentencia COMMIT, se debe garantizar la
propiedad de durabilidad de una transacción, si terminó bien se deben guardar los cambios
efectuados a la BD. COMMIT hace que los cambios sean visibles por otras sesiones y que se
liberen los bloqueos establecidos por la transacción.
Para deshacerla antes de comprometerla y volver al estado del ultimo COMMIT que se hizo, se
utiliza la sentencia ROLLBACK, esta sentencia también libera los bloqueos establecidos.
2.3. CONTROL DE CONCURRENCIA
Una BD puede sufrir múltiples Accesos Simultáneos a los mismos datos: control de
ejecución simultanea de las transacciones para asegurar la consistencia, cuatro niveles de
aislamiento de una transacción con diferentes grados de impacto sobre el proceso de
transacciones, se definen en relación a tres fenómenos:
- Lecturas erróneas (dirtyreads): transacción lee datos que han sido escritos por otra
transacción que aún no ha sido confirmada (con COMMIT).
- Doble lectura (non-repeattablereads): transacción lee datos que ya había leído,
encontrándose que, entre las dos lecturas, los datos han sido modificados o borrados
por una transacción que ya ha sido confirmada.
- Lectura fantasma (phantomread): transacción reejecuta una consulta encontrando que
el conjunto de filas resultantes ha sido ampliado por otra transacción que inserto
nuevas filas y que ya ha realizado su COMMIT.
Control de concurrencia/consistencia (4 niveles de aislamiento SQL):
- ReadUncommited: lecturas no confirmadas, nivel mas bajo de aislamiento, protege de
lecturas de datos físicamente dañados, mayor nivel de concurrencia (nunca hay un
bloqueo), no garantiza la coherencia de los datos.
- ReadCommited: lecturas confirmadas, proporciona un nivel de concurrencia muy
bueno y previene del problema de las lecturas sucias, pero no previene lecturas no
repetibles y datos fantasma. Las lecturas no repetibles implican que varias
instrucciones “select” dentro de la misma transacción devuelve datos diferentes.
- Lecturas repetibles: evita el problema de las lecturas no repetibles, no soluciona el
problema de los datos fantasmas (registros que aparecen y desaparecen dentro de
nuestra transacción).
- Serializable: es el que mas se acomoda a lo que significa la definición de ACID, pero no
permite una alta escalabilidad, queda garantizado es que dos instrucciones “select” en
la misma transacción con nivel serializable van a devolver el mismo conjunto de datos.
Implica bloquear registros que incluso no existen todavía evitando el problema de los
registros fantasma.
- Bloqueos: para garantizar que no haya problemas entre transacciones el scheduler
empela una tabla de bloqueo para bloquear ciertas acciones de manera que es seguro
ejecutar toda transacción, la consistencia de transacciones se basa en:
o Una transacción solo puede leer y escribir un elemento si se solicitó un
bloqueo y este no se ha liberado.
o Si una transacción bloquea un elemento, debe liberarlo posteriormente.
Si un scheduler cumple las condiciones anteriores se dice que es “legal”. Se trabaja con
el llamado bloqueo de dos fases (2PL) cuando en la transacción todos los bloqueos
preceden a desbloqueos. El problema de 2PL es caer en un Deadlock (abrazo mortal):
una transacción B no puede continuar hasta que otra transacción A libere un recurso,
pero a su vez, la transacción A también está esperando a que B libere el recurso. Por lo
general el DBMS detecta aquellas transacciones que caen en un abrazo mortal y lo
soluciona haciendo rollback considerando primero aquellas transacciones en las que
tenga que “deshacer menos”.
Bloqueo compartido: se permite a toras transacciones leer la misma información, pero
no escribir.
Bloqueo exclusivo: evita que otros puedan leer ni escribir.
3. SISTEMAS DE ALMACENAMIENTO Y SU VIRTUALIZACION
Dispositivos de almacenamiento de datos:
- Cabinas de discos: entornos de almacenamiento de discos que incluyen los elementos
de conectividad a los servidores, los controladores (protocolos de acceso, RAID, caché,
mecanismos de copia…) y los discos individuales.
Las cabinas pueden conectarse a los servidores directamente (DAS) y a través de redes
dando acceso a los datos: a nivel de bloque (SAN) o a nivel de fichero (NAS).
Partes más importantes:
o Front-end: se encargan de proporcionar conectividad e implementar las
distintas interfaces de la cabina, es muy importante el numero de puertos que
presentan para cada uno de los protocolos que soportan, así como la
velocidad de los mismos.
o Back-end: componentes que dan acceso a los discos (FC, SAS, SATA…).
El número de discos en cada cabina será variable y se organizan en bandejas, que son
un conjunto de discos con la electrónica necesaria para su conexión directa a la cabina.
Se denomina “grupo de almacenamiento (pool)” a un bloque de almacenamiento
creado a partir de uno o más discos físicos y que nos permiten agregar la capacidad
duna forma flexible, se carga un disco físico a la cabina y se asigna al grupo de
almacenamiento para ampliar su capacidad.
o Controladoras: elementos que proveen la “inteligencia” de las cabinas,
funciones como:
 RAID
 Cache interna (fast cache/flash cache).
 Conexión entre front-ends y back-ends.
 Funcionalidades software avanzadas (cifrado, deduplicacion,
compresión, copias instantáneas…).
Para garantizar la redundancia, las cabinas tienen varias controladoras, la redundancia
puede ser proporcionada mediante varias controladoras activas o mediante una
controladora activa y otra de respaldo. La memoria caché de las controladoras puede
estar dotada de configuraciones en espejo para garantizar la máxima disponibilidad.
- Cintas: tecnología de almacenamiento basada en cintas, está orientada principalmente
a proporcionar gran capacidad de almacenamiento a un coste inferior al de los discos,
a costa de perder rendimiento en la grabación y el acceso a los datos. Presentan un
modo secuencial de acceso a los datos renta frente al modo aleatorio de los discos, la
tecnología de cintas es más lenta que la del disco, distintos modelos de cintas:
o Cintas orientadas a trabajo online: la cinta se utiliza directamente por le
servidor como un dispositivo de almacenamiento convencional.
o Cintas orientadas a backups: la cinta se utiliza solamente para almacenar
backups.
La principal diferencia entre ambos modos es que en las orientadas a backups
funcionan de forma continua, sin necesidad de parar, rearrancar la cinta ni rebobinar
en una misma sesión de escritura.
El uso online impone requisitos mecánicos en las cintas mucho mas restrictivos que en
el caso de las cintas destinadas a backup, es casi exclusivo del entrono mainframe, en
sistemas abiertos las cintas se utilizan principalmente para backup.
Otra diferencia sustancial entre las cintas y los discos es la mayor degradación de las
primeras, debido por una parte a los mecanismos de acceso a los datos, que implican
enrollar y desenrollar la cinta, arrastrarla por los lectores, falta de aislamiento… Y por
otra parte que el medio (la cinta), tienen peores características que los platos de los
discos. Esto lleva a que las cintas tengan un tiempo de vida limitado y deban ser
sustituidas tras un numero de grabaciones.
Existen dos tipos de cintas: las de “grabación longitudinal” con menor capacidad que
las de grabación helicoidal, pero más rápidas y las de grabación helicoidal.
Tecnología de cintas más conocidas:
o Cintas DAT (Digital Audio Tape): surgieron como cintas de grabación de audio
digital, posteriormente pasaron a estándar para grabación de datos. Utilizan
cinta de 4mm y grabación helicoidal. Actualmente se dispone de cintas DAT de
hasta 80GB y velocidades de acceso de hasta 12MBps, las cintas deben
renovarse tras unas 2000 pasadas.
o Cintas de 8mm: inicialmente se trataba de un estándar para grabación de
video, se transformó para grabación de datos, la tecnología es similar a las
cintas DAT, pero con mayor capacidad y mayor velocidad de acceso. Tienen
memoria interna que almacena datos sobre índices en la cinta, estado de la
misma… acelera los tiempos de búsqueda y el mantenimiento.
o Cintas QIC (Quarter-Inch Cartridge): grabación lineal con hasta 4GB de
almacenamiento y 1MBps de velocidad, deben renovarse tras 5000 pasadas.
o Cintas TRAVAN: surgen a partir de las QIC, con capacidad para 20GB y 4 MBps.
o Cintas DLT (Digital Line Tape): grabación lineal, capacidad para 300GB y
36MBps.
o Cintas LTO (Linear Tape-Open): grabación lineal, los cartuchos tienen memoria
interna que almacena información de estado de la cinta que permite a las
unidades detectar un cartucho degradado antes de que se produzca el fallo.
Presenta una duración superior al millón de pasadas, la generación 6 presenta
capacidades de 6GB y 400MBps.
- Librerías de cintas: las unidades de cinta pueden estar agrupadas en librerías, pueden
ser manuales, en las que deben ser operadores los que introduzcan cintas en las
unidades. Están en desuso, siendo sustituidas por librerías automáticas en las que un
brazo mecánico selecciona las cintas y las introduce o saca de las unidades de cinta.
Existen dos tipos de productos de automatización, los cargadores automáticos que
contienen una o dos unidades de cinta y un numero limitado de cartuchos
normalmente no mas de 30, y las librerías automáticas, que disponen de varias
unidades y varios cientos o miles.

3.1. ARQUITECTURA DE ALMACENAMIENTO DE DATOS


Las arquitecturas se diferencian entre ellas en función de las unidades de
almacenamiento utilizadas.
o Acceso a nivel de disco (nivel de bloque):
 Con discos internos, por medio de una cabina dedicada (DAS)
 Mediante una red especifica de almacenamiento (SAN)
o Acceso a nivel de archivo:
 Sistema de ficheros creado y gestionado por el sistema operativo del
servidor (NAS), tendrá asociado un determinado espacio en discos. El
cliente o aplicación hará las peticiones de los mismos al NAS.
- Discos internos: el modo más básico de conectividad, los discos están conectados a un
bus interno del servidor, presenta dos variantes: conectividad basada en el bus SCSI
(más avanzado y caro) para sistemas empresariales y la basada en el bus ATA para
sistemas domésticos. Ambos buses son de tipo paralelo, lo que conlleva limitaciones
que produjeron la aparición de SAS como evolución de SCSI y SATA como evolución de
ATA, ambas modifican las capas bajas de los protocolos pasando a un protocolo serie
en lugar de paralelo.
El almacenamiento interno acarrea una serie de problemas:
o Falta de escalabilidad: una vez consumida la posibilidad de expansión del
servidor no es posible ampliar el almacenamiento a nivel interno.
o Dificultad de una ampliación de capacidad: implica conexiones internas al
servidor.
o Dificultad de protección de los datos: en general el almacenamiento interno
no cuenta con las capacidades de replicación y la redundancia de las cabinas
de discos de almacenamiento externo.
o Infrautilización de la capacidad: el almacenamiento sobrante en un servidor no
puede ser utilizada por otro servidor.
Los datos de aplicaciones con un mínimo de criticidad no deberían ubicarse en los
discos internos del servidor, quedando estos relegado a alojar la instalación del SO y de
la aplicación (actualmente debido al auge de la virtualización de servidores también la
instalación reside en una red separada de almacenamiento en forma de máquina
virtual que puede ubicarse en un servidor y otro de manera rápida).
Direct Attached Storage (DAS): la conectividad más común entre servidores y almacenamiento
está basada en SCSI o en FC, el protocolo SAS sustituye la capa física paralela de SCSI por un
protocolo serie y puede ser utilizado para conectar las cabinas de almacenamiento
directamente a los servidores, el almacenamiento externo es utilizado igual que el interno, sin
que las capas de SO distingan entre ambos, el uso del almacenamiento externo dedicado
resuelve los problemas de escalabilidad y seguridad del almacenamiento interno, ya que las
cabinas de discos son ampliables y tienen una capacidad máxima muy superior, además
presentan características de alta disponibilidad como redundancia de componentes , niveles
de RAID, en espejo o con paridad para recuperarse de fallos de disco, software de copia de
datos en tiempo real que permite replicar datos en tiempo real en otra cabina…
El rendimiento de las cabinas de discos es muy superior al del almacenamiento interno, las
cabinas están diseñadas exclusivamente para ello e incluyen cache interna y controladores
sofisticados para gestionar los discos y las colas de I/O que no están presentes en los
servidores.
El almacenamiento externo dedicado aun presenta algunas deficiencias como la
infrautilización de la capacidad de almacenamiento, al estar conectado directamente a un
servidor no se pude utilizar la capacidad sobrante en otro servidor o la creación de clústeres,
las cabinas pueden permitir la conexión simultanea de varios servidores y la compartición esta
limitada por la conectividad física de la cabina.
Network Attached Storage (NAS): se realiza acceso a ficheros directamente contra el servidor
de ficheros o la cabina de almacenamiento con capacidad NAS donde se gestiona el sistema de
ficheros. El SO del servidor monta un sistema de ficheros externo a través de alguno de los
protocolos destinados a ese fin (NFS, CIFS…) y delega la transformación de fichero a bloque de
bits en la red de almacenamiento. La conexión de red que permite el acceso al sistema de
ficheros puede ser:
- Conexión a través de LAN: solventa el problema del acceso a los datos desde
diferentes orígenes, montan los sistemas de ficheros exportados que son utilizados por
las aplicaciones como si fuesen discos locales. Los sistemas que actúan de servidores
de ficheros pueden ser servidores de propósito general o puede tratarse de
dispositivos especiales, NAS, dedicados en exclusiva a servir fichero y diseñados
especialmente para ello, tiene como principales funciones la implementación de los
protocolos que permiten compartir los ficheros y la gestión de la estructura de
ficheros. El almacenamiento final de los datos se realiza lógicamente mediante
bloques de bits que pueden residir tanto internamente en el servidor de ficheros como
extremamente en una cabina de la red SAN.
- Conexión a través de WAN: donde el ancho de banda es menor y especialmente la
latencia mayor presenta problemas pueden hacer inviable la compartición de fichero a
grades distancias. Para evitar estos problemas esta surgiendo el concepto de WAFS
(Wide Area File Services) basado en la compresión de las tramas de datos de los
protocolos CIFS y NFS, para evitar un excesivo numero de mensajes y el uso de cache
local en las oficinas remotas.
Storage Area Network (SAN): red dedicada al almacenamiento, conectada a las redes de
comunicación de una organización, los equipos con acceso a las SAN tienen una interfaz de red
especifica que se conecta a la SAN. Es una arquitectura de acceso a bloques en la que los
protocolos de acceso son los mismos que en discos o cabinas dedicadas. Los discos no están
conectados internamente al servidor. Al tratarse de un acceso por bloques, el sistema de
ficheros es creado por el servidor, este tipo de almacenamiento no permite el acceso de varios
servidores a los mismos datos a no ser que estos formen parte de un clúster de servidores y se
coordinen para el acceso a los datos.
La unidad de almacenamiento que provee una red SAN se denomina LUN (Logical Unit
Number) y es un disco virtual proporcionado por la SAN, las SAN se componen de tres capas:
- Capa Cliente: servidores, dispositivos o componentes (interfaz de red, de fibra…) y
software (SO).
- Capa Red: los cables (FO) así como los SAN Hubs y los SAN Switches como punto
central de conexión para SAN.
- Capa Disco: agrupaciones de discos (Disk Arrays, Memoria Caché, RAIDs) y cintas
empleados para almacenar datos.
La red de almacenamiento puede ser (según el estándar):
- SAN FC: un conjunto de switches que conmutan las tramas FC.
- Internet SCSI (iSCSI): estándar que permite el uso del protocolo SCSI sobre redes
TCP/IP, permiten el intercambio de tramas SCSI sobre TCP/IP, en lugar de sobare FC. El
objetivo es utilizar la infraestructura LAN existente, a igualdad de ancho de banda para
el transporte, las redes iSCSI son menos eficientes que las redes FC.
- Fiber Channel sobre Ethernet (FCoE): esta diseñado sin capa IP, por lo que no es
posible enrutar directamente paquetes IP.

3.2. VIRTUALIZACIÓN DE SISTEMAS DE ALMACENAMIENTO DE DATOS (VSAN)


Permite unificar el almacenamiento local de todos los serviodres de un clúster y
gestionarlo como si se tratase de un almacenamiento compartido SAN tradicional. Una red de
área de almacenamiento virtual es una colección de puertos de un conjunto de conmutadores
conectado que forma un tejido virtual, en el acceso a bloques, la relación entre el servidor y la
cabina física de almacenamiento de forma que sea posible cambiar la cabina o mover los datos
de una cabina a otra, VSAN se puede implementar de tres formas:
- En el servidor: se debe instalar un software de virtualización que oculta al resto del SO
la cabina física en la que residen los datos. El SO se encarga de acceder a los
dispositivos virtuales que luego la capa inferior se encarga de transformar en los
dispositivos reales. El inconveniente de este tipo de virtualización es que requiere
instalaciones en todos los servidores.
- En red: la propia red SAN, mediante conmutadores inteligentes, proporciona la
virtualización, el servidor accede a los discos utilizando direcciones de cabina virtuales,
es posible cambiar el repositorio físico de los datos sin que los servidores sean
conscientes de ello ya que siguen solicitando los datos a las cabinas virtuales.
- En cabina: una cabina con capacidades avanzadas se encarga de reenviar las peticiones
de los servidores a las cabinas en las que realmente residen los datos. La cabina
virtualizadora como destino de sus peticiones, luego el dispositivo de virtualización
envía los datos a la cabina que corresponda en cada caso.

4. POLITICAS, SISTEMAS Y PROCEDIMIENTOS DE BACKUP RECUPERACION


Conservación de la información: confidencialidad, integridad y disponibilidad de la
información, su finalidad es mantener la información para que sea utilizada en el momento
preciso. Los criterios de conservación de soportes, su custodia y accesibilidad, están incluidos
en los planes de seguridad y contingencia.
Salvaguarda y recuperación de la información: en un sistema de información para ser capaces
de mantener la disponibilidad de los servicios n solo es importante replicar las redes, sistema
de comunicaciones, servidores, estaciones sistemas críticos, sino que además es necesario
mantener la capacidad de acceso a los datos puesto que estos constituyen la esencia de
información. Se construyen los dispositivos y sistemas de almacenamiento con la calidad
suficiente para garantizar un tiempo de fallo mínimo, hace uso de la redundancia en la forma
de replicación de la información. Los métodos de recuperación de datos son aquellos procesos
llevados a cabo con el objetivo de restablecer el acceso a la información que sigue estando
almacenada en los dispositivos pero que no está disponible por alguna causa:
- Métodos de recuperación lógica: cuando todos los componentes del dispositivo
funcionan correctamente y por tanto se puede acceder a todos los sectores donde se
almacena la información.
- Métodos de recuperación física: algún componente físico del dispositivo se encuentra
dañado, se podrá abordar una recuperación física reparando o sustituyendo el
componente dañado y accediendo nuevamente a la información guardada.
Estrategias y políticas de backup: construir una estrategia asegurando que cualquier caída
pueda ser recuperada rápidamente. Indispensable contar con una plataforma de backup
regida por un Plan de Contingencia probado y actualizado, es una copia diseñada para ser
recuperada rápidamente, los procesos de Copias de Resguardo consumen tiempo y recursos
del sistema es necesario programar bien su plazo de ejecución para que no interfiera con el
buen funcionamiento de los sistemas. La ventana de BackUp es el tiempo del cual disponemos
para realizar el proceso de copia, aprovechar los intervalos de tiempo de inactividad de
sistemas y servidores para hacer dicha copia.
- Copias Completas: copia completa de todos los archivos, solo requiere una cinta para
recuperar todos los datos necesarios, la alternativa más rápida a la hora de realizar la
recuperación.
- Copia Incremental: el BackUp empieza por una copia completa de todos los datos, la
siguiente copia se hace solo sobre los archivos que se hayan modificado, al día
siguiente se realiza el mismo proceso y así sucesivamente.
Este sistema se destina para racionar y optimizar los medios de BackUp por encima de
la velocidad de recuperación de los mismos.
- Copia Diferencial: compra cada copia diaria con la última copia completa disponible, la
primera copia Incremental el igual a la primera copia diferencial, pero al segundo día,
el incrementa solo conserva los datos modificados desde la copia anterior, el
diferencial lo hace desde la copia completa. Es mas exigente en cuanto al consumo de
medios, pero es mucho más cómodo a la hora de realizar la recuperación de archivos
ya que como máximo requiere 2 medios, cada día acumula la copia del día anterior, lo
que consume muchos más recursos.
Archive Bit: es una marca que llevan todos los archivos del sistema la cual se habilita si el
archivo ha sido resguardado mediante un programa de BackUp, de este modo analizan dicho
bit y hacen copia Oslo de los archivos que lo tienen desactivado, lo que significa que han
sufrido algún cambio desde el ultimo BackUp.
Estrategias de rotación de soportes:
- Hijo: método mas simple, consiste en contar con un grupo de soportes (cintas) donde
usamos un soporte por día durante una semana, es posible recuperar los archivos que
tengan por lo menos una semana de antigüedad. Cada BackUp diario es completo y las
cintas se van rotando. Es un esquema adecuado para ambientes con problemas a la
hora de acceder a los medio o ambientes con cambios muy dinámicos de sus archivos.
- Padre e Hijo: funciona como el anterior pero además de asegurar datos de la última
semana incorpora 5 medios más para conservar una semana adicional, se realizan
BackUp diferenciales o incrementales de lunes a jueves y se realiza un acopia completa
el viernes que se guarda en una ubicación externa.
- Padre, Hijo y Abuelo: medio más común de BackUp, se mantienen copias diferenciales
e incrementales durante 4 semanas con una copia completa semanal. De las copias
completas semanales la última del mes se conserva como copia completa mensual, y
es reemplazada por la siguiente de un grupo de 12 que nos permiten conservar la
información durante un año.
5. BACKUP DE SISTEMAS FISICOS Y VIRTUALES
BackUp de sistemas físicos: maquinas físicas necesitan de un software especifico mediante el
cual sea posible realizar copia, se puede realizar locamente mediante un sistema de arrays de
discos o remotamente en un entorno NAS o SAN. En un entorno tradicional de múltiples
servidores físicos, las copias de seguridad se realizan instalando un agente en cada servidor y
añadiendo una tarea a la programación de copias de manera que u servidor especifico de
backup se conecta a cada uno de los agentes para iniciar la copia de los datos que sean
necesarios.
BackUp de sistemas virtuales: facilidad para el despliegue en otro servidor de VMs en mucho
menos tiempo:
- Copias completas en caliente: de una VM alojada en un host ESXi en un segundo
servidor de máquinas virtuales sin que las VM alojadas en el primer servidor deje de
estar funcionando, se llama replicación de VMs.
- Snapshots: completos de la VM en frio (apagando la VM).
- Plugins: permiten realizar copias en caliente de VMs completas sin pérdida de
continuidad de negocio.
6. VIRTUALIZACIÓN DE SISTEMAS Y VIRTUALIZACIÓN DE PUESTOS DE USUARIO
Es la combinación de hardware y software, permite a un conjunto de recursos físicos
funcionar como si fueran múltiples recursos lógicos. Consiste en añadir una capa de
abstracción que separa el hardware físico del software que lo usa permitiendo flexibilidad y
una mejor utilización de los recursos de los servidores. Es necesario multiplexar el acceso físico
a los recursos mediante una interfaz que encapsule los detalles de la arquitectura subyacente,
es posible virtualizar servidores, almacenamiento, redes e incluso puestos de trabajo. Las
maquinas virtuales se pueden gestionar, actualizar y manipular fácilmente como si fuese n
ficheros, por lo que proporcionar una maquina virtual es un proceso rápido y simple.
La virtualización consiste en crear una capa de abstracción entre un recurso real y los SO que
van a utilizarlo. El software que se ocupa de implementar dicha capa de abstracción y de
encapsular es el SO anfitrión (host), se encarga de gestionar los accesos al os recursos físicos
por parte de los SO huésped (guests). El SO virtualizado accede a los recursos lógicos como si
fueran recursos físicos. Un sistema anfitrión suele albergar varios sistemas invitados.
Dentro de los recursos existentes se puede lograr la virtualización de:
- Procesador: se logra coordinar el acceso al procesador por parte de las distintas VMs.
- Memoria: debe ser gestionada cuidadosamente para posibilitar que múltiples sistemas
alojados compartan memoria física impidiendo que los sistemas sobrescriban datos de
otros.
- Red: garantiza que las VM enviarán y recibirán el tráfico de red apropiado.
- Almacenamiento: se asegura que cada una de las maquinas virtuales tienen su propio
almacenamiento de datos y que está aislado del resto.
Un caso particular de virtualización es la Java VM, lo que se virtualiza es un proceso, se ejecuta
como proceso en el SO y soporta solo un proceso, cuando se lanza este se ejecuta la VM
automáticamente y se le proporciona al proceso un entorno de ejecución independiente de la
plataforma hardware y del SO, permitiéndole que se ejecute sobre cualquier plataforma.
El uso de un servidor dedicado es extremadamente costoso debido a:
- Coste del hardware: los servidores crecen en capacidad y en potencia de
procesamiento, dedicar un servidor para cada aplicación con objeto de garantizar un
control total sobre las mismas no es rentable.
- Coste del software: cada servidor requiere licencias.
- Coste de energía e infraestructura: la conexión y el suministro de energía para lo
servidores pueden ser extremadamente caros.
- Costes de gestión: los costes de gestión suponen la mayor parte, el personal de TI
tiene que actualizar, mantener cuentas, hacer copias…
Factores que motivan a una organización a llevar a cabo un proceso de consolidación de
servidores mediante virtualización:
- Optimización en el uso de hardware: la mayoría de servidores físicos están trabajando
a un 10% o 15% de su capacidad total de proceso, se desaprovecha casi la totalidad de
su capacidad, aplicando la virtualización las organizaciones pueden mejorar la ratio de
utilización de sus recursos y obtener grandes ahorros energéticos.
- Aislamiento entre máquinas virtuales: las VMs se ejecutan en un entrono seguro,
aislado e independiente del resto de VMs, facilitando la instalación de un único servido
por máquina, algo que a nivel de hardware es bastante costosos.
- Alta disponibilidad: en caso de alguna contingencia tiene un coste mucho mayor que
en el caso de servidores, suele implicar la instalación de tarjetas de memoria y/o
procesador además de la instalación del SO y la instalación del servicio en cuestión, en
el caso de VM se puede tener la maquina duplicada preparada y en caso de
contingencia poder restaurar el servicio en cuestión de minutos perdiendo el servicio
únicamente durante el reincido de la VM.
- Evaluación de nuevos sistemas operativos o actualizaciones: con un entorno virtual se
pueden realizar pruebas de nuevos SO manteniendo independiente la maquina con el
servicio en producción.
- Mejor aprovisionamiento y administración del entorno: es posible realizar copias de
seguridad del sistema al completo permitiendo mover maquinas completas entre lo
servidores físicos, la gestión de la carga de trabajo se simplifica, es posible la toma de
snapshots (imágenes concretas del sistema en el momento que se toma, de forma que
se pueda restaurar al momento del snapshot en caso de error del sistema).
- Mejor eficiencia energética: al reducir el número de equipos físicos se logra una mejor
eficiencia energética.
6.1. VIRTUALIZACIÓN DE SERVIDORES
El objetivo es ofrecer múltiples servidores virtuales mediante un único equipamiento
físico. El software encargado de realizar la abstracción de los recursos físico y de gestionar el
acceso se denomina Hypervisor o VMM (Virtual Machine Monitor), dos tipos:
- Hypervisor nativo (bare-metal): se ejecuta directamente sobre el hardware y permite
crear y administrar los accesos de los SO invitados a los recursos hardware, no se
requiere contar con un SO anfitrión, es el propio Hypervisor el SO (VMWare ESXi,
Hyper-V, Citrix, XenServer…)
- Hypervisor alojado (hosted): sobre el hardware se instala un SO anfitrión (Windows,
Linux…) y sobre este se ejecuta el Hypervisor (VMWare Workstation, Oracle
VirtualBox, QEMU…)
Dentro de la virtualización de servidores destacan las técnicas:
Virtualización completa o de hardware: la técnica mas usada permite ejecutar múltiples SO en
las distintas máquinas virtuales que sean compatibles con la arquitectura hardware
subyacente. EL Hypervisor es el que administra los recursos traduciendo las peticiones de los
sistemas invitados a solicitudes al sistema anfitrión, debe contar con los drivers necesarios
para el acceso a los recursos físicos. La virtualización de los recursos hardware por separado,
creando un driver específico para cada recurso y por otro lado la creación de un micro kernel
sobre el que funciona igualmente tanto el SO como las VMs. Gracias al encapsulamiento e
independencia de la VMs estas son gestionadas como ficheros dentro d la estructura de
ficheros del SO, es posible mover y copiar una máquina virtual de un lugar a otro o guardarla
en un USB hasta una SAN de una empresa.
Virtualización parcial o paravirtualización: Hypervisor ofrece a los SO invitados una interfaz
especial, pueden acceder a los recursos físicos a través de llamadas al sistema denominadas
hypercalls. Es necesario realizar una modificación en el SO invitado, permitiendo al sistema
invitado realizar llamadas a los recursos de manera directa, acelerando el rendimiento de
ejecución (esta modificación solo es posible en sistemas de software abierto como Solaris,
Linux…). A nivel interno, los SO se encuentran estructurados en capas o anillos (rings) donde el
ring 0 es el mas privilegiado y done se ejecuta el núcleo del SO como proceso más importante,
dejando el ring 3, el menos privilegiado, para la ejecución de las aplicaciones. Al virtualizar un
SO, su núcleo no puede ejecutarse en el ring =, por lo que se utiliza una técnica denominada
“ring deprivileging” donde el SO es modificado para poder ejecutarse en el ring 1 dejando el
ring 0 para el Hypervisor. Este tiene que recompilar continuamente el So invitado para obligar
a tosa las instrucciones a ejecutarse fuera del ring 0, lo que ralentiza la ejecución de las VMs.
La alternativa es la emulación del ring 0 completo, pero es una solución muy lenta. Para
solucionar esto, Intel (Intel VT-x Vanderpool) y AMD (AMD-V) proporcionan ayuda por
hardware, requiere la activación en BIOS e incrementa notablemente el rendimiento de la
virtualización completa del hardware. Ejemplos: Xen, UML, OpenVZ…
6.2. VIRTUALIZACIÓN DE SISTEMA OPERATIVO
El SO anfitrión virtualiza el hardware a nivel del SO, permitiendo que varios sistemas
invitados se ejecuten de manera autónoma en el mismo servidor físico accediendo por igual a
todos los recursos del sistema. Los servidores se virtualizan en la capa del SO (kernel) sin
necesidad de un Hypervisor, se crean entornos virtuales (EV) asilados en un único servidor
físico. Existe una capa que se carga directamente en el servidor base, la siguiente capa superior
muestra cada recurso hardware que debe virtualizarse. A continuación, se encuentra la capa
de virtualización (con un sistema de archivos propietario y una capa de abstracción de servidor
de kernel) esta capa hace que cada uno de los contenedores aparezca como servidor
autónomo, estos contenedores utilizan el mismo SO que el sistema anfitrión, mismas librerías,
binarios y drivers, pero disponen de una estructura de directorios propia.
Docker permite la fácil creación de contenedores para la ejecución de aplicaciones, la idea
central es crear un contenedor (un proceso para el SO) con aquellas librerías, archivos y
configuraciones necesarias para la aplicación concreta, sin tener que instalar un SO completo
de forma subyacente, se diferencia de una máquina virtual en que esta necesita contener todo
el SO, mientras que un contenedor aprovecha el SO sobre el que se ejecuta. Las ventajas del
uso de contenedores son:
- Portabilidad: Docker se puede desplegar en cualquier otro sistema que soporte esta
tecnología (que tenga instalado Docker).
- Flexibilidad: arranque de un contenedor supone el mismo tiempo que arrancar un
proceso en el sistema, mientras que arrancar una maquina virtual implica más tiempo.
- Ligereza: al contener únicamente las dependencias necesarias para la ejecución de la
aplicación ocupa mucho menos espacio.
Virtualización de puestos de usuario: aquella que se refiere a la virtualización del escritorio y
aplicaciones de cada usuario. Consiste en separa el escritorio que utiliza un usuario respecto
del equipo que manipula físicamente, el equipo del usuario conectará con un servidor
centralizado de la organización donde se ejecutar su escritorio, se conoce como VDI (Virtual
Desktop Infrastructure). Todas las aplicaciones, procesos y datos del usuario se almacenarán
de forma centralizada en el servidor y el usuario podrá utilizar para ejecutar dicho escritorio
una plataforma hardware y software totalmente distinta de la ejecutada en el servidor central,
pudiendo acceder al escritorio desde cualquier dispositivo y cualquier lugar siempre que
cuente con el cliente adecuado para conectar con el servidor, los componentes principales de
este tipo de virtualización son:
- Servidor de escritorios y aplicaciones: ejecutan los distintos escritorios y/o aplicaciones
de los usuarios, garantizando seguridad y aislamiento, se suele configurar un servidor
de aplicaciones adicional que se ocupara de la ejecución de las distintas aplicaciones
ofrecidas a los usuarios. En ambos casos se basan en sistemas operativos
multiusuarios.
- Equipo de acceso del usuario: conecta con el servidor de escritorios y comunica
cualquier cambio de pantalla que realice el usuario.
- Red de comunicaciones: garantiza la comunicación correcta entre los equipos de
acceso del usuario y los servidores del escritorio.
- Protocolos de comunicación: según el tipo de escritorio a utilizar, protocolo “RDP”
(Windows), protocolo “X Windows” (Linux), protocolos ICA, NX, VNC…
En función de la complejidad de la infraestructura puede haber un servidor que actúe
de “bróker” siendo el intermediario entre el usuario y el servidor de escritorio,
ejemplos: VMWare Horizon, XEN Desktop, Quindel…
Modos de operación (dependiendo de donde se lleve a cabo la ejecución del escritorio):
o Modo centralizado: todos los escritorios se ejecutan en un servidor
centralizado, dos tipos:
 Persistentes o estáticos: asignado directamente a un usuario y que
mantiene su configuración una vez cierra la sesión.
 No persistentes o dinámicos: una imagen maestra para todos los
usuarios a la que se realiza un clon y se le asigna al usuario en el
momento de iniciar sesión.
o Modo alojado: proveedor externo es el que ofrece el servicio de escritorio
virtualizado con el requisito d contar con una conexión de red entre le equipo
de usuario y el servidor alojado.
o Modo remoto: trabajar sin conexión de red al servidor de escritorios, se basa
en realizar una copia del escritorio al equipo de usuario y este lo ejecuta sin
necesidad de conexión a la red (principal inconveniente es la seguridad, una
perdida del equipo del usuario implica una pérdida de los datos almacenados).
Ventajas:
o Reducción de costes.
o Mayor seguridad (centralizar los escritorios y los dato sen un entrono
centralizado posibilita la realización de copias de seguridad de forma más
sencilla).
o Reducción de costes de equipamiento.
o Menor coste en despliegue masivo de aplicaciones (una instalación única en el
servidor de escritorios y/o aplicaciones).
o Aprovisionamiento de nuevos escritorios.
o Menor sobrecarga de red.
o Conexión desde cualquier lugar.
Desventajas:
o Dependencia global de la infraestructura a la disponibilidad de la red de
comunicaciones y de los servidores.
o Peor soporte para algunas impresoras y periféricos.
o Requiere formación para los administradores.

También podría gustarte