stringtranslate.com

Parchive

Parchive ( сокращение от parity archive , официально известное как Parity Volume Set Specification [1] [2] ) — это система стирающего кода , которая создает файлы par для проверки контрольной суммы целостности данных , с возможностью выполнения операций по восстановлению данных , которые могут исправить или регенерировать поврежденные или отсутствующие данные.

Parchive изначально был написан для решения проблемы надежного обмена файлами в Usenet , [3] но его можно использовать для защиты любых данных от повреждения данных , сбоя диска , сбоя битов и случайного или злонамеренного повреждения. Несмотря на название, Parchive использует более продвинутые методы (в частности, коды исправления ошибок ), чем упрощенные методы четности обнаружения ошибок .

По состоянию на 2014 год PAR1 устарел, PAR2 готов к широкому использованию, а PAR3 — это прекращенная экспериментальная версия, разработанная автором MultiPar Ютакой Савадой. [4] [5] [6] [7] Исходный проект SourceForge Parchive неактивен с 30 апреля 2015 года. [8] Новая спецификация PAR3 разрабатывается с 28 апреля 2019 года автором спецификации PAR2 Майклом Нахасом. Альфа-версия спецификации PAR3 была опубликована 29 января 2022 года [9], в то время как сама программа находится в стадии разработки.

История

Parchive был предназначен для повышения надежности передачи файлов через группы новостей Usenet . Usenet изначально был разработан для неформальных бесед, а базовый протокол NNTP не был предназначен для передачи произвольных двоичных данных. Другим ограничением, приемлемым для бесед, но не для файлов, было то, что сообщения обычно были довольно короткими по длине и ограничивались 7-битным текстом ASCII . [10]

Были разработаны различные методы для отправки файлов через Usenet, такие как uuencoding и Base64 . Позднее программное обеспечение Usenet допускало 8-битный Extended ASCII , что позволяло использовать новые методы, такие как yEnc . Большие файлы разбивались, чтобы уменьшить эффект поврежденной загрузки, но ненадежная природа Usenet сохранялась.

С появлением Parchive можно было создавать файлы четности, которые затем загружались вместе с исходными файлами данных. Если какой-либо из файлов данных был поврежден или утерян при распространении между серверами Usenet, пользователи могли загрузить файлы четности и использовать их для восстановления поврежденных или отсутствующих файлов. Parchive включал создание небольших индексных файлов (*.par в версии 1 и *.par2 в версии 2), которые не содержат никаких данных для восстановления. Эти индексы содержат хэши файлов , которые можно использовать для быстрой идентификации целевых файлов и проверки их целостности.

Поскольку файлы индекса были такими маленькими, они минимизировали объем дополнительных данных, которые приходилось загружать из Usenet для проверки того, что все файлы данных присутствуют и не повреждены, или для определения того, сколько томов четности требовалось для исправления любых повреждений или восстановления любых отсутствующих файлов. Они были наиболее полезны в версии 1, где тома четности были намного больше, чем короткие файлы индекса. Эти большие тома четности содержат фактические данные восстановления вместе с дублирующей копией информации в файлах индекса (что позволяет использовать их самостоятельно для проверки целостности файлов данных, если нет доступного небольшого файла индекса).

В июле 2001 года Тобиас Рипер и Стефан Велюс предложили спецификацию Parity Volume Set, и при содействии других участников проекта версия 1.0 спецификации была опубликована в октябре 2001 года. [11] Par1 использовал коррекцию ошибок Рида-Соломона для создания новых файлов восстановления. Любой из файлов восстановления может быть использован для восстановления отсутствующего файла из неполной загрузки .

Версия 1 получила широкое распространение в Usenet, но имела некоторые ограничения:

В январе 2002 года Говард Фукада предложил разработать новую спецификацию Par2 со значительными изменениями, согласно которым проверка и восстановление данных должны работать с блоками данных, а не с целыми файлами, и что алгоритм должен перейти на использование 16-битных чисел вместо 8-битных чисел, которые использовались в PAR1. Майкл Нахас и Питер Клементс взяли эти идеи на вооружение в июле 2002 года с дополнительным вкладом Пола Неттла и Райана Галлахера (которые оба написали клиенты Par1). Версия 2.0 спецификации Parchive была опубликована Майклом Нахасом в сентябре 2002 года. [14]

Затем Питер Клементс написал первые две реализации Par2, QuickPar и par2cmdline. Заброшенный в 2004 году, Пол Хоул создал phpar2 для замены par2cmdline. Ютака Савада создал MultiPar для замены QuickPar. MultiPar использует par2j.exe (который частично основан на методах оптимизации par2cmdline) для использования в качестве внутреннего движка MultiPar.

Версии

Версии 1 и 2 формата файла несовместимы. (Однако многие клиенты поддерживают обе.)

Пар1

Для Par1, файлов f1 , f2 , ..., fn , Parchive состоит из индексного файла ( f.par ), который является файлом типа CRC без блоков восстановления, и ряда «томов четности» ( f.p01 , f.p02 и т. д.). Учитывая все исходные файлы, за исключением одного (например, f2 ), можно создать отсутствующий f2, учитывая все остальные исходные файлы и любой из томов четности. В качестве альтернативы можно воссоздать два отсутствующих файла из любых двух томов четности и т. д. [15]

Par1 поддерживает до 256 исходных файлов и файлов восстановления.

Пар2

Файлы Par2 обычно используют эту систему именования/расширений: filename.vol000+01.PAR2 , filename.vol001+02.PAR2 , filename.vol003+04.PAR2 , filename.vol007+06.PAR2 и т. д. Число после "+" в имени файла указывает, сколько блоков он содержит, а число после "vol" указывает номер первого блока восстановления в файле PAR2. Если индексный файл загрузки указывает на отсутствие 4 блоков, самый простой способ восстановить файлы — загрузить filename.vol003+04.PAR2 . Однако из-за избыточности filename.vol007+06.PAR2 также приемлем. Существует также индексный файл filename.PAR2 , он идентичен по функциям небольшому индексному файлу, используемому в PAR1.

Спецификация Par2 поддерживает до 32 768 исходных блоков и до 65 535 блоков восстановления. Входные файлы разбиваются на несколько блоков одинакового размера, так что файлы восстановления не обязательно должны быть размером с самый большой входной файл.

Хотя Unicode упоминается в спецификации PAR2 как опция, большинство реализаций PAR2 не поддерживают Unicode.

Поддержка каталогов включена в спецификацию PAR2, но большинство или все реализации ее не поддерживают.

Пар3

Первоначально планировалось, что спецификация Par3 будет опубликована как улучшение спецификации Par2. Однако на сегодняшний день [ когда? ] она остается закрытой по исходному коду владельцем спецификации Ютакой Савадой.

Обсуждение нового формата началось в разделе проблем GitHub поддерживаемого форка par2cmdline 29 января 2019 года. Обсуждение привело к новому формату, который также называется Par3. Новая спецификация формата Par3 опубликована на GitHub, но по состоянию на 28 января 2022 года остается черновиком альфа-версии. Спецификация написана Майклом Нахасом, автором спецификации Par2, при содействии Ютаки Савады, animetosho и malaire.

Новый формат, как утверждается, имеет ряд преимуществ по сравнению с форматом Par2, в том числе:

Программное обеспечение

Мультиплатформенность

Окна

Mac OS X

POSIX

Программное обеспечение для операционных систем, соответствующих стандарту POSIX :

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

Ссылки

  1. Re: Исправление к Parchive в Википедии, архивировано 14 октября 2014 г. в ответе Wayback Machine № 3, Ютака Савада: «Их формальные названия — «Спецификация набора томов четности 1.0» и «Спецификация набора томов четности 2.0».
  2. ^ Re: Исправление к Parchive в Википедии, ответ № 3, от Ютаки Савады: «Их формальные названия — «Спецификация набора томов четности 1.0» и «Спецификация набора томов четности 2.0».
  3. ^ "Parchive: Parity Archive Volume Set" . Получено 29 октября 2009 г. Первоначальная идея этого проекта заключалась в предоставлении инструмента для применения концепций возможностей восстановления данных RAID-подобных систем к размещению и восстановлению многочастных архивов в Usenet.
  4. ^ "возможность нового файла PAR3". Архивировано из оригинала 2012-07-07 . Получено 2012-07-01 .
  5. ^ "Вопрос о вашем использовании PAR3". Архивировано из оригинала 2014-03-09 . Получено 2012-07-01 .
  6. ^ "Риск необнаружимой преднамеренной модификации". Архивировано из оригинала 2014-03-09 . Получено 2012-07-01 .
  7. ^ "Предложение по спецификации PAR3 не завершено по состоянию на апрель 2011 года". Архивировано из оригинала 2014-03-09 . Получено 2012-07-01 .
  8. ^ "Parchive: Parity Archive Tool". 30 апреля 2015 г. Получено 20 мая 2020 г.
  9. ^ "Спецификация набора томов четности 3.0 [2022-01-28 АЛЬФА-ЧЕРНОВИК]". Майкл Нахас, Ютака-Савада, animetosho и malaire.
  10. ^ Кантор, Брайан; Лапсли, Фил (февраль 1986 г.). «Коды символов». Протокол передачи сетевых новостей. IETF . стр. 5. раздел 2.2. doi : 10.17487/RFC0977 . RFC 977. Получено 29 октября 2009 г.
  11. ^ Нахас, Майкл (14 октября 2001 г.). "Спецификация набора томов четности v1.0" . Получено 19 июня 2017 г.
  12. ^ Планк, Джеймс С.; Дин, Ин (апрель 2003 г.). «Примечание: Исправление к учебнику 1997 года по кодированию Рида-Соломона» . Получено 29 октября 2009 г.
  13. ^ Планк, Джеймс С. (сентябрь 1997 г.). "Учебник по кодированию Рида-Соломона для обеспечения отказоустойчивости в системах типа RAID" . Получено 29 октября 2009 г.
  14. ^ Нахас, Майкл; Клементс, Питер; Неттл, Пол; Галлахер, Райан (11.05.2003). "Спецификация набора томов четности 2.0" . Получено 29.10.2009 .
  15. ^ Ван, Уоллес (2004-10-25). "Поиск фильмов (или телешоу): Восстановление отсутствующих файлов RAR с помощью файлов PAR и PAR2". Steal this File Sharing Book (1-е изд.). Сан-Франциско, Калифорния : No Starch Press . стр. 164–167. ISBN 978-1-59327-050-6. Получено 24.09.2009 .
  16. ^ "MultiPar работает с PCBSD 9.0". Архивировано из оригинала 2013-09-28 . Получено 2012-02-27 .
  17. ^ Работаю на Ubuntu 18.04 через Wine [ мертвая ссылка ]
  18. ^ "связался с вами, спросил об исходном коде". Архивировано из оригинала 2013-09-26 . Получено 2013-09-21 .

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