파르치브

Parchive
파르치브
파일 이름 확장자
.par, .par2, .p?, (.par3 미래)
포맷의 종류소거코드

Parchive(패리티 아카이브의 합성어, 패리티 볼륨 세트 사양[1][2])는 데이터 무결성을 체크섬 검증하기 위한 파 파일을 생성하는 소거 코드 시스템으로, 손상되거나 누락된 데이터를 복구 또는 재생성할 수 있는 데이터 복구 작업을 수행할 수 있습니다.

Parchive는 원래 Usenet에서 [3]신뢰할 수 있는 파일 공유 문제를 해결하기 위해 작성되었지만 데이터 손상, 디스크 부패, 비트 부패 및 우발적 또는 악의적인 손상으로부터 모든 종류의 데이터를 보호하기 위해 사용할 수 있습니다.이름에도 불구하고 Parchive는 단순한 오류 검출 패리티 방법보다 더 고급 기술(특히 오류 수정 코드)을 사용합니다.

2014년 현재 PAR1은 구식, PAR2는 널리 사용할 수 있는 성숙, PAR3는 MultiPar의 저자인 사와다 [4][5][6][7]유타카에 의해 개발된 단종 실험 버전입니다.원래 SourceForge Parchive 프로젝트는 2015년 [8]4월 30일 이후 비활성화되었습니다.새로운 PAR3 사양은 2019년 4월 28일부터 PAR2 사양 작성자인 Michael Nahas에 의해 개발되었습니다.프로그램 자체 개발 중에 2022년[9] 1월 29일 PAR3 규격의 알파 버전이 공개되었습니다.

역사

Parchive는 Usenet 뉴스 그룹을 통한 파일 전송의 신뢰성을 높이기 위한 것이었다.Usenet은 원래 비공식 대화를 위해 설계되었으며, 기본 프로토콜인 NNTP는 임의 이진 데이터를 전송하도록 설계되지 않았습니다.대화에는 허용되지만 파일에는 허용되지 않는 또 다른 제한사항은 일반적으로 메시지의 길이가 상당히 짧고 7비트 ASCII [10]텍스트로 제한된다는 것입니다.

uuencoding 및 Base64와 같이 Usenet을 통해 파일을 전송하기 위한 다양한 기술이 고안되었습니다.이후 Usenet 소프트웨어는 8비트 확장 ASCII를 허용하여 yEnc와 같은 새로운 기술을 허용했습니다.큰 파일들은 손상된 다운로드의 영향을 줄이기 위해 분해되었지만, Usenet의 신뢰할 수 없는 성격은 여전했다.

Parchive의 도입으로 패리티 파일을 생성하여 원래 데이터 파일과 함께 업로드할 수 있게 되었습니다.Usenet 서버 간에 전파되는 동안 데이터 파일이 손상되거나 손실된 경우 사용자는 패리티 파일을 다운로드하여 손상되거나 누락된 파일을 재구성할 수 있습니다.파르치브에는 복구 데이터를 포함하지 않는 소규모 인덱스 파일(버전 1에서는 (*.par, 버전 2에서는 *.par2)의 구성이 포함되었습니다.이러한 인덱스에는 대상 파일을 빠르게 식별하고 무결성을 확인하는 데 사용할 수 있는 파일 해시가 포함되어 있습니다.

인덱스 파일이 너무 작았기 때문에 데이터 파일이 모두 존재하고 손상되지 않았는지 확인하기 위해 또는 손상을 복구하거나 누락된 파일을 재구성하는 데 필요한 패리티 볼륨의 수를 결정하기 위해 Usenet에서 다운로드해야 하는 추가 데이터의 양을 최소화했습니다.패리티 볼륨이 짧은 인덱스 파일보다 훨씬 큰 버전 1에서 가장 유용했습니다.이러한 대규모 패리티 볼륨에는 실제 복구 데이터와 인덱스 파일의 정보 복제 복사본이 포함됩니다(이 볼륨은 작은 인덱스 파일이 없는 경우 데이터 파일의 무결성을 확인하는 데 단독으로 사용할 수 있음).

2001년 7월 Tobias Rieper와 Stefan Wehlus는 패리티 볼륨 세트 사양을 제안했고, 다른 프로젝트 구성원의 도움을 받아 2001년 [11]10월에 버전 1.0을 발표했습니다.Par1은 Reed-Solomon 오류 수정을 사용하여 새 복구 파일을 만들었습니다.모든 복구 파일을 사용하여 불완전한 다운로드에서 누락된 파일을 재구성할 수 있습니다.

버전 1은 Usenet에서 널리 사용되었지만 몇 가지 제한이 있었습니다.

  • 최대 255개의 파일을 처리할 수 있도록 제한되었습니다.
  • 복구 파일은 가장 큰 입력 파일의 크기여야 하므로 입력 파일의 크기가 다양할 때는 제대로 작동하지 않습니다(이는 독점 RAR 압축 도구와 쌍을 이루지 않을 경우 유용성이 제한되었습니다).
  • 복구 알고리즘에 오류가 발생했습니다. 이 알고리즘의 기반이 되는 학술[13] 논문의 결함으로[12] 인해.
  • Usenet과 강하게 연계되어 있으며, 보다 일반적인 툴이 보다 넓은 대상자를 가질 수 있다고 느꼈습니다.

2002년 1월 Howard Fukada는 데이터 검증 및 복구가 전체 파일이 아닌 데이터 블록에서 작동해야 한다는 중요한 변경 사항과 함께 새로운 Par2 사양을 고안해야 하며 알고리즘이 PAR1이 사용한8비트 번호가 아닌 16비트 번호를 사용하는 것으로 전환해야 한다고 제안했습니다.Michael Nahas와 Peter Clements는 2002년 7월에 이러한 아이디어를 도입했으며, Paul Nettle과 Ryan Gallagher(둘 다 Par1 클라이언트를 작성)로부터 추가 의견을 받았습니다.파르치브 사양 버전 2.0은 2002년 [14]9월에 Michael Nahas에 의해 발행되었습니다.

Peter Clements는 그 후 QuickPar와 par2cmdline이라는 첫 번째 두 가지 Par2 구현에 대해 집필했습니다.2004년 이후 폐기된 Paul Houle은 par2cmdline을 대체하는 phpar2를 만들었습니다.사와다 유타카는 QuickPar를 대체하기 위해 MultiPar를 만들었다.MultiPar는 par2j.exe(부분적으로는 par2cmdline의 최적화 기술에 기반)를 사용하여 MultiPar의 백엔드 엔진으로 사용합니다.

버전

파일 형식 버전 1과 2가 호환되지 않습니다.(단, 많은 클라이언트는 둘 다 지원합니다).

파1

Par1 파일 f1, f2, ..., fn의 경우, Parchive는 복구 블록이 없는 CRC 유형 파일인 인덱스 파일(f.par)과 다수의 "패리티 볼륨"(f.p01, f.p02 등)으로 구성됩니다.하나의 원본 파일(예: f2)을 제외한 모든 원본 파일을 지정하면 다른 모든 원본 파일과 패리티 볼륨 중 하나를 지정하면 누락된 f2를 생성할 수 있습니다.또는 패리티 볼륨 중 두 개에서 누락된 파일 두 개를 재생성할 수도 있습니다.[15]

Par1은 최대 256개의 소스 파일과 복구 파일을 지원합니다.

파2

Par2 파일은 일반적으로 이름/확장 시스템 filename을 사용합니다.vol000+01.PAR2, 파일 이름vol001+02.PAR2, 파일 이름vol003+04.PAR2, 파일 이름vol007+06.PAR2 등파일 이름에서 "+" 뒤의 숫자는 포함된 블록 수를 나타내고 "vol" 뒤의 숫자는 PAR2 파일 내의 첫 번째 복구 블록 수를 나타냅니다.다운로드의 인덱스 파일에 4개의 블록이 누락되어 있는 경우 파일을 복구하는 가장 쉬운 방법은 파일 이름을 다운로드하는 것입니다.vol003+04.PAR2. 단, 용장성 때문에 파일명.vol007+06.PAR2도 허용됩니다.인덱스 파일명도 있습니다.PAR2는 PAR1에서 사용되는 작은 인덱스 파일과 기능이 동일합니다.

Par2 사양은 최대 32,768개의 소스 블록과 최대 65,535개의 복구 블록을 지원합니다.복구 파일이 가장 큰 입력 파일의 크기가 될 필요가 없도록 입력 파일이 동일한 크기의 여러 블록으로 분할됩니다.

Unicode는 옵션으로 PAR2 사양에 기재되어 있습니다만, 대부분의 PAR2 실장에서는 Unicode를 지원하지 않습니다.

디렉토리 지원은 PAR2 사양에 포함되어 있습니다만, 대부분의 실장 또는 모든 실장에서는 지원되지 않습니다.

파3

Par3 사양은 원래 Par2 사양보다 향상된 기능으로 발행될 예정이었습니다.그러나, 지금까지,[when?] 사양 소유자인 사와다 유타카씨에 의해서 비공개 소스로 남아 있다.

2019년 1월 29일 유지 보수 포크 par2cmdline의 GitHub 이슈 섹션에서 새로운 포맷에 대한 논의가 시작되었습니다.논의는 Par3로도 명명된 새로운 포맷으로 이어졌다.새로운 Par3 포맷의 사양은 GitHub에 공개되어 있지만 2022년 1월 28일 현재 알파 드래프트로 남아 있다.Par2 사양의 저자인 Michael Nahas가 사와다 유타카, 아니메토쇼, 말레어의 도움을 받아 작성한 사양서.

새로운 포맷은 Par2 포맷에 비해 다음과 같은 다양한 장점을 가지고 있다고 주장합니다.

  • 3개 이상의16 파일과 2개 이상의16 블록을 지원합니다.
  • 작은 파일을 하나의 블록으로 패킹할 수 있을 뿐만 아니라 블록이 여러 파일에 나타나는 경우 중복 제거를 지원합니다.
  • UTF-8 파일 이름, 파일 권한, 하드 링크 및 소프트 링크를 지원합니다.
  • ZIP 아카이브 또는 ISO 디스크 이미지와 같은 다른 형식의 PAR 데이터 임베딩을 지원합니다.
  • 사용자가 일부 파일 또는 폴더에 대한 복구 파일을 생성하고, 일부 데이터를 변경하고, 일부 이전 파일을 재사용하여 새 복구 파일을 생성하는 "증분 백업"을 지원합니다.
  • 더 많은 오류 정정 코드 알고리즘(LDPC 및 스파스 랜덤 매트릭스 등)을 지원합니다.
  • Par2의 MD5 해시 함수를 BLAKE3로 교체해 주세요.

소프트웨어

멀티플랫폼

  • par2+tbb(GPLv2) : TBB를 사용하는 par2cmdline 0.4의 동시(멀티스레드) 버전.x86 기반의 CPU와만 호환됩니다.FreeBSD Ports 시스템에서는 par2cmdline-tbb로 사용할 수 있습니다.
  • Original par2cmdline : (구식).FreeBSD Ports 시스템에서 par2cmdline으로 사용할 수 있습니다.
  • 파2cmdline 유지 포크 by BlackIkeEagle.
  • par2cmdline-mt는 OpenMP, GPLv2 이후를 사용하는 par2cmdline의 다른 멀티스레드 버전입니다.현재 BlackIkeEagle의 포크로 통합되어 유지되고 있습니다.
  • ParPar(CC0)는 고성능 멀티스레드 PAR2 클라이언트 및 Node.js 라이브러리입니다.확인 또는 복구를 지원하지 않습니다. 현재 PAR2 아카이브만 생성할 수 있습니다.
  • par2deep (LGPL-3.0) — 명령줄과 그래피컬 사용자 인터페이스를 사용하여 par2 파일을 반복적으로 생성, 확인 및 복구할 수 있습니다.Python 패키지 인덱스 시스템에서 par2deep로 사용할 수 있습니다.

창문들

  • MultiPar (프리웨어) - QuickPar의 기능과 GUI를 기반으로 구축되며, PAR2 백엔드로 사와다 유타카의 par2j.exe를 사용합니다.MultiPar는 Unicode를 통해 여러 언어를 지원합니다.MultiPar의 이름은 "다언어 PAR 클라이언트"에서 유래했습니다.또한 MultiPar는 TrueOS 및 Ubuntu에서 Wine과 함께 사용할 수 있으며 다른 운영 체제에서도 사용할 수 있습니다.[16][17]Par2 컴포넌트는 오픈소스이지만 그 위에 있는 MultiPar GUI는 현재 오픈소스가 [18]아닙니다.
  • QuickPar (프리웨어) - 2004년 이후 유지보수가 이루어지지 않고 있으며 MultiPar로 대체되었습니다.
  • phpar2 - 멀티스레딩 및 고도로 최적화된 어셈블러 코드를 갖춘 고급 par2cmdline (QuickPar 0.9.1보다 약 66% 고속)
  • Mirror: 2001년 이후 유지보수가 이루어지지 않은 최초의 PAR 구현.

Mac OS X

POSIX

POSIX 준거 운영체제용 소프트웨어:

「 」를 참조해 주세요.

  • 파일 아카이브 서버 비교– 일부 파일 아카이브 서버에서는 오류 검출 및 수정을 위해 패리티 데이터를 포맷에 통합할 수 있습니다.
  • RAID – RAID 5 이상의 RAID 레벨에서는 패리티 데이터를 사용하여 오류를 검출하고 복구합니다.

레퍼런스

  1. ^ Wikipedia의 파르치브 수정, 2014-10-14 Wayback Machine 응답 #3의 Archived 2014-10-14. 사와다 유타카: "정식 제목은 "Parity Volume Set Specification 1.0"과 "Parity Volume Set Specification 2.0"입니다."
  2. ^ Wikipedia에서의 파르치브 정정, 답변 #3: "그들의 정식 제목은 "Parity Volume Set Specification 1.0"과 "Parity Volume Set Specification 2.0"입니다."
  3. ^ "Parchive: Parity Archive Volume Set". Retrieved 2009-10-29. The original idea behind this project was to provide a tool to apply the data-recovery capability concepts of RAID-like systems to the posting and recovery of multi-part archives on Usenet.
  4. ^ "possibility of new PAR3 file". Archived from the original on 2012-07-07. Retrieved 2012-07-01.
  5. ^ "Question about your usage of PAR3". Archived from the original on 2014-03-09. Retrieved 2012-07-01.
  6. ^ "Risk of undetectable intended modification". Archived from the original on 2014-03-09. Retrieved 2012-07-01.
  7. ^ "PAR3 specification proposal not finished as of April 2011". Archived from the original on 2014-03-09. Retrieved 2012-07-01.
  8. ^ "Parchive: Parity Archive Tool". Retrieved 2020-05-20.
  9. ^ "Parity Volume Set Specification 3.0 [2022-01-28 ALPHA DRAFT]". Michael Nahas, Yutaka-Sawada, animetosho, and malaire.
  10. ^ Kantor, Brian; Lapsley, Phil (February 1986). "Character Codes". Network News Transfer Protocol. IETF. p. 5. sec. 2.2. doi:10.17487/RFC0977. RFC 977. Retrieved 2009-10-29.
  11. ^ Nahas, Michael (2001-10-14). "Parity Volume Set Specification v1.0". Retrieved 2017-06-19.
  12. ^ Plank, James S.; Ding, Ying (April 2003). "Note: Correction to the 1997 Tutorial on Reed-Solomon Coding". Retrieved 2009-10-29.
  13. ^ Plank, James S. (September 1997). "A Tutorial on Reed-Solomon Coding for Fault-Tolerance in RAID-like Systems". Retrieved 2009-10-29.
  14. ^ Nahas, Michael; Clements, Peter; Nettle, Paul; Gallagher, Ryan (2003-05-11). "Parity Volume Set Specification 2.0". Retrieved 2009-10-29.
  15. ^ Wang, Wallace (2004-10-25). "Finding movies (or TV shows): Recovering missing RAR files with PAR and PAR2 files". Steal this File Sharing Book (1st ed.). San Francisco, California: No Starch Press. pp. 164–167. ISBN 978-1-59327-050-6. Retrieved 2009-09-24.
  16. ^ "MultiPar works with PCBSD 9.0". Archived from the original on 2013-09-28. Retrieved 2012-02-27.
  17. ^ 와인을 통한 Ubuntu 18.04 작업[데드링크]
  18. ^ "contacted you, asking about sourcecode". Archived from the original on 2013-09-26. Retrieved 2013-09-21.

외부 링크