Almacenamiento en Ordenadores de Escritorio

  • Característica básica: Simplicidad. El sistema de almacenamiento está habitualmente formado por un disco duro y una unidad óptica.

Almacenamiento en Servidores

Requisitos Habituales

  • Alta capacidad de almacenamiento.
  • Altas prestaciones: Bajo tiempo de acceso y elevada tasa de transferencia.
  • Tolerancia a fallos y elevada disponibilidad.

Diseño para el Cumplimiento de Requisitos

  • Basado en múltiples discos, habitualmente gestionados mediante controladoras RAID.

Interconexión de Dispositivos: Buses Serie

Concepto de Puerto

  • Punto de conexión proporcionado por un controlador de bus para conectar un enlace serie.

Modelos de Conexión

  • Punto a punto: Un puerto, un dispositivo.
  • Mediante concentrador: Múltiples dispositivos se conectan a un puerto mediante un concentrador.

Controladores Multipuerto

  • Su función es proporcionar un mecanismo de conexión al computador para múltiples dispositivos de almacenamiento, utilizando conexiones punto a punto.

NVMe: Aspectos Generales

  • Significado: Non-Volatile Memory Express.
  • Concepto: Es una especificación de interfaz de dispositivo lógico para el acceso a dispositivos de memoria no volátil a través del bus PCIe.
  • Productos derivados: Controladores de dispositivo (drivers).

Rediseño del Modelo de Controlador (Driver)

  • Objetivo: Explotar al máximo las características de los dispositivos de memoria no volátil.
  • Permite: Diseñarse específicamente para memoria no volátil, sin necesidad de gestionar discos HDD.

Sistemas Operativos con Soporte Nativo NVMe

  • Todos los Windows modernos (Windows 10 y versiones de servidor desde 2012 R2).
  • Todas las distribuciones Linux con kernel 3.3 o superior.

Diferencias Clave: NVMe vs. SAS/SATA

  • SAS y SATA: Especifican buses físicos (basados en enlaces serie) e incluyen una interfaz de dispositivo lógico.
  • NVMe: Especifica únicamente una interfaz de dispositivo lógico, ya que el bus físico utilizado es PCIe.

Ámbito de Uso de NVMe

  • Todo tipo de sistemas: ordenadores de escritorio, estaciones de trabajo, portátiles y servidores.

Mejoras de NVMe frente a SAS y SATA

Manejo de Múltiples Colas de Comandos de E/S

  • Cola de comandos en SATA: 1, profundidad de 32.
  • Cola de comandos en SAS: 1, profundidad de 256.
  • Cola de comandos en NVMe: Hasta 64K, profundidad de 64K.
  • Beneficio: Permite paralelismo en el acceso al dispositivo de almacenamiento.

Racionalización y Simplificación del Código de E/S

  • Utiliza menos de la mitad de instrucciones.
  • Beneficio:
    • Reduce el tiempo de ejecución de las rutinas de acceso a los dispositivos en el SO.
    • Disminuye la latencia y mejora la productividad.

Factores de Forma y Conexión NVMe (PCIe)

Nota sobre PCIe

  • Las interfaces PCIe gestionan enlaces serie (lanes), que pueden ser x1, x2, x4, x8, x16 y x32.

Tipos de Conexión NVMe

  • Tarjeta de expansión PCIe estándar: x4 o x8.
  • Tarjeta M.2: x2 o x4.
  • Dispositivo 2,5” SFF: x4 (conector U.2 para backplane).

Conector U.2 para Backplane

  • Diseñado para la conexión en caliente de dispositivos NVMe.
  • Conexión PCIe x4.
  • Compatible con dispositivos SAS y SATA.

Discos Duros (HDD): Estructura y Características

Organización

  • En superficies, pistas y sectores.

Características

  • Capacidad: Se expresa en GB o TB.
  • Consumo energético: Medido en vatios.
  • Factor de forma:
    • LFF (Large Form Factor): 3,5”.
    • SFF (Small Form Factor): 2,5”.
  • Velocidad de rotación: 5400, 7200, 10000 y 15000 RPM.
  • Caché: Memoria para mejorar el rendimiento.
  • Interfaz: SATA o SAS.
  • Fiabilidad: Medida mediante AFR (Annualized Failure Rate), con valores típicos del 0,5% en discos empresariales.

Dispositivos de Estado Sólido (SSD)

  • Significado: Solid State Drive.
  • Concepto: Dispositivo de almacenamiento basado en memoria flash, conectado al sistema mediante interfaz SATA, SAS o PCIe.

Componentes del Sistema de Interconexión

Bus de Sistema

  • Su objetivo es conectar la CPU y la memoria RAM del ordenador. Se trata de un bus especialmente optimizado para proporcionar un elevado ancho de banda de comunicación entre estos dispositivos.

Subsistema de Concentradores (Chipset)

  • Su objetivo es establecer una vía de comunicación entre los dispositivos conectados al bus de sistema (CPU y memoria) y el resto de dispositivos del computador.

Bus de Placa Base

  • Su objetivo es proporcionar un mecanismo de integración de interfaces en el computador mediante el uso de ranuras de expansión. Los controladores de buses de E/S pueden conectarse a este bus.

Controladores de Bus

  • Su función es gestionar buses de E/S. Para ello, administran el direccionamiento de los dispositivos en el bus y proporcionan un puente de comunicación entre el bus y otros dispositivos del sistema de interconexiones del computador.

Buses de E/S

  • Su objetivo es proporcionar un mecanismo de conexión de periféricos al computador.

Estandarización de Buses

Beneficios de la Estandarización

  • Posibilita la integración entre periféricos y ordenadores de múltiples fabricantes.

Definición y Mantenimiento de Estándares

  • Los estándares son gestionados por consorcios de fabricantes del sector o por comités pertenecientes a institutos de estandarización, como el INCITS.

Aspectos Definidos por un Estándar de Bus

  • Características físicas: Define aspectos tales como formato de cables y conectores, especificaciones eléctricas, frecuencia de trabajo, etc.
  • Arquitectura lógica: Define, fundamentalmente, las líneas que forman el bus, así como su funcionalidad.
  • Interfaz de programación: Define el conjunto de comandos disponibles para el manejo del bus.

Buses de E/S Estándares

Buses de E/S de Propósito General

USB (Universal Serial Bus)

  • Objetivo: Proporcionar un mecanismo simple para la conexión de periféricos externos a un ordenador.
  • Características destacadas:
    • Plug & Play.
    • Capacidad de alimentar a los dispositivos conectados.

Buses Orientados al Almacenamiento

  • ATA (Advanced Technology Attachment)
  • SCSI (Small Computer System Interface)
  • SATA (Serial ATA)
  • SAS (Serial Attached SCSI)

ATA: Aspectos Generales

Arquitectura

  • Bus paralelo: Ancho de 16 bits.
  • Capacidad de direccionamiento: Dos dispositivos de almacenamiento por controlador.

Ámbito de Uso

  • Ordenadores personales.

Evoluciones del Estándar

  • 7 evoluciones, desde el ATA-1 hasta el ATA-7.

Prestaciones

  • Hasta 133 MB/s en el ATA-7.

SCSI: Aspectos Generales

Arquitectura

  • Bus paralelo: Diseñado con dos tipos de ancho: 8 o 16 bits.
  • Capacidad de direccionamiento: 8 dispositivos en los de ancho 8, y 16 dispositivos en los de ancho 16.

Ámbito de Uso

  • Servidores y sistemas de almacenamiento externos (por ejemplo, las unidades de cinta).

Evoluciones

  • 9 evoluciones, desde el SCSI-1 hasta el Ultra-320 SCSI.

Prestaciones

  • Hasta 320 MB/s en el Ultra-320 SCSI.

La Transición al Bus Serie

Prestaciones y Ancho de Banda

Factores Determinantes

  • Ancho: Tamaño de los datos transmitidos.
  • Frecuencia de trabajo.

Comparativa: Bus Paralelo vs. Bus Serie

  • Ancho: Bus paralelo ventajoso.
  • Frecuencia: Bus paralelo desventajoso.
    • Existen problemas de diseño electrónico en los buses paralelos que limitan su frecuencia de trabajo, agravándose dicha limitación a medida que aumenta la longitud del bus.
    • La longitud requerida para un bus de E/S es significativa.
  • Resultado combinado (ancho + frecuencia): Bus serie ventajoso.

Espacio Ocupado (Footprint)

  • Los cables serie son más estrechos y ocupan menos espacio. Además, al contar con menos conductores, sus conectores tienen menos pines, lo que los hace más pequeños.
  • Espacio ocupado: Bus serie ventajoso.

SATA: Aspectos Generales

Nomenclatura

  • SATA significa Serial ATA.

Compatibilidad con Estándar ATA

  • Interfaz de programación: 100% compatible.
  • Nivel físico: No compatible (cables y conectores).

Arquitectura

  • Canal de comunicación: Serie bidireccional (2 canales de transmisión).
  • Controlador de bus: Habitualmente multipuerto.

Capacidad de Direccionamiento

  • Cada puerto puede direccionar hasta 15 dispositivos, utilizando un concentrador.
  • Habitualmente, un puerto se conectará a un único dispositivo mediante una conexión punto a punto.

Ámbito de Uso

  • Ordenadores personales.
  • Servidores de gama baja.
  • Conexión de dispositivos ópticos en todo tipo de equipos.

SATA: Estándar y Prestaciones

  • Evolución del estándar y sus prestaciones.
  • Comparación de prestaciones ATA/SATA.

SATA: Implementación Física

Controlador

  • Se implementa de forma estándar en la placa base, formando parte del chipset.

Enlace Serie

  • Se implementa mediante un cable de 7 conductores: 4 para los dos canales de transmisión + 3 masas.

Cable SATA

  • Ocupa mucho menos espacio que el cable ATA.

SAS: Aspectos Generales

  • Significado: Serial Attached SCSI.

Compatibilidad con Estándar SCSI

  • Interfaz de programación: 100% compatible.
  • Nivel físico: No compatible (cables y conectores).

Ámbito de Uso

  • Servidores de gama media y alta.
  • Cabinas de almacenamiento.

SAS: Arquitectura

Canal de Comunicación

  • Serie bidireccional, idéntico al canal SATA.

Concepto Ampliado de Puerto

  • En SAS, los canales serie pueden operar de forma independiente o en agregación. Un puerto es un punto de conexión para un canal o para una agregación de canales.

Puerto Estrecho (Narrow Port)

  • Incluye un solo canal.

Puerto Ancho (Wide Port)

  • Incluye 2, 4 u 8 canales.

Interconexión de Dispositivos SAS

  • Punto a punto.
  • A través de concentradores.
  • Los concentradores SAS se denominan “expanders“.
  • Se pueden interconectar hasta dos niveles de expanders.

Direccionamiento de Dispositivos

Dominio SAS

  • Conjunto de dispositivos gestionados por un puerto, ya sea directamente o mediante concentradores.

Roles de Dispositivo en un Dominio

  • Initiator (habitualmente, el puerto de un controlador).
  • Target (habitualmente, un dispositivo de almacenamiento).

Capacidad de Direccionamiento

  • Hasta 8 dispositivos sin el uso de concentradores (puerto x8).
  • Hasta 128 dispositivos en un único concentrador.
  • Hasta 128 × 128 dispositivos utilizando dos niveles de concentradores.

SAS: Ejemplos de Topología de Interconexión

Topología Típica en Servidores

  • Dos dominios SAS con 5 dispositivos cada uno (1 initiator y 4 targets).

Topología en Servidores de Alta Capacidad

  • Dos dominios SAS con 13 dispositivos cada uno (1 initiator y 12 targets).

SAS: Implementación Física

Controlador

  • Se implementa tanto en placa base como mediante HBA.

Enlace Serie

  • Se implementa mediante un cable de 7 conductores: 4 para los dos canales de transmisión + 3 masas.
  • La implementación del enlace SAS es idéntica a la del enlace SATA.

SAS Backplane

Concepto

  • Placa de circuito impreso que proporciona un conjunto de conectores SAS.

Objetivo

  • Proporcionar una infraestructura de conexión para dispositivos de almacenamiento con capacidad de conexión en caliente.

Uso

  • En la mayoría de los servidores de gama media y alta, los dispositivos de almacenamiento SAS se conectan mediante un SAS backplane.

SAS: Discos con Doble Puerto

Concepto

  • Discos que incluyen dos puertos SAS de conexión.

Objetivos

  • Permitir la implementación de topologías de conexión redundante para discos (aplicable tanto a HDD como a SSD).
  • Duplicar la tasa de transferencia de datos entre el controlador y el disco (aplicable solo a SSD).

SAS: Compatibilidad con SATA

  • El bus SAS admite dispositivos SATA.
  • Implicaciones a nivel de controlador: Los controladores SAS implementan el protocolo SATA, además del SAS.
  • Implicaciones a nivel de conectores: Los conectores SAS deben ser compatibles con dispositivos SATA.

RAID: Redundant Array of Independent Disks

  • Definición: Funcionalidad integrada en algunos controladores de bus que permite gestionar los discos físicos en agrupaciones colaborativas, presentándolos al SO como si fueran un único disco, denominado disco virtual.

RAID: Aspectos Generales

Objetivos

  • Incremento de prestaciones: Se logra mediante fragmentación de datos (data striping). Los datos se dividen entre varias unidades físicas, permitiendo el paralelismo en el acceso a la información y mejorando el rendimiento.
  • Tolerancia a fallos: Se consigue mediante redundancia en el almacenamiento de la información. Esto permite que el sistema siga funcionando incluso si uno de los discos físicos del RAID falla.

Niveles RAID

  • Representan distintas formas de distribuir la información entre los discos del RAID.
  • Los más comunes son RAID 0, 1, 5, 6, 10.

Concepto de Banda o Bloque (Strip) en RAID

Definición

  • Unidad de fragmentación de la información dentro de un sistema RAID.

Tamaño

  • Mínimo: 2 KB.
  • Máximo: 2 MB.
  • Típico: ~64 KB.

Aplicación

  • La fragmentación ocurre a nivel de fichero.

RAID 0: Fragmentación (Striping)

Funcionamiento

  • Los bloques de datos se almacenan en los discos de manera secuencial.
  • Redundancia: No.
  • Eficiencia en almacenamiento: 100%.
  • Prestaciones:
    • Lectura: N × P (N = número de discos, P = rendimiento de un disco).
    • Escritura: N × P.

RAID 1: Espejo (Mirroring)

Funcionamiento

  • Los datos se copian íntegramente en todos los discos del RAID.
  • Se configura con dos discos.
  • Redundancia: Sí.
  • Eficiencia en almacenamiento: 50% (½).
  • Prestaciones:
    • Lectura: 2 × P.
    • Escritura: P.

RAID 5: Paridad (Parity)

Funcionamiento

  • En un RAID de N discos, por cada (N-1) bloques de datos, se genera un bloque de paridad.
  • La paridad se calcula mediante la operación XOR entre los bloques de datos.
  • Los datos se distribuyen secuencialmente entre los discos.
  • Los bloques de paridad se intercalan entre los datos para estar uniformemente distribuidos.
  • Si un disco falla, los bloques de datos perdidos se pueden reconstruir a partir de los datos restantes y el bloque de paridad.
  • Redundancia: Sí.
  • Eficiencia en almacenamiento: (N-1)/N.
  • Prestaciones:
    • Lectura: (N-1) × P.
    • Escritura: ((N-1) × P) / 2.

RAID 6: Paridad Doble (Double Parity)

Funcionamiento

  • En un RAID de N discos, por cada (N-2) bloques de datos, se generan dos bloques de paridad.
  • Se utiliza la operación XOR para calcular la paridad.
  • Los bloques de datos se distribuyen en los discos de manera secuencial.
  • Los bloques de paridad se intercalan entre los bloques de datos.
  • Tolerancia a fallos: Puede soportar hasta la pérdida de dos discos sin pérdida de datos.
  • Redundancia: Sí.
  • Eficiencia en almacenamiento: (N-2) / N.
  • Prestaciones:
    • Lectura: (N-2) × P.
    • Escritura: ((N-2) × P) / 2.

RAID 10: Espejo + Fragmentación (Mirroring + Striping)

Funcionamiento

  • Se agrupan los discos en pares que funcionan en espejo (mirroring).
  • Los bloques se distribuyen secuencialmente entre los pares de discos.
  • Redundancia: Sí.
  • Eficiencia en almacenamiento: 50% (½).
  • Prestaciones:
    • Lectura: N × P.
    • Escritura: (N/2) × P.

Caché de Escritura en RAID

Algoritmo de Escritura

  • Write-back.

Funcionamiento

  • Todas las escrituras se almacenan primero en caché.
  • Los datos se transfieren a los discos en el momento óptimo, maximizando el rendimiento del sistema de almacenamiento.

Protección ante Cortes de Energía

  • La caché es alimentada por condensadores que mantienen los datos en la memoria el tiempo suficiente para escribirlos en memoria flash.
  • Cuando el sistema se reinicia tras una interrupción, los datos de la memoria flash se transfieren a los discos.

Tecnología Utilizada

  • Flash-backed write cache (FBWC).

Conveniencia de la Caché según Tipo de Dispositivos RAID

RAID con HDD

  • La caché es esencial para obtener un rendimiento aceptable, especialmente si la carga de trabajo tiene un alto porcentaje de escrituras.

RAID con SSD

  • La caché no es necesaria.