El almacenamiento direccionable por contenido , también conocido como almacenamiento direccionado por contenido o CAS abreviado , es una forma de almacenar información para que pueda recuperarse en función de su contenido, no de su ubicación. Se ha utilizado para el almacenamiento de alta velocidad y la recuperación de contenido fijo, como documentos almacenados para cumplir con las regulaciones gubernamentales. El almacenamiento direccionable por contenido es como una memoria direccionable por contenido .
CAS y FCS
Content Addressable Storage (CAS) y Fixed Content Storage (FCS) son dos siglas diferentes para el mismo tipo de tecnología. Ambos están destinados a almacenar datos que no cambian durante períodos de tiempo fijos. CAS normalmente utiliza un resumen de la función hash criptográfica generado a partir del documento para identificar ese documento en el sistema de almacenamiento. Si la función hash es débil, lo que significa que diferentes entradas en el algoritmo de hash podrían dar como resultado la creación del mismo resumen, podría haber una situación en la que diferentes documentos retengan el mismo resumen que se usa para identificarlos. Esto expone una debilidad potencial de depender de hashes para diferenciar los datos. La debilidad inherente de los algoritmos de hash primitivos se convierte en una preocupación cuando se trabaja con almacenes de datos increíblemente grandes o cuando los datos colocados en un sistema de este tipo podrían crearse maliciosamente para explotar esta debilidad.
Dirigido al contenido versus a la ubicación
Cuando se compara con el almacenamiento con dirección de contenido, un dispositivo de almacenamiento local o en red típico se denomina con dirección de ubicación . En un dispositivo de almacenamiento con dirección de ubicación, cada elemento de datos se almacena en el medio físico y su ubicación se registra para su uso posterior. El dispositivo de almacenamiento a menudo mantiene una lista o directorio de estas ubicaciones. Cuando se realiza una solicitud futura para un elemento en particular, la solicitud incluye solo la ubicación (por ejemplo, la ruta y los nombres de archivo) de los datos. El dispositivo de almacenamiento puede usar esta información para ubicar los datos en el medio físico y recuperarlos. Cuando se escribe nueva información en un dispositivo con dirección de ubicación, simplemente se almacena en algún espacio libre disponible, sin importar su contenido. La información en una ubicación determinada generalmente se puede alterar o sobrescribir completamente sin ninguna acción especial por parte del dispositivo de almacenamiento.
Dentro del alcance de esta discusión, una buena forma de pensar en lo anterior es como almacenamiento dirigido a contenedores .
Por el contrario, cuando la información se almacena en un sistema CAS, el sistema registrará una dirección de contenido , que es un identificador vinculado única y permanentemente al contenido de la información en sí. Una solicitud para recuperar información de un sistema CAS debe proporcionar el identificador de contenido, a partir del cual el sistema puede determinar la ubicación física de los datos y recuperarlos. Debido a que los identificadores se basan en el contenido, cualquier cambio en un elemento de datos cambiará necesariamente su dirección de contenido. En casi todos los casos, un dispositivo CAS no permitirá editar información una vez que se haya almacenado. Si se puede eliminar, a menudo se controla mediante una política.
Historia CAS
Un dispositivo de hardware llamado Almacén de archivos direccionables por contenido (CAFS). CAFS fue desarrollado por ICL en el Reino Unido en los años sesenta, [1] y British Telecom fue uno de los primeros clientes. [2] Desarrollado en los años sesenta [3] y disponible en los años setenta y ochenta, proporcionó almacenamiento en disco con dirección de ubicación con capacidad de búsqueda incorporada. La lógica de búsqueda se incorporó al controlador de disco, de modo que una consulta expresada en un lenguaje de consulta de alto nivel podría compilarse en una especificación de búsqueda que luego se envió al controlador de disco para su ejecución.
Si bien la idea del almacenamiento dirigido al contenido no es nueva, los sistemas de calidad de producción no estuvieron disponibles hasta aproximadamente 2003. [4] A mediados de 2004, el grupo industrial SNIA comenzó a trabajar con varios proveedores de CAS para crear un comportamiento estándar e interoperabilidad. directrices para los sistemas CAS. [5]
Eficiencia CAS
El almacenamiento CAS funciona de manera más eficiente con datos que no cambian con frecuencia. Es de particular interés para las grandes organizaciones que deben cumplir con las leyes de retención de documentos, como Sarbanes-Oxley . En estas corporaciones, se almacenará un gran volumen de documentos durante hasta una década, sin cambios y con acceso infrecuente. CAS está diseñado para agilizar la búsqueda del contenido de un documento determinado y garantiza que el documento recuperado sea idéntico al almacenado originalmente. (Si los documentos fueran diferentes, sus direcciones de contenido serían diferentes). Además, dado que los datos se almacenan en un sistema CAS por lo que contienen, nunca hay una situación en la que exista más de una copia de un documento idéntico almacenado. Por definición, dos documentos idénticos tienen la misma dirección de contenido y, por lo tanto, apuntan a la misma ubicación de almacenamiento.
Para los 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 modificaron. Los sistemas cliente se verían obligados a actualizar continuamente la información sobre dónde existe un documento determinado. Para los sistemas de acceso aleatorio, un CAS también necesitaría manejar la posibilidad de que dos documentos inicialmente idénticos divergieran, requiriendo que se creara una copia de un documento bajo demanda.
Implementación típica
Paul Carpentier y Jan van Riel acuñaron el término CAS mientras trabajaban en una empresa llamada FilePool a fines de la década de 1990. FilePool fue adquirido en 2001 y se convirtió en la base del primer sistema CAS disponible comercialmente, que se introdujo como la plataforma Centera de EMC . [6] El sistema Centera CAS consta de una serie de nodos en red (servidores 1-U 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 ( objeto binario grande ), el dispositivo calcula un hash del contenido y devuelve este hash como la dirección de contenido del blob. [7] Como se mencionó anteriormente, se busca en el hash para verificar que no haya 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 al directorio la ubicación física de la dirección de contenido especificada. A continuación, se recupera la información 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 en realidad representa 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 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, pueden configurarse para intercambiar datos con un sistema Centera diferente, por ejemplo, fuera del sitio, reforzando así las precauciones contra la pérdida accidental de datos.
IBM tiene otro tipo de CAS que puede estar basado en software, Tivoli Storage Manager 5.3, o basado en hardware, el IBM DR550. La arquitectura es diferente en que se basa en jerárquico de gestión de almacenamiento de diseño (HSM) que proporciona cierta flexibilidad adicional, tal como ser capaz de soportar no sólo WORM disco pero la cinta WORM y la migración de datos desde el disco WORM en 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 los 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 direcciona 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.
Implementaciones de código abierto
Uno de los primeros servidores de almacenamiento con dirección de contenido, Venti , [8] fue desarrollado originalmente para Plan 9 de Bell Labs y ahora también está disponible para sistemas similares a Unix como parte de Plan 9 de User Space .
El primer paso hacia una implementación CAS + de código abierto es Twisted Storage. [9]
Tahoe Least-Authority File Store es una implementación de código abierto de CAS.
Git es un sistema de archivos CAS de espacio de usuario . Git se utiliza principalmente como sistema de control de código fuente.
git-Annex es 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.
Project Honeycomb es una API de código abierto para sistemas CAS. [10]
La interfaz XAM se desarrolló bajo los auspicios de Storage Networking Industry Association . Proporciona una interfaz estándar para archivar productos y proyectos CAS (y similares). [11]
Perkeep es un proyecto reciente para llevar las ventajas del almacenamiento direccionable por contenido "a las masas". Está destinado a ser utilizado para una amplia variedad de casos de uso, incluida la copia de seguridad distribuida, una instantánea de forma predeterminada, un sistema de archivos controlado por versión y el intercambio de archivos descentralizado y controlado por permisos.
Irmin es una "biblioteca de OCaml para almacenes persistentes con instantáneas integradas, mecanismos de ramificación y reversión"; los mismos principios de diseño que Git.
Cassette es una implementación CAS de código abierto para C # / .NET. [12]
Arvados Keep es un sistema de almacenamiento distribuido direccionable por contenido de código abierto. [13] Está diseñado para trabajos de ciencia de datos computacionalmente intensivos a gran escala, como almacenar y procesar datos genómicos.
Infinit es una plataforma de almacenamiento de contenido direccionable y descentralizada (peer-to-peer) que fue adquirida por Docker Inc.
InterPlanetary File System (IPFS), es un protocolo de distribución de hipermedia peer-to-peer direccionable por contenido.
casync es una utilidad de software de Linux de Lennart Poettering para distribuir imágenes del sistema de archivos que se actualizan con frecuencia a través de Internet. [14]
Ver también
- Almacén de archivos direccionables de contenido
- Redes centradas en contenido / redes de datos con nombre
- Almacenamiento definido por datos
- Escribir una vez Leer muchas
Referencias
- ^ Wikipedia, almacén de archivos direccionables de contenido ", Wikipedia
- ^ Wikipedia, almacén de archivos direccionables de contenido ", Wikipedia
- ^ Wikipedia, almacén de archivos direccionables de contenido ", Wikipedia
- ^ Conferencia técnica anual de USENIX 2003, Vía general - Resumen
- ^ Actividades de estandarización de la industria CAS - XAM: http://www.snia.org/forums/xam
- ^ Almacenamiento direccionable por contenido: almacenamiento como yo lo veo , por Mark Ferelli, octubre de 2002, BNET.com
- ^ 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/making-a-hash-of-file-content-235/
- ^ "Venti: un nuevo enfoque para el almacenamiento de archivos" . doc.cat-v.org . Consultado el 30 de junio de 2019 .
- ^ "Almacenamiento retorcido" . twistedstorage.sourceforge.net . Consultado el 30 de junio de 2019 .
- ^ "Copia archivada" . Archivado desde el original el 12 de octubre de 2007 . Consultado el 1 de octubre de 2007 .Mantenimiento de CS1: copia archivada como título ( enlace )
- ^ "La especificación de la interfaz XAM (método de acceso extensible)" .
- ^ Un sistema de almacenamiento de contenido direccionable 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
- ^ "Mantener - Arvados" . dev.arvados.org . Consultado el 30 de junio de 2019 .
- ^ "Lennart Poettering anuncia nuevo proyecto: casync - Phoronix" . Phoronix .
enlaces externos
- Almacenamiento basado en contenido rápido y económico en Foundation
- Venti: un nuevo enfoque para el almacenamiento de archivos