Btrfs पर एकल फ़ाइलों या फ़ोल्डरों को पुनर्स्थापित / रोल करें

Dec 08 2020

मैं एक NAS सिस्टम के लिए btrfs का उपयोग करने की योजना बना रहा हूं।

अब मैं सोच रहा हूं कि क्या किसी फाइल / फोल्डर स्तर पर स्नैपशॉट में चीजों को रोल करना संभव है। मैं यह पूछता हूं क्योंकि आमतौर पर एक ही ड्राइव के बाकी की स्थिति को ध्यान में रखते हुए एकल आइटम को रोल करना चाहता है।

क्या ऐसा करने का कोई मूल तरीका है या नहीं, तो इसे कैसे प्राप्त किया जाए? मैंने एक पूर्ण प्रतिलिपि किए बिना एक btrfs स्नैपशॉट से एकल फ़ाइलों को पुनर्स्थापित करना पढ़ा, जो एक तरीका लगता है लेकिन यह सुविधाजनक नहीं है। हालांकि यह करने का सबसे अच्छा तरीका हो सकता है।

जवाब

1 clel Jan 02 2021 at 01:13

स्नैपशॉट लेना मूल रूप से एक सबवोल्यूम बनाता है जिसे आधार वॉल्यूम की निर्देशिका संरचना में एक्सेस किया जा सकता है। वहाँ से, किसी को दिए गए उचित अधिकार हैं, कोई भी इसे ब्राउज़ कर सकता है और फ़ाइलों या फ़ोल्डरों को कॉपी कर सकता है। --reflinkकॉपी करने के लिए विकल्प है, हालांकि यह है कि अच्छे है, इसलिए बातें जब उन्हें कॉपी करने दोहराया नहीं कर रहे हैं कि के लिए neded जा करने के लिए प्रतीत नहीं होता।

btrfs टूल के साथ

वैकल्पिक रूप से स्नैपशॉट के लिए एक सबवोल्यूम बनाना:

btrfs subvolume create .my_snapshots

स्नैपशॉट बनाना:

btrfs subvolume snapshot -r /mnt_point /mnt_point/.my_snapshots/snapshot1

-rध्वज का उपयोग करने से स्नैपशॉट केवल पढ़ा जाता है (https://wiki.archlinux.org/index.php/btrfs#Snapshots) का है।

पहले एक सबवोल्यूम बनाए बिना और इसे केवल पढ़ने के लिए नहीं बनाया जाए, यह केवल इस तरह दिख सकता है:

btrfs subvolume snapshot /mnt_point /mnt_point/snapshot1

पुनर्स्थापना प्राप्त की जा सकती है फिर स्नैपशॉट से फ़ाइल (ओं) या फ़ोल्डर की प्रतिलिपि बनाकर:

cp /mnt_point/.my_snapshots/snapshot1/sub/dir/file /sub/dir/file

(से व्युत्पन्न https://lore.kernel.org/linux-btrfs/[email protected]/t/#m16db5d9f29d26f41a8adb4499ffe3e220a85d9b8)

बाहरी उपकरण (उदाहरण के तौर पर इस्तेमाल किया जाने वाला स्नैपर)

स्नैपर जैसे बाहरी उपकरणों का उपयोग करने के कुछ फायदे हैं, क्योंकि वे स्नैपशॉट को थोड़ा अधिक सुविधाजनक बनाते हैं और उपयोगी कार्यक्षमता के साथ आते हैं।

पहले (उप) वॉल्यूम के लिए एक कॉन्फ़िग फ़ाइल बनाई जानी चाहिए, जिसके लिए स्नैपशॉट बनाना चाहते हैं:

snapper -c config-name create-config /mnt_point

यह नाम से एक कॉन्फ़िगरेशन फ़ाइल बनाता है config-name। ध्यान दें कि यह आमतौर पर स्वचालित समय-आधारित स्नैपशॉट के निर्माण के साथ-साथ कुछ तर्क के बाद सफाई करने के नियमों को भी सक्षम करेगा। ध्यान दें कि मैन्युअल रूप से बनाए गए स्नैपशॉट को ऐसे नियमों द्वारा हटाया नहीं जाएगा।

एक स्नैपशॉट फिर से मैन्युअल रूप से लिया जा सकता है:

snapper -c config-name create --description description-content

जहां config-nameपहले से बनाए गए कॉन्फ़िगरेशन का नाम है और description-contentस्नैपशॉट के लिए कुछ विवरण से भरा जा सकता है।

(से व्युत्पन्न https://wiki.archlinux.org/index.php/Snapper)

फिर से स्थापित करने के लिए btrfs टूल सेक्शन के लिए ऊपर की तरह काम करता है, जिसमें माउंट किए गए स्नैपशॉट तक पहुँचने और चीजों को कॉपी करने के साथ काम करता है।

इसके अतिरिक्त स्नैपर उस के लिए एक कमांड प्रदान करता है, जिसका उपयोग ओपनसूट प्रलेखन के अनुसार वर्तमान वॉल्यूम के लिए परिवर्तनों को पूर्ववत करने के लिए भी किया जा सकता है । ध्यान दें कि इससे डेटा असंगति हो सकती है। इसके अलावा Red Hat डॉक्यूमेंट में यह कहा गया है कि वह रूट फाइल सिस्टम के साथ उस कमांड का उपयोग नहीं करता है।

सिद्धांत रूप में, फ़ाइलों के साथ बहाल किया जा सकता है:

 snapper -c config-name -v undochange SNAPSHOT_ID..0 FILENAME

जहां SNAPSHOT_IDसे स्नैपशॉट की आईडी को पुनर्स्थापित करना है (और ..0इंगित करता है कि फाइलें मुख्य वॉल्यूम में पुनर्स्थापित की जाती हैं) और FILENAMEबहाल करने के लिए फ़ाइल का पथ है। कोई एक से अधिक फ़ाइल भी निर्दिष्ट कर सकता है।

(से व्युत्पन्न https://doc.opensuse.org/documentation/leap/archive/15.0/reference/html/book.opensuse.reference/cha.snapper.html#proc.snapper.restore.cmdl)

EmmanuelRosa Dec 09 2020 at 17:25

BTRFS स्नैपशॉट, सबवोल्यूम स्तर पर काम करते हैं। इसका अर्थ है कि आप "रोल बैक" सबवॉल्म्स कर सकते हैं, लेकिन व्यक्तिगत फाइलें नहीं।

चूंकि सबवॉल्म्स फाइलसिस्टम में निर्देशिकाओं के रूप में दिखाई देते हैं, आप कह सकते हैं कि निर्देशिकाओं को वापस रोल करना संभव है।

अलग-अलग फ़ाइलों को वापस करने के लिए, मैं एक रिफ्लिक कॉपी का उपयोग करता हूं, जैसा कि आपके द्वारा दिए गए लिंक में दिखाया गया है। हालाँकि, मेरे पास संबंधित /etc/fstabसबवोल्यूम हैं जो स्वचालित रूप से माउंट होते हैं इसलिए कोई असुविधा नहीं है।