Cómo identificar los problemas de desempeño del almacenamiento de disc
Desde el momento en que se abandonó el procesamiento de archivos de forma manual o semi-manual, el diseño de estructuras de almacenamientos de datos ha sido una etapa crítica en el requerimiento final. Este no es más que mantener funcionando de forma activa, óptima y escalable las bases de datos de los clientes, de tal manera que cualquier tipo de fallo tienda a cero y, si es posible, predecir los mismos.
En la práctica, la situación en los desarrollos de almacenamiento de datos se divide entre el hardware disponible en forma de arreglo de discos y su conectividad, y el software que administra dicho hardware, como por ejemplo un monitor de intercambio de datos.
Características de rendimiento a nivel de Hardware
De acuerdo al MIT, una etapa crucial para la evaluación, administración de datos y gestión de fallos es “el tiempo que toma una unidad de disco en responder a una petición completa de E/S”, esto viene dado por lo siguiente:
Las limitaciones electromecánicas de cada disco:
En este apartado es importante acotar que el rendimiento general del disco viene dado por la suma de performance de cada componente del dispositivo físico, ahora bien, la velocidad de las partes electrónicas siempre será superior que las mecánicas por lo que estas últimas definirán el rendimiento final del disco.
Dentro de estas limitantes también se encuentran el tiempo de recorrido entre la interfaz del disco, el tiempo en que las cabezas de lecto/escritura recorren las zonas del plato, la latencia rotacional y el movimiento del brazo de acceso; sumando todo esto ya estamos alrededor de los 10 milisegundos, entre discos estándares o básicos de 5400rpm y los de alto rendimiento de 10000 rpm.
La carga de Entrada y Salida (i/o) apuntalada por el sistema:
El conjunto del rendimiento del disco y la capacidad de la puerta de entrada y salida (i/o) de almacenamiento, plasma pragmáticamente el rendimiento general del dispositivo y, por consiguiente, afecta el trabajo de los usuarios.
Esta situación hace necesario tener herramientas para diagnosticar problemas y/o de prever con anticipación los mismos de manera permanente, basados en la colecta de datos críticos en tiempo real de tal manera que se pueda evitar la degradación la aplicación.
Elección de tipo de almacenamiento y rendimiento.
Elegir el tipo de almacenamiento que nuestro sistema utilizará es otro punto crucial en el rendimiento general del sistema. Una mala selección puede trastocar cualquier sistema que pretenda escalar y a la larga el mantenimiento preventivo y correctivo de hardware y software será un gran dolor de cabeza.
En la actualidad los arreglos RAID, (siglas en inglés de Redundant Array of Independent Disks) son los más utilizados para los sistema de mediana magnitud en adelante. Incluso se utilizan en los complejos sistemas anidados con alta redundancia y protección a fallos asegurada.
Las matrices RAID, de las que existen unas 20 en la actualidad, permiten resguardar los datos plasmando en la realidad la teoría de normalización de los mismos y la tolerancia a fallos se reduce al mínimo pero a la vez se magnifica la lecto/escritura de los datos.
Desde el RAID O hasta el RADI 5+0 o RAID 50, se va desde el solo aceleramiento de la lecto/escritura hasta todas las características acumuladas y la seguridad de la máxima tolerancia a fallos.
Es importante decir aquí, que los RAID son arreglos en matrices que protegen el sistema de almacenamiento de datos a nivel de hardware solamente, no representan un respaldo sino la redundancia necesaria para acceder a los datos, esto último debe asegurarse mediantes software específico que permita gestionar estas situaciones.
Evaluando los tipos de sistema de archivos, Fragmentado vs No-Fragmentado:
Desde sus inicios, los sistemas de archivos han desperdiciado espacio al momento de grabar, leer y volver a grabar un archivo o partes de archivos en sectores que al no poder ser ocupados completamente, son marcados como usados pero en realidad por el tipo de división que usa el sistema no pueden usarse ni solaparse con otro archivo porque corrompería los datos.
Este es la idea básica sobre el fragmentamiento de archivos, que en los dispositivos de disco en plato magnético se da a diario que afecta el rendimiento del almacenamiento, y que aun cuando el en algunos casos el software se encarga de desfragmentar automáticamente al estar activa esta opción el algoritmo no mucha veces es lo suficientemente inteligente para hacerse a un lado cuando se requiera y no estorbe en el flujo de datos.
Esta situación no se ve en los discos de estado sólido o SSD, es decir no requieren defragmentar los datos, en ellos ocurre otra situación que debemos tener en cuenta y es que las cómo sabemos las escrituras sucesivas y extensivas en un SSD degradan el disco, por lo que las página (sectores) parcialmente llenos también se encuentran presentes y se debe utilizar otra estrategia para recuperar dicho espacio valioso.
Ejemplos de aplicaciones RAID para optimizar el rendimiento de los datos.
Un ejemplo en la vida real de un sistema que permita almacenar datos y optimizar su entrada y salida para una mejor lectura/escritura es un Arreglo de Discos para MS Exchange Server, un servidor de correos empresarial muy utilizado en la actualidad.
De acuerdo a la cantidad de discos disponibles y empezando con 2 y 4 discos, tenemos para ellos RAID 1 con dos particiones, una para el sistema operativo y paginación y la otra para Exchange Server.
Si disponemos de 5 discos, la disposición podría ser de 3 discos para los archivos y la base de datos, mientras que podemos obtener un RAID para los logs del sistema.
Si escalamos a seis discos entonces podemos usar 5+1 y un NO RAID, en un arreglo de Archivos, logs y paginación respectivamente.
Estas son solo algunas situaciones y características que podemos mencionar respecto a la optimización, resguardo de datos y perfeccionamiento del almacenamiento, existen otras situaciones que mencionaré posteriormente.
Ing. Roberto Alemán