मेरा वातावरण Ubuntu 15.04 कर्नेल 3.19.0-28-जेनेरिक और Btrfs v3.17 के साथ है।
मेरे पास दो समान बाहरी USB हार्ड डिस्क हैं जो मैं अपनी बैकअप स्क्रिप्ट के साथ उपयोग करता हूं। उनमें से एक के साथ स्वरूपित है btrfsऔर दूसरे के साथ ext4। स्रोत फाइलसिस्टम हमेशा होता है ext4। rsyncआदेश इस तरह दिखता है:
rsync --inplace --no-whole-file --link-dest="$previousBackup" "$sourceDir" "$destDir"
मुझे बस एहसास हुआ कि बैकअप पर प्रदर्शन करने btrfsमें बहुत लंबा समय लगता है: 4 मिनट की तुलना में एक घंटे से थोड़ा अधिक, एक ही कॉपी करने के लिए ext4।
ddउबंटू के साथ भेजे गए "डिस्क उपयोगिता" के साथ, मैंने कुछ बेंचमार्क प्रदर्शन करने के लिए डिस्क की खराबी को नियंत्रित करने के लिए , लेकिन मुझे दोनों डिस्क पर समान प्रदर्शन मिला है। धीमा हिस्सा पिछले बैकअप के मुकाबले हार्डलिंकिंग लगता है। एक डीफ़्रैग और स्क्रब के बाद भी, निम्न कमांड में लगभग 53 मिनट लगते हैं btrfs, लेकिन केवल 1 मिनट में ext4:
cp -arl "$previousBackup" "$destDir"
इंटरनेट पर शोध करके, मुझे संकेत मिले कि btrfsहार्डलिंक से पीड़ित का प्रदर्शन , लेकिन मैं इस भारी अंतर की उम्मीद नहीं करूंगा । मुझे पता चला कि यह कमांड तेज है, लेकिन अभी भी इसे पूरा करने में 30 मिनट से अधिक समय लगता है:
cp -ar --reflink "$previousBackup" "$destDir"
क्या किसी के पास इस व्यवहार का अनुभव है और वह इसकी पुष्टि कर सकता है? क्या इसे ठीक करने का कोई सरल तरीका है (जैसे अलग-अलग माउंट विकल्प) या क्या मुझे यथासंभव अधिक हार्डलिंक हटाने की कोशिश करनी चाहिए और बस रिफाइनरी का उपयोग करना चाहिए?
संपादित करें
मुझे अभी पता चला है कि एक निर्देशिका को हटानेbtrfs से एक घंटे से अधिक की आवश्यकता होती है। एक ही ऑपरेशन "जुड़वां" ext4डिस्क पर तात्कालिक है । स्पष्ट रूप से यहाँ मेटाडेटा के साथ एक समस्या है।
ext4करने के लिए btrfsआम तौर पर छोटे (200 या तो) है। यही मैं समझा नहीं सकता: कॉपी-ऑन-लेखन को लिंकिंग को लगभग तात्कालिक बनाना चाहिए (केवल मेटाडेटा संसाधित किया जाता है) लेकिन स्थानांतरण थोड़ा धीमा ... जबकि यहां विपरीत होता है।
btrfs filesystem dfरिपोर्ट डेटा, एकल: कुल = 1.34TiB, प्रयुक्त = 1.34TiB सिस्टम, DUP: कुल = 8.00MiB, प्रयुक्त = 176.00KiB सिस्टम, एकल: कुल = 4.00MiB, प्रयुक्त = 0.00B मेटाडेटा, DUP: कुल = 38.47GiB , प्रयुक्त = 37.49GiB मेटाडेटा, एकल: कुल = 8.00MiB, उपयोग किया गया = 0.00B मुझे पूर्ण नहीं लगता ... हालाँकि, क्या मेटाडेटा के लिए आवंटित स्थान को ट्विक करने का कोई तरीका है?
btrfs।