Almacenamiento direccionable por contenido

Tipo de mecanismo de almacenamiento de datos

El almacenamiento direccionable por contenido ( CAS ), también conocido como almacenamiento direccionable por contenido o almacenamiento de contenido fijo , es una forma de almacenar información para que pueda recuperarse en función de su contenido, no de su nombre o ubicación. Se ha utilizado para el almacenamiento y la recuperación a alta velocidad de contenido fijo, como documentos almacenados para cumplir con las regulaciones gubernamentales [ cita requerida ] . El almacenamiento direccionable por contenido es similar a la memoria direccionable por contenido .

Los sistemas CAS funcionan pasando el contenido del archivo a través de una función hash criptográfica para generar una clave única, la "dirección de contenido". El directorio del sistema de archivos almacena estas direcciones y un puntero al almacenamiento físico del contenido. Debido a que un intento de almacenar el mismo archivo generará la misma clave, los sistemas CAS garantizan que los archivos que contienen sean únicos y, dado que cambiar el archivo dará como resultado una nueva clave, los sistemas CAS brindan la seguridad de que el archivo no se modifica.

El CAS se convirtió en un mercado importante durante la década de 2000, especialmente después de la introducción de la Ley Sarbanes-Oxley de 2002 en los Estados Unidos, que requería el almacenamiento de enormes cantidades de documentos durante largos períodos y que solo se recuperaban en raras ocasiones. El rendimiento cada vez mayor de los sistemas de archivos tradicionales y los nuevos sistemas de software han erosionado el valor de los sistemas CAS heredados, que se han vuelto cada vez más raros después de aproximadamente 2018 [ cita requerida ] . Sin embargo, los principios de direccionabilidad de contenido continúan siendo de gran interés para los científicos informáticos y forman el núcleo de numerosas tecnologías emergentes, como el intercambio de archivos entre pares , las criptomonedas y la computación distribuida .

Descripción

Enfoques basados ​​en la localización

Los sistemas de archivos tradicionales generalmente rastrean los archivos en función de su nombre de archivo . En medios de acceso aleatorio como un disquete , esto se logra utilizando un directorio que consta de algún tipo de lista de nombres de archivos y punteros a los datos. Los punteros se refieren a una ubicación física en el disco, normalmente utilizando sectores de disco . En sistemas más modernos y formatos más grandes como discos duros , el directorio se divide en muchos subdirectorios, cada uno de los cuales rastrea un subconjunto de la colección general de archivos. Los subdirectorios se representan como archivos en un directorio principal, lo que produce una jerarquía u organización similar a un árbol. La serie de directorios que conducen a un archivo en particular se conoce como "ruta". [1]

En el contexto de CAS, estos enfoques tradicionales se denominan "direccionamiento por ubicación", ya que cada archivo está representado por una lista de una o más ubicaciones, la ruta y el nombre del archivo, en el almacenamiento físico. En estos sistemas, el mismo archivo con dos nombres diferentes se almacenará como dos archivos en el disco y, por lo tanto, tendrá dos direcciones. Lo mismo sucede si el mismo archivo, incluso con el mismo nombre, se almacena en más de una ubicación en la jerarquía de directorios. Esto los hace menos ideales para un archivo digital , donde cualquier información única solo debe almacenarse una vez. [2]

A medida que el concepto de directorio jerárquico se hizo más común en los sistemas operativos , especialmente a fines de la década de 1980, este tipo de patrón de acceso comenzó a ser utilizado por sistemas completamente no relacionados. Por ejemplo, la World Wide Web utiliza un sistema similar a una ruta de acceso o un nombre de archivo conocido como URL para señalar documentos. El mismo documento en otro servidor web tiene una URL diferente a pesar de tener el mismo contenido. Del mismo modo, si una ubicación existente cambia de alguna manera, si el nombre del archivo cambia o el servidor se muda a un nuevo nombre de servicio de nombres de dominio , el documento ya no es accesible. Esto conduce al problema común de la pérdida de enlaces . [2]

CAS y FCS

Aunque el almacenamiento basado en la ubicación se utiliza ampliamente en muchos campos, no siempre fue así. Anteriormente, la forma más común de recuperar datos de una gran colección era utilizar algún tipo de identificador basado en el contenido del documento. Por ejemplo, el sistema ISBN se utiliza para generar un número único para cada libro. Si se realiza una búsqueda en Internet de "ISBN 0465048994", se obtendrá una lista de ubicaciones del libro Por qué crece la información sobre el tema del almacenamiento de información. Aunque se obtendrán muchas ubicaciones, todas se refieren a la misma obra y el usuario puede elegir la ubicación que sea más adecuada. Además, si alguna de estas ubicaciones cambia o desaparece, el contenido se puede encontrar en cualquiera de las otras ubicaciones. [2]

Los sistemas CAS intentan producir resultados similares a los del ISBN de forma automática y en cualquier documento. Para ello, utilizan una función hash criptográfica sobre los datos del documento para producir lo que a veces se conoce como una "clave" o "huella digital". Esta clave está estrechamente vinculada al contenido exacto del documento; por ejemplo, si se añade un solo espacio al final del archivo, se obtendrá una clave diferente. En un sistema CAS, el directorio no asigna los nombres de archivo a las ubicaciones, sino que utiliza las claves. [2]

Esto ofrece varias ventajas. Por un lado, cuando se envía un archivo al CAS para su almacenamiento, la función hash generará una clave y luego comprobará si esa clave ya existe en el directorio. Si es así, el archivo no se almacena porque el que ya está almacenado es idéntico. Esto permite a los sistemas CAS evitar fácilmente los datos duplicados. Además, como la clave se basa en el contenido del archivo, recuperar un documento con una clave determinada garantiza que el archivo almacenado no haya cambiado. La desventaja de este enfoque es que cualquier cambio en el documento produce una clave diferente, lo que hace que los sistemas CAS no sean adecuados para archivos que se editan con frecuencia. Por todas estas razones, los sistemas CAS se utilizan normalmente para archivos de documentos en gran medida estáticos [2] y, a veces, se los conoce como "almacenamiento de contenido fijo" (FCS). [3]

Como las claves no son legibles por humanos, los sistemas CAS implementan un segundo tipo de directorio que almacena metadatos que ayudarán a los usuarios a encontrar un documento. Estos casi siempre incluyen un nombre de archivo, lo que permite utilizar la recuperación clásica basada en el nombre. Pero el directorio también incluirá campos para sistemas de identificación comunes como códigos ISBN o ISSN , palabras clave proporcionadas por el usuario, sellos de fecha y hora e índices de búsqueda de texto completo . Los usuarios pueden buscar en estos directorios y recuperar una clave, que luego se puede utilizar para recuperar el documento real. [2]

El uso de un CAS es muy similar al uso de un motor de búsqueda web . La principal diferencia es que una búsqueda web generalmente se realiza sobre la base de un tema utilizando un algoritmo interno que encuentra contenido "relacionado" y luego produce una lista de ubicaciones. Los resultados pueden ser una lista de contenido idéntico en múltiples ubicaciones. En un CAS, se puede obtener más de un documento para una búsqueda determinada, pero cada uno de esos documentos será único y se presentará solo una vez.

Otra ventaja de CAS es que la ubicación física en el almacenamiento no forma parte del sistema de búsqueda. Si, por ejemplo, el catálogo de fichas de una biblioteca indica que un libro se puede encontrar en el "estante 43, contenedor 10", si se reorganiza la biblioteca, se debe actualizar todo el catálogo. Por el contrario, el ISBN no cambiará y se puede encontrar el libro buscando el estante con esos números. En la configuración informática, un archivo en el sistema de archivos DOS en la ruta A:\myfiles\textfile.txt apunta al almacenamiento físico del archivo en el subdirectorio myfiles. Este archivo desaparece si el disquete se mueve a la unidad B:, e incluso mover su ubicación dentro de la jerarquía de discos requiere que se actualicen los directorios de cara al usuario. En CAS, solo cambia la asignación interna de la clave a la ubicación física, y esto existe en un solo lugar y puede diseñarse para una actualización eficiente. Esto permite mover archivos entre dispositivos de almacenamiento, e incluso entre medios, sin necesidad de realizar ningún cambio en la recuperación.

En el caso de datos que cambian con frecuencia, el CAS no es tan eficiente como el direccionamiento basado en la ubicación. En estos casos, el dispositivo CAS tendría que volver a calcular continuamente la dirección de los datos a medida que se modificaban. Esto daría como resultado el almacenamiento de varias copias de todo el documento casi idéntico, un problema que el CAS intenta evitar. Además, los directorios de acceso al usuario tendrían que actualizarse continuamente con estos archivos "nuevos", que se contaminarían con muchos documentos similares que dificultarían la búsqueda. Por el contrario, la actualización de un archivo en un sistema basado en la ubicación está altamente optimizada, solo se debe cambiar la lista interna de sectores y se han aplicado muchos años de ajuste a esta operación.

Dado que el CAS se utiliza principalmente para archivar, la eliminación de archivos suele estar muy controlada o incluso es imposible para el usuario. Por el contrario, la eliminación automática es una característica común, ya que elimina todos los archivos que superan un requisito legal definido, por ejemplo, diez años. [2]

En computación distribuida

La forma más sencilla de implementar un sistema CAS es almacenar todos los archivos dentro de una base de datos típica a la que los clientes se conectan para agregar, consultar y recuperar archivos. Sin embargo, las propiedades únicas de la direccionabilidad del contenido significan que el paradigma es muy adecuado para sistemas informáticos en los que varios hosts administran archivos de manera colaborativa sin una autoridad central, como los sistemas de intercambio de archivos distribuidos , en los que la ubicación física de un archivo alojado puede cambiar rápidamente en respuesta a cambios en la topología de la red, mientras que el contenido exacto de los archivos que se recuperarán es de mayor importancia para los usuarios que su ubicación física actual. En un sistema distribuido, los hashes de contenido se utilizan a menudo para búsquedas rápidas en toda la red de archivos específicos, o para ver rápidamente qué datos de un archivo determinado han cambiado y deben propagarse a otros miembros de la red con un uso mínimo del ancho de banda . En estos sistemas, la direccionabilidad del contenido permite abstraer la topología de red altamente variable de los usuarios que desean acceder a los datos, en comparación con sistemas como la World Wide Web , en los que una ubicación consistente de un archivo o servicio es clave para un uso fácil.

Redes direccionables por contenido

La red direccionable por contenido (CAN) es una infraestructura P2P descentralizada y distribuida que proporciona una funcionalidad de tabla hash a una escala similar a la de Internet . CAN fue una de las cuatro propuestas originales de tabla hash distribuida , presentada simultáneamente con Chord , Pastry y Tapestry .

Historia

A finales de los años 60, International Computers Limited (ICL) desarrolló un dispositivo de hardware denominado Content Addressable File Store (CAFS), que British Telecom puso en uso a principios de los años 70 para realizar búsquedas en directorios telefónicos . La función de búsqueda accesible para el usuario la mantenía el controlador del disco con una interfaz de programación de aplicaciones (API) de alto nivel , de modo que los usuarios podían enviar consultas a lo que parecía ser una caja negra que devolvía documentos. La ventaja era que no era necesario intercambiar información con el ordenador anfitrión mientras el disco realizaba la búsqueda.

Paul Carpentier y Jan van Riel acuñaron el término CAS mientras trabajaban en una empresa llamada FilePool a finales de los años 90. FilePool fue adquirida por EMC Corporation en 2001 y se lanzó al año siguiente con el nombre de Centera. [4] El momento fue perfecto: la introducción de la Ley Sarbanes-Oxley en 2002 exigía a las empresas almacenar enormes cantidades de documentación durante períodos prolongados y que lo hicieran de una manera que garantizara que no se editara a posteriori. [5]

Pronto aparecieron varios productos similares de otros grandes proveedores de sistemas. A mediados de 2004, el grupo industrial SNIA comenzó a trabajar con varios proveedores de CAS para crear pautas de interoperabilidad y comportamiento estándar para los sistemas CAS. [6]

Además de CAS, surgieron varios productos similares que agregaron capacidades similares a CAS a los productos existentes; entre ellos, se destacó IBM Tivoli Storage Manager . El auge de la computación en la nube y los sistemas de almacenamiento en la nube elásticos asociados , como Amazon S3, diluyeron aún más el valor de los sistemas CAS dedicados. Dell compró EMC en 2016 y detuvo las ventas del Centera original en 2018 a favor de su producto de almacenamiento elástico. [7]

CAS no se asoció con aplicaciones peer-to-peer hasta la década de 2000, cuando la rápida proliferación del acceso a Internet en hogares y empresas llevó a una gran cantidad de usuarios de computadoras que querían intercambiar archivos, originalmente haciéndolo en servicios administrados centralmente como Napster . Sin embargo, una orden judicial contra Napster impulsó el desarrollo independiente de servicios de intercambio de archivos como BitTorrent , que no se podían cerrar de forma centralizada. Para funcionar sin un servidor federador central, estos servicios dependen en gran medida de CAS para hacer cumplir la copia fiel y la consulta fácil de archivos únicos. Al mismo tiempo, el crecimiento del movimiento de software de código abierto en la década de 2000 llevó a la rápida proliferación de servicios basados ​​​​en CAS como Git , un sistema de control de versiones que utiliza numerosas funciones criptográficas como árboles de Merkle para hacer cumplir la integridad de los datos entre usuarios y permitir múltiples versiones de archivos con un uso mínimo de disco y red. Alrededor de esta época, los usuarios individuales de criptografía de clave pública usaban CAS para almacenar sus claves públicas en sistemas como servidores de claves .

El auge de la informática móvil y las redes de banda ancha móviles de alta capacidad en la década de 2010, junto con la creciente dependencia de las aplicaciones web para las tareas informáticas cotidianas, tensaron el modelo cliente-servidor basado en la ubicación existente , común entre los servicios de Internet, lo que llevó a un ritmo acelerado de degradación de los enlaces y a una mayor dependencia del alojamiento centralizado en la nube . Además, las crecientes preocupaciones sobre la centralización del poder de cómputo en manos de grandes empresas de tecnología , los posibles abusos de poder monopólico y las preocupaciones sobre la privacidad llevaron a la creación de una serie de proyectos con el objetivo de crear sistemas más descentralizados . Bitcoin utiliza CAS y pares de claves públicas/privadas para administrar las direcciones de billetera, al igual que la mayoría de las otras criptomonedas . IPFS utiliza CAS para identificar y abordar archivos alojados de forma comunitaria en su red. Numerosos otros sistemas peer-to-peer diseñados para ejecutarse en teléfonos inteligentes , que a menudo acceden a Internet desde diferentes ubicaciones, utilizan CAS para almacenar y acceder a los datos del usuario tanto por conveniencia como por motivos de privacidad de datos, como la mensajería instantánea segura .

Implementaciones

Propiedad

El sistema Centera CAS consta de una serie de nodos en red (normalmente grandes servidores que ejecutan Linux ), divididos entre nodos de almacenamiento y nodos de acceso. Los nodos de acceso mantienen un directorio sincronizado de direcciones de contenido y el nodo de almacenamiento correspondiente donde se puede encontrar cada dirección. Cuando se añade un nuevo elemento de datos, o blob , el dispositivo calcula un hash del contenido y devuelve este hash como la dirección de contenido del blob. [8] Como se mencionó anteriormente, se busca el hash para verificar que no haya ya contenido idéntico. Si el contenido ya existe, el dispositivo no necesita realizar ningún paso adicional; la dirección de contenido ya apunta al contenido adecuado. De lo contrario, los datos se pasan a un nodo de almacenamiento y se escriben en el medio físico.

Cuando se proporciona una dirección de contenido al dispositivo, primero consulta el directorio para conocer la ubicación física de la dirección de contenido especificada. Luego, la información se recupera de un nodo de almacenamiento y se vuelve a calcular y verificar el hash real de los datos. Una vez que esto se completa, el dispositivo puede proporcionar los datos solicitados al cliente. Dentro del sistema Centera, cada dirección de contenido representa en realidad una cantidad de blobs de datos distintos, así como metadatos opcionales . Siempre que un cliente agrega un blob adicional a un bloque de contenido existente, el sistema vuelve a calcular la dirección de contenido.

Para proporcionar una seguridad adicional a los datos, los nodos de acceso de Centera, cuando no hay ninguna operación de lectura o escritura en curso, se comunican constantemente con los nodos de almacenamiento, verificando la presencia de al menos dos copias de cada blob, así como su integridad. Además, se pueden configurar para intercambiar datos con un sistema Centera diferente, por ejemplo, externo, reforzando así las precauciones contra la pérdida accidental de datos.

IBM tiene otra versión de CAS que puede estar basada en software, Tivoli Storage Manager 5.3, o en hardware, IBM DR550. La arquitectura es diferente porque se basa en un diseño de gestión de almacenamiento jerárquico (HSM), que proporciona cierta flexibilidad adicional, como la capacidad de admitir no solo discos WORM , sino también cintas WORM y la migración de datos de discos WORM a cintas WORM y viceversa. Esto proporciona una flexibilidad adicional en situaciones de recuperación de desastres, así como la capacidad de reducir los costos de almacenamiento al mover datos del disco a la cinta.

Otra implementación típica es iCAS de iTernity. El concepto de iCAS se basa en contenedores. Cada contenedor se identifica por su valor hash. Un contenedor contiene diferentes cantidades de documentos de contenido fijo. El contenedor no se puede modificar y el valor hash se fija después del proceso de escritura.

Código abierto

  • Venti : uno de los primeros servidores de almacenamiento direccionados por contenido, [9] desarrollado originalmente para Plan 9 de Bell Labs y ahora también está disponible para sistemas tipo Unix como parte de Plan 9 de User Space .
    El primer paso hacia una implementación de CAS+ de código abierto es Twisted Storage. [10]
  • Tahoe Least-Authority File Store : una implementación de código abierto de CAS.
  • Git : un sistema de archivos CAS de espacio de usuario . Git se utiliza principalmente como un sistema de control de código fuente.
  • git-annex : un sistema de sincronización de archivos distribuido que utiliza almacenamiento direccionable por contenido para los archivos que administra. Se basa en Git y enlaces simbólicos para indexar la ubicación de su sistema de archivos.
  • Proyecto Honeycomb : una API de código abierto para sistemas CAS. [11]
  • XAM : una interfaz desarrollada bajo los auspicios de la Storage Networking Industry Association . Proporciona una interfaz estándar para archivar productos y proyectos CAS (y similares a CAS). [12]
  • Perkeep : un proyecto de 2011 que busca acercar las ventajas del almacenamiento direccionable por contenido a las masas. Su finalidad es que se utilice en una amplia variedad de casos de uso, como copias de seguridad distribuidas, instantáneas predeterminadas, sistemas de archivos controlados por versiones y compartición de archivos descentralizada y controlada por permisos.
  • Irmin: una "biblioteca OCaml para almacenes persistentes con mecanismos integrados de instantáneas, ramificación y reversión"; los mismos principios de diseño que Git.
  • Cassette: una implementación CAS de código abierto para C#/.NET. [13]
  • Arvados Keep: un sistema de almacenamiento distribuido direccionable por contenido de código abierto. [14] Está diseñado para trabajos de ciencia de datos a gran escala y de uso intensivo de recursos computacionales, como el almacenamiento y procesamiento de datos genómicos.
  • Infinit: una plataforma de almacenamiento direccionable por contenido y descentralizada (peer-to-peer) que fue adquirida por Docker Inc.
  • Sistema de archivos interplanetario (IPFS): un protocolo de distribución de hipermedia punto a punto y direccionable por contenido.
  • casync : una utilidad de software de Linux creada por Lennart Poettering para distribuir imágenes de sistemas de archivos actualizadas con frecuencia a través de Internet. [15]

Véase también

Referencias

  1. ^ Cheung, Shun Yan. "Almacenamiento y organización de archivos de datos en discos". Universidad Emory .
  2. ^ abcdefg Zumwalt, Matt. "El poder del direccionamiento de contenido".
  3. ^ Connor, Deni (29 de mayo de 2003). "El almacenamiento de contenido fijo capta la atención de los usuarios". ComputerWorld .
  4. ^ Almacenamiento direccionable por contenido: el almacenamiento como lo veo, por Mark Ferelli, octubre de 2002, BNET.com
  5. ^ Conferencia técnica anual USENIX 2003, Tema general – Resumen
  6. ^ Actividades de estandarización de la industria CAS – XAM: http://www.snia.org/forums/xam
  7. ^ Sheldon, Robert. "Almacenamiento dirigido por contenido".
  8. ^ Cómo hacer un hash del contenido de un archivo El almacenamiento direccionable por contenido utiliza algoritmos hash. Por Chris Mellor, publicado: 9 de diciembre de 2003, Techworld Archivado el 28 de septiembre de 2007 en Wayback Machine Artículo trasladado a https://www.techworld.com/data/making-a-hash-of-file-content-235/
  9. ^ "Venti: un nuevo enfoque para el almacenamiento de archivos". doc.cat-v.org . Consultado el 30 de junio de 2019 .
  10. ^ "Almacenamiento retorcido". twistedstorage.sourceforge.net . Consultado el 30 de junio de 2019 .
  11. ^ "Almacenamiento de contenido fijo HoneyComb en OpenSolaris.org". Archivado desde el original el 12 de octubre de 2007. Consultado el 1 de octubre de 2007 .
  12. ^ "La especificación de la interfaz XAM (método de acceso extensible)".
  13. ^ Un sistema de almacenamiento direccionable por contenido simple para .NET 4.5 y .NET Core: point-platform/cassette, Point Platform, 6 de mayo de 2019 , consultado el 30 de junio de 2019
  14. ^ "Keep – Arvados". dev.arvados.org . Consultado el 30 de junio de 2019 .
  15. ^ "Lennart Poettering anuncia nuevo proyecto: casync – Phoronix". Phoronix .
  • Almacenamiento rápido y económico dirigido a contenido en Foundation
  • Venti: un nuevo enfoque para el almacenamiento de archivos
Obtenido de "https://es.wikipedia.org/w/index.php?title=Almacenamiento_direccionable_por_contenido&oldid=1213414522"