मैंने एक अजगर उपकरण बनाया है जो ऐसा कर सकता है। मैंने ऐसा इसलिए किया क्योंकि मैंने @Thomas Luzat के दृष्टिकोण को अपने और @Johannes अर्न्स्ट के कार्यान्वयन में प्रयोग करने की कोशिश की, और प्रयुक्त स्थान क्लोनिंग प्रक्रिया में 20GB से 40GB तक दोगुना हो गया। मुझे लगा कि कुछ अधिक कुशल की जरूरत है।
इस सामान्य फ़ाइल सिस्टम इतिहास पर विचार करें:
current ---------------------------------\
| | | |
snap4 snap3 snap2 snap1
थॉमस के एल्गोरिथ्म के साथ, "वर्तमान" को पहले क्लोन किया जाएगा, और सभी स्नैपशॉट्स ("वर्तमान" के पूर्व राज्यों के स्नैपशॉट्स) क्लोन स्रोत / माता-पिता के रूप में "वर्तमान" का उपयोग करेंगे। जाहिर है, यह स्नैप 4 पर स्नैप 3 को आधार बनाने के लिए बेहतर होगा, स्नैप 3 पर स्नैप 2, आदि।
और यह सिर्फ आईसबर्ग टिप है; एक जटिल इतिहास के साथ एक btrfs फाइल सिस्टम में "सर्वश्रेष्ठ" क्लोन स्रोत (अंतरिक्ष बचत के संदर्भ में) एक गैर-तुच्छ समस्या है। मैं इस समस्या को हल करने के लिए 3 अन्य रणनीतियों के साथ आया हूं, जो अंतरिक्ष को अधिक कुशलता से उपयोग करने के लिए लगता है। एक वास्तव में स्रोत के थोड़ा नीचे क्लोन आकार में हुई है।
यदि आप रुचि रखते हैं तो आप जीथूब पेज पर विवरण पढ़ सकते हैं ।