वहाँ एक समानांतर फ़ाइल संग्रहकर्ता (जैसे टार) है?


40

फ़ाइलों के समानांतर संग्रह के लिए वहाँ कुछ है?

टार महान है, लेकिन मैं टेप अभिलेखागार का उपयोग नहीं करता हूं, और मेरे लिए यह अधिक महत्वपूर्ण है कि मेरे पास smp होने के बाद से संग्रह जल्दी (bzip2 जैसे संपीड़न के साथ) होता है।


7
टार सिर्फ टेप से अधिक के लिए है। नाम मूल रूप से टेप से आया था, लेकिन इन दिनों मैं इसे ज्यादातर उपयोग के लिए देख रहा हूं जब आप वैकल्पिक संपीड़न के साथ निर्देशिका संरचना की जानकारी बनाए रखते हुए पुनर्वितरण के लिए एक फ़ाइल में चीजें डालना चाहते हैं।
केविन एम

यहाँ पर काफी कुछ समानांतर संपीड़न उपकरण हैं जो vbtechsupport.com/1614 पर दिए गए हैं, लेकिन फिर भी टार के एक समानांतर संस्करण को खोजने के लिए अभी भी है
p4guru

प्रदान किए गए उत्तर (स्वीकृत एक सहित) हैंडल निर्देशिकाओं में से कोई भी, अब तक मैं बता सकता हूं - वे फ़ाइलों को संभालते हैं । मैं केवल zipनिर्देशिकाओं को संभालने में सक्षम होने के रूप में देखता हूं : |
वॉरेन

1
वास्तव में, क्या हम आम तौर पर करते हैं पैकेज है निर्देशिका में tarअभिलेखागार, और फिर एक फ़ाइल कंप्रेसर का उपयोग कर पैकेज (जैसे सेक gzip, pigz, आदि)। आप इसे दो चरणों में, लेकिन एक एकल चरण में भी कर सकते हैं, क्योंकि वे मानक इनपुट / आउटपुट से डेटा स्ट्रीम पर काम कर सकते हैं। परिणाम बहुत से मिलते-जुलते zipअधिक बहुमुखी, लेकिन।
gerlos

जवाबों:


36

मुझे लगता है कि आप pbzip2 की तलाश कर रहे हैं:

PBZIP2 bzip2 ब्लॉक-सॉर्टिंग फ़ाइल कंप्रेसर का समानांतर कार्यान्वयन है जो एसएमपी मशीनों पर निकट-रेखीय स्पीडअप का उपयोग करता है।

प्रोजेक्ट होमपेज पर एक नज़र डालें या अपने पसंदीदा पैकेज रिपॉजिटरी की जांच करें।


1
तुम भी कोशिश कर सकते हैं pigzऔर pxzके समानांतर कार्यान्वयन के लिए gzipऔर xz। आप कमांड का उपयोग करके संपीड़ित कर सकते हैं जैसे कि tar c dir | pigz -c > dir.tar.gzऔर डिकम्प्रेस का उपयोग करके pigz -cd dir.tar.gz | tar xf -
gerlos

3
आज होगा tar -cf dir.tar.gz -I pigz dirऔर होगा tar -xf dir.tar.gz -I pigz। इसके अलावा xzपिरोया गया है: उपयोग XZ_OPT=-T0 tar -cJf dir.tar.gz dirऔर XZ_OPT=-T0 tar -xJf dir.tar.gz
रिच

21

-mmtध्वज दिए जाने पर 7zip कई धागों पर चल सकता है , लेकिन केवल 7z-अभिलेखागार में संपीड़ित होने पर, जो महान संपीड़न प्रदान करते हैं लेकिन आम तौर पर अभिलेखागार बनाने के लिए ज़िप की तुलना में धीमे होते हैं। कुछ इस तरह से करें:

7z a -mmt foo.7z /opt/myhugefile.dat

7z एक अच्छा संग्रहकर्ता है, जिसमें संपीड़न अनुपात और कॉम्प / डिकम्प समय के बीच ट्रेडऑफ़ को नियंत्रित करने के लिए अच्छा समर्थन है, यादृच्छिक अभिगम बनाम बेहतर संपीड़न, और इस तरह से सामान। हालाँकि, यह लगभग मेटाडेटा को टार के रूप में संग्रहीत नहीं करता है, आप स्वामी / अनुमतियाँ खो देते हैं।
पीटर कॉर्ड्स

ऐसा लगता है कि यह विकल्प डिफ़ॉल्ट रूप से चालू है - कम से कम मुझे इसके साथ कोई प्रदर्शन वृद्धि नहीं हुई है और 7z के आउटपुट में दोनों मामलों में मेरे सीपीयू के कोर के बारे में मात्रा है।
एंड्रे स्टारोडुबत्सेव

14

ओपी ने समानांतर संग्रह के बारे में पूछा, समानांतर संपीड़न नहीं।

यदि स्रोत सामग्री एक फाइलसिस्टम से आ रही है, जहां विभिन्न निर्देशिकाएं / फाइलें अलग-अलग डिस्क पर हो सकती हैं, या यहां तक ​​कि एक एकल फास्ट डिस्क जो संपीड़न उपकरण (एस) की इनपुट गति से अधिक है, तो वास्तव में इनपुट की कई धाराओं के लिए फायदेमंद हो सकता है संपीड़न परतों में जा रहे हैं।

सार्थक प्रश्न बन जाता है, एक समानांतर संग्रह से आउटपुट कैसा दिखता है? यह अब केवल एक फ़ाइल डिस्क्रिप्टर / नहीं है stdout, लेकिन प्रति थ्रेड एक फ़ाइल डिस्क्रिप्टर है।

इसका अब तक का एक उदाहरण Postgresql का समानांतर डंप मोड है pg_dump, जिसमें यह एक डायरेक्टरी को डंप करता है, जिसमें थ्रेड्स के सेट पर काम करने वाले धागे काम करने के लिए काम करते हैं (क्यू कतार w / एकाधिक थ्रेड कतार का उपभोग करते हैं)।

मुझे लगता है कि मुख्यधारा के किसी भी वास्तविक समानांतर अभिलेखागार के बारे में निश्चित नहीं हूं। ZFS पर उपयोग के लिए सोलारिस टार के लिए एक हैक था: http://www.maier-komor.de/mtwrite.html

कुछ समर्पित बैकअप उपकरण हैं जो सफलतापूर्वक कई थ्रेड चलाते हैं, लेकिन बहुत अधिक है कि बस एक उच्च स्तर पर निर्देशिका द्वारा कार्यभार को विभाजित करते हैं।


11
tar --use-compress-program=pigz  ....

pigzअपने पसंदीदा समानांतर संपीड़न कार्यक्रम के साथ बदलें । उपयोग करने tarका कारण यह है क्योंकि यह स्वामी, समूह, अनुमतियों को संग्रहीत कर सकता है। वह मेटाडेटा अक्सर उपयोगी होता है (उदाहरण के लिए, एक जटिल प्रणाली में एक dir पेड़ को पुनर्स्थापित करना)।


4
tar -c --use-compress-program = pigz -f myDirectory.tar.gz myDirectory /
markusN

1
सभी विकल्प, AFAIK, टार के लिए सामान्य रूप से -Iविकल्प के साथ उपयोग किया जा सकता है , जो कि समान है --use-compress-program। तो, उदाहरण के लिए tar cvzf /some/dir/yournewarchive.tar.gz /directory/tobecompressed --exclude="/directo...."का उपयोग कर मल्टी-थ्रेडेड विकल्प के लिए लागू किया जा सकता pigzके रूप में tar -I pigz -cvf /some/dir/yournewarchive.tar.gz /directory/tobecompressed --exclude="/directo..."। यह सबसे अच्छा, सबसे उपयुक्त उत्तर है, IMHO। धन्यवाद @uDude! :)
ILMostro_7

10

पिगज़ गज़िप का एक समानांतर कार्यान्वयन है, लेकिन केवल संपीड़न के लिए कई प्रोसेसर का उपयोग कर सकते हैं, विघटन नहीं।


2
क्या कुछ प्रयोग किए गए थे, और pigzवास्तव में डिकम्प्रेसिंग के दौरान कई थ्रेड्स का भी उपयोग करने में सक्षम प्रतीत होता है । (मेरे 4-कोर सीपीयू पर time tar xf dir.tar.gzऔर time pigz -cd dir.tar.gz | tar xf -आधे से भी कम समय लगता है) के आउटपुट की तुलना करने की कोशिश करें ।
gerlos

4
@gerlos timeएक पाइपलाइन पर प्रयोग केवल पहली कमांड का समय होगा। से pigzप्रलेखन :। "विसंपीड़न parallelized नहीं किया जा सकता, कम से कम उस उद्देश्य के लिए विशेष रूप से तैयार Deflate धाराओं के बिना नहीं नतीजतन, pigz विसंपीड़न के लिए एक एकल धागा (मुख्य थ्रेड) का उपयोग करता है, लेकिन पढ़ने के लिए तीन अन्य धागे पैदा करेगा, लेखन, और गणना की जांच, जो कुछ परिस्थितियों में विघटन को गति दे सकता है। "
18

1
वहाँ पिक्सज़ भी है ।
मार्क.2377

8

tarबस एक पुरालेख प्रारूप है जो फ़ाइलों को बिल्कुल डुप्लिकेट करने और निर्देशिका ट्री और मूल फ़ाइल विशेषताओं को संरक्षित करने में बहुत अच्छा है। TAR बैकअप बनाने के लिए बहुत अच्छा है, क्योंकि सब कुछ संरक्षित है। मैं pbzip2बहुत अच्छे परिणामों के साथ सिस्टम बैकअप के लिए उपयोग किए जाने वाले टार अभिलेखागार को संपीड़ित करने के लिए उपयोग करता हूं।

इस आदेश को चाल करना चाहिए।

tar -cpS "infile" | pbzip2 > "outfile"

pbzip2 एक अलग संपीड़न उपयोगिता के साथ प्रतिस्थापित किया जा सकता है, लेकिन चेतावनी दी जा सकती है, बड़ी फ़ाइलों को संपीड़ित / विघटित करते समय LZMA संपीड़न (pxz की तरह) RAM का उपयोग करता है (मैंने 8GB RAM के साथ 8 थ्रेड चलाने की कोशिश की, और pzz डिस्क को स्वैप करना शुरू कर दिया)।



1

जहां तक ​​संपीड़न पर विचार किया जाता है, xzक्योंकि संस्करण 5.2 के बारे में -Tविकल्प के माध्यम से समानांतर संपीड़न का समर्थन करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.