El crecimiento exponencial de los volúmenes de datos en todas las industrias exige nuevas tecnologías de almacenamiento. miniaturadeimagen|¿Qué es al almacenamiento distribuido? El almacenamiento distribuido es un método de almacenamiento de datos mediante múltiples nodos en una red de ordenadores interconectados. Como resultado, los datos disponibles son escalables y resistentes frente a los errores. A diferencia de los sistemas de almacenamiento tradicionales, el almacenamiento distribuido extiende los datos a través de múltiples localizaciones. Esta descentralización reduce el riesgo de la pérdida de datos, mejora la velocidad de acceso y reduce costes. miniaturadeimagen|Estructura almacenamiento distribuido centro|miniaturadeimagen|Modelo Distribuido

Historia

El almacenamiento distribuido surgió a principios de la década de 1990, impulsado por la creciente demanda de soluciones de almacenamiento más escalables, confiables y accesibles. Inicialmente, su adopción se limitaba principalmente al ámbito académico y de investigación, donde se valoraba su capacidad para manejar grandes conjuntos de datos y su resistencia a fallos.

Sin embargo, con la explosión del internet y la adopción generalizada de las tecnologías web, el almacenamiento distribuido experimentó un auge significativo en la última década del y principios del . La facilidad de uso, la accesibilidad desde cualquier dispositivo y la posibilidad de compartir archivos de forma sencilla lo convirtieron en una opción atractiva para usuarios domésticos y empresas de todos los tamaños.(Véase: Proveedores).

En el ámbito empresarial su uso es más restringido. Las grandes empresas utilizan aplicaciones propias para centralizar la información en servidores, de tal manera que desde cualquier unidad dentro de su red sea más sencillo acceder a la información. centro|miniaturadeimagen|Historia básica almacenamiento distribuido

Tipos de datos almacenados por lo sistemas de almacenamiento distribuido Los sistemas de almacenamiento distribuidos pueden almacenar varios tipos de datos:

Bloques Un tipo particular de sistema de almacenamiento distribuido son los llamados bloques realiza un seguimiento de los datos en bloques de tamaño fijo, normalmente entre unos pocos kilobytes y varios megabytes. Dentro del repositorio, cada bloque se maneja como una entidad separada y se mantiene por separado. Los repositorios de bloques ofrecen capacidades de almacenamiento de bajo nivel y se utilizan con frecuencia en plataformas de computación en la nube e infraestructuras virtualizadas, entre otras situaciones, donde es necesario el acceso directo a los bloques de almacenamiento sin procesar.

Los datos se organizan en bloques en un repositorio de bloques y cada bloque se reconoce de forma única mediante una dirección o id. En el sistema distribuido, estos bloques se dividen entre varios nodos o servidores, ofreciendo tolerancia a fallos y redundancia.

Los repositorios de bloques son una excelente opción para el almacenamiento de alto rendimiento para aplicaciones como bases de datos y otras que necesitan un acceso aleatorio eficiente a los datos.

Archivos Un sistema de archivos distribuido es un tipo de sistema de almacenamiento distribuido que se utiliza para organizar y controlar archivos entre varios nodos o servidores. Los repositorios de archivos son útiles para una variedad de aplicaciones, como entrega de contenido, análisis de datos y entornos de trabajo colaborativo, ya que ofrecen un espacio de nombres consistente y jerárquico para almacenar y acceder a archivos.

Los archivos en un repositorio de archivos están organizados de manera similar a los sistemas de archivos tradicionales, con archivos agrupados en directorios y subdirectorios. Dentro del repositorio, cada archivo se reconoce de forma única mediante una ruta.

Objetos Está destinado a administrar y almacenar objetos, que se componen de datos, metadatos y un identificador único. Normalmente, los objetos son unidades de datos no estructurados, como blobs, documentos, películas y fotografías. Los repositorios de objetos ofrecen una opción de almacenamiento extremadamente versátil y escalable, lo que los hace apropiados para una variedad de usos, como el archivado de datos, la entrega de contenido y el almacenamiento en la nube.

Utilizando sus distintos identificadores, los elementos se almacenan individualmente y son accesibles dentro de un repositorio de objetos. Los metadatos relacionados con un objeto pueden incluir detalles sobre su propietario, fecha de creación y tipo de contenido, entre otros.

El control de versiones, la replicación y la administración del ciclo de vida son algunos de los servicios que brindan los repositorios de objetos para ayudar a los usuarios a administrar los objetos de manera efectiva.

Arquitecturas de los sistemas de almacenamiento distribuido miniaturadeimagen|Arquitectura de replicación

Arquitectura basada en replicación En esta arquitectura, los datos se replican en varios nodos del sistema. Esto garantiza la tolerancia a fallos, ya que la pérdida de un nodo no provoca la pérdida de datos. La replicación puede ser síncrona o asíncrona, dependiendo de si los datos se copian en todos los nodos antes de que se reconozca la operación de escritura.

Replicación síncrona: antes de que el cliente reconozca la acción de escritura, los datos se transfieren a cada nodo. Esto garantiza la coherencia de los datos en todo momento en todas las réplicas. Pero debido a que el proceso de escritura tiene que esperar el reconocimiento de cada duplicado antes de finalizar, podría causar latencia. Replicación asíncrona: este tipo de replicación no espera a que se actualicen todas las réplicas; en cambio, reconoce la operación de escritura al cliente tan pronto como los datos se escriben en el nodo principal. A continuación, se realiza una copia asíncrona de los datos en los nodos de réplica. Aunque esto reduce la latencia, si el nodo principal falla antes de que se actualicen las copias, puede generar datos inconsistentes. miniaturadeimagen|Arquitectura Fragmentación

Arquitectura de fragmentación La fragmentación implica dividir los datos en subconjuntos más pequeños llamados fragmentos y distribuirlos en varios nodos. Cada nodo es responsable de almacenar y gestionar un subconjunto de datos. Esta arquitectura ayuda a distribuir la carga de almacenamiento y procesamiento de manera uniforme entre los nodos, lo que mejora la escalabilidad.

Partición horizontal: en la fragmentación, los datos se dividen horizontalmente entre varios nodos según un criterio predeterminado (por ejemplo, rango de valores, hash de la clave). Cada fragmento es supervisado por un nodo distinto y comprende una parte de los datos. Coordinación y enrutamiento: una arquitectura de fragmentación generalmente incluye un mecanismo de enrutamiento para identificar el fragmento del cual se recuperan los datos solicitados y enrutar la solicitud de manera adecuada. También se requieren técnicas de coordinación para gestionar eventos como migraciones de fragmentos y reequilibrio y para garantizar la coherencia de los datos. miniaturadeimagen|DFS

Sistema de archivos distribuido DFS ofrece una vista única y unificada del almacenamiento de archivos en varios servidores. Ofrece a los usuarios y a las aplicaciones un sistema de archivos único y lógico al mismo tiempo que abstrae la complejidad subyacente de la distribución del almacenamiento. El sistema de archivos distribuido Hadoop (HDFS) y el sistema de archivos de Google (GFS) son dos ejemplos.

Arquitectura cliente/servidor: para acceder y modificar archivos en un DFS, los clientes se comunican con los servidores. Cada servidor supervisa un subconjunto de todo el sistema de archivos y están dispersos por toda la red. Los clientes utilizan una interfaz definida que proporciona DFS para solicitar operaciones de archivos (lectura, escritura y eliminación).

Vista uniforme: DFS simplifica las complejidades de la distribución del almacenamiento. Los usuarios ven un sistema de archivos único y lógico incluso cuando los datos están ubicados físicamente en varios servidores. Tolerancia a fallos y escalabilidad: los DFS están diseñados para crecer horizontalmente agregando más servidores a la red. En caso de caídas del servidor, también cuentan con técnicas de tolerancia a fallos para garantizar la disponibilidad de los datos. Con frecuencia se utilizan técnicas de redundancia y replicación. miniaturadeimagen|Almacenamiento de objetos S3

Arquitectura de almacenamiento de objetos Los datos se organizan como objetos en el almacenamiento de objetos, cada uno con su propia información, datos e identidad única. Los sistemas de almacenamiento de objetos pueden almacenar datos no estructurados, incluidos documentos, películas y fotografías, y son muy escalables. OpenStack Swift, Azure Blob Storage y Amazon S3 son algunos ejemplos.

Objetos y metadatos: los datos se organizan en componentes distintos llamados objetos en la arquitectura de almacenamiento de objetos. Cada objeto se compone de metadatos relacionados y datos reales, que pueden ser un documento, un vídeo o una imagen. Los atributos del elemento, como su nombre, tamaño, tipo de contenido, fecha de creación y cualquier otro metadato personalizado, están todos contenidos en los metadatos. Estos metadatos hacen posible la gestión, recuperación y almacenamiento eficientes de objetos y, al mismo tiempo, ofrecen un contexto revelador. Jerarquía plana: los sistemas de almacenamiento de objetos utilizan una jerarquía plana para organizar los datos en carpetas y subcarpetas, a diferencia de los sistemas de archivos estándar que utilizan una estructura de directorios jerárquica. Cada objeto en el sistema de almacenamiento tiene una identificación única y todos se guardan en un espacio de nombres plano.

Comparación con almacenamiento centralizado miniaturadeimagen|Diferencias almacenamiento distribuido, centralizado y descentralizado El almacenamiento distribuido y el almacenamiento centralizado son dos enfoques diferentes para almacenar y administrar datos.

El almacenamiento centralizado se refiere a una arquitectura de almacenamiento en la que todos los datos se almacenan en una única ubicación, como un servidor o un centro de datos. Todo el acceso a los datos está controlado por una autoridad central y los usuarios deben conectarse a esta ubicación central para acceder a sus datos. Este enfoque se utiliza a menudo en entornos de TI tradicionales y es relativamente sencillo de gestionar.

El almacenamiento distribuido, como ya hemos visto, se refiere a una arquitectura de almacenamiento en la que los datos se distribuyen en varias ubicaciones, a menudo utilizando una red de servidores o nodos. Cada nodo de la red almacena una parte de los datos y todos los nodos trabajan juntos para proporcionar acceso a los datos. Este enfoque se utiliza a menudo en entornos de computación en la nube y big data, donde es necesario almacenar y acceder a grandes cantidades de datos de forma rápida y eficiente.

La principal diferencia entre el almacenamiento distribuido y el almacenamiento centralizado es la forma en que se almacenan y se accede a los datos. En una arquitectura de almacenamiento centralizado, todos los datos se almacenan en una única ubicación, lo que puede ser un único punto de error. Por el contrario, el almacenamiento distribuido reparte los datos en múltiples ubicaciones, lo que puede mejorar la con-fiabilidad y la disponibilidad. Además, el almacenamiento distribuido puede proporcionar una mejor escalabilidad y rendimiento, ya que se puede acceder a los datos desde varias ubicaciones simultáneamente.

Ventajas almacenamiento distribuido

Accesibilidad: Es posible acceder a los datos desde cualquier lugar y en cualquier momento. Confiabilidad: El almacenamiento distribuido ofrece una alta disponibilidad y tolerancia a fallos.