यदि आपने अपने स्टोरेज डिवाइस पर ZFS का उपयोग करने का निर्णय लिया है, तो बधाई! आप ग्रह पर सबसे जटिल और फीचर-रिच फाइल सिस्टम में से एक का उपयोग कर रहे हैं। और यदि आप कभी लंबी अवधि के डेटा को स्टोर करने का निर्णय लेते हैं, जैसे पारिवारिक तस्वीरें और वीडियो, तो गंभीरता से ZFS पर विचार करें। एक रिडंडेंट सेटअप में, जैसे चार मिरर हार्ड ड्राइव, यह आपको गारंटी देता है कि आप बिट रॉट या समय के साथ स्टोरेज डिग्रेडेशन के अन्य रूपों, कंप्यूटर त्रुटियों आदि के कारण कभी भी एक बिट डेटा नहीं खोएंगे। ZFS स्वचालित रूप से स्वयं को ठीक कर सकता है और डेटा रिकवर कर सकता है। जटिल एल्गोरिदम, हैश और मर्कल ट्री डेटा अखंडता की गारंटी देते हैं।
हालांकि, इस ट्यूटोरियल में यह कवर नहीं किया गया है कि ZFS लंबी अवधि के डेटा को आर्काइव करने के लिए सबसे अच्छा विकल्प क्यों है। इसके बजाय, चर्चा की जा रही है कि स्नैपशॉट्स और क्लोन आपके लिए क्या कर सकते हैं।
ZFS स्नैपशॉट्स और क्लोन क्या हैं?
एक स्नैपशॉट केवल एक निश्चित समय पर आपके डेटा की स्थिति की एक सटीक तस्वीर है। उदाहरण के लिए, मान लीजिए आप एक जटिल वेबसाइट पर काम कर रहे हैं। आप अपने ZFS डेटासेट पर सभी कोड, डेटाबेस, और इमेज स्टोर करते हैं। आप वेबसाइट का डिज़ाइन बदलते हैं, कुछ इमेज संशोधित करते हैं, कुछ लेआउट आयाम बदलते हैं और यह सब फिट करने के लिए कुछ कोड संशोधित करते हैं। यदि आप पिछले डिज़ाइन पर वापस लौटना चाहते हैं, तो आपको उन सभी परिवर्तनों को व्यक्तिगत रूप से वापस करना होगा। ZFS के साथ, आप बस अपने वर्तमान डिज़ाइन का एक स्नैपशॉट ले सकते हैं, जो चाहें परिवर्तन करें, और यदि आप नए डिज़ाइन से नाखुश हैं, तो बस पिछले स्नैपशॉट पर वापस रोल करें। और हां, यह सच है, Git, GitHub और यहां तक कि कुछ कोड एडिटर हैं जिनमें स्नैपशॉट लेने और रोल बैक करने की क्षमता शामिल है। लेकिन ZFS में निम्नलिखित विशेषताएं भी शामिल हैं:
- स्नैपशॉट्स ग्लोबल हैं। वे आपके प्रोजेक्ट में शामिल बिल्कुल सभी डेटा का एक स्नैपशॉट बनाते हैं।
- स्नैपशॉट्स और रोलबैक लगभग तात्कालिक हैं, चाहे आपका प्रोजेक्ट कितना भी बड़ा हो (भले ही इसमें सैकड़ों गीगाबाइट हों)।
स्नैपशॉट्स की संख्या की कोई सीमा नहीं है। आप "डिज़ाइन 1", "डिज़ाइन 2", और "डिज़ाइन 3" रख सकते हैं और उनके बीच स्वतंत्र रूप से स्विच कर सकते हैं, परिवर्तन कर सकते हैं, और एक नया स्नैपशॉट बना सकते हैं: "डिज़ाइन 2 - बेहतर"।
क्लोन
जबकि स्नैपशॉट्स मूल रूप से फ्रोज़न डेटा स्टेट हैं जिन पर आप वापस जा सकते हैं, क्लोन सामान्य बिंदु से शुरू होने वाली शाखाओं की तरह हैं। इसे बेहतर ढंग से समझने के लिए, इस परिदृश्य की कल्पना करें: आप एक विज्ञापन अभियान के लिए एक वीडियो बनाते हैं। फिर, आप इस वीडियो का एक स्नैपशॉट लेते हैं (वास्तव में ZFS डेटासेट का जहां आप अपना वीडियो स्टोर करते हैं)। अब, आप इस स्नैपशॉट को तीन बार क्लोन करते हैं। आप "क्लोन 1" एक कर्मचारी को देते हैं, "क्लोन 2" दूसरे को और "क्लोन 3" तीसरे को। अब वे प्रत्येक अपने व्यक्तिगत स्थान में काम कर सकते हैं और अपने इच्छित परिवर्तन कर सकते हैं।
यह उपयोगी क्यों है? वीडियो डिस्क स्पेस की बड़ी मात्रा घेर सकते हैं। हाई-रिज़ॉल्यूशन रॉ फिल्म को सैकड़ों या हजारों GB स्टोरेज की आवश्यकता हो सकती है। यदि मुख्य वीडियो को 500GB स्टोरेज की आवश्यकता है और तीन लोगों को अलग-अलग परिवर्तनों पर काम करने के लिए क्लोन करने की आवश्यकता है, तो इसके लिए 1500GB से अधिक स्टोरेज की आवश्यकता होगी।
ZFS के साथ, स्नैपशॉट और तीन (या अधिक) क्लोन को 501GB से अधिक स्टोरेज की आवश्यकता नहीं होगी। डेटा के ब्लॉक जो नहीं बदलते (सभी क्लोन में ये सामान्य हैं) केवल एक बार स्टोर किए जाते हैं। इस तरह, केवल वे अंतर जो प्रत्येक संपादक जोड़ता है, अतिरिक्त डेटा के रूप में स्टोर होते हैं। वास्तविक दुनिया के परिदृश्य में, आपको तीनों क्लोन के लिए लगभग 650GB डेटा की आवश्यकता हो सकती है। यह स्टोरेज और संसाधनों का कुशल उपयोग है, और डेटा उचित रूप से अलग है ताकि प्रत्येक संपादक अपने दिल की सामग्री के लिए काम कर सके।
बेशक, यह कई अन्य परिदृश्यों के लिए उपयोगी है जहां आपको एक ही सामग्री को कई अलग-अलग दिशाओं में शाखा करने की आवश्यकता होती है, भले ही डिस्क स्पेस आवश्यकताएं चिंता का विषय न हों।
ZFS स्नैपशॉट्स के साथ काम करने के लिए उपयोग की जाने वाली कमांड्स
जबकि अन्य लिनक्स डिस्ट्रीब्यूशन इस फाइल सिस्टम/वॉल्यूम मैनेजर का उपयोग कर सकते हैं, उबंटू आज तक ZFS के लिए सर्वश्रेष्ठ समर्थन प्रदान करता है।
चूंकि सभी उपयोगकर्ताओं के पास ZFS की पेशकश करने के लिए एक पूरा डिस्क उपलब्ध नहीं है, यह जानना उपयोगी हो सकता है कि आप sudo zpool create pool_name /dev/sda3 जैसे कमांड के साथ एक खाली पार्टीशन पर एक पूल भी बना सकते हैं, जहां /dev/sda3 आपके पहले डिस्क पर आपके तीसरे पार्टीशन का डिवाइस नाम है।
उचित पैकेज इंस्टॉल करने और अपना पहला ZFS डेटासेट बनाने के बाद, यहां बताया गया है कि आप स्नैपशॉट कैसे बनाते हैं।
सबसे पहले, अपने ZFS डेटासेट का नाम ढूंढें जिसे आप स्नैपशॉट करना चाहते हैं।
zfs list
इस उदाहरण में, डेटासेट का नाम data है और स्नैपशॉट का नाम snap1 होगा। अगली कमांड में इन मानों को अपने मामले में लागू होने वाले से बदलें। स्नैपशॉट बनाने के लिए, दर्ज करें:
sudo zfs snapshot data@snap1
यदि आपके मामले में डेटासेट का नाम videos है, और आप अपने स्नैपशॉट को first कहना चाहते हैं, तो कमांड होगी:
sudo zfs snapshot videos@first
परिवर्तनों को वापस रोल करने और अपने डेटासेट को सटीक सामग्री पर पुनर्स्थापित करने के लिए जो स्नैपशॉट लेने पर थी, उपयोग करें:
sudo zfs rollback data@snap1
जब आपको स्नैपशॉट की आवश्यकता नहीं रहती, तो इसे इससे हटाएं:
sudo zfs destroy data@snap1
ZFS क्लोन के साथ काम करने के लिए उपयोग की जाने वाली कमांड्स
यह मानते हुए कि आपके पास "data@snap1" नामक एक स्नैपशॉट है, इसे क्लोन करें:
sudo zfs clone data@snap1 data/clone1
क्लोन को हटाने के लिए:
sudo zfs destroy data/clone3
और आप क्लोन के स्नैपशॉट भी ले सकते हैं।
sudo zfs snapshot data/clone2@snap_of_clone
भविष्य में, जब आप अपने द्वारा बनाए गए सभी स्नैपशॉट्स और क्लोन को याद रखना चाहते हैं, तो उपयोग करें:
zfs list -t all
निष्कर्ष
यह ZFS स्नैपशॉट्स और क्लोन के साथ आप जो बुनियादी संचालन कर सकते हैं, उन सभी को कवर करता है। यह जानना उपयोगी हो सकता है कि प्रत्येक डेटासेट के भीतर " .zfs " नामक एक छिपी हुई निर्देशिका होती है। ls /data/.zfs/snapshot/snap1/ जैसे कमांड के साथ, आप एक स्नैपशॉट में फ़ाइलों की स्थिति देख सकते हैं। चूंकि यह एक नियमित (रीड-ओनली) निर्देशिका की तरह काम करता है, आप एक स्नैपशॉट से व्यक्तिगत फ़ाइलों को भी कॉपी कर सकते हैं यदि आपको पूरे स्नैपशॉट को वापस करने की आवश्यकता नहीं है।