Apariencia de unidad

Uno de los conceptos fundamentales más comunes, pero a la vez más delicados, de la informática actual es el de la apariencia de unidad o, dicho de otro modo, algo que parece ser un disco duro. Esto puede sonar sencillo, y en su mayor parte lo es, pero puede resultar complicado.
Primero, ¿qué es un disco duro? Esto debería ser sencillo. Normalmente nos referimos a un dispositivo Winchester tradicional de disco giratorio como los que se han fabricado durante décadas en los formatos estándar de tres pulgadas y media, así como de dos pulgadas y media. Contienen platos que giran, un cabezal de lectura que se mueve hacia delante y hacia atrás, y se conectan mediante algo como conectores ATA o SCSI. La mayoría de nosotros podemos tomar un disco duro con las manos y estar seguros de que tenemos un disco duro. Esto es lo que llamamos la manifestación física de la unidad.
Sin embargo, para la computadora, esta no ve la carcasa de la unidad ni los conectores. La computadora tiene que mirar a través de su electrónica y “ver” la unidad de forma digital. Esto es muy, muy distinto de cómo los humanos ven la unidad física. Para la computadora, un disco duro aparece como un dispositivo ATA, SCSI o Fibre Channel en el nivel físico más básico, y generalmente se abstrae en un nivel superior como un dispositivo de bloque. Esto es lo que llamaríamos una apariencia lógica, en lugar de una física. Para nuestros propósitos aquí, consideraremos todas estas interfaces de unidad como dispositivos de bloque. Sí difieren, pero solo ligeramente y sin consecuencias para esta discusión. Lo importante es que existe una interfaz estándar, o un conjunto de interfaces estrechamente relacionadas, que la computadora ve como un disco duro.
Otra forma de concebir aquí la apariencia lógica de unidad es que cualquier cosa que se asemeje a un disco duro para la computadora es algo que la computadora puede formatear con un sistema de archivos. Los sistemas de archivos no son unidades en sí mismos, sino que requieren una unidad sobre la cual ubicarse.
El concepto de interfaz es el más importante aquí. Para la computadora, es “cualquier cosa que implemente una interfaz de disco duro” lo que verdaderamente se ve como un disco duro. Este es un concepto tan sencillo como poderoso.
Es gracias al uso de una interfaz estándar que pudimos tomar memoria flash, conectarla a una controladora de disco que la presentara mediante un protocolo estándar (tanto las implementaciones SATA como SAS de ATA y SCSI son hoy comunes para esto) y crear SSD que se ven y se comportan exactamente como las unidades Winchester tradicionales para la computadora, pero que físicamente no tienen nada en común con ellas. Puede que vengan o no en un formato físico familiar, pero sin duda carecen de platos y de cabezal de lectura. Al observar el funcionamiento de un disco duro tradicional y de un SSD moderno, no adivinaríamos que comparten un mismo propósito.
Este concepto se aplica a muchos dispositivos. Evidentemente, las tarjetas SD y las memorias USB funcionan de la misma manera. Pero, lo que es importante, así es como funcionan las particiones sobre los discos duros. El sistema de particionado utiliza el concepto de la interfaz de apariencia de unidad por un lado, para poder aplicarse a un dispositivo, y por el otro lado presenta una interfaz de apariencia de unidad a lo que quiera que vaya a utilizarlo; normalmente un sistema de archivos. Esta idea de algo que utiliza la interfaz de apariencia de unidad en ambos lados es muy importante. Al hacer esto, obtenemos un sistema de bloques de construcción uniforme y universal para crear sistemas de almacenamiento complejos.
Vemos este concepto de “unidad que entra; unidad que sale” en muchos casos. Probablemente el más conocido sea el RAID. Un sistema RAID toma un arreglo de discos duros, les aplica uno de entre varios algoritmos para hacer que los discos actúen como un equipo, y luego los presenta como una única apariencia de unidad al siguiente sistema en la “pila”. Esta encapsulación es lo que confiere al RAID su poder: los sistemas situados más arriba en la pila que observan un arreglo RAID ven, literalmente, un disco duro. No ven el arreglo de discos, no saben qué hay por debajo del RAID. Solo ven la unidad o unidades resultantes que el sistema RAID presenta.
Dado que un sistema RAID toma un número arbitrario de discos y los presenta como una unidad estándar, tenemos la capacidad teórica de apilar RAID tantas veces como queramos. Por supuesto, hacer esto en gran medida sería extremadamente poco práctico. Pero es a través de este concepto que los arreglos RAID anidados son posibles. Por ejemplo, si tuviéramos muchos discos duros físicos divididos en parejas y cada pareja en un arreglo RAID 1. Cada uno de esos arreglos resultantes se presenta como una única unidad. Cada una de esas unidades lógicas resultantes puede combinarse en otro arreglo RAID, como RAID 0. Hacer esto es cómo se construye el RAID 10. Yendo más allá, podríamos tomar varios arreglos RAID 10, presentarlos todos a otro sistema RAID que los ponga de nuevo en RAID 0 y obtener RAID 100, y así sucesivamente de forma indefinida.
De manera similar, la capa de volúmenes lógicos utiliza el mismo tipo de encapsulación que el RAID para obrar su magia. Los gestores de volúmenes lógicos, como LVM en Linux y los discos dinámicos en Windows, se sitúan sobre los discos lógicos y proporcionan una capa donde se puede llevar a cabo una gestión potente, como ampliar dispositivos de forma flexible o habilitar instantáneas, y luego presentan discos lógicos (es decir, la interfaz de apariencia de unidad) a la siguiente capa de la pila.
Debido a la naturaleza uniforme de las apariencias de unidad, la pila puede organizarse en cualquier orden. Un gestor de volúmenes lógicos puede situarse sobre el RAID, o el RAID puede situarse sobre un gestor de volúmenes lógicos y, por supuesto, ¡se puede prescindir de uno, del otro o de ambos!
El concepto de las apariencias de unidad, o discos duros lógicos, es poderoso en su sencillez y nos brinda un gran potencial para personalizar los sistemas de almacenamiento como sea que necesitemos.
Por supuesto, también existen otros usos del concepto de unidad lógica. Uno de los más populares y menos comprendidos es el de la SAN. Una SAN no es más que un dispositivo que toma uno o más discos físicos y los presenta como unidades lógicas (esta presentación de una unidad lógica desde una SAN se denomina LUN) a través de la red. Esto es, literalmente, todo lo que es una SAN. La mayoría de las SAN incorporarán una capa RAID y, probablemente, una capa de gestor de volúmenes lógicos antes de presentar las LUN finales, o apariencias de unidad, a la red, pero eso no es un requisito para ser una SAN.
Esto significa, por supuesto, que múltiples LUN de SAN pueden combinarse en un único RAID o controlarse mediante una capa de volúmenes lógicos. Y, por supuesto, significa que una LUN de SAN, un disco duro físico, un arreglo RAID, un volumen lógico, una partición… pueden todos formatearse con un sistema de archivos, ya que todos son medios distintos de lograr el mismo resultado. Todos se comportan de forma idéntica. Todos comparten la interfaz de apariencia de unidad.
Para dar un ejemplo del mundo real de cómo se vería a menudo la convergencia de todas estas partes, examinaremos una de las “pilas de almacenamiento” más comunes que encontrará en el ámbito empresarial. Por supuesto, existen muchas maneras de construir una pila de almacenamiento, así que no se sorprenda si la suya es distinta. En la base de la pila se encuentran casi siempre los discos duros físicos, que podrían incluir unidades de estado sólido. Estos se ubican físicamente dentro de una SAN. Antes de salir de la SAN, la pila incluirá probablemente la capa de almacenamiento propiamente dicha de los discos y, a continuación, una capa RAID que combine esos discos en una única entidad. Luego, una capa de volúmenes lógicos para permitir funciones como el crecimiento y las instantáneas. Después está la demarcación física entre la SAN y el servidor, que se presenta como la LUN. A la LUN se le aplica entonces un gestor de volúmenes lógicos en el lado del servidor / sistema operativo del punto de demarcación. Y por encima de esa LUN se encuentra un sistema de archivos, que es nuestro paso final, ya que el sistema de archivos no sigue presentando una interfaz de apariencia de unidad, sino una interfaz de archivos.
Comprender la apariencia de unidad, o los discos lógicos, y cómo estos permiten que los componentes se interconecten entre sí para construir subsistemas de almacenamiento complejos, es un bloque de construcción fundamental para la comprensión de las TI y resulta ampliamente aplicable a un gran número de actividades de TI.
