Венти: Мәңгілік сақтау жүйесі және дерек блогының идентификациясы
Venti (software)
Venti: мәліметтерді қауіпсіз, өзгермейтін сақтау жүйесі. 160-биттік SHA-1 хэш адрестеу үшін қолданылады, дерек дубликатын болдырмайды. Fossil-мен үйлесімді.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Venti – дерек блоктарын тұрақты түрде сақтайтын желілік сақтау жүйесі. Деректің 160 биттік SHA 1 хэші (Venti жүйесінде «баға» деп аталады) деректердің идентификаторы ретінде қолданылады. Бұл бір рет жазу принципін қамтамасыз етеді, себебі бірдей идентификаторға ие басқа дерек блогы табылмайды: бір деректің бірнеше рет жазылуының идентификаторлары бірдей болады, сондықтан қайталанған деректерді анықтау оңай және дерек блогы бір рет сақталады. Дерек блоктарын жою мүмкін емес, бұл оны тұрақты немесе резервтік сақтау үшін өте ыңғайлы етеді. Venti көбінесе Fossil жүйесімен бірге қолданылады, бұл файлдық жүйені тұрақты түрдегі көшірмелермен (снапшоттармен) қамтамасыз етеді.
Venti is a network storage system that permanently stores data blocks. A 160 bit SHA 1 hash of the data (called score by Venti) acts as the address of the data. This enforces a write once policy since no other data block can be found with the same address: the addresses of multiple writes of the same data are identical, so it is highly likely that duplicate data is easily identified and the data block is stored only once. Data blocks cannot be removed, making it ideal for permanent or backup storage. Venti is typically used with Fossil to provide a file system with permanent snapshots.
Тарих
Venti-ді Бэлл зертханасында Шон Куинлан мен Шон Дорвард жобалап, іске асырды. Ол 2002 жылы Plan 9 дистрибуциясында пайда болды. Дамуды Рас Кокс жалғастырды, ол сервердің көп бөлігін қайта іске асырды, Venti-де сақтау үшін дерек құрылымдарын (файлдар, каталогтар және метадеректер) жасауға арналған кітапхана жазды және оптимизацияларды енгізді. Venti Plan 9 дистрибуциясында және Plan 9 from User Space аясында көптеген Unix сияқты операциялық жүйелерде қолжетімді. Venti Inferno құрамына кіреді, сонымен қатар оған қол жеткізуге мүмкіндік беретін модульдермен бірге ұсынылады. Venti серверлерін құру үшін Go бағдарламалар жиынтығы бар. Әртүрлі түбірдік сақтау түрлерін пайдаланатын мысалдар да қоса берілген.
Venti was designed and implemented by Sean Quinlan and Sean Dorward at Bell Labs. It appeared in the Plan 9 distribution in 2002. Development has been continued by Russ Cox who has reimplemented most of the server, written a library for creating datastructures (files, directories and meta data) to store in Venti and implemented optimizations. Venti is available both in the Plan 9 distribution and for many Unix like operating systems as part of Plan 9 from User Space. Venti is included as part of Inferno with accompanying modules for access. There is a Go set of programs to build your own Venti servers. Included are examples using different kinds of backend storage.
Егжей-тегжейлер
Venti – пайдаланушы кеңістігіндегі демон. Клиенттер Venti-ге TCP протоколы арқылы қосылады.
Venti is a user space daemon. Clients connect to Venti over TCP
Хаш түйісулері
Ақпарат теориясының негізгі принципі – көгершін тесігі принципі, ол мынаны күйдіреді: егер A жиыны B жиынынан көбірек мәндерді қамтыса, онда A-ны B-ға бейнелейтін кез келген функция үшін B жиынының бірнеше мүшесімен байланысты A жиынының мүшелері болады. Venti жағдайында, мүмкін SHA 1 хэштері жиыны, файлдық жүйеде сақталуы мүмкін барлық мүмкін блоктар жиынынан әлдеқайда кіші, сондықтан хэш-түйісу мүмкін. 160 биттік хэш үшін кездейсоқ хэш-түйісу қаупі өте төмен, тіпті эксабайттардағы деректер үшін де. Бірақ, тарихи тұрғыдан алғанда, көптеген хэш-функциялар криптографиялық және есептеу жетістіктеріне байланысты қасақана хэш-түйісулерге көбірек ұшырайды. Venti хэш-түйісу мәселесін қарастырмайды; қазіргі уақытқа дейін SHA 1-де түйісулерді табу есептеу жағынан мүмкін емес, бірақ Venti болашақта басқа хэш-функцияға көшуге қажеттілік тууы мүмкін. 2017 жылдың 23 ақпанында Google SHAttered шабуылы туралы хабарлады, онда олар шамамен 263,1 SHA 1 есептеуде бірдей SHA 1 хэші бар екі түрлі PDF файлы жасады.
A basic principle of information theory is the pigeonhole principle, which states that if set A contains more values than set B, then for any function that maps A to B there will be members of B that are associated with more than one member of set A. In the case of Venti, the set of possible SHA 1 hashes is obviously smaller than the set of all possible blocks that could be stored in the filesystem, and thus a hash collision is possible. The risk of accidental hash collision in a 160 bit hash is very small, even for exabytes of data. Historically, however, many hash functions become increasingly vulnerable to malicious hash collisions due to both cryptographic and computational advances. Venti does not address the issue of hash collisions; as of this time, it is still computationally infeasible to find collisions in SHA 1, but it may become necessary for Venti to switch to a different hash function at some point in the future. On 23 February 2017, Google announced the SHAttered attack, in which they generated two different PDF files with the same SHA 1 hash in roughly 263.1 SHA 1 evaluations.