কন্টেইনার নাকি তার ফাইল ব্যাকআপ করবেন? পুনরুদ্ধারের ধরন দেখে সিদ্ধান্ত নিন
ইমেজ ও ফাইল-স্তরের ব্যাকআপ ভিন্ন জিনিস পুনরুদ্ধার করে এবং ভিন্ন কী-এর উপর নির্ভর করে। সংরক্ষিত বস্তুটিকে আপনার প্রকৃত প্রয়োজনীয় পুনরুদ্ধারের সঙ্গে মিলিয়ে নিন।
আপনি একটি এনক্রিপ্ট করা কন্টেইনারকে একক বস্তু হিসেবে ব্যাকআপ করতে পারেন, অথবা এটি মাউন্ট করে ভেতরের ফাইলগুলো ব্যাকআপ করতে পারেন। দুটোই VPN-এর মধ্য দিয়ে সহজে যায়, আর মিল এখানেই শেষ। তারা ভিন্ন জিনিস পুনরুদ্ধার করে, ভিন্ন কী-এর উপর নির্ভর করে, ভিন্ন পরিমাণ জায়গা নেয়, এবং কেউ তথ্য ফেরত চাইলে ভিন্নভাবে ব্যর্থ হয়। আগে পুনরুদ্ধারের বস্তু বাছুন, তারপর পরিবহন, তারপর সংরক্ষিত কপির এনক্রিপশন। নিচের চেকলিস্ট সেই ক্রমেই চলে, কারণ প্রায় প্রতিটি ব্যাকআপ বিতর্ক আসলে এই তিনটির মধ্যে কোনটি আগে ঠিক করা হয়েছিল তা নিয়ে মতভেদ।
দুটি বস্তু, দুই ধরনের পুনরুদ্ধার
ইমেজ ব্যাকআপ একটি কন্টেইনার পুনরুদ্ধার করে: এনক্রিপ্ট করা ভলিউমটি ফিরে পান, আর তা খুলতে এখনও এর পুনরুদ্ধার উপকরণ দরকার। ফাইল-স্তরের ব্যাকআপ ফাইল ও ডিরেক্টরি-বৃক্ষ পুনরুদ্ধার করে, আর যে এনক্রিপশন তাদের রক্ষা করে তা মূল কন্টেইনারের নয়, বরং ব্যাকআপ ভান্ডারের বৈশিষ্ট্য। দূরের ফোল্ডারে সাধারণ কপি তৃতীয় একটি ক্ষেত্র, আর তা সেই ফোল্ডারের যেটুকু সুরক্ষা আছে তা-ই উত্তরাধিকারে পায়।
| Object | What a restore gives you | Where the encryption question lands |
|---|---|---|
| Encrypted container image | The volume, still locked | The container format and its recovery key material |
| Mounted files into a backup tool | Selected files and metadata | The backup repositorys own keys and design |
| Plain copy to a remote folder | Whatever the copy process kept | Whatever protects that storage afterwards |
মাঝের সারিটিই মানুষ ভুল পড়ে। এটি সম্পূর্ণ ভালো নকশা হতে পারে: ব্যাকআপ প্রোগ্রাম স্থানীয়ভাবে প্লেইনটেক্সট পড়ে এবং একটি এনক্রিপ্ট করা, প্রমাণীকৃত ভান্ডার লেখে। তখন নিরাপত্তা ওই প্রোগ্রাম ও তার শংসাপত্রের উপর নির্ভর করে, মূল কন্টেইনারের পাসওয়ার্ডের উপর নয়, এবং দুটিকে একই নিয়ন্ত্রণ হিসেবে বর্ণনা করা উচিত নয়।
যাচাই 1: পুনরুদ্ধারকে কী পুনর্গঠন করতে হবে?
প্রশ্নটি ব্যাকআপের নয়, পুনরুদ্ধারের আকারে করুন। প্রয়োজন যদি হয় “এই পরিষেবাটি অন্য হোস্টে ফিরিয়ে আনো”, তাহলে ইমেজ ও তার পুনরুদ্ধার উপকরণ একটি সুসংগত উত্তর। প্রয়োজন যদি হয় “মার্চ মাসের আর্থিক স্প্রেডশিটটি ফিরিয়ে আনো”, তাহলে একটি ফাইল বের করতে কয়েক গিগাবাইটের ইমেজ পুনরুদ্ধার করা ব্যয়বহুল উত্তর। দুটোই বৈধ পুনরুদ্ধার, আর তারা বিনিময়যোগ্য বাজেট নয়। যে পরিকল্পনা কেবল একটির নাম নেয়, তাকে শেষে অন্যটি দিয়েই পরীক্ষা করা হবে।
পুনরুদ্ধারের লক্ষ্য পরিকল্পনায় লিখুন: পুরো ভলিউম, একটি ডিরেক্টরি-বৃক্ষ, বা আলাদা আলাদা ফাইল। তারপর খেয়াল করুন কোন মেটাডেটা তাদের সঙ্গে যেতে হবে, কারণ মালিকানা, অনুমতি, বর্ধিত অ্যাট্রিবিউট ও টাইমস্ট্যাম্প ফাইল-স্তরের পুনরুদ্ধারের অংশ, আর পরীক্ষার সময় যথেষ্ট মনে হওয়া কপি-ভিত্তিক কর্মপ্রবাহে সেগুলো প্রায়ই হারিয়ে যায়।
পুনরুদ্ধার কে করবে তাও ঠিক করুন। যে ফাইল-স্তরের ভান্ডার যেকোনো অপারেটর মাউন্ট করতে পারে, তা এমন ইমেজ থেকে ভিন্ন প্রবেশ-মডেল যেখানে কী-ধারকের উপস্থিতি দরকার, আর কোনোটিই স্বয়ংক্রিয়ভাবে ভালো নয়। গুরুত্বপূর্ণ হলো পছন্দটি সচেতন ও লিখিত হওয়া।
যাচাই 2: সংরক্ষিত কপিকে কী রক্ষা করে?
VPN একটি পরিবহন-অংশ রক্ষা করে। স্থানান্তর শেষ হলে সংরক্ষিত কপি নিয়ে এটি কিছুই বলে না, আর “এটি টানেলের মধ্য দিয়ে গেছে” ব্যাকআপ অপারেটরের আপনার তথ্য পড়ার সামর্থ্য সম্পর্কে কোনো বিবৃতি নয়। দূরের পক্ষ যদি অন্য কেউ চালায়, প্রশ্ন হলো তারা কী পড়তে পারে, লিঙ্কটি এনক্রিপ্ট ছিল কি না নয়।
ইমেজের ক্ষেত্রে এর অর্থ কন্টেইনারের কী উপকরণকে ইমেজ থেকে আলাদাভাবে রক্ষা করা। হেডার হারালে ভলিউম হারায়, তাই হেডার এমন জায়গায় ব্যাকআপ করুন যেখানে ইমেজ নেই:
cryptsetup luksHeaderBackup /dev/vg0/data --header-backup-file data-header.img
cryptsetup luksDump /dev/vg0/data | head -20
ফাইল-স্তরের ভান্ডারের ক্ষেত্রে যাচাই করুন যে টুলটি তথ্য ও মেটাডেটা হোস্ট ছাড়ার আগেই এনক্রিপ্ট ও প্রমাণীকৃত করে, এবং কে কী ধরে আছে তা জেনে নিন। Restic-এর নকশা-ডকুমেন্টেশন স্পষ্টভাবে বলে যে এটি একটি বিশ্বস্ত উৎস-হোস্ট ধরে নেয় এবং এনক্রিপশ কোনো ব্যাকআপ মুছতে থাকা স্টোরেজ-প্রবেশাধিকারীকে বাধা দেয় না। দুই সতর্কতাই গুরুত্বপূর্ণ: একটি ভান্ডার গোপনীয় হতে পারে এবং তবুও ধ্বংস হতে পারে।
যাচাই 3: কপিটি সুসংগত কি?
যে ব্যাকআপ একটি পরিবর্তনশীল ফাইলসিস্টেম ধরে, তা একটি কপি, পুনরুদ্ধার-বিন্দু নয়। ইমেজের ক্ষেত্রে ভলিউম টুলের সমর্থিত পদ্ধতিতে স্থিতিশীল স্ন্যাপশট নিন, যার অর্থ সাধারণত স্ন্যাপশট অপারেশন বা ডিসমাউন্ট, বড় ফাইল পরিবর্তনের সময় পড়া নয়:
lvcreate -L 5G -s -n data-snap /dev/vg0/data
cryptsetup open /dev/vg0/data-snap data-snap --readonly
মাউন্ট করা ফাইলের ক্ষেত্রে সক্রিয় ডেটাবেস ও অন্যান্য সমন্বিত তথ্যের জন্য অ্যাপ্লিকেশনের সমর্থিত সুসংগততা-প্রক্রিয়া ব্যবহার করুন। ফাইলসিস্টেম-স্তরের কপি ও অ্যাপ্লিকেশন-সুসংগত পুনরুদ্ধার-বিন্দু ভিন্ন বর্ণনা, আর পার্থক্যটি কেবল তখনই দেখা যায় যখন পুনরুদ্ধার করা কপি থেকে অ্যাপ্লিকেশন চালু করতে চেষ্টা করেন।
পুনরুদ্ধার উপকরণ স্বতন্ত্র সুরক্ষিত পথে রাখুন। মূল মেশিন হারানো কখনও তার ব্যাকআপ খোলার একমাত্র শংসাপত্রও হারানো উচিত নয়, আর কী-ফাইল যে ভলিউম ব্যাকআপ হচ্ছে তার উপর থাকলে ঠিক তাই ঘটে। এই বিচ্ছেদ সচেতনভাবে পরীক্ষা করুন: এমন হোস্টে পুনরুদ্ধার করুন যা মূলটি কখনও দেখেনি, কেবল পরিকল্পনায় উপলব্ধ বলা জিনিস ব্যবহার করে।
যাচাই 4: এই বস্তুর জন্য পরিবর্তন-শনাক্তকরণ কাজ করে কি?
এনক্রিপ্ট করা কন্টেইনার বেশিরভাগ স্থানান্তর টুলের কাছে একটি বড় অস্বচ্ছ ফাইল মনে হয়, তাই ছোট প্লেইনটেক্সট সম্পাদনা টুল ও ফরম্যাট অনুসারে বড় পুনঃপাঠ বা সম্পূর্ণ পুনঃআপলোড ঘটাতে পারে। পরিবর্তনশীল আকারের খণ্ডন ও ডিডুপ্লিকেশন, যেমন restic নথিভুক্ত করে, তা কমাতে পারে, কিন্তু এটি ওই টুলের বৈশিষ্ট্য, সাধারণভাবে এনক্রিপ্ট করা কন্টেইনারের নয়।
ধরে নেওয়ার বদলে মাপুন। ছোট, নিরীহ পরিবর্তনের পর প্রথম চালানোর সঙ্গে দ্বিতীয় চালানো তুলনা করুন, এবং স্থানান্তরিত বাইট ও অতিবাহিত সময় দুটোই লিখে রাখুন। পরীক্ষা-নিরীক্ষার সময় একটি জানা-ভালো ব্যাকআপ রেখে দিন, যাতে একটি পরীক্ষা আপনার একমাত্র পুনরুদ্ধার-বিন্দু শেষ না করে ফেলে।
তারপর চেকলিস্ট শেষ করুন একমাত্র অর্থবহ পরীক্ষায়: মূল মেশিন ছাড়া পুনরুদ্ধার। পুনরুদ্ধার করা কন্টেইনার খুলুন, বা বাছাই করা ফাইল তাদের মেটাডেটাসহ পুনরুদ্ধার করুন, এবং নিশ্চিত করুন যে অ্যাপ্লিকেশন বা ব্যবহারকারী ফলাফলটি ব্যবহার করতে পারে। যে দ্রুত, ভালোভাবে এনক্রিপ্ট করা স্থানান্তর এই পরীক্ষার উত্তর দিতে পারে না, তা আপনার তথ্যের কপি, ব্যাকআপ নয়।