আপনি যদি আপনার স্টোরেজ ডিভাইসে ZFS ব্যবহার করার সিদ্ধান্ত নেন, অভিনন্দন! আপনি গ্রহের সবচেয়ে জটিল এবং বৈশিষ্ট্য সমৃদ্ধ ফাইল সিস্টেমগুলির মধ্যে একটি ব্যবহার করছেন৷ এবং যদি আপনি কখনও দীর্ঘমেয়াদী ডেটা সংরক্ষণ করার সিদ্ধান্ত নেন, যেমন পারিবারিক ছবি এবং ভিডিও, গুরুত্ব সহকারে ZFS বিবেচনা করুন। একটি অপ্রয়োজনীয় সেটআপে, যেমন চারটি মিরর করা হার্ড ড্রাইভ, এটি সম্পূর্ণরূপে গ্যারান্টি দেয় যে আপনি বিট পচা বা সময়ের সাথে সাথে অন্যান্য ধরণের স্টোরেজ অবক্ষয়, কম্পিউটার ত্রুটি ইত্যাদির কারণে এক বিট ডেটা হারাবেন না। ZFS স্বয়ংক্রিয়ভাবে ডেটা পুনরুদ্ধার করতে এবং সুস্থ করতে পারে। জটিল অ্যালগরিদম, হ্যাশ এবং মার্কেল ট্রিগুলি ডেটা অখণ্ডতার গ্যারান্টি দেয়৷
যাইহোক, এই টিউটোরিয়ালে কেন ZFS দীর্ঘমেয়াদী ডেটা সংরক্ষণাগারের জন্য সেরা পছন্দ তা কভার করা হয়নি। পরিবর্তে, স্ন্যাপশট এবং ক্লোনগুলি আপনার জন্য কী করতে পারে তা নিয়ে আলোচনা করা হচ্ছে৷
৷ZFS স্ন্যাপশট এবং ক্লোন কি?
একটি স্ন্যাপশট হল একটি নির্দিষ্ট সময়ে আপনার ডেটার অবস্থার একটি সঠিক ছবি। উদাহরণস্বরূপ, ধরা যাক আপনি একটি জটিল ওয়েবসাইটে কাজ করছেন। আপনি আপনার ZFS ডেটাসেটে সমস্ত কোড, ডেটাবেস এবং ছবি সঞ্চয় করেন। আপনি ওয়েবসাইটের নকশা পরিবর্তন করুন, কিছু চিত্র পরিবর্তন করুন, কিছু বিন্যাস মাত্রা পরিবর্তন করুন এবং কিছু কোড সংশোধন করুন এই সবগুলি উপযুক্ত করতে। আপনি যদি পূর্ববর্তী ডিজাইনে প্রত্যাবর্তন করতে চান তবে আপনাকে পৃথকভাবে সেই সমস্ত পরিবর্তনগুলি প্রত্যাবর্তন করতে হবে। ZFS-এর সাহায্যে, আপনি কেবল আপনার বর্তমান ডিজাইনের একটি স্ন্যাপশট নিতে পারেন, আপনি যে সমস্ত পরিবর্তন করতে চান তা করতে পারেন এবং আপনি যদি নতুন ডিজাইনের সাথে অসন্তুষ্ট হন তবে কেবল পূর্ববর্তী স্ন্যাপশটে ফিরে যান। এবং হ্যাঁ, এটা সত্য, এখানে গিট, গিটহাব এবং এমনকি কিছু কোড এডিটর রয়েছে যার মধ্যে একটি স্ন্যাপশট নেওয়ার এবং রোল ব্যাক করার ক্ষমতা রয়েছে। কিন্তু 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/
এর মতো একটি কমান্ড সহ , আপনি একটি স্ন্যাপশটে ফাইলের অবস্থা দেখতে সক্ষম। যেহেতু এটি একটি নিয়মিত (কেবল-পঠনযোগ্য) ডিরেক্টরির মতো কাজ করে, তাই আপনি একটি স্ন্যাপশট থেকে পৃথক ফাইলগুলিও অনুলিপি করতে পারেন যদি আপনার পুরো স্ন্যাপশটটি ফিরিয়ে আনার প্রয়োজন না হয়৷