stringtranslate.com

Almacenamiento direccionable por contenido

El almacenamiento direccionable por contenido ( CAS ), también conocido como almacenamiento direccionado 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 recuperación de alta velocidad de contenido fijo, como documentos almacenados para cumplir con las regulaciones gubernamentales [ cita necesaria ] . 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 debido a que cambiar el archivo dará como resultado una nueva clave, los sistemas CAS garantizan que el archivo no se modificará.

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 se recuperaban sólo 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 del contenido siguen siendo de gran interés para los informáticos y forman el núcleo de numerosas tecnologías emergentes, como el intercambio de archivos entre pares , las criptomonedas y la informática distribuida .

Descripción

Enfoques basados ​​en la ubicación

Los sistemas de archivos tradicionales generalmente rastrean los archivos según su nombre . 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 hacen referencia a una ubicación física en el disco, normalmente utilizando sectores del 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 a su vez como archivos en un directorio principal, lo que produce una jerarquía u organización en forma de á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 "direccionados a la 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 tanto, tendrá dos direcciones. Lo mismo ocurre 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 que 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 volvió más común en los sistemas operativos, especialmente a finales 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 de nombre de ruta/nombre de archivo conocido como URL para señalar documentos. Un mismo documento en otro servidor web tiene una URL diferente a pesar de tener idéntico contenido. Del mismo modo, si una ubicación existente cambia de alguna manera, si el nombre del archivo cambia o el servidor se mueve a un nuevo nombre de servicio de nombre de dominio , el documento ya no será accesible. Esto conduce al problema común de la pudrición del enlace . [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 colección grande 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 uno realiza una búsqueda en la web de "ISBN 0465048994", se le proporcionará una lista de ubicaciones para el libro Por qué crece la información sobre el tema del almacenamiento de información. Aunque se devolverán muchas ubicaciones, todas se refieren al mismo trabajo y el usuario puede elegir la ubicación que sea más apropiada. Además, si alguna de estas ubicaciones cambia o desaparece, el contenido se podrá encontrar en cualquiera de las otras ubicaciones. [2]

Los sistemas CAS intentan producir resultados similares a ISBN automáticamente y en cualquier documento. Lo hacen utilizando una función hash criptográfica en los datos del documento para producir lo que a veces se conoce como "clave" o "huella digital". Esta clave está fuertemente ligada al contenido exacto del documento; agregar un solo espacio al final del archivo, por ejemplo, producirá una clave diferente. En un sistema CAS, el directorio no asigna nombres de archivos a ubicaciones, sino que utiliza las claves. [2]

Esto proporciona varios beneficios. Por un lado, cuando se envía un archivo al CAS para su almacenamiento, la función hash producirá una clave y luego verificará 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 que los sistemas CAS eviten fácilmente 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 sido modificado. 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 les conoce como "almacenamiento de contenido fijo" (FCS). [3]

Debido a que 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 clásica recuperación basada en nombres. 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, marcas 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 puede usarse para recuperar el documento real. [2]

Usar un CAS es muy similar a usar un motor de búsqueda web . La principal diferencia es que una búsqueda web generalmente se realiza por tema utilizando un algoritmo interno que encuentra contenido "relacionado" y luego produce una lista de ubicaciones. Los resultados pueden ser una lista del contenido idéntico en varias ubicaciones. En un CAS, se puede devolver más de un documento para una búsqueda determinada, pero cada uno de esos documentos será único y se presentará sólo una vez.

Otra ventaja de CAS es que la ubicación física almacenada no forma parte del sistema de búsqueda. Si, por ejemplo, el catálogo de fichas de una biblioteca indica que se puede encontrar un libro en el "estante 43, contenedor 10", si se reorganiza la biblioteca, es necesario actualizar todo el catálogo. Por el contrario, el ISBN no cambiará y el libro se podrá encontrar buscando el estante con esos números. En la configuración de la computadora, 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 del disco requiere que se actualicen los directorios de acceso al usuario. En CAS, solo cambia el mapeo interno desde la clave hasta 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 requerir ningún cambio en la recuperación.

Para datos que cambian con frecuencia, CAS no es tan eficiente como el direccionamiento basado en la ubicación. En estos casos, el dispositivo CAS necesitaría volver a calcular continuamente la dirección de los datos a medida que se cambiaban. Esto daría como resultado que se almacenen múltiples copias de todo el documento casi idéntico, el problema que 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á muy optimizada, sólo hay que cambiar la lista interna de sectores y se han aplicado muchos años de ajuste a esta operación.

Dado que CAS se utiliza principalmente para archivar, la eliminación de archivos suele estar estrictamente controlada o incluso es imposible bajo el control del usuario. Por el contrario, la eliminación automática es una característica común, que elimina todos los archivos que tengan una antigüedad superior a algún requisito legalmente definido, digamos 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 gestionan archivos de forma colaborativa sin una autoridad central, como los sistemas distribuidos de intercambio de archivos , en los que la ubicación física de un archivo alojado puede cambiar rápidamente en respuesta a los cambios en la topología de la red, mientras que el contenido exacto de los archivos que se recuperarán son más importantes 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 de 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 distribuida y descentralizada que proporciona funcionalidad de tabla hash a una escala similar a la de Internet . CAN fue una de las cuatro propuestas originales de tablas hash distribuidas , introducidas simultáneamente con Chord , Pastry y Tapestry .

Historia

International Computers Limited (ICL) desarrolló un dispositivo de hardware llamado Content Addressable File Store (CAFS) a finales de la década de 1960 y British Telecom lo puso en uso a principios de la década de 1970 para consultas en directorios telefónicos . La funcionalidad de búsqueda accesible para el usuario era mantenida por el controlador de disco con una interfaz de programación de aplicaciones (API) de alto nivel para que los usuarios pudieran 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 la computadora host 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 1990. FilePool fue comprado por EMC Corporation en 2001 y fue lanzado al año siguiente como Centera. [4] El momento era perfecto; La introducción de la Ley Sarbanes-Oxley en 2002 obligó a las empresas a almacenar enormes cantidades de documentación durante períodos prolongados y les exigió que lo hicieran de una manera que garantizara que no fueran editadas después del hecho. [5]

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

Además de CAS, surgieron varios productos similares que agregaron capacidades similares a CAS a productos existentes; Entre ellos destaca IBM Tivoli Storage Manager . El auge de la computación en la nube y los sistemas elásticos de almacenamiento en la nube 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 en favor de su producto de almacenamiento elástico. [7]

CAS no estuvo asociado 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 que un gran número de usuarios de computadoras quisieran intercambiar archivos, originalmente haciéndolo en servicios administrados centralmente como Napster . Sin embargo, una orden judicial contra Napster impulsó el desarrollo independiente de servicios para compartir archivos como BitTorrent , que no podían cerrarse de forma centralizada. Para funcionar sin un servidor federado central, estos servicios dependen en gran medida de CAS para imponer la copia fiel y la consulta sencilla de archivos únicos. Al mismo tiempo, el crecimiento del movimiento del software de código abierto en la década de 2000 condujo 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 los árboles Merkle para reforzar la integridad de los datos entre usuarios. y permitir múltiples versiones de archivos con un uso mínimo de disco y red. Por esta época, los usuarios individuales de criptografía de clave pública utilizaban 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óvil de alta capacidad en la década de 2010, junto con la creciente dependencia de las aplicaciones web para las tareas informáticas cotidianas, pusieron a prueba el actual modelo cliente-servidor dirigido a la ubicación, común entre los servicios de Internet, lo que provocó un ritmo acelerado de descomposición de los enlaces. y una mayor dependencia del alojamiento en la nube centralizado . Además, las crecientes preocupaciones sobre la centralización del poder informático en manos de grandes empresas de tecnología , posibles abusos de poder monopólico y preocupaciones sobre la privacidad llevaron a una serie de proyectos creados con el objetivo de crear sistemas más descentralizados . Bitcoin utiliza CAS y pares de claves pública/privada para administrar las direcciones de billetera, al igual que la mayoría de las demás criptomonedas . IPFS utiliza CAS para identificar y abordar archivos alojados comunitariamente en su red. Muchos otros sistemas peer-to-peer diseñados para ejecutarse en teléfonos inteligentes , que a menudo acceden a Internet desde distintas ubicaciones, utilizan CAS para almacenar y acceder a los datos del usuario por motivos de conveniencia y privacidad de los datos, como la mensajería instantánea segura .

Implementaciones

Propiedad

El sistema Centera CAS consta de una serie de nodos en red (normalmente servidores grandes 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 agrega un nuevo elemento de datos, o blob , el dispositivo calcula un hash del contenido y devuelve este hash como la dirección del contenido del blob. [8] Como se mencionó anteriormente, se busca el hash para verificar que no esté presente contenido idéntico. Si el contenido ya existe, el dispositivo no necesita realizar ningún paso adicional; la dirección del 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 en el directorio 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 completado esto, el dispositivo puede proporcionar los datos solicitados al cliente. Dentro del sistema Centera, cada dirección de contenido en realidad representa una cantidad de blobs de datos distintos, así como metadatos opcionales . Cada vez que un cliente agrega un blob adicional a un bloque de contenido existente, el sistema vuelve a calcular la dirección del contenido.

Para brindar 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, fortaleciendo 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, el 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 poder admitir no solo discos WORM sino también cintas WORM y la migración de datos de un disco WORM a una cinta WORM y viceversa. Esto proporciona flexibilidad adicional en situaciones de recuperación ante 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 aborda por su valor hash. Un contenedor contiene diferentes números de documentos de contenido fijo. El contenedor no se puede cambiar y el valor hash se fija después del proceso de escritura.

Fuente abierta

Ver 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 de la dirección de contenidos".
  3. ^ Connor, Deni (29 de mayo de 2003). "El almacenamiento de contenido fijo llama la atención de los usuarios". Mundo de la informática .
  4. ^ Almacenamiento direccionable por contenido: almacenamiento tal como lo veo, por Mark Ferelli, octubre de 2002, BNET.com
  5. ^ Conferencia técnica anual de USENIX 2003, vía general - Resumen
  6. ^ Actividades de estandarización de la industria CAS - XAM: http://www.snia.org/forums/xam
  7. ^ Sheldon, Robert. "Almacenamiento de contenido dirigido".
  8. ^ Hacer un hash del contenido del 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 El artículo se trasladó a https://www.techworld.com/data/ hacer-un-hash-de-contenido-de-archivo-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 simple direccionable por contenido 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. ^ "Mantener - Arvados". dev.arvados.org . Consultado el 30 de junio de 2019 .
  15. ^ "Lennart Poettering anuncia nuevo proyecto: casync - Phoronix". Forónix .

enlaces externos