stringtranslate.com

Контентно-адресуемое хранилище

Хранилище с адресацией по содержимому ( CAS ), также называемое хранилищем с адресацией по содержимому или хранилищем с фиксированным содержимым , представляет собой способ хранения информации, чтобы ее можно было получить на основе ее содержимого, а не ее имени или местоположения. Он использовался для высокоскоростного хранения и извлечения фиксированного контента, например документов, хранящихся в соответствии с правительственными постановлениями . Хранилище с адресацией по содержимому аналогично памяти с адресацией по содержимому .

Системы CAS работают, передавая содержимое файла через криптографическую хеш-функцию для генерации уникального ключа, «адреса содержимого». В каталоге файловой системы хранятся эти адреса и указатель на физическое хранилище содержимого. Поскольку попытка сохранить один и тот же файл приведет к созданию одного и того же ключа, системы CAS гарантируют, что файлы внутри них уникальны, а поскольку изменение файла приведет к созданию нового ключа, системы CAS гарантируют, что файл не изменится.

CAS стал важным рынком в 2000-х годах, особенно после принятия в 2002 году в США Закона Сарбейнса-Оксли , который требовал хранения огромного количества документов в течение длительных периодов времени и извлекался лишь изредка. Постоянно растущая производительность традиционных файловых систем и новых программных систем снизила ценность устаревших систем CAS, которые примерно с 2018 года становятся все более редкими . Тем не менее, принципы адресации контента по-прежнему представляют большой интерес для ученых-компьютерщиков и составляют основу многочисленных новых технологий, таких как одноранговый обмен файлами , криптовалюты и распределенные вычисления .

Описание

Подходы, основанные на местоположении

Традиционные файловые системы обычно отслеживают файлы по их имени . На носителях с произвольным доступом, таких как дискета , это достигается с помощью каталога , состоящего из своего рода списка имен файлов и указателей на данные. Указатели относятся к физическому местоположению на диске, обычно с использованием секторов диска . В более современных системах и более крупных форматах, таких как жесткие диски , каталог сам разделен на множество подкаталогов, каждый из которых отслеживает подмножество общей коллекции файлов. Подкаталоги сами по себе представлены как файлы в родительском каталоге, создавая иерархию или древовидную организацию. Ряд каталогов, ведущих к определенному файлу, известен как «путь». [1]

В контексте CAS эти традиционные подходы называются «с адресацией по местоположению», поскольку каждый файл представлен списком из одного или нескольких местоположений, пути и имени файла в физическом хранилище. В этих системах один и тот же файл с двумя разными именами будет храниться на диске как два файла и, следовательно, иметь два адреса. То же самое верно, если один и тот же файл, даже с одним и тем же именем, хранится более чем в одном месте иерархии каталогов. Это делает их далеко не идеальными для цифрового архива , где любая уникальная информация должна храниться только один раз. [2]

Поскольку концепция иерархического каталога стала более распространенной в операционных системах, особенно в конце 1980-х годов, этот тип шаблона доступа начал использоваться совершенно несвязанными системами. Например, во Всемирной паутине для указания на документы используется аналогичная система пути/имени файла, известная как URL-адрес . Тот же документ на другом веб-сервере имеет другой URL-адрес, несмотря на идентичное содержимое. Аналогичным образом, если существующее местоположение каким-либо образом изменится, если изменится имя файла или сервер перейдет на новое имя службы доменных имен , документ больше не будет доступен. Это приводит к распространенной проблеме гниения ссылок . [2]

КАС и ФКС

Хотя хранение на основе местоположения широко используется во многих областях, так было не всегда. Раньше наиболее распространенным способом получения данных из большой коллекции было использование какого-либо идентификатора на основе содержимого документа. Например, система ISBN используется для создания уникального номера для каждой книги. Если выполнить поиск в Интернете по запросу «ISBN 0465048994», вам будет предоставлен список мест, где можно найти книгу « Почему информация растет» на тему хранения информации. Хотя будет возвращено множество местоположений, все они относятся к одной и той же работе, и пользователь может выбрать наиболее подходящее расположение. Кроме того, если какое-либо из этих мест изменится или исчезнет, ​​контент можно будет найти в любом другом месте. [2]

Системы CAS пытаются автоматически выдавать результаты, подобные ISBN, для любого документа. Они делают это, используя криптографическую хэш-функцию данных документа для создания того, что иногда называют «ключом» или «отпечатком пальца». Этот ключ сильно привязан к точному содержимому документа: например, добавление одного пробела в конце файла приведет к созданию другого ключа. В системе CAS каталог не сопоставляет имена файлов с местоположениями, а вместо этого использует ключи. [2]

Это дает несколько преимуществ. Во-первых, когда файл отправляется на хранение в CAS, хеш-функция создает ключ, а затем проверяет, существует ли этот ключ уже в каталоге. Если это так, файл не сохраняется, поскольку уже находящийся в хранилище идентичен. Это позволяет системам CAS легко избежать дублирования данных. Кроме того, поскольку ключ основан на содержимом файла, получение документа с заданным ключом гарантирует, что сохраненный файл не был изменен. Недостатком этого подхода является то, что любые изменения в документе создают другой ключ, что делает системы CAS непригодными для файлов, которые часто редактируются. По всем этим причинам системы CAS обычно используются для архивов преимущественно статических документов [2] и иногда называются «хранилищами с фиксированным контентом» (FCS). [3]

Поскольку ключи не читабельны для человека, системы CAS реализуют каталог второго типа, в котором хранятся метаданные , которые помогут пользователям найти документ. Они почти всегда включают имя файла, что позволяет использовать классический поиск по имени. Но каталог также будет включать поля для общих систем идентификации, таких как коды ISBN или ISSN , ключевые слова, предоставленные пользователем, отметки времени и даты, а также индексы полнотекстового поиска . Пользователи могут выполнять поиск в этих каталогах и получать ключ, который затем можно использовать для получения фактического документа. [2]

Использование CAS очень похоже на использование поисковой системы в Интернете . Основное отличие состоит в том, что веб-поиск обычно выполняется по темам с использованием внутреннего алгоритма, который находит «связанный» контент, а затем создает список мест. Результатом может быть список идентичного контента в нескольких местах. В CAS для одного поиска может быть возвращено более одного документа, но каждый из этих документов будет уникальным и представлен только один раз.

Еще одним преимуществом CAS является то, что физическое местоположение в хранилище не является частью системы поиска. Если, например, в карточном каталоге библиотеки указано, что книгу можно найти на «полке 43, корзина 10», то при реорганизации библиотеки необходимо обновить весь каталог. Напротив, ISBN не изменится, и книгу можно будет найти, найдя полку с этими номерами. В настройках компьютера файл в файловой системе DOS по пути A:\myfiles\textfile.txt указывает на физическое хранилище файла в подкаталоге myfiles. Этот файл исчезает, если дискета перемещается на диск B:, и даже перемещение его местоположения в иерархии диска требует обновления каталогов, доступных пользователю. В CAS меняется только внутреннее сопоставление ключа с физическим местоположением, и оно существует только в одном месте и может быть спроектировано для эффективного обновления. Это позволяет перемещать файлы между устройствами хранения и даже между носителями, не требуя каких-либо изменений в процессе поиска.

Для данных, которые часто меняются, CAS не так эффективен, как адресация на основе местоположения. В этих случаях устройству CAS потребуется постоянно пересчитывать адрес данных по мере его изменения. Это приведет к сохранению нескольких копий всего почти идентичного документа — проблемы, которую CAS пытается избежать. Кроме того, каталоги, доступные пользователю, должны будут постоянно обновляться этими «новыми» файлами, которые будут загрязняться множеством похожих документов, что затруднит поиск. Напротив, обновление файла в системе, основанной на местоположении, высоко оптимизировано: необходимо изменить только внутренний список секторов, и к этой операции были применены многолетние настройки.

Поскольку CAS используется в основном для архивирования, удаление файлов часто строго контролируется или даже невозможно под контролем пользователя. Напротив, автоматическое удаление является общей функцией, при которой удаляются все файлы старше определенного законом срока, скажем, десяти лет. [2]

В распределенных вычислениях

Самый простой способ реализовать систему CAS — хранить все файлы в типичной базе данных, к которой клиенты подключаются для добавления, запроса и извлечения файлов. Однако уникальные свойства адресации контента означают, что эта парадигма хорошо подходит для компьютерных систем, в которых несколько хостов совместно управляют файлами без центрального органа управления, таких как распределенные системы обмена файлами , в которых физическое местоположение размещенного файла может быстро меняться в зависимости от типа файла. реагирование на изменения в топологии сети, при этом точное содержимое извлекаемых файлов имеет большее значение для пользователей, чем их текущее физическое местоположение. В распределенной системе хэши контента часто используются для быстрого поиска определенных файлов по всей сети или для быстрого просмотра того, какие данные в данном файле были изменены и должны быть переданы другим членам сети с минимальным использованием полосы пропускания . В этих системах адресация контента позволяет абстрагироваться от пользователей, желающих получить доступ к данным, в очень изменчивой топологии сети, по сравнению с такими системами, как Всемирная паутина , в которых согласованное расположение файла или службы является ключом к простоте использования.

Сети с контентной адресацией

Сеть с адресацией по содержимому (CAN) представляет собой распределенную децентрализованную инфраструктуру P2P , которая обеспечивает функциональность хеш-таблиц в масштабах, подобных Интернету . CAN был одним из первых четырех предложений распределенных хеш-таблиц , представленных одновременно с Chord , Pastry и Tapestry .

История

Аппаратное устройство под названием Content Addressable File Store (CAFS) было разработано компанией International Computers Limited (ICL) в конце 1960-х годов и введено в эксплуатацию компанией British Telecom в начале 1970-х годов для поиска в телефонном справочнике . Доступная пользователю функция поиска поддерживалась контроллером диска с высокоуровневым интерфейсом прикладного программирования (API), поэтому пользователи могли отправлять запросы в нечто, похожее на черный ящик , который возвращал документы. Преимущество заключалось в том, что во время поиска диск не требовал обмена информацией с главным компьютером.

Пол Карпентье и Ян ван Риель придумали термин CAS, работая в компании FilePool в конце 1990-х годов. FilePool был приобретен корпорацией EMC в 2001 году и выпущен в следующем году под названием Centera. [4] Время было выбрано идеально; Введение Закона Сарбейнса-Оксли в 2002 году потребовало от компаний хранить огромные объемы документации в течение продолжительных периодов времени и требовало, чтобы они делали это таким образом, чтобы гарантировать, что они не будут редактироваться постфактум. [5]

Вскоре появился ряд подобных продуктов от других поставщиков крупных систем. В середине 2004 года отраслевая группа SNIA начала работать с рядом поставщиков CAS над созданием руководств по стандартному поведению и совместимости для систем CAS. [6]

Помимо CAS, появился ряд аналогичных продуктов, которые добавили возможности CAS к существующим продуктам; примечательным среди них был IBM Tivoli Storage Manager . Развитие облачных вычислений и связанных с ними эластичных облачных систем хранения данных, таких как Amazon S3, еще больше снизило ценность выделенных систем CAS. Dell приобрела EMC в 2016 году и прекратила продажи оригинальной Centera в 2018 году в пользу своего продукта эластичного хранилища. [7]

CAS не был связан с одноранговыми приложениями до 2000-х годов, когда быстрое распространение доступа в Интернет в домах и на предприятиях привело к тому, что большое количество пользователей компьютеров захотели обмениваться файлами, первоначально делая это с помощью централизованно управляемых сервисов, таких как Napster . Однако судебный запрет против Napster побудил к независимому развитию сервисов обмена файлами, таких как BitTorrent , которые нельзя было централизованно закрыть. Чтобы функционировать без центрального сервера федерации, эти службы в значительной степени полагаются на CAS, обеспечивающий точное копирование и простой запрос уникальных файлов. В то же время рост движения за программное обеспечение с открытым исходным кодом в 2000-х годах привел к быстрому распространению сервисов на основе CAS, таких как Git , система контроля версий , которая использует многочисленные криптографические функции, такие как деревья Меркла, для обеспечения целостности данных между пользователями. и позволяют использовать несколько версий файлов с минимальным использованием диска и сети. Примерно в это же время отдельные пользователи криптографии с открытым ключом использовали CAS для хранения своих открытых ключей в таких системах, как серверы ключей .

Рост мобильных вычислений и сетей мобильной широкополосной связи высокой пропускной способности в 2010-х годах в сочетании с растущей зависимостью от веб-приложений для повседневных вычислительных задач усилил нагрузку на существующую модель клиент-сервер с адресацией по местоположению , обычную для интернет-сервисов, что привело к ускорению темпов разрушения каналов. и растущая зависимость от централизованного облачного хостинга . Кроме того, растущая обеспокоенность по поводу централизации вычислительной мощности в руках крупных технологических компаний , потенциальных злоупотреблений монопольной властью и проблем конфиденциальности привела к появлению ряда проектов, созданных с целью создания более децентрализованных систем. Биткойн использует CAS и пары открытого/закрытого ключей для управления адресами кошельков, как и большинство других криптовалют . IPFS использует CAS для идентификации и адресации общедоступных файлов в своей сети. Многочисленные другие одноранговые системы, предназначенные для работы на смартфонах , которые часто получают доступ к Интернету из разных мест, используют CAS для хранения пользовательских данных и доступа к ним как для удобства, так и для целей конфиденциальности данных, таких как безопасный обмен мгновенными сообщениями .

Реализации

Собственный

Система Centera CAS состоит из ряда сетевых узлов (обычно крупных серверов под управлением Linux ), разделенных между узлами хранения и узлами доступа. Узлы доступа поддерживают синхронизированный каталог адресов контента и соответствующий узел хранения, где можно найти каждый адрес. При добавлении нового элемента данных, или blob , устройство вычисляет хэш содержимого и возвращает этот хэш в качестве адреса содержимого BLOB-объекта. [8] Как упоминалось выше, хэш ищется для проверки отсутствия идентичного контента. Если контент уже существует, устройству не нужно выполнять никаких дополнительных действий; адрес контента уже указывает на правильный контент. В противном случае данные передаются на узел хранения и записываются на физический носитель.

Когда устройству предоставляется адрес контента, оно сначала запрашивает каталог о физическом местоположении указанного адреса контента. Затем информация извлекается из узла хранения, а фактический хэш данных пересчитывается и проверяется. Как только это будет завершено, устройство может предоставить запрошенные данные клиенту. В системе Centera каждый адрес контента фактически представляет собой несколько отдельных блоков данных, а также необязательные метаданные . Всякий раз, когда клиент добавляет дополнительный большой двоичный объект к существующему блоку контента, система пересчитывает адрес контента.

Чтобы обеспечить дополнительную безопасность данных, узлы доступа Centera, когда не выполняются операции чтения или записи, постоянно обмениваются данными с узлами хранения, проверяя наличие как минимум двух копий каждого blob, а также их целостность. Кроме того, их можно настроить для обмена данными с другой, например, удаленной системой Centera, тем самым усиливая меры предосторожности против случайной потери данных.

У IBM есть еще один вариант CAS, который может быть программным — Tivoli Storage Manager 5.3 или аппаратным — IBM DR550. Архитектура отличается тем, что она основана на структуре иерархического управления хранилищем (HSM), которая обеспечивает некоторую дополнительную гибкость, например, возможность поддерживать не только диск WORM , но и ленту WORM, а также миграцию данных с диска WORM на ленту WORM и наоборот. Это обеспечивает дополнительную гибкость в ситуациях аварийного восстановления, а также возможность снизить затраты на хранение за счет перемещения данных с диска на ленту.

Другая типичная реализация — iCAS от iTernity. Концепция iCAS основана на контейнерах. Каждый контейнер адресуется по его хеш-значению. Контейнер содержит разное количество документов с фиксированным содержимым. Контейнер не подлежит изменению, а значение хеш-функции фиксируется после процесса записи.

Открытый источник

Смотрите также

Рекомендации

  1. ^ Чунг, Шун Ян. «Хранение и организация файлов данных на дисках». Университет Эмори .
  2. ^ abcdefg Зумвальт, Мэтт. «Сила контент-адресации».
  3. Коннор, Дени (29 мая 2003 г.). «Фиксированное хранилище контента привлекает внимание пользователей». Компьютерный мир .
  4. ^ Хранилище с адресацией по содержимому – Хранилище, каким я его вижу, Марк Ферелли, октябрь 2002 г., BNET.com
  5. ^ Ежегодная техническая конференция USENIX 2003, общий курс – Аннотация
  6. ^ Деятельность CAS по отраслевой стандартизации - XAM: http://www.snia.org/forums/xam
  7. ^ Шелдон, Роберт. «Адресованное хранилище контента».
  8. ^ Создание хэша содержимого файла. В хранилище, адресуемом по содержимому, используются алгоритмы хеширования. Крис Меллор, Опубликовано: 9 декабря 2003 г., Techworld. Архивировано 28 сентября 2007 г. в Wayback Machine. Статья перемещена на https://www.techworld.com/data/. создание хэша-содержимого-файла-235/
  9. ^ «Венти: новый подход к архивному хранению». doc.cat-v.org . Проверено 30 июня 2019 г.
  10. ^ «Искажённое хранилище». Twistedstorage.sourceforge.net . Проверено 30 июня 2019 г.
  11. ^ «Хранилище фиксированного контента HoneyComb на OpenSolaris.org» . Архивировано из оригинала 12 октября 2007 года . Проверено 1 октября 2007 г.
  12. ^ «Спецификация интерфейса XAM (метод расширяемого доступа)» .
  13. ^ Простая система хранения с адресацией по содержимому для .NET 4.5 и .NET Core: point-platform/cassette, Point Platform, 6 мая 2019 г. , получено 30 июня 2019 г.
  14. ^ "Держать - Арвадос" . dev.arvados.org . Проверено 30 июня 2019 г.
  15. ^ «Леннарт Поеттеринг объявляет о новом проекте: casync - Phoronix» . Фороникс .

Внешние ссылки