jueves, 21 de abril de 2016

Storage a nivel enterprise (empresa, pero asín queda más como de entendío)

Pues vamos a seguir escribiendo algo sobre el tema de la informática y la madre que la parió.

Ya hablé en otras entradas de diversos cosillas que pasaban a la hora de ir montando lo sistemas en plan serio, sobre todo cómo se iba el dinero. Pues voy a intentar justificar una parte: el almacenamiento.

No, no vamos a hablar de este tipo de almacenamiento.
 Supongo que a nadie se le escapa que el precio del almacenamiento (precio por GB, no por disco) baja de manera más o menos constante. Vale que de tanto en tanto hay escasez de discos bien por cambios de tecnología o bien por circunstancias externas como huracanes, incendios, terremotos que destruyen una fábrica, .... desde que yo tengo uso de razón en el tema informático (unos 30 años) el precio del almacenamiento ha bajado de continuo. Los primeros discos de los que yo tengo constancia tenía una capacidad de 10 MB (lo que ocupa ahora una foto en calidad decente) y un coste de en torno a un millón de pesetas, lo que son unos 6.000 € al cambio, claro que con ese millón de pesetas por aquel entonces se compraba un coche de gama media tirando a alta (bueno, tampoco había mucho donde elegir) Mi primer HD costó unas 60.000 pesetas (360 €) y tenía 30 MB (era el más barato con diferencia de lo que había en el mercado, lo normal eran 20 MB por unas 100.000 lo que entonces era un sueldo mensual  "majo") Claro que así iba el jodío, más lento que un caracol, pero era mucho más rápido que el disquete y tenía una capacidad brutal .... Con el tiempo la cosa fue bajando, allá por los años 96-97 se rompió la barrera del GB a un precio razonable aunque con discos de pocas prestaciones (P-ATA) nada de los carísimos SCSI profesionales. No hace mucho (Q2-2016 para los pocos que lean esto en épocas futuras) como se me fastidió un HD me compré un SSHD (un HD con una caché SSD) y buscando en Amazon veo que 1 de TB cuesta unos 95 € ... y el de 2 TB 10 € más. Como referencia, en mi trabajo hace 16 años se compró una sistema de almacenamiento de HP de una capacidad similar (un poco menos en realidad) por unos cien millones de pesetas (600.000 € al cambio, pero sin descontar la inflación)
Disco SCSI caro en su época.

El tema al que quiero llegar es que mientras que el storage bruto es relativamente barato (unos 50 € el TB en un SSHD a día de hoy cosa que no tiene que coincidir con el día en que leas esto) el storage a nivel enterprise sale pelín más caro .... como 10 veces más el TB yéndonos a discos lentos grandes   y baratos como los SATA de 4 TB (ahora mismo el tope en HD mecánico anda por los 10TB cosa que no tiene por qué ser así cuando leas esto) te puede salir a 500 € el TB, si te vas a discos de altas prestaciones como los HD de 10K rpm (los 15K van de capa caída) te pueden costar v vez y media esa cantidad y los SSD (lo que se viene a llamar All-Flash cuando todo es "drive" basado en silicio; no digas "disco" sólido que queda muy mal)  viene a costar como 2.000 € el TB efectivo ¿qué narices está pasando aquí? Pues voy a ver si lo explico.

Cuando compras storage para el PC de tu casa o de tu empresa pues estás comprando eso, almacenamiento bruto, pero cuando te pasas al nivel enterprise (cabinas de HP, Netapp, IBM, EMC) la cosa cambia porque en realidad está comprando almacenamiento y un un valor añadido qu emás te vale conocer y utilizar porque si no está tirando el dinero. Las características a mayores de un almacenamiento enterprise son las siguientes (a ver si no me olvido de ninguna)

Fiabilidad.

Los datos son sumamente importantes (si no estás de acuerdo no sé que haces aquí, dedícate a otra cosa) Lo primero que busca alguien que compra un almacenamiento de este tipo es no perder ningún dato. Los discos pueden fallar (te voy a contar un secreto: es verdad, fallan y no sólo eso, suelen tener la manía de fallar en el momento menos oportuno) Para protegerte de fallos contra el HW se ha desarrollado el RAID (Redundant Array of Inexpensive Disk o Independent Disk, según les de) y discos de repuesto conectables en caliente (mejor usar las dos cosas a la vez) El RAID añade información de redundancia repartida entre los discos de manera que ante el fallo de un disco o de dos como en el caso del RAID 6 el sistema sigue funcionando "generando" la información on-line a partir de la información restante y los CRC. Si esto lo combinamos con discos de repuesto conectados (Hot-Spare) el sistema se autorepara mientras haya discos de recambio sin intervención externa. Durante un tiempo funciona con prestaciones menores porque aparte de la carga normal debe reconstruir todo el disco antiguo pero por lo general iba bien .... El problema que existe hoy en día es que los discos son muy grandes: 4, 6, 8, 10 TB ..... y la reconstrucción de un disco de estos puede llevar 24 o 48 horas fácilmente dependiendo de la carga del sistema y en ese momento lo tienes expuesto a un nuevo fallo. Por eso es bueno usar un RAID 6 en lugar de un RAID 5. Existen otros tipos de RAID como el 0 (este no da fiabilidad) el 1 (duplicación de los datos) el 0+1 (combinación de los dos anteriores) 50, .... etc

Ejemplo de sistema poco fiable

Esta protección tiene un precio que ya se encarga el fabricante de cobrarte bien. Necesitas un HW que sea capaz de gestionar todo esto (las famosas controladoras RAID) y el precio del TB útil aumenta: por una parte, los HotSpares es espacio que no puedes usar (no es desperdiciado ya que lo ganas en seguridad) y según que configuración pierdes entre un 20 y un 50% del espacio total lo que significa que si tienes un array de 6 discos de 4 TB en una configuración RAID 5 + HotSpare sólo podrás utilizar 16 TB en lugar de los 24 teóricos.

Esta capacidad la suelen tener todas las cabinas, desde los baratos sistemas NAS doméstico (dos HD en RAID 1) al monstruo más grande de EMC.

Otro componente que puede fallar es la controladora. Esto es un ordenador más o menos potente que se encarga de de gestionar los discos y servir la información por los diversos protocolos que tenga el equipo (bloque, carácter, ...) Esto es el máximo elemento diferenciador. Puede contener aceleradores SSD, cachés de memoria, redundancia, ... Lo habitual es que esté duplicado aunque en equipos baratos sólo hay uno. Lo normal es definir doble camino para acceder a los datos y a los equipos que cogen la información para que en caso de fallo de una de las controladoras las otra siga funcionando. Si encima queremos que no haya pérdida de prestaciones, necesitaremos unas controladoras mejores y por ende más caras. Este componente, según lo elijamos suele ser caro de narices aunque lo bueno que tiene es que se comparte para todo el almacenamiento con lo que a mayor capacidad, menor es su repercusión en el coste por TB.

Virguerías varias.

Pues lo cierto es que no vamos a gastarnos un pasturrial sólo para tener fiabilidad en el almacenamiento, sino que hay que sacarle partido, hay que sacarle un valor añadido y es conveniente conocer estas características porque las estás pagando y merecen la pena ... y mucho.

Rendimiento

Los discos mecánicos tienen un rendimiento máximo que se suele medir en IOPS que son operaciones de entrada salida por segundo. Estos equipos suelen ser usados por otros muchos equipos y usuarios de manera concurrente de manera que este dato es fundamental. Un disco SATA normalito suele dar unas 80-100 IOPS con suerte y un disco SAS anda como mucho por las 200 IOPS (los SSD juegan en otra liga ... añadiendo al menos dos ceros a esas cifras) Imaginemos una serie de usuarios pidiendo operaciones a un disco que sólo se pudieran procesar 80 por segundo (el arrancar un Windows precisa unos cuantos cientos de ficheros que son IOPS)  Encima los discos cada día son más grandes con los que la posibilidad de que vaya al mismo disco es alta ... ¿cómo se soluciona? Pues en lugar de hacer el equivalente a particiones en un disco (se llaman LUN) esa partición o LUN como la voy a llamar a partir de ahora se reparte entre todos los discos disponibles con lo que el número de iops ya no es 100 sino por ejemplo 1.000 usando 10 discos (aquí lo bueno es que hasta los CRC aporta) de esta forma se reparte la carga entre todos los discos y se consiguen prestaciones muy elevadas. Si aquí añadimos memoria caché en las controladoras y discos flash nos podemos ir a unas cuantas decenas de miles de IOPS que puede dar una de de estas cabinas. Aquí alguien dirá que los SSD dan eso y más y tendrán razón, pero eso es otra historia y otros problemas.

Multitier

A nadie se le habrá escapado el pequeño detalle de que los discos SATA son grandes y baratos, aunque lentos. Luego están los discos SAS de 10K y 15K rpm que son mucho más caros y rápidos, aparte de más pequeños (no es complicado encontrar SATAs de 8 TB pero el SAS anda por el TB o poco más) y por último los SSD cuyo precio ahora mismo ya está por debajo de los SAS (y lo que te rondaré morena)
Pues resulta que hay una posbilidad de hacer que se tenga un buen rendimiento con los discos de gran capacidad y ello se consigue interponiendo capas (que es lo que significa TIER) de discos más rápidos que hagan de caché de los más lentos SATA. Por ejemplo se tienen 100 TB en disco SATA, 10 TB en SAS y 2 en SSD y literalemente el acceso a los datos vuela. Incluso se permiten diferentes niveles de acceso: el SAP de producción tiene el mejor acceso y los documentos tienen el peor rendimiento.
Esto no lo tienen todas las cabinas, empezamos a meternos en la gama media (que para algunos es la alta, pero es que la alta, está muy arriba)

Snapshots

 Esto no es exclusivo  de las cabinas (por ejemplo el lvm lo tiene) pero permite sacar una "foto" de una LUN o de un almacenamiento en un momento dado lo que permite ver una imagen congelada de la misma mientras se sigue trabajando con ella. Es una gran ayuda a la hora de hacer backups,. definir puntos de restauración (por ejemplo en un trabajo determinado) ver trabajos a lo largo del tiempo. Son casi instantáneas de hacer y no ocupan demasiado si no varían los datos en exceso.

Thin provisioning

 Esto es una virguería de las cabinas que se usa mucho en virtualización. El sistema operativo ve la LUN como completa pero en realidad sólo ocupa espacio cuando se escribe. Por ejemplo, si tenemos una VM linux con un disco de 100 GB pero que en realidad sólo tiene 20 ocupadas tan sólo ocupará en el disco 20 GB y un poquito más por si crece algo más. Si necesita algo más crea un nuevo segmento de disco de manera transparente al sistema operativo. Esto permite hacer una sobre suscripción de manera que si necesitamos 100 VM de 100 GB en lugar de ocupar 10 TB podría ocupar en el caso del ejemplo 2 TB lo que es un ahorro más que considerable.
Esto tiene el posible problema de una fragmentación del disco pero los equipos modernos son capaces de deshacerlo en momentos de baja actividad (por ejemplo por la noche) y hoy por hoy, el rendimiento de VM provisionadas en thin no difiere gran cosa de las provisionadas en thick (ocupando todo el espacio) De hecho, salvo en el momento del crecimiento en que se podrían producir ciertos retrasos, se puede usar el thin sin problemas.
En teoría esta sobre suscripción podría dar problemas si todos piden su espacio, pero en la vida real eso no pasa.

Deduplicación.

Este es un trema casi mágico. La cabina se dedica a buscar bloques iguales (de 2, 4, 64KB, ... lo que sea) y cuando ve dos bloques iguales, elimina uno y donde estaba el anterior pone un puntero al mismo bloque. En entornos como sistemas de virtualización se consiguen maravillas de ahorros de un 20 o un 30% del espacio. si ya tenemos un VDI (muchas máquinas virtuales casi iguales) este ahorro es brutal (60-80%)

Federación.

No, tiene nada que ver con el fumbol o cosas similares. Esto es tener dos cabinas replicadas a distancia (la última vez que lo vi había hasta 200 kms con cabinas fuertemente acopladas, pero admitiendo un decalaje en el tiempo, se van a miles de Km) lo permite sistemas resistentes a desastres (elija el desastre que quiera y en función de eso, ponga su otro datacenter a la distancia adecuada) Esto mola pero es carísimo. Aparte de tener todo el HW duplicado hacen falta unas líneas de comunicaciones que precisamente no son baratas (fibras oscuras y similares)

Todas estas funcionalidades suelen venir en las cabinas de gama media hacia arriba y es interesante conocerlas porque todo ayuda a optimizar la inversión en la misma. Si una cabina a tres años nos sales por unos 800 € el TB (incluyendo precio de compra y soporte, por algún motivo la gente se suele olvidar del coste de ocupación y consumo) si consigues optimizar el uso de espacio ganando un 30-40 % cada TB que usas en tu negocio te sale más barato en ese porcentaje. Ya sé que los economistas no son muy de hacer cálculos complejos en cosas como ahorros, pero de no emplear estos trucos tu inversión en storage en IT puede ser un 30-40 % mayor. Así que piénsatelo bien a la hora de contratar a quien gestione eso, que por tirar de becario explotado en realidad pierdes dinero por no contratar (y pagar a su precio) a uno experimentado.
¿qué vas a recortar en IT? ¡me dejas de piedra!



Armaduras.

He de reconocer que últimamente no me estiro demasiado en el tema bloguero este. Tampoco voy a molestarme en hacer propósito de enmienda so...