jueves, 2 de junio de 2016

Tema 7 de teoría: Almacenamiento de datos (SWAP2016)

Un subsistema clave en una granja web de altas prestaciones es el de almacenamiento de datos.

Conviene diseñarlo con mucho cuidado para asegurarnos la escalabilidad del sistema. Como vimos en un tema anterior, se pueden mejorar las prestaciones de un sistema (de almacenamiento también) usando:
  • ampliación vertical (adquirir un mejor hardware más rápido y actualizado).
  • ampliación horizontal (replicar el almacenamiento entre varios servidores), que resulta más efectivo en cuanto a la escalabilidad.

Puesto que el almacenamiento de los datos se llevará a cabo en BD, es crucial diseñar la arquitectura de BD teniendo en cuenta los siguientes puntos:
  • El número de sesiones concurrentes en la BD puede afectar al rendimiento de la granja web completa (conexiones costosas).
  • Una gran cantidad de accesos a la BD por cada petición HTTP puede sobrecargar la conexión de red entre los servidores web y de BD.
  • Las búsquedas que devuelvan resultados muy grandes afectarán al rendimiento de CPU, almacenamiento y red.
  • El tamaño total de la BD determinará el espacio para almacenamiento, y el tiempo necesario para hacer copias de seguridad y restaurarlas.
  • Conviene utilizar hardware redundante para los servidores.
  • Una BD se podrá escalar en el futuro si desde el principio se instaló hardware con capacidad de ampliación (CPU, memoria, etc) y se configuró el software de forma adecuada. En ese sentido, se recomienda una arquitectura de BD basada en un cluster.

Hacia el final de este tema hemos repasado la configuración de discos en RAID, una configuración muy adecuada para disponer de almacenamiento robusto, de alta capacidad y altas prestaciones.

RAID significa "conjunto redundante de discos independientes" y es un sistema que usa varios discos duros para distribuir o replicar los datos, ofreciendo mayor integridad, mayor tolerancia a fallos, mayor rendimiento y mayor capacidad. Esta tecnología permite combinar varios dispositivos para formar un conjunto con mayor capacidad, fiabilidad y velocidad que un solo dispositivo de última generación más caro. Existen RAID por hardware y por software. El primero es mucho más rápido, pero el último es mucho más flexible.

Hay diversos métodos de almacenamiento, llamados niveles, con diferente complejidad:
  • RAID 0: Conjunto dividido
  • RAID 1: Conjunto en espejo
  • RAID 5: Conjunto dividido con paridad distribuida
  • RAID 10 o RAID 1+0: División de espejos

Finalmente, en el tema hemos visto tres tipos de sistemas de almacenamiento especializado: SSA, NAS, SAN.

Arrays de almacenamiento compartido: SSA
  • Dispositivos con unas especificaciones y herramientas propietarias de cierta empresa.
  • Posee una interfaz para conectar los discos a las controladoras (normalmente SCSI).
  • Número limitado de puertos para hacer la conexión entre servidores y almacenamiento.
  • Se suele usar para disponer del almacenamiento necesario para archivos y BD en clusters.
Área de almacenamiento en red: SAN
  • Conjunto de dispositivos interconectados (discos, cintas, etc.) y servidores conectados a un canal de comunicación e intercambio de datos común (concentrador de alta velocidad).
  • Algunos de los dispositivos pueden ser SSA y NAS.
Almacenamiento conectado a la red: NAS
  • Conjunto de discos organizados en un dispositivo de red con IP y que puede conectarse a una red Ethernet.
  • Utilizando algún protocolo, como Internetwork Packet Exchange (de Microsoft), NetBEUI (de Microsoft), Network File System (NFS, de Sun) o IPE (de Novell).
  • Aparece como otro servidor más en la red.

Nota:
En la siguiente entrada del blog se ofrecen diversos tutoriales para aprender a configurar dispositivos RAID bajo Linux, Windows y OS-X:
 http://swap-ugr.blogspot.com.es/2015/05/tema-7-de-teoria-almacenamiento-de-datos.html

No hay comentarios:

Publicar un comentario