Хранилище с адресацией по содержимому , также называемое хранилищем с адресацией по содержимому или сокращенно CAS , представляет собой способ хранения информации, чтобы ее можно было извлекать на основе ее содержимого, а не местоположения. Он использовался для высокоскоростного хранения и поиска фиксированного содержимого, такого как документы, хранящиеся в соответствии с государственными постановлениями. Хранилище с адресацией по содержанию похоже на память с адресацией по содержанию .
CAS и FCS
Content Addressable Storage (CAS) и Fixed Content Storage (FCS) - это два разных акронима для одного и того же типа технологии. Оба предназначены для хранения данных, которые не изменяются в течение фиксированных периодов времени. CAS обычно использует дайджест криптографической хеш-функции , сгенерированный из документа, для идентификации этого документа в системе хранения. Если хеш-функция является слабой, что означает, что разные входные данные в алгоритм хеширования могут привести к созданию одного и того же дайджеста, может возникнуть ситуация, когда разные документы сохранят один и тот же дайджест, используемый для их идентификации. Это демонстрирует потенциальную слабость использования хешей для дифференциации данных. Врожденная слабость примитивных алгоритмов хеширования становится проблемой при работе с невероятно большими хранилищами данных или когда данные, помещенные в такую систему, могут быть созданы злонамеренно для использования этой слабости.
Адресация контента и адресация местоположения
В отличие от хранилища с адресной адресацией, типичное локальное или сетевое устройство хранения называется адресуемым по местоположению . В запоминающем устройстве с адресацией местоположения каждый элемент данных хранится на физическом носителе, и его местоположение записывается для последующего использования. На запоминающем устройстве часто хранится список или каталог этих мест. Когда будущий запрос делается для определенного элемента, запрос включает только местоположение (например, путь и имена файлов) данных. Затем запоминающее устройство может использовать эту информацию для поиска данных на физическом носителе и их извлечения. Когда новая информация записывается в устройство с адресом местоположения, она просто сохраняется в некотором доступном свободном пространстве, независимо от его содержимого. Информация в данном месте обычно может быть изменена или полностью перезаписана без каких-либо специальных действий со стороны запоминающего устройства.
В рамках этого обсуждения вышесказанное можно рассматривать как хранилище с адресацией контейнера .
Напротив, когда информация хранится в системе CAS, система будет записывать адрес содержимого , который является идентификатором, однозначно и постоянно связанным с самим информационным содержимым. Запрос на получение информации из системы CAS должен предоставлять идентификатор контента, по которому система может определить физическое расположение данных и извлечь их. Поскольку идентификаторы основаны на содержимом, любое изменение элемента данных обязательно изменит его адрес содержимого. Почти во всех случаях устройство CAS не позволяет редактировать информацию после того, как она была сохранена. Возможность его удаления часто контролируется политикой.
История CAS
Аппаратное устройство, называемое Content Addressable File Store (CAFS). CAFS была разработана ICL в Великобритании в шестидесятые годы [1], и British Telecom была одним из первых клиентов. [2] Разработанная в шестидесятых [3] и доступная в 1970-х и 1980-х годах, она обеспечивала дисковое хранилище с адресной привязкой и встроенной функцией поиска. Логика поиска была встроена в контроллер диска, так что запрос, выраженный на языке запросов высокого уровня, мог быть скомпилирован в спецификацию поиска, которая затем отправлялась на контроллер диска для выполнения.
Хотя идея хранения с адресацией по содержанию не нова, системы производственного качества не были доступны примерно до 2003 года. [4] В середине 2004 года отраслевая группа SNIA начала работать с рядом поставщиков CAS для создания стандартного поведения и взаимодействия. руководящие принципы для систем CAS. [5]
Эффективность CAS
Хранилище CAS наиболее эффективно работает с данными, которые не часто меняются. Это представляет особый интерес для крупных организаций, которые должны соблюдать законы о хранении документов, таких как Sarbanes-Oxley . В этих корпорациях большой объем документов будет храниться до десяти лет без изменений и нечастого доступа. CAS предназначен для очень быстрого поиска содержимого заданного документа и обеспечивает уверенность в том, что полученный документ идентичен первоначально сохраненному. (Если бы документы были разными, их адреса содержимого были бы разными.) Кроме того, поскольку данные хранятся в системе CAS тем, что они содержат, никогда не бывает ситуации, когда в хранилище существует более одной копии идентичного документа. По определению, два идентичных документа имеют одинаковый адрес содержимого и, следовательно, указывают на одно и то же место хранения.
Для данных, которые часто меняются, CAS не так эффективен, как адресация на основе местоположения. В этих случаях устройству CAS потребуется постоянно пересчитывать адрес данных по мере его изменения. Клиентские системы будут вынуждены постоянно обновлять информацию о том, где существует данный документ. Для систем с произвольным доступом CAS также потребуется учитывать возможность расхождения двух изначально идентичных документов, что требует создания копии одного документа по запросу.
Типовая реализация
Пол Карпентье и Ян ван Риль придумали термин CAS, работая в компании FilePool в конце 1990-х. FilePool был приобретен в 2001 году и стал основой первой коммерчески доступной системы CAS, которая была представлена как платформа EMC Centera. [6] Система Centera CAS состоит из ряда сетевых узлов (серверов 1-U под управлением Linux ), разделенных между узлами хранения и узлами доступа. Узлы доступа поддерживают синхронизированный каталог адресов контента и соответствующий узел хранения, где можно найти каждый адрес. Когда добавляется новый элемент данных или большой двоичный объект ( большой двоичный объект ), устройство вычисляет хэш содержимого и возвращает этот хеш в качестве адреса содержимого большого двоичного объекта . [7] Как упоминалось выше, поиск по хешу выполняется для проверки того, что идентичный контент еще не присутствует. Если контент уже существует, устройству не нужно выполнять никаких дополнительных действий; адрес содержимого уже указывает на правильный контент. В противном случае данные передаются на узел хранения и записываются на физический носитель.
Когда адрес содержимого предоставляется устройству, оно сначала запрашивает каталог о физическом местонахождении указанного адреса содержимого. Затем информация извлекается из узла хранения, а фактический хэш данных пересчитывается и проверяется. Как только это будет завершено, устройство может предоставить запрашиваемые данные клиенту. В системе Centera каждый адрес содержимого фактически представляет собой несколько отдельных больших двоичных объектов данных, а также дополнительные метаданные . Каждый раз, когда клиент добавляет дополнительный большой двоичный объект к существующему блоку содержимого, система повторно вычисляет адрес содержимого.
Чтобы обеспечить дополнительную безопасность данных, узлы доступа Centera, когда не выполняется операция чтения или записи, постоянно взаимодействуют с узлами хранения, проверяя наличие как минимум двух копий каждого большого двоичного объекта, а также их целостность. Кроме того, они могут быть настроены для обмена данными с другой, например, удаленной системой Centera, тем самым усиливая меры предосторожности против случайной потери данных.
У IBM есть другой вариант CAS, который может быть программным, Tivoli Storage manager 5.3, или аппаратным, IBM DR550. Архитектура отличается тем , что она основана на иерархическом управление хранением данных (HSM) дизайн , который обеспечивает дополнительную гибкость , такую как возможность поддерживать не только WORM диска , но WORM ленту и миграцию данных с WORM диска на WORM ленту и наоборот. Это обеспечивает дополнительную гибкость в ситуациях аварийного восстановления, а также возможность снизить затраты на хранение за счет перемещения данных с диска на ленту.
Еще одна типичная реализация - iCAS от iTernity. Концепция iCAS основана на контейнерах. К каждому контейнеру обращаются по его хэш-значению. Контейнер содержит разное количество документов с фиксированным содержанием. Контейнер не подлежит изменению, а значение хеш-функции фиксируется после процесса записи.
Реализации с открытым исходным кодом
Одним из первых адресацией по содержанию серверов хранения данных, Venti , [8] был первоначально разработан для Plan 9 от Bell Labs и теперь также доступна для Unix-подобных систем , как часть плана 9 из пространства пользователя .
Первым шагом к реализации CAS + с открытым исходным кодом является Twisted Storage. [9]
Tahoe Least-Authority File Store - это реализация CAS с открытым исходным кодом.
Git - это файловая система CAS в пользовательском пространстве . Git в основном используется как система управления исходным кодом.
git-application - это распределенная система синхронизации файлов, которая использует хранилище с адресной информацией для файлов, которыми она управляет. Он использует Git и символические ссылки для индексации их расположения в файловой системе.
Project Honeycomb - это API с открытым исходным кодом для систем CAS. [10]
Интерфейс XAM был разработан под эгидой ассоциации Storage Networking Industry Association . Он предоставляет стандартный интерфейс для архивирования продуктов и проектов CAS (и подобных CAS). [11]
Perkeep - это недавний проект, призванный довести преимущества адресно-адресного хранилища «в массы». Он предназначен для использования в самых разных сценариях использования, включая распределенное резервное копирование, создание моментальных снимков по умолчанию, файловую систему с контролем версий и децентрализованный обмен файлами с контролем разрешений.
Irmin - это «библиотека OCaml для постоянных хранилищ со встроенными механизмами моментальных снимков, ветвления и возврата»; те же принципы проектирования, что и Git.
Cassette - это реализация CAS с открытым исходным кодом для C # /. NET. [12]
Arvados Keep - это распределенная система хранения с открытым исходным кодом, адресуемая по содержанию. [13] Он разработан для крупномасштабных, требующих больших вычислительных ресурсов работы по науке о данных, таких как хранение и обработка геномных данных.
Infinit - это децентрализованная (одноранговая) платформа хранения с адресной адресацией, которая была приобретена Docker Inc.
Межпланетная файловая система (IPFS) - это одноранговый протокол распространения гипермедиа с адресацией по содержанию.
casync - это программная утилита Linux от Леннарта Поеттеринга для распространения часто обновляемых образов файловой системы через Интернет. [14]
Смотрите также
- Хранилище файлов с адресным содержимым
- Контент-ориентированные сети / именованные сети данных
- Хранилище данных
- Пишите один раз, прочтите много
Рекомендации
- ^ Википедия, Content Addressable File Store ", Wikipedia
- ^ Википедия, Content Addressable File Store ", Wikipedia
- ^ Википедия, Content Addressable File Store ", Wikipedia
- ^ Ежегодная техническая конференция USENIX 2003, General Track - Abstract
- ^ Деятельность по стандартизации индустрии CAS - XAM: http://www.snia.org/forums/xam
- ^ Контент-адресное хранилище - Storage as I See it , Марк Ферелли, октябрь 2002 г., BNET.com
- ^ При создании хеш-значения содержимого файла хранилище с адресацией по содержимому использует алгоритмы хеширования. , Крис Меллор, Дата публикации: 9 декабря 2003 г., Techworld Архивировано 28 сентября 2007 г. в Wayback Machine Статья перемещена по адресу https://www.techworld.com/data/making-a-hash-of-file-content-235/
- ^ «Venti: новый подход к архивному хранению» . doc.cat-v.org . Проверено 30 июня 2019 .
- ^ «Витая память» . twistedstorage.sourceforge.net . Проверено 30 июня 2019 .
- ^ «Архивная копия» . Архивировано из оригинального 12 октября 2007 года . Проверено 1 октября 2007 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ «Спецификация интерфейса XAM (расширяемый метод доступа)» .
- ^ Простая адресно-ориентированная система хранения для .NET 4.5 и .NET Core: point-platform / cassette , Point Platform, 6 мая 2019 г. , получено 30 июня 2019 г.
- ^ «Держи - Арвадос» . dev.arvados.org . Проверено 30 июня 2019 .
- ^ "Леннарт Поеттеринг анонсирует новый проект: casync - Phoronix" . Фороникс .
Внешние ссылки
- Быстрое и недорогое хранилище с адресной информацией в Foundation
- Venti: новый подход к архивному хранению