Resumen
Los archivos, los bloques y los objetos son diferentes formatos de almacenamiento que conservan, organizan y ofrecen los datos de distintas maneras, cada uno con sus propias funciones y limitaciones. En el primer caso, los datos se organizan y se representan como una jerarquía de archivos en carpetas; por su parte, los bloques los dividen en volúmenes de tamaño uniforme que se organizan de forma arbitraria; por último, el almacenamiento en objetos los administra y los vincula con los metadatos relacionados.
Los contenedores son muy flexibles y cuentan con una capacidad de ajuste sorprendente a la hora de distribuir las aplicaciones y el almacenamiento.
Almacenamiento en archivos
El almacenamiento en archivos es exactamente lo que está pensando: los datos se almacenan como una sola pieza de información dentro de una carpeta, al igual que se organizan las hojas de papel dentro de un sobre de papel manila. Si necesita acceder a ellos, la computadora debe conocer la ruta para encontrarlos. Pero tenga cuidado, ya que puede ser una ruta larga y compleja. Los datos almacenados en archivos se organizan y se recuperan utilizando una cantidad limitada de metadatos que le indican a la computadora exactamente dónde encontrarlos. En otras palabras, es como un catálogo de tarjetas de biblioteca para los archivos de datos.
Piense en un armario lleno de archivadores. Cada documento se organiza siguiendo algún tipo de jerarquía lógica: por archivador, por cajón, por carpeta y, finalmente, por hoja. De aquí proviene el término almacenamiento jerárquico, el cual representa el almacenamiento en archivos a la perfección. Es el método más antiguo para los sistemas de almacenamiento directo y adjunto a la red, y probablemente sea el que lleva utilizando desde hace varias décadas. Cada vez que accede a los documentos guardados en archivos en su computadora personal, está utilizando este tipo de servicio. El almacenamiento en archivos ofrece muchas funciones y puede almacenar prácticamente cualquier cosa. Los usuarios no solo obtendrán rapidez, sino también un espacio ideal para una gran variedad de archivos complejos.
Sin embargo, tiene sus inconvenientes: al igual que sucede con los archivadores físicos, el "cajón" virtual solo puede abrirse hasta cierto punto. Los sistemas de almacenamiento basado en archivos deben ampliarse agregando más sistemas, en lugar de más capacidad.
Almacenamiento en bloques
Este tipo de almacenamiento divide los datos en bloques y los almacena en partes separadas. Cada uno de ellos recibe un identificador único, lo cual permite que el sistema de almacenamiento coloque los conjuntos de datos más pequeños donde considere más conveniente. Esto significa que algunos pueden guardarse en un entorno de Linux®, y otros, en una unidad de Windows.
Por lo general, el almacenamiento en bloques se configura para separar los datos del entorno del usuario y distribuirlos a otros con el fin de aprovecharlos mejor. Luego, cuando se solicitan, el software subyacente vuelve a ensamblar los bloques de datos de estos entornos y los presenta de nuevo al usuario. Por lo general, se implementa en entornos de red de área de almacenamiento (SAN) y debe estar vinculado a un servidor en funcionamiento.
Además, como el almacenamiento en bloques no utiliza una única ruta de acceso, como sucede al almacenar en archivos, es posible recuperar los datos rápidamente. Cada bloque funciona por separado y se puede particionar para posibilitar su uso en un sistema operativo diferente, así que el usuario tiene total libertad para configurar los datos. Es una forma eficaz y confiable de almacenar datos y, además, es fácil de usar y gestionar. Es muy útil para las empresas que realizan operaciones grandes y para aquellas que implementan bases de datos de gran tamaño. Por eso, cuantos más datos necesite almacenar, más útil será esta solución.
Sin embargo, también presenta algunas desventajas. Por un lado, puede ser costoso. Por el otro, tiene una capacidad limitada para manejar los metadatos, lo que significa que se debe operar a nivel de la base de datos o de la aplicación. Esto añade otra preocupación al desarrollador o al administrador de sistemas.
Almacenamiento en objetos
El almacenamiento en objetos es una estructura plana en la que los archivos se dividen en piezas y se reparten entre el hardware. Los datos se dividen en distintas unidades denominadas objetos y se alojan en un solo repositorio, en lugar de conservarse como archivos en carpetas o como bloques en servidores.
Los volúmenes de almacenamiento en objetos funcionan como unidades modulares: cada uno es un repositorio independiente que posee los datos, un identificador único que permite encontrar el objeto en un sistema distribuido y los metadatos que describen la información. Los metadatos son importantes e incluyen detalles como la edad, la privacidad/seguridad y los problemas de acceso. Estos metadatos también pueden ser sumamente específicos y almacenar información sobre el lugar en el que se grabó un video, la cámara que se usó y los actores que aparecen en cada fotograma. Para recuperar los datos, el sistema operativo del almacenamiento utiliza los metadatos y los identificadores, lo que ayuda a distribuir mejor la carga y permite que los administradores apliquen políticas para realizar búsquedas más confiables.
El almacenamiento en objetos requiere una interfaz de programación de aplicaciones (API) de HTTP sencilla, como la que utiliza la mayoría de los clientes en todos los idiomas. El almacenamiento en objetos es rentable: solo se paga por lo que se usa. Se puede ajustar fácilmente, por lo cual es una gran opción para el almacenamiento en la nube pública. Su naturaleza ágil y plana le permite admitir cantidades sumamente grandes de datos, y resulta muy útil para aquellos que son estáticos. Los objetos tienen suficiente información para que las aplicaciones encuentren los datos rápidamente y son ideales para almacenar aquellos no estructurados.
Sin embargo, también tiene sus inconvenientes. Por un lado, los objetos no se pueden modificar, de modo que debe escribirlos por completo de una sola vez. Por el otro, no funcionan bien con las bases de datos tradicionales. Esto se debe a que el proceso de escribir objetos es lento y a que diseñar una aplicación para usar una API de almacenamiento de objetos es más complejo que utilizar el almacenamiento en archivos.