Apache Cassandra একটি উচ্চ পারফরম্যান্স, ডিস্ট্রিবিউটেড NoSQL ডেটাবেস সিস্টেম, যা স্কেলেবিলিটি এবং হাই অ্যাভেইলেবিলিটি নিশ্চিত করে। তবে, যেহেতু Cassandra তে ডেটা অনেক বড় এবং ডিস্ট্রিবিউটেড, তাই ডেটা নিরাপত্তা এবং সুরক্ষার জন্য কার্যকরী Backup কৌশল ব্যবহার করা খুব গুরুত্বপূর্ণ। Snapshot Backup এবং Incremental Backup হলো Cassandra তে ডেটা ব্যাকআপ করার দুটি জনপ্রিয় এবং কার্যকরী পদ্ধতি।
এই নিবন্ধে আমরা Snapshot Backup এবং Incremental Backup এর ব্যবহার এবং প্রক্রিয়া নিয়ে বিস্তারিত আলোচনা করবো।
1. Snapshot Backup: Snapshot ব্যাকআপ কী এবং কিভাবে কাজ করে?
Snapshot Backup হল Cassandra তে একটি দ্রুত এবং নির্ভরযোগ্য ব্যাকআপ পদ্ধতি, যা ডেটার একটি moment-in-time copy তৈরি করে। এটি মূলত SSTables এর একটি কপি তৈরি করে এবং সেই কপিটি ব্যাকআপ হিসেবে সংরক্ষণ করা হয়। Snapshot ব্যাকআপ প্রক্রিয়া সিস্টেমের মধ্যে কোন ডেটার পরিবর্তন বা আপডেট হওয়ার আগেই ডেটার একটি নির্দিষ্ট অবস্থান সংরক্ষণ করে।
Snapshot Backup এর কাজ:
- Frozen Data: Snapshot ব্যাকআপ যখন করা হয়, তখন এটি সমস্ত সিস্টেমে immutable (অপরিবর্তনযোগ্য) ডেটা ফাইলের একটি কপি তৈরি করে, যাতে ডেটার কোনো পরিবর্তন না হয়।
- Instant Backup: Snapshot ব্যাকআপটি দ্রুত সম্পন্ন হয় এবং এটি ডেটার একটি নির্দিষ্ট সময়ের কপি তৈরি করে, যা নিরাপত্তা এবং পুনরুদ্ধারে ব্যবহৃত হতে পারে।
Snapshot Backup এর প্রক্রিয়া:
- Snapshot তৈরি: Cassandra তে nodetool snapshot কমান্ড ব্যবহার করে Snapshot তৈরি করা হয়। এটি SSTables এবং সমস্ত ডেটা ফাইলের একটি কপি তৈরি করে।
- Snapshot সংরক্ষণ: Snapshot ফাইলগুলি ডিস্কে সঞ্চিত হয় এবং তা নির্দিষ্ট ফোল্ডারে রাখা হয়। ব্যবহারকারীরা পরে সেই Snapshot ব্যাকআপ থেকে ডেটা পুনরুদ্ধার করতে পারেন।
- Snapshot-এর পুনরুদ্ধার: Snapshot ব্যাকআপ থেকে ডেটা পুনরুদ্ধারের জন্য restore অপশন ব্যবহার করা হয়, যেখানে Snapshot ফোল্ডার থেকে ডেটা পুনরুদ্ধার করা যায়।
Snapshot Backup উদাহরণ:
nodetool snapshot
এই কমান্ডটি Cassandra এর data directory-এ একটি নতুন Snapshot তৈরি করবে।
Snapshot Backup এর সুবিধা:
- দ্রুত ব্যাকআপ: Snapshot ব্যাকআপ একটি দ্রুত পদ্ধতি, কারণ এটি শুধু ডেটার একটি কপি তৈরি করে, কোনো সম্পূর্ণ পুনর্লিখন করা হয় না।
- ডেটার নির্ভুল কপি: Snapshot ব্যাকআপ ডেটার একটি নির্দিষ্ট সময়ের নির্ভুল কপি তৈরি করে, যা পরে পুনরুদ্ধার করা যেতে পারে।
Snapshot Backup এর সীমাবদ্ধতা:
- ডিস্ক স্পেস ব্যবহার: Snapshot ব্যাকআপ ডিস্কে অতিরিক্ত স্পেস ব্যবহার করতে পারে, কারণ এটি পুরো ডেটার একটি কপি তৈরি করে।
- স্ট্যাটিক ডেটা: Snapshot শুধুমাত্র ডেটার একটি স্থির কপি তৈরি করে, তাই এটি ডেটার রিয়েল-টাইম পরিবর্তনকে ট্র্যাক করে না।
2. Incremental Backup: Incremental ব্যাকআপ কী এবং কিভাবে কাজ করে?
Incremental Backup হল Cassandra তে একটি ব্যাকআপ কৌশল যা শুধুমাত্র পরিবর্তিত বা নতুন ডেটার একটি কপি তৈরি করে। Snapshot ব্যাকআপের বিপরীতে, যেখানে সম্পূর্ণ ডেটার কপি তৈরি হয়, Incremental ব্যাকআপ শুধুমাত্র সেই ডেটার কপি নেয় যা সর্বশেষ আপডেট বা লেখার মাধ্যমে পরিবর্তিত হয়েছে।
Incremental Backup এর কাজ:
- Change Tracking: Cassandra তে Incremental Backup শুধুমাত্র নতুন SSTables এবং commit log ফাইলগুলির উপর ভিত্তি করে কাজ করে। এটি ডেটা পরিবর্তন হলে সেগুলি ট্র্যাক করে এবং কেবলমাত্র সেই ডেটা ব্যাকআপ হিসেবে সংরক্ষণ করে।
- অল্প ব্যাকআপ ফাইল: কারণ এটি শুধুমাত্র নতুন বা পরিবর্তিত ডেটার কপি তৈরি করে, তাই এটি কম স্পেস ব্যবহার করে এবং ডিস্কের স্পেস কমে আসে।
Incremental Backup এর প্রক্রিয়া:
- সক্রিয় করা: Incremental Backup enabled করতে Cassandra কনফিগারেশন ফাইল (cassandra.yaml) এ
incremental_backupsঅপশনকেtrueএ সেট করতে হয়। - ব্যাকআপ তৈরি: যখন incremental backup সক্রিয় থাকে, Cassandra স্বয়ংক্রিয়ভাবে commit log এবং SSTables ফাইলের নতুন কপি তৈরি করে এবং সেগুলিকে নির্দিষ্ট ব্যাকআপ ফোল্ডারে সংরক্ষণ করে।
- Incremental ব্যাকআপের পুনরুদ্ধার: পুনরুদ্ধারের সময়, প্রথমে Snapshot ব্যাকআপ থেকে মূল ডেটা পুনরুদ্ধার করতে হয়, এবং তারপর Incremental ব্যাকআপ থেকে পরিবর্তিত ডেটা পুনরুদ্ধার করা হয়।
Incremental Backup উদাহরণ:
Cassandra এর cassandra.yaml ফাইলে incremental_backups কনফিগারেশন সেট করতে হবে:
incremental_backups: true
Incremental Backup এর সুবিধা:
- স্টোরেজ ইফিশিয়েন্সি: Incremental Backup শুধুমাত্র পরিবর্তিত ডেটার কপি তৈরি করে, যা স্টোরেজ স্পেস অপ্টিমাইজ করে।
- দ্রুত ব্যাকআপ: কারণ শুধু পরিবর্তিত ডেটা ব্যাকআপ করা হয়, তাই এটি দ্রুত সম্পন্ন হয়।
- কম ডিস্ক ব্যবহার: এটি শুধুমাত্র প্রয়োজনীয় ডেটার কপি তৈরি করে, যা ডিস্কের জায়গা কম ব্যবহার করে।
Incremental Backup এর সীমাবদ্ধতা:
- বৃহৎ ডেটা: যদি ডেটার পরিবর্তন খুব বেশি হয়, তবে অনেক ছোট ছোট Incremental ব্যাকআপ ফাইল তৈরি হতে পারে, যা পরে পুনরুদ্ধারের সময় জটিলতা সৃষ্টি করতে পারে।
- কনসোলিডেশন প্রয়োজন: Incremental Backup এর পুনরুদ্ধারের জন্য অনেকগুলো ব্যাকআপ ফাইল একত্রিত করতে হয়, যা পুনরুদ্ধারের সময় কিছুটা জটিলতা সৃষ্টি করতে পারে।
3. Snapshot Backup এবং Incremental Backup এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Snapshot Backup | Incremental Backup |
|---|---|---|
| ব্যাকআপের পরিমাণ | সম্পূর্ণ ডেটার কপি | শুধুমাত্র পরিবর্তিত বা নতুন ডেটার কপি |
| ব্যাকআপের গতি | দ্রুত | ধীর, কারণ পরিবর্তিত ডেটা ট্র্যাক করতে হয় |
| স্টোরেজ স্পেস | বেশি স্টোরেজ স্পেস প্রয়োজন | কম স্টোরেজ স্পেস প্রয়োজন |
| পুনরুদ্ধার | সহজ, একক কপি থেকে পুনরুদ্ধার | প্রথমে Snapshot, তারপর Incremental ফাইল থেকে পুনরুদ্ধার |
| প্রযুক্তি | SSTables এর কপি তৈরি | commit logs এবং SSTables এর পরিবর্তিত কপি তৈরি |
4. Backup Strategies in Cassandra
Cassandra তে ডেটা ব্যাকআপের জন্য সঠিক কৌশল নির্বাচন করা খুবই গুরুত্বপূর্ণ। দুইটি ব্যাকআপ কৌশল Snapshot এবং Incremental Backup এর একসাথে ব্যবহার করে আপনি সিস্টেমের পারফরম্যান্স, ডেটার নিরাপত্তা এবং ব্যাকআপ কৌশলকে আরও কার্যকরী করতে পারেন।
- Snapshot + Incremental Backup: Cassandra তে সাধারণত Snapshot এবং Incremental Backup একসাথে ব্যবহার করা হয়, যেখানে প্রথমে Snapshot তৈরি করা হয় এবং পরে ছোট ছোট Incremental Backup নিয়ে ডেটা সুরক্ষিত রাখা হয়।
সারাংশ
Snapshot Backup এবং Incremental Backup দুটি কার্যকরী পদ্ধতি যা Cassandra তে ডেটা ব্যাকআপ করার জন্য ব্যবহৃত হয়। Snapshot Backup সম্পূর্ণ ডেটার একটি কপি তৈরি করে এবং Incremental Backup শুধুমাত্র পরিবর্তিত ডেটার কপি তৈরি করে। দুইটি ব্যাকআপ পদ্ধতিই Cassandra এর ডেটার নিরাপত্তা এবং সিস্টেমের পারফরম্যান্স সুরক্ষিত রাখতে গুরুত্বপূর্ণ ভূমিকা পালন করে।
Read more