Parchive (un acrónimo de archivo de paridad , y formalmente conocida como paridad de volumen Set Especificación [1] [2] ) es un código de borrado de sistema que produce par archivos de suma de comprobación de la verificación de la integridad de los datos , con la capacidad de realizar recuperación de datos operaciones que de reparación puede o regenerar datos dañados o faltantes.
Extensión de nombre de archivo | .par, .par2, .p ??, (.par3 futuro) |
---|---|
Tipo de formato | Código de borrado |
Parchive fue escrito originalmente para resolver el problema del intercambio confiable de archivos en Usenet , [3] pero puede usarse para proteger cualquier tipo de datos contra la corrupción de datos , la descomposición del disco , la descomposición de los bits y los daños accidentales o maliciosos. A pesar del nombre, Parchive utiliza técnicas más avanzadas que no utilizan métodos de paridad simplistas de detección y corrección de errores .
A partir de 2014, PAR1 está obsoleto, PAR2 está maduro para un uso generalizado y PAR3 es una versión experimental desarrollada por el autor de MultiPar, Yutaka Sawada. [4] [5] [6] [7] El proyecto original de SourceForge Parchive ha estado inactivo desde el 30 de abril de 2015. [8]
Historia
Parchive tenía la intención de aumentar la confiabilidad de la transferencia de archivos a través de los grupos de noticias de Usenet . Usenet fue diseñado originalmente para conversaciones informales, y el protocolo subyacente, NNTP , no fue diseñado para transmitir datos binarios arbitrarios. Otra limitación, que era aceptable para las conversaciones pero no para los archivos, era que los mensajes normalmente tenían una longitud bastante corta y se limitaban a texto ASCII de 7 bits . [9]
Se idearon varias técnicas para enviar archivos a través de Usenet, como uuencoding y Base64 . El software Usenet posterior permitió ASCII extendido de 8 bits , lo que permitió nuevas técnicas como yEnc . Los archivos grandes se dividieron para reducir el efecto de una descarga dañada, pero la naturaleza poco confiable de Usenet permaneció.
Con la introducción de Parchive, se pudieron crear archivos de paridad que luego se cargaron junto con los archivos de datos originales. Si alguno de los archivos de datos se daña o se pierde mientras se propaga entre los servidores de Usenet, los usuarios pueden descargar archivos de paridad y usarlos para reconstruir los archivos dañados o faltantes. Parchive incluyó la construcción de pequeños archivos de índice (* .par en la versión 1 y * .par2 en la versión 2) que no contienen ningún dato de recuperación. Estos índices contienen hashes de archivos que se pueden utilizar para identificar rápidamente los archivos de destino y verificar su integridad.
Debido a que los archivos de índice eran tan pequeños, minimizaron la cantidad de datos adicionales que debían descargarse de Usenet para verificar que todos los archivos de datos estuvieran presentes y sin daños, o para determinar cuántos volúmenes de paridad se requerían para reparar cualquier daño o reconstruir cualquier archivos perdidos. Fueron más útiles en la versión 1, donde los volúmenes de paridad eran mucho más grandes que los archivos de índice cortos. Estos volúmenes de paridad más grandes contienen los datos de recuperación reales junto con una copia duplicada de la información en los archivos de índice (lo que les permite usarse por sí mismos para verificar la integridad de los archivos de datos si no hay un archivo de índice pequeño disponible).
En julio de 2001, Tobias Rieper y Stefan Wehlus propusieron la especificación Parity Volume Set y, con la ayuda de otros miembros del proyecto, se publicó la versión 1.0 de la especificación en octubre de 2001. [10] Par1 utilizó la corrección de errores Reed-Solomon para crear una nueva recuperación. archivos. Cualquiera de los archivos de recuperación se puede utilizar para reconstruir un archivo faltante de una descarga incompleta .
La versión 1 se volvió ampliamente utilizada en Usenet, pero sufrió algunas limitaciones:
- Estaba restringido para manejar un máximo de 255 archivos.
- Los archivos de recuperación tenían que ser del tamaño del archivo de entrada más grande, por lo que no funcionaba bien cuando los archivos de entrada eran de varios tamaños. (Esto limitó su utilidad cuando no se combina con la herramienta de compresión RAR patentada).
- El algoritmo de recuperación tenía un error debido a una falla [11] en el artículo académico [12] en el que se basaba.
- Estaba fuertemente vinculado a Usenet y se consideró que una herramienta más general podría tener una audiencia más amplia.
En enero de 2002, Howard Fukada propuso que se debería idear una nueva especificación Par2 con los cambios significativos de que la verificación y reparación de datos debería funcionar en bloques de datos en lugar de archivos completos, y que el algoritmo debería cambiar al uso de números de 16 bits en lugar de 8 números de bits que utilizó PAR1. Michael Nahas y Peter Clements tomaron estas ideas en julio de 2002, con aportes adicionales de Paul Nettle y Ryan Gallagher (quienes escribieron clientes de Par1). La versión 2.0 de la especificación Parchive fue publicada por Michael Nahas en septiembre de 2002. [13]
Peter Clements luego pasó a escribir las dos primeras implementaciones de Par2, QuickPar y par2cmdline. Abandonado desde 2004, Paul Houle creó phpar2 para reemplazar a par2cmdline. Yutaka Sawada creó MultiPar para reemplazar a QuickPar. Multipar usa par2j.exe (que se basa parcialmente en las técnicas de optimización de par2cmdline) para usarlo como motor de backend de MultiPar.
Versiones
Las versiones 1 y 2 del formato de archivo son incompatibles. (Sin embargo, muchos clientes admiten ambos).
Par1
Para Par1, los archivos f1 , f2 , ..., fn , el Parchive consta de un archivo de índice ( f.par ), que es un archivo de tipo CRC sin bloques de recuperación, y varios "volúmenes de paridad" ( f.p01 , f.p02 , etc.). Dados todos los archivos originales excepto uno (por ejemplo, f2 ), es posible crear el f2 faltante dado todos los demás archivos originales y cualquiera de los volúmenes de paridad. Alternativamente, es posible volver a crear dos archivos faltantes de dos volúmenes de paridad, etc. [14]
Par1 admite hasta un total de 256 archivos de origen y de recuperación.
Par2
Los archivos Par2 generalmente utilizan este sistema de denominación / extensión: nombre de archivo.vol000 + 01.PAR2 , nombre de archivo.vol001 + 02.PAR2 , nombre de archivo.vol003 + 04.PAR2 , nombre de archivo.vol007 + 06.PAR2 , etc. , etc. en el nombre del archivo indica cuántos bloques contiene, y vol000, vol001, vol003, etc. indica el número del primer bloque de recuperación dentro del archivo PAR2. Si un archivo de índice de una descarga indica que faltan 4 bloques, la forma más fácil de reparar los archivos sería descargando filename.vol003 + 04.PAR2 . Sin embargo, debido a la redundancia, filename.vol007 + 06.PAR2 también es aceptable. También hay un archivo de índice con el nombre de archivo PAR2 , su función es idéntica al pequeño archivo de índice utilizado en PAR1.
La especificación Par2 admite hasta 32768 bloques de origen y hasta 65535 bloques de recuperación. Los archivos de entrada se dividen en varios bloques de igual tamaño para que los archivos de recuperación no tengan que ser del tamaño del archivo de entrada más grande.
Aunque Unicode se menciona en la especificación PAR2 como una opción, la mayoría de las implementaciones de PAR2 no son compatibles con Unicode.
El soporte de directorio está incluido en la especificación PAR2, pero la mayoría o todas las implementaciones no lo admiten.
Par3
La especificación Par3 se planeó originalmente para ser publicada como una mejora sobre la especificación Par2. Sin embargo, hasta la fecha, [ ¿cuándo? ] ha permanecido de fuente cerrada por el propietario de la especificación Yutaka Sawada.
Software
Multiplataforma
- par2 + tbb ( GPLv2 ): una versión concurrente (multiproceso) de par2cmdline 0.4 usando TBB . Solo compatible con CPU basadas en x86 . Está disponible en el sistema de puertos FreeBSD como par2cmdline-tbb .
- Par2cmdline original - (obsoleto). Disponible en el sistema de puertos FreeBSD como par2cmdline .
- horquilla mantenida par2cmdline de BlackIkeEagle.
- par2cmdline-mt es otra versión multiproceso de par2cmdline que usa OpenMP , GPLv2 o posterior. Actualmente se fusionó con la bifurcación de BlackIkeEagle y se mantuvo allí.
- ParPar ( CC0 ) es un cliente PAR2 multiproceso de alto rendimiento y una biblioteca Node.js. No es compatible con la verificación o reparación, actualmente solo puede crear archivos PAR2.
- par2deep ( LGPL-3.0 ): produce, verifica y repara archivos par2 de forma recursiva, tanto en la línea de comandos como con la ayuda de una interfaz gráfica de usuario. Está disponible en el sistema Python Package Index como par2deep .
Ventanas
- MultiPar (software gratuito): se basa en las funciones y la GUI de QuickPar , y utiliza par2j.exe de Yutaka Sawada como backend de PAR2. MultiPar admite varios idiomas mediante Unicode. El nombre de MultiPar se deriva de "cliente PAR multilingüe". También se ha verificado que MultiPar funciona con Wine en TrueOS y Ubuntu , y también puede funcionar con otros sistemas operativos. [15] [16] Aunque los componentes de Par2 son (o serán) de código abierto, la GUI de MultiPar encima de ellos actualmente no es de código abierto. [17]
- QuickPar (software gratuito): sin mantenimiento desde 2004, reemplazado por MultiPar.
- phpar2 : par2cmdline avanzado con subprocesos múltiples y código ensamblador altamente optimizado (aproximadamente un 66% más rápido que QuickPar 0.9.1)
- Mirror : primera implementación de PAR, sin mantenimiento desde 2001.
Mac OS X
- MacPAR deLuxe 4.2
- UnRarX
POSIX
Software para sistemas operativos conformes a POSIX :
- Par2 para KDE 4
- PyPar2 1.4 , una interfaz para par2.
- GPar2 2.03
Ver también
- Comparación de archivadores de archivos : algunos archivadores de archivos son capaces de integrar datos de paridad en sus formatos para la detección y corrección de errores:
- RAID : los niveles de RAID en y por encima de RAID 5 utilizan datos de paridad para detectar y reparar errores.
Referencias
- ^ Re: Corrección a Parchive en Wikipedia , archivado el 14 de octubre de 2014 en larespuesta n. ° 3 de Wayback Machine , por Yutaka Sawada: "Su título formal es" Parity Volume Set Specification 1.0 "y" Parity Volume Set Specification 2.0 ".
- ^ Re: Corrección de Parchive en Wikipedia , respuesta n. ° 3, de Yutaka Sawada: "Su título formal es" Especificación de conjunto de volumen de paridad 1.0 "y" Especificación de conjunto de volumen de paridad 2.0 ".
- ^ "Parchive: conjunto de volúmenes de archivo de paridad" . Consultado el 29 de octubre de 2009 .
La idea original detrás de este proyecto era proporcionar una herramienta para aplicar los conceptos de capacidad de recuperación de datos de sistemas similares a RAID a la publicación y recuperación de archivos de varias partes en Usenet.
- ^ "Posibilidad de nuevo archivo PAR3" . Archivado desde el original el 7 de julio de 2012 . Consultado el 1 de julio de 2012 .
- ^ "Pregunta sobre el uso de PAR3" . Archivado desde el original el 9 de marzo de 2014 . Consultado el 1 de julio de 2012 .
- ^ "Riesgo de modificación intencionada indetectable" . Archivado desde el original el 9 de marzo de 2014 . Consultado el 1 de julio de 2012 .
- ^ "La propuesta de especificación PAR3 no finalizó en abril de 2011" . Archivado desde el original el 9 de marzo de 2014 . Consultado el 1 de julio de 2012 .
- ^ "Parchive: herramienta de archivo de paridad" . Consultado el 20 de mayo de 2020 .
- ^ Kantor, Brian; Lapsley, Phil (febrero de 1986). "Códigos de caracteres" . Protocolo de transferencia de noticias por red . IETF . pag. 5. seg. 2.2. doi : 10.17487 / RFC0977 . RFC 977 . Consultado el 29 de octubre de 2009 .
- ^ Nahas, Michael (14 de octubre de 2001). "Especificación de conjunto de volumen de paridad v1.0" . Consultado el 19 de junio de 2017 .
- ^ Plank, James S .; Ding, Ying (abril de 2003). "Nota: corrección del tutorial de 1997 sobre codificación Reed-Solomon" . Consultado el 29 de octubre de 2009 .
- ^ Plank, James S. (septiembre de 1997). "Un tutorial sobre codificación Reed-Solomon para tolerancia a fallas en sistemas RAID" . Consultado el 29 de octubre de 2009 .
- ^ Nahas, Michael; Clements, Peter; Ortiga, Paul; Gallagher, Ryan (11 de mayo de 2003). "Especificación de conjunto de volumen de paridad 2.0" . Consultado el 29 de octubre de 2009 .
- ^ Wang, Wallace (25 de octubre de 2004). "Búsqueda de películas (o programas de televisión): recuperación de archivos RAR faltantes con archivos PAR y PAR2" . Robar este libro de intercambio de archivos (1ª ed.). San Francisco, California : No Starch Press . págs. 164-167 . ISBN 978-1-59327-050-6. Consultado el 24 de septiembre de 2009 .
- ^ MultiPar funciona con PCBSD 9.0 [ enlace muerto ]
- ^ Trabajando en Ubuntu 18.04 a través de wine [ enlace muerto ]
- ^ se comunicó contigo para preguntar sobre el código fuente [ enlace muerto ]
enlaces externos
- Proyecto Parchive: especificaciones completas y matemáticas detrás de él
- Introducción a PAR y PAR2
- Guía de Slyck para los grupos de noticias de Usenet: archivos PAR y PAR2
- Guía para reparar archivos usando PAR2
- Guía de UsenetReviewz para abrir archivos par