রেইড কি? কিভাবে একাধিক হার্ড ড্রাইভকে সিঙ্গেল ড্রাইভে পরিনত করা হয়?
কিভাবে একাধিক হার্ড ড্রাইভকে সিঙ্গেল ড্রাইভে পরিনত করা হয়?
এতোদিন কম্পিউটিং করে কি অর্জন করেছেন? — হ্যাঁ অবশ্যই কয়েক শত গিগাবাইট বা টেরাবাইট পরিমাণের ডাটা, আর যেগুলোকে স্টোর করার জন্য দরকারি হয়ে উঠতে পারে কতিপয় হার্ড ড্রাইভের। আচ্ছা চলুন, আপনার পার্সোনাল পিসির কথা না হয় বাদই দিলাম, চিন্তা করে দেখুন ওয়েব সার্ভার বা নেটওয়ার্ক সার্ভার গুলোর কথা, যেখানে একসাথে লাখো ইউজারের ডাটা জমা থাকে, কিভাবে বা কোন টেকনোলজি ব্যবহার করে সেখানে হার্ড ড্রাইভ গুলোকে ম্যানেজ করা হয় বলতে পারেন? এখানেই চলে আসে রেইড স্টোরেজ (RAID Storage) সলিউশনের খেলা, এই সিস্টেম মূলত নেটওয়ার্ক সার্ভারের জন্য উন্নতি করা হয়েছিলো এবং এর প্রধান লক্ষ্য ছিল কম টাকা খরচে বড় ক্যাপাসিটির স্টোরেজ সিস্টেম তৈরি করা। আজ এই সিস্টেম শুধু বিজনেস প্ল্যাটফর্মেই নয়, হোম ইউজের ক্ষেত্রেও ঢুকে পড়েছে।
এই আর্টিকেল থেকে রেইড স্টোরেজ সিস্টেম সম্পর্কে অনেক গুরুত্বপূর্ণ সকল তথ্য গুলো সম্পর্কে জানার চেষ্টা করবো। এটি কি, এর প্রকারভেদ, সুবিধা, অসুবিধা ইত্যাদি সমস্ত কিছু থাকছে এই আর্টিকেলে।
রেইড কি?
রেইড মূলত একটি স্টোরেজ সিস্টেম, যেখানে একসাথে অনেক গুলো কমদামের হার্ড ড্রাইভকে একটি কন্ট্রোলারের সাথে যুক্ত করা হয় এবং অনেক ফিজিক্যাল ড্রাইভ এই সিস্টেমে একটি সিঙ্গেল লজিক্যাল ড্রাইভের ন্যায় আচরণ করে। সহজভাবে বলতে গেলে ধরুন আপনার কম্পিউটারে ৫টি ১টেরাবাইটের ড্রাইভ রয়েছে, তাহলে অবশ্যই সেটা পাঁচটি আলাদা ড্রাইভ হিসেবে সিস্টেমে শো করবে রাইট? কিন্তু যদি সেগুলো কোন রেইড সিস্টেমের সাথে জুড়ে দেওয়া হয়, সেক্ষেত্রে ৫টি ড্রাইভ মিলে একটি সিঙ্গেল ৫টেরাবাইট ড্রাইভ হিসেবে স্পেস শো করবে। শুধু শো করানো নয়, এটি কাজও করবে সিঙ্গেল ড্রাইভের ন্যায়।
রেইড (RAID) এর পুরনাজ্ঞ অর্থ হচ্ছে রিডান্ড্যান্ট অ্যারে অফ ইনএক্সপেন্সিভ/ইনডিপেন্ডেন্ট ড্রাইভ/ডিস্ক (Redundant Array of Independent/Inexpensive Disks/Drives)। এই স্পেশাল সিস্টেম রান করানোর জন্য অবশ্যই নির্দিষ্ট সফটওয়্যার বা কন্ট্রোলার প্রয়োজনীয় হয়, যেটা সকল ডাটা গুলোকে বিভক্ত করে বিভিন্ন ড্রাইভের মাঝে ছড়িয়ে রাখে, কিন্তু সিস্টেম থেকে একটি সিঙ্গেল ডাটা হিসেবেই অ্যাক্সেস করা যায়। এই সিস্টেম শুধু একটি বিশাল ক্যাপাসিটির ড্রাইভ তৈরি করার জন্য নয়, বরং একটি ড্রাইভের ডাটাকে রিয়াল টাইম আরেকটি ড্রাইভে বা একাধিক ড্রাইভে মিরর করার জন্যও এই সিস্টেম ব্যবহার করা হয়ে থাকে। মানে আপনি কোন ডাটা হার্ড একটি ড্রাইভে লোড করছেন, কিন্তু রিয়াল টাইমের সেই ডাটা আরেকটি ড্রাইভে স্বয়ংক্রিয় ব্যাকআপ হয়ে স্টোর হয়ে যাচ্ছে।
রেইড মূলত তিনটি বিশেষ কাজে ব্যবহৃত হয়, ক্যাপাসিটি, সিকিউরিটি, এবং পারফর্মেন্স। হোম বা সার্ভার ক্ষেত্রে অনেক ড্রাইভ একত্র করে বিশাল ক্যাপাসিটির একটি সিঙ্গেল ড্রাইভ তৈরি করার জন্য রেইড সিস্টেম বিশেষভাবে ব্যবহৃত হয়ে থাকে। তাছাড়া রেইড সিস্টেমে কন্ট্রোলার কোন ডাটাকে অনেক টুকরা করে আলাদা আলাদা ড্রাইভের মধ্যে ছড়িয়ে দেয়, এতে ডাটা অ্যাক্সেস করার সময় প্রত্যেক ড্রাইভ থেকে আলাদা আলাদা স্পীড পাওয়া যায়, বলতে পারেন পারফর্মেন্স দিগুন বা তিনগুন হয়ে যায়। অনেক বেশি ব্যান্ডউইথ হ্যান্ডেল করতে পারে ড্রাইভ, সেক্ষেত্রে। আর অবশেষে রেইড সিস্টেম সিকিউরিটির জন্য ব্যবহৃত হয়, যেটা আগের প্যারাগ্রাফেই উল্লেখ্য করেছি, একসাথে ডাটা অনেক ড্রাইভে মিরর করা হয়, এতে ডাটা ব্যাকআপ রাখা যায় সহজেই, যেকোনো সমস্যায় মূল্যবান ডাটা গুলো হারানোর কোন ভয় থাকে না।
এখন আপনি কোন কাজের জন্য এই সিস্টেমকে ব্যবহার কতে চান সে অনুসারে রেইড সিস্টেমের কিছু লেভেল রয়েছে, নিচের প্যারাগ্রাফ গুলোতে রেইড লেভেল গুলো নিয়ে বিস্তারিত আলোচনা করা হলো, আপনি আপনার প্রয়োজন অনুসারে যেকোনো একটিকে কাজে লাগাতে পারেন।
রেইড ০
প্রথমেই বলে রাখি, সকল রেইড সিস্টেম এখানে আলোচনা করা সম্ভব নয়, কেনোনা বিভিন্ন কাজের জন্য বিভিন্ন সিস্টেম রয়েছে। যাই হোক, রেইড ০ (জিরো) থেকে শুরু করা যাক — আলাদা রেইড লেভেল গুলো মতো রেইড ০ কোন রিডান্ডান্সি (Redundancy) প্রভাইড করে না। মুলত এই লেভেলের সিস্টেমকে হার্ড ড্রাইভ পারফর্মেন্স বৃদ্ধি করার জন্য ব্যবহার করা হয়ে থাকে। আপনি এখানে একসাথে দুইটি ড্রাইভ বা আরো ড্রাইভ সেটআপ করতে পাড়বেন। ধরুন আপনি সিস্টেমে মোট তিনটি ড্রাইভ যুক্ত করে রেখেছেন এবং একটি ১৫০ মেগাবাইট ফাইল ড্রাইভে স্টোর করলেন। এখন রেইড জিরো’তে তিনটি ড্রাইভেই সেই ডাটা অংশে অংশে স্টোর হবে, মানে ৫০ মেগাবাইট করে প্রত্যেকটি ড্রাইভে। আবার যখন আপনি ডাটাটি রীড করবেন, সেক্ষেত্রে প্রত্যেকটি ড্রাইভ থেকে ডাটাটি অ্যাক্সেস করে একটি পুরনাজ্ঞ ফাইল হিসেবে ব্যবহার করতে পাড়বেন। একটি সিঙ্গেল ড্রাইভ থেকে সিঙ্গেল ১৫০ মেগাবাইট ফাইল হতে ৩টি ড্রাইভ থেকে ১৫০ মেগাবাইট ফাইল অ্যাক্সেস করতে আপনি বেশি স্পীড পাবেন, কেনোনা প্রত্যেক ড্রাইভ থেকে আপনি আলাদা ব্যান্ডউইথ (রীড/রাইট) স্পীড পেতে পাড়বেন।
যাই হোক, রেইড জিরো সিস্টেমে আপনি বেস্ট পারফর্মেন্স পেতে অবশ্যই সকল ড্রাইভ গুলোর ক্যাপাসিটি ম্যাচ করতে হব। মানে যদি সিস্টেমে ৩টি ড্রাইভ থাকে, সেক্ষেত্রে ৩টিই প্রত্যেকে ১টেরাবাইট ক্যাপাসিটির হতে হবে বা একটি ড্রাইভ ২টেরাবাইট হলে বাকী দুইটি ড্রাইভও যথাক্রমে দুই টেরাবাইট হতে হবে। যদি তা না করেন, সেক্ষেত্রে ততোটা পারফর্মেন্স উন্নতি দেখতে পাবেন না। আপনার কম্পিউটার অপারেটিং সিস্টেম হয়তো অনেক ড্রাইভকে সিঙ্গেল ড্রাইভ হিসেবে দেখতে পাবে, কিন্তু ডাটা রাইট করার সময় কন্ট্রোলার প্রথমে ১ম ড্রাইভ রাইট করবে যতক্ষণ সেটা ফুল না হয়ে যায়, তারপরে দ্বিতীয় এবং তৃতীয়। একভাবে আপনি বড় ড্রাইভ তো বানিয়ে ফেলবেন, কিন্তু পারফর্মেন্সে কোন উন্নতি দেখতে পাবেন না। যখন একই ক্যাপাসিটি ড্রাইভ ইউজ করবেন, ডাটা গুলো খণ্ডিত হয়ে সকল ড্রাইভে ছড়িয়ে পড়বে এবং গ্রেট স্পীড লক্ষ্য করতে পাড়বেন।
রেইড জিরো লেভেলের সবচাইতে বড় সমস্যা হচ্ছে, আপনি সিঙ্গেল ডাটা অনেক গুলো ড্রাইভে বিভক্ত করে দিয়ে হয়তো বেটার স্পীড পাচ্ছেন, কিন্তু কোন একটি ড্রাইভ যদি ফেইল হয়ে যায়, আপনার সম্পূর্ণ ডাটা গুলো লস হয়ে যাবে, কেনোনা একটি ড্রাইভের ডাটা ব্যাতিত কোন সম্পূর্ণ ফাইল ক্রিয়েট হওয়া সম্ভব হবে না। আর এটা আপনার সিস্টেমে ঘটেই পারে, কোন হার্ড ড্রাইভ ফেইল করা একেবারেই স্বাভাবিক ব্যাপার, তাই অবশ্যই প্রয়োজনীয় ডাটা গুলোকে ব্যাকআপ রাখতে হবে।
রেইড ১
রেইড ১ বা রেইড ওয়ান শুধু মাত্র ডাটা মিরর করার কাজে ব্যবহৃত হয়। আপনি যদি আপনার সকল ডাটা গুলোকে রিয়াল টাইম আলাদা হার্ড ড্রাইভে ব্যাকআপ করতে চান সেক্ষেত্রে রেইড ১ বেস্ট সলিউশন হতে পারে। এখানে দুই বা আরো ড্রাইভ সিস্টেমের সাথে যুক্ত করা থাকে, কিন্তু এতে কোন ক্যাপাসিটি বৃদ্ধি হয় না। মানে আপনি যদি ১ টেরাবাইটের তিনটি ড্রাইভ সিস্টেমে লাগিয়ে রাখেন, সেক্ষেত্রে রেইড ০ এর মতো ৩ টেরাবাইট না হয়ে কেবল ১ টেরাবাইটই ক্যাপাসিটি শো করবে। আপনি যদি ১০০ মেগাবাইটের কোন ডাটা রেইড ১ সিস্টেমে কপি করেন, সেক্ষেত্রে সেম ডাটা প্রত্যেকটি ড্রাইভে কপি হয়ে যাবে, মানে একদম রিয়াল টাইম ব্যাকআপ। যদি কোন কারণে একটি ড্রাইভ ডাটাটি অ্যাক্সেস করতে ফেইল করে, পরে আরেকটি ড্রাইভ থেকে ব্যাকআপ ফাইল অ্যাক্সেস করতে পাড়বেন।
রেইড ১ সেটআপ অনেক বেশি দক্ষ বানানোর জন্য এখানেও আপনাকে ক্যাপাসিটি ম্যাচ করে ড্রাইভ লাগাতে হবে। মানে একটি ড্রাইভ যদি ১ টেরাবাইট ক্যাপাসিটির হয় সেক্ষেত্রে বাকী ড্রাইভ গুলোকেও ১ টেরাবাইট ক্যাপাসিটির হতে হবে। যদি আপনি এই সেটআপে আলাদা আলাদা ক্যাপাসিটি ড্রাইভ ব্যবহার করেন সেক্ষেত্রে সিস্টেম অ্যারে’তে থাকা সবচাইতে ছোট ক্যাপাসিটিতে লক হয়ে যাবে। এই লেভেলকে বিশেষ করে ডাটা সিকিউরিটির জন্য ব্যবহৃত করা হয়, কেনোনা দুইটি ড্রাইভ একেবারেই একই ডাটা ধারণ করে, এতে রিয়াল টাইম ব্যাকআপ তৈরি করার মাধ্যমে ডাটাকে বিশেষ নিরাপত্তা প্রদান করা হয়।
রেইড ৫
রেইড ফাইভ সবচাইতে বড় লেভেলের রেইড সিস্টেম, বিশেষ করে কনজিউমার কম্পিউটারের ক্ষেত্রে। এই সিস্টেম বিল্ড করার জন্য সর্বনিম্ন ৩টি ডিস্ক ড্রাইভের প্রয়োজন। এখানে রেইড ০ এর মতো আপনার ডাটা গুলো আলাদা ড্রাইভে ছড়িয়ে পরে স্পীড বুস্ট করবে এবং ক্যাপাসিটি বৃদ্ধি করবে সাথে আরেক ড্রাইভ ডাটা গুলোর ব্যাকআপও রাখবে সাথে ফেইলিউর পয়েন্ট নোট করে রাখে। রেইড ০ এর মতো কোন সমস্যা হলে আপনি ডাটা সম্পূর্ণ হারিয়ে ফেলবেন না, এতে আরেকটি ড্রাইভ আপনাকে ডাটা রিকভার করতে সাহায্য করবে।
রেইড ৫ আপনাকে রিডান্ডান্সি সিস্টেম অফার করছে, কিন্তু রেইড ১ এর চেয়ে সস্তা দামে। মনে করুণ, আপনার কাছে ৪টি ১ টেরাবাইট ড্রাইভ রয়েছে, এক্ষেত্রে আপনি দুইটি রেইড ১ সিস্টেম তৈরি করতে পাড়বেন, যেখানে দুইটি সিস্টেম থেকে ১ টেরাবাইট করে মোট ২ টেরাবাইট ক্যাপাসিটি পেতে পাড়বেন। অথবা যদি রেইড ৫ সিস্টেম তৈরি করেন সেক্ষেত্রে ৩ টেরাবাইট ক্যাপাসিটি পেতে পাড়বেন। সাথে পারফর্মেন্স + রেইড ১ এর মতো রিডান্ডান্সি একেবারেই ফ্রী!
এখানেও বেস্ট হবে, আপনি যদি একই ক্যাপাসিটির সকল ড্রাইভ গুলো দিয়ে সিস্টেম বিল্ড করেন। যদি কোন ড্রাইভের ক্যাপাসিটি ছোট হয়, সিস্টেম ছোট ক্যাপাসিটিতেই লক হয়ে যাবে। এখন যদি পারফর্মেন্স নিয়ে কথা বলি, রেইড জিরো থেকে ফাইভ এর পারফর্মেন্স একটু স্লো হবে, যদিও একই স্টাইলে ডাটা অংশে বিভক্ত করে সেভ করা হয়, কিন্তু এখানে আরেকটি ড্রাইভ সর্বদা ডাটা রেকর্ড রাখে এবং ডাটা ফেইল করলে রিকভার করতে সাহায্য করে, এই জন্য এই প্রসেসে কিছুটা পারফর্মেন্স লস হয়ে যায়। তবে সেটা শুধু ডাটা রাইট করার ক্ষেত্রে, ডাটা রীড স্পীড আপনি ভালোই পাবেন।
রেইড ৬ এবং রেইড ১০ (১+০)
রেইড ৬ (সিক্স) অনেকটা রেইড ৫ এর মতোই কাজ করে কিন্তু এখানে আলাদা সমতা ব্লক ব্যবহৃত হয়ে থাকে, আমি যদিও এখানে কোন টেকনিক্যাল বিষয় নিয়ে আলোচনা করবো না, কেনোনা এই প্রসেস গুলো একটু ঝামেলার, তবে এটা জেনে রাখুন রেইড ৬ সিস্টেমে ডাটাকে আরো বেশি সুরক্ষা প্রদান করা হয়। যদি রেইড ৫ সিস্টেমে ২টি ড্রাইভ ফেইল করে, সেক্ষেত্রে আপনি ডাটা গুলো হারিয়ে ফেলবেন। কিন্তু রেইড ৬ সিস্টেমে ২টি ড্রাইভ ফেইল হওয়ার পরেও আপনি ডাটা হারাবেন না।
রেইড ১০ (টেন) বা রেইড ১+০ সিস্টেমে একসাথে রেইড ১ এবং রেইড ০ সিস্টেম ব্যবহৃত হয়ে থাকে। এখানে কিছু ড্রাইভ একত্রে মিলে ক্যাপাসিটি এবং পারফর্মেন্স বৃদ্ধি করে এবং অপরদিকে সেম ক্যাপাসিটি কিছু ড্রাইভ সেই ডাটা গুলোর কমপ্লিট ব্যাকআপ রাখে। মানে আপনি রেইড ১ এর ব্যাকআপ সিস্টেম পাচ্ছেন এবং সাথে রেইড ০ এর স্পীড, পারফর্মেন্স, ক্যাপাসিটি পাচ্ছেন।
এখন আপনি হয়তো চিন্তা করছেন, রেইড ২, ৩, ৪ — এগুলো গেল কই? দেখুন এগুলো একেবারেই অব্যবহৃত সিস্টেম, যেগুলো কেউই তেমন ব্যবহার করেনা, তাই এখানে উল্লেখ্য করারও প্রয়োজন মনে করলাম না।
রেইডের অসুবিধা
উপরের প্যারাগ্রাফ গুলো থেকে আপনি কিছুটা হলেও সুবিধা এবং কিছু অসুবিধা সম্পর্কে জ্ঞান লাভ করেছেন। কিন্তু সকল রেইড সিস্টেম জুড়েই কিছু অসুবিধা রয়েছে যেগুলো অনেকেই প্রথমে খেয়াল করেন না, কিন্তু নির্দিষ্ট সময়ে এসে মনে হয়, হাইরে এখন কি করবো। প্রথম, যদি পার্সোনাল কম্পিউটারে রেইড সিস্টেম চালানোর কথা চিন্তা করেন সেক্ষেত্রে আপনার প্রসেসর এই সিস্টেমকে হ্যান্ডেল করতে কিছুটা প্রসেসিং পাওয়ার ব্যয় করবে, কেনোনা প্রত্যেকটি ডাটা রেকর্ড রাখতে, ডাটা রিকভারি করতে প্রসেসিং পাওয়ার প্রয়োজনীয় হবে।
রেইড সিস্টেম তৈরি করার পূর্বে বিশেষ কন্ট্রোলার প্রয়োজনীয় হয়, সাথে বিশেষ সফটওয়্যার এবং অপারেটিং সিস্টেমকে কনফিগার করতে হয়। তারপরে ড্রাইভ গুলোকে বিশেষ ফাইল সিস্টেম ডাটা ফরম্যাট করতে হয়, যাতে একাধিক ড্রাইভ একটি সিঙ্গেল ড্রাইভের মতো কাজ করতে পারে। হ্যাঁ, এগুলো তো করতেই হবে, তাই না? সমস্যা আসলে এটা নয়, কিন্তু সমস্যা তখন সৃষ্টি হয়, যখন আপনার ক্যাপাসিটি শেষ হয়ে আসে আর আপনি নতুন ড্রাইভ আপনার রেইড সিস্টেমে অ্যাড করার কথা চিন্তা করেন। যেহেতু আপনার ১টি সিঙ্গেল ডাটা প্রত্যেকটি ড্রাইভের মধ্যে শেয়ার হয়ে থাকে, তাই চাইলেই আপনি যেকোনো ড্রাইভ রিপ্লেস বা অ্যাড করতে পাড়বেন না। এক্ষেত্রে আপনাকে কমপ্লিট সিস্টেম থেকে ডাটা ব্যাকআপ নিতে হবে তারপরে রেইড সিস্টেমে নতুন ড্রাইভ অ্যাড করে ফরম্যাট করতে হবে, তারপরে ডাটা রিস্টোর করতে হবে, তবেই নতুন ড্রাইভ কাজ করতে শুরু করবে। এবার একটু চিন্তা করে দেখুন, এই সম্পূর্ণ ব্যাপারটি কতোটা বিরক্তিকর হতে পারে?
তো আপনি কি হোম পিসিতে রেইড সিস্টেম সেটআপ করতে চাচ্ছেন? সমস্যা নেই উইন্ডোজ অপারেটিং সিস্টেম এবং অনেক মাদারবোর্ড রেইড সিস্টেম সমর্থন করে, আপনি কিছু কনফিগার করার মাধ্যমেই এটি করতে পাড়বেন। যদি চান, আমি এই বিষয়ে একটি আলাদা আর্টিকেল পাবলিশ করি, সেক্ষেত্রে অবশ্যই আমাকে নিচে কমেন্ট করতে পারেন। তাছাড়া শুধু এইচডিডি দিয়ে নয় আপনি এসএসডি দিয়েও রেইড সিস্টেম তৈরি করতে পারেন, এতে কমদামী ছোট ক্যাপাসিটির এসএসডি গুলো যুক্ত করে বড় ক্যাপাসিটি সিঙ্গেল ড্রাইভ বানাতে পাড়বেন।