यदि आपने अपने भंडारण उपकरणों पर ZFS का उपयोग करने का निर्णय लिया है, बधाई हो! आप ग्रह पर सबसे जटिल और सुविधा संपन्न फाइल सिस्टम में से एक का उपयोग कर रहे हैं। और यदि आप कभी भी पारिवारिक फ़ोटो और वीडियो जैसे दीर्घकालिक डेटा संग्रहीत करने का निर्णय लेते हैं, तो ZFS पर गंभीरता से विचार करें। एक बेमानी सेटअप में, जैसे कि चार मिरर वाली हार्ड ड्राइव, यह पूरी तरह से गारंटी देता है कि आप समय के साथ बिट रोट या स्टोरेज डिग्रेडेशन के अन्य रूपों, कंप्यूटर त्रुटियों आदि के कारण कभी भी डेटा का एक बिट नहीं खोएंगे। ZFS स्वचालित रूप से डेटा को ठीक और पुनर्प्राप्त कर सकता है। जटिल एल्गोरिदम, हैश और मर्कल ट्री डेटा अखंडता की गारंटी देते हैं।
हालांकि, इस ट्यूटोरियल में लंबी अवधि के डेटा को संग्रहीत करने के लिए ZFS सबसे अच्छा विकल्प क्यों है, इसे कवर नहीं किया गया है। इसके बजाय, स्नैपशॉट और क्लोन आपके लिए क्या कर सकते हैं, इस पर चर्चा की जा रही है।
ZFS स्नैपशॉट और क्लोन क्या हैं?
एक स्नैपशॉट बस एक निश्चित समय पर आपके डेटा की स्थिति की एक सटीक तस्वीर है। उदाहरण के लिए, मान लें कि आप एक जटिल वेबसाइट पर काम कर रहे हैं। आप अपने ZFS डेटासेट पर सभी कोड, डेटाबेस और छवियों को संग्रहीत करते हैं। आप वेबसाइट का डिज़ाइन बदलते हैं, कुछ छवियों को संशोधित करते हैं, कुछ लेआउट आयाम बदलते हैं और यह सब फिट करने के लिए कुछ कोड को संशोधित करते हैं। यदि आप पिछले डिज़ाइन पर वापस जाना चाहते हैं, तो आपको उन सभी परिवर्तनों को अलग-अलग वापस करना होगा। ZFS के साथ, आप बस अपने वर्तमान डिज़ाइन का एक स्नैपशॉट ले सकते हैं, सभी परिवर्तन कर सकते हैं जो आप करना चाहते हैं, और यदि आप नए डिज़ाइन से नाखुश हैं, तो बस पिछले स्नैपशॉट पर वापस रोल करें। और हाँ, यह सच है, गिट, गिटहब और यहां तक कि कुछ कोड संपादक भी हैं जिनमें स्नैपशॉट लेने और वापस रोल करने की क्षमता शामिल है। लेकिन ZFS के साथ निम्नलिखित विशेषताएं भी शामिल हैं:
- स्नैपशॉट वैश्विक हैं। वे आपके प्रोजेक्ट में शामिल सभी डेटा का एक स्नैपशॉट बनाते हैं।
- स्नैपशॉट और रोलबैक लगभग तत्काल होते हैं, चाहे आपका प्रोजेक्ट कितना भी बड़ा क्यों न हो (भले ही उसमें सैकड़ों गीगाबाइट हों)।
स्नैपशॉट की संख्या की कोई सीमा नहीं है। आपके पास "डिज़ाइन 1," "डिज़ाइन 2," और "डिज़ाइन 3" हो सकते हैं और उनके बीच स्वतंत्र रूप से स्विच कर सकते हैं, परिवर्तन कर सकते हैं और एक नया स्नैपशॉट बना सकते हैं:"डिज़ाइन 2 - बेहतर।"
क्लोन
जबकि स्नैपशॉट मूल रूप से जमे हुए डेटा हैं जो बताते हैं कि आप वापस आ सकते हैं, क्लोन एक सामान्य बिंदु से शुरू होने वाली शाखाओं की तरह हैं। इसे बेहतर ढंग से समझने के लिए, इस परिदृश्य की कल्पना करें:आप एक विज्ञापन अभियान के लिए एक वीडियो बनाते हैं। फिर, आप इस वीडियो का एक स्नैपशॉट लेते हैं (वास्तव में ZFS डेटासेट का जहां आप अपना वीडियो संग्रहीत करते हैं)। अब, आप इस स्नैपशॉट को तीन बार क्लोन करें। आप एक कर्मचारी को "क्लोन 1", दूसरे कर्मचारी को "क्लोन 2" और तीसरे कर्मचारी को "क्लोन 3" देते हैं। अब वे प्रत्येक अपने व्यक्तिगत स्थान पर काम कर सकते हैं और अपने वांछित परिवर्तन कर सकते हैं।
यह उपयोगी क्यों है? वीडियो भारी मात्रा में डिस्क स्थान घेर सकते हैं। उच्च-रिज़ॉल्यूशन वाली कच्ची फिल्म के लिए सैकड़ों या हजारों जीबी स्टोरेज की आवश्यकता हो सकती है। अगर मुख्य वीडियो को 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/
. जैसे कमांड के साथ , आप स्नैपशॉट में फ़ाइलों की स्थिति देख सकते हैं। चूंकि यह एक नियमित (केवल-पढ़ने के लिए) निर्देशिका की तरह कार्य करता है, इसलिए यदि आपको संपूर्ण स्नैपशॉट को वापस करने की आवश्यकता नहीं है, तो आप स्नैपशॉट से अलग-अलग फ़ाइलों की प्रतिलिपि भी बना सकते हैं।