এই আর্টিকেলটিতে সার্ভারের মৌলিক বিষয়বস্তু নিয়ে আলোচনা করার চেষ্টা করা হয়েছে। পুরো আর্টিকেলজুড়ে যে বিষয়গুলো আলোচনা করা হয়েছে সেগুলো হচ্ছে, সার্ভার কি, সাধারন ডেস্কটপ এবং সার্ভারের পার্থক্য কোথায়, একটি সার্ভার তৈরি করার জন্য প্রধান যে কম্পোনেন্টসগুলোর প্রয়োজন হয় এবং সার্ভিসের উপরে ভিত্তি করে সার্ভারের ধরন।
সার্ভার কি?
সার্ভার আসলে কি? সাধারনভাবে বললে, সার্ভার একটি কম্পিউটার। তবে আমরা আমাদের নিত্যপ্রয়োজনীয় কাজের জন্য যেই কম্পিউটার ব্যবহার করে থাকি তার থেকে অনেক শক্তিশালী। যদি বলা হয় কেন, তাহলে বলতে হবে আমাদের ব্যবহার করা সাধারন কম্পিউটারগুলো একটানা রাত-দিন, সপ্তাহের পরে সপ্তাহ, মাসের পর মাস কিংবা বছরের পর বছর চালু রাখতে হয় না কাজ করার জন্য কিন্ত একটা সার্ভারের ৩৬৫ দিনে প্রতিদিন ২৪ ঘন্টা করেই চালু রাখতে হয়।
তাই একটু ভালোভাবে যদি সার্ভারের সংজ্ঞা দেয়া হয় তাহলে বলতে হয়, সার্ভার মূলত একটি ডেডিকেটেড কম্পিউটার যা সাধারণ ডেস্কটপ কম্পিউটার বা ওয়ার্কস্টেশনগুলোর মতোই ক্লায়েন্টদের বিভিন্ন সার্ভিস দিয়ে থাকে। আর এটি একটি সেন্ট্রালাইজড মেশিন যেখানে একাধিক ক্লায়েন্ট ইন্টারনেট ব্যবহারের মাধ্যমে বা একটি Local Area Network (LAN)-এ কানেক্ট হবার মাধ্যমে একটি নির্দিষ্ট সার্ভিসের জন্য সার্ভারের সাথে কানেকটিভিটি বা সংযোগ স্থাপন করে।
সাধারন ডেস্কটপ কম্পিউটার ও সার্ভার
তবে সার্ভার মানেই যে সেটিকে একটি শক্তিশালী কম্পিউটার হতে হবে ব্যাপারটা তেমন নয়, কোনও সাধারণ ডেস্কটপ কম্পিউটারও একটি সার্ভার হিসাবে সেটাপ করা যায়। মূখ্য বিষয় হল, যে সার্ভারটি আমরা সেটাপ করব সেটি যেন আমাদেরকে ২৪/৭*৩৬৫ সার্ভিস দিতে পারে।
উদাহরণস্বরূপ, আপনি আপনার একটি সাধারণ ডেস্কটপ কম্পিউটার ফাইল সার্ভার হিসাবে সার্ভ করতে পারেন। ফাইলগুলো আপনার কম্পিউটারে একটি শেয়ার্ড ফোল্ডারে রাখবেন এবং অন্যান্য কম্পিউটারগুলো সেই ফাইলগুলো অ্যাক্সেস করতে চাইলে এটির সাথে সংযোগ স্থাপন করতে হবে। আপনি চাইলে একটি ডেস্কটপ কম্পিউটারও ওয়েব সার্ভার হিসাবে সার্ভ করার কাজে ব্যবহার করতে পারেন যেখানে আপনি সেই কম্পিউটারে ওয়েবসাইট ডেটাগুলো ইনস্টল করবেন এবং তারপরে অন্যান্য কম্পিউটারগুলো এর সাথে কানেক্ট বা সংযুক্ত হয়ে ওয়েব পেইজটি রিট্রিভ করতে পারবে।
তবে ডেস্কটপ কম্পিউটারগুলোর সীমাবদ্ধতা রয়েছে। কারণ, সেগুলো কোনও বড় কাজের চাপ হ্যান্ডেল করার জন্য ডিজাইন করা হয়নি। ব্যবহারকারীদের কাছ থেকে যখন প্রচুর ইনকামিং কানেকশন আসতে থাকে তখন সেগুলো এসব সাধারন কম্পিউটারের পক্ষে হ্যান্ডেল করা সম্ভব হয় না এবং এটি কেবল তাদের কম মানসম্মত হার্ডওয়্যার এর জন্যই নয় বরং এটি সফ্টওয়্যারের জন্যও হয়ে থাকে। ডেস্কটপ অপারেটিং সিস্টেমগুলি কেবল সীমিত পরিমাণের কনকারেন্ট কানেকশনগুলো পরিচালনা করতে সক্ষম আর অন্যদিকে সার্ভারগুলি সবসময় আপ থাকতে হয় এবং ২৪/৭-ই চালানো দরকার হয়। কারণ সেগুলো কোনও অর্গানাইজেশনের জন্য অনেক গুরুত্বপূর্ণ। যদি কোনও সার্ভার ডাউন হয়ে যায় ত্রুটির কারনে তাহলে সেটির জন্য কোনও ব্যবসা প্রতিষ্ঠান বা অর্গানাইজেশনকে তা বিপন্ন করে ফেলতে পারে। আর এই কারণেই সার্ভারগুলোকে আরও নির্ভরযোগ্য হওয়া দরকার সাধারন কাজে ব্যবহার হওয়া ডেস্কটপগুলোর চাইতে।
সার্ভারের প্রধান কম্পোনেন্টস বা উপাদানগুলো
প্রত্যেকটা সার্ভারই কিছু কম্পোনেন্টস দিয়ে তৈরি। একটি সার্ভারের পরিপূর্নভাবে সার্ভিস প্রদানের জন্য হার্ডওয়্যার এবং সফটওয়্যার উভয়েরই ভূমিকা থাকে। নিচে প্রধান কিছু কম্পোনেন্টস এর নাম উল্লেখ্য করা হল যেসব ছাড়া কখনই একটি সার্ভার তৈরি করে ব্যবহারযোগ্য করা সম্ভব নয়।
- Motherboard
- Central Processing Unit (CPU)/ Processor
- Random Access Memory (RAM)
- Hard Drive
- OS Deployment/Installation
- Network/Port
- Power Supply
যেকোন সার্ভার অনেক শক্তিশালী হার্ডওয়্যার দিয়ে তৈরি করা প্রয়োজন যেন সেগুলো অবিরাম চলতে পারে কোনরকম ডাউনটাইম ছাড়াই। উদাহরণস্বরূপ, ডেস্কটপে এমন একটি প্রসেসর ব্যবহার করতে হবে যা স্পষ্টতই ডেস্কটপের জন্য ডিজাইন করা হয়েছে যেমন ইন্টেল-এর কোর সিরিজের প্রসেসরগুলো। ঠিক তেমনি একটি সার্ভারেও এমন একটি প্রসেসর ব্যবহার করতে হবে যা স্পষ্টতই সার্ভারের জন্য ডিজাইন করা হয়েছে যেমন ইন্টেল Xeon প্রসেসর। উভয় প্রসেসর-ই শক্তিশালী হলেও উল্লেখযোগ্য কিছু পার্থক্য রয়েছে।
Xeon প্রসেসরগুলো একটি মাল্টি-প্রসেসিং ইনভাইরনমেন্টকে সাপোর্ট করে। সেগুলোকে ডিজাইন করা হয়েছে অন্যান্য প্রসেসরের সাথে কাজ করার জন্য যার অর্থ আপনি সার্ভারগুলোর জন্য ডিজাইন করা মাদারবোর্ডে দুই বা ততোধিক Xeon প্রসেসর রাখতে পারেন। কারন এমন অনেক সার্ভার আছে যাদের খুব বড় পরিমান কাজের চাপ হ্যান্ডেল করতে হয়। ডেস্কটপ প্রসেসরগুলো এমনটি সাপোর্ট করে না। সেগুলো কেবল তাদের নিজেদের কাজ করার জন্য ডিজাইন করা হয়েছে, অন্য প্রসেসরের সাথে একত্রিত হয়ে কাজ করার জন্য নয়।
আর একটি পার্থক্য হ’ল Xeon প্রসেসরগুলো ECC RAM সাপোর্ট করে যা মেমোরির ত্রুটিপূর্ণ কোডগুলো সংশোধন করে থাকে। এই ধরণের মেমোরি মূলত সার্ভারে ব্যবহৃত হয়। যে কথাটি আগেও বলেছি যে, একটি সার্ভারের সবসময় আপ এবং রানিং থাকা অবশ্যই প্রয়োজন আর মেমরির ত্রুটিগুলি একটি সার্ভারকে ডাউন করে ফেলার অন্যতম কারন। ECC যা করে তা হ’ল, কোন ডেটা সঠিকভাবে RAM মডিউল দ্বারা প্রসেস করা হয়েছে কিনা তা সনাক্ত করে এবং মেমোরিতে কোন সংশোধনের প্রয়োজন হলে তা রোধ করে সেই মেমোরিকে এররস বা ত্রুটি থেকে রক্ষা করে। সুতরাং, সার্ভারগুলিতে ECC RAM এর ব্যবহার কোন সার্ভারকে মেমোরির ত্রুটিজনিত কারন থেকে ডাউন হওয়া থেকে রক্ষা পাওয়ার জন্য অতিরিক্ত সতর্কতা বলা যেতে পারে। INTEL এর কোর প্রসেসরগুলি ECC RAM সাপোর্ট করে না তবে AMD প্রসেসরগুলো এটি সাপোর্ট করে। ZM প্রসেসগুলোও বড় পরিসরে RAM সাপোর্ট করে থাকে, আর তাদের একটি বৃহত্তর cache memory আছে। সাধারন ডেস্কটপ প্রসেসরের তুলনায় তাদের কোর কাউন্ট অনেক উচ্চতর।
একটি সার্ভারের অবশ্যই একটি সোয়াপেবল বা পরিবর্তন করা যায় এমন হার্ড-ড্রাইভ থাকতে হবে আর তা RAID কনফিগারেশন সহ। কারন যদি কখনো কোন হার্ড-ড্রাইভ ফেইল হলে তার কারনে যেন কোন ডেটা লস না হয় বা হারিয়ে না যায় এবং সার্ভারও যেন আপ এবং রানিং থাকে RAID এর কারনে। RAID এক বা একের অধিক ডিস্কে ডেটা কপি করে থাকে। যদি কোন হার্ড-ড্রাইভ ফেইল হয় তাহলে এটি যেন রিমুভ বা রিপ্লেস করা যায় সার্ভার বন্ধ না করেই এবং রিমুভ বা রিপ্লেস এর পরে RAID নতুন হার্ড-ড্রাইভ এ অটোমেটিক্যালি ডেটা পুনঃপ্রতিস্থাপন করে। RAID সম্পর্কে আরো বিস্তারিত জানতে চাইলে আমাদের এই ব্লগটি পড়ে দেখতে পারেন (যে কারনে সার্ভারে RAID অনেক গুরুত্বপূর্ণ)
কোন কারনে যদি পাওয়ার সাপ্লাই ফেইলিওর না হয় সেক্ষেত্রে অতিরিক্ত পাওয়ার সাপ্লাই থাকা অবশ্যই প্রয়োজন সার্ভারকে আপ এবং রানিং রাখবার জনন্য।
একটি সার্ভারের জন্য একটি সার্ভার অপারেটিং সিস্টেম যেমন Linux সার্ভার, Windows সার্ভার, Mac OS সার্ভার ইত্যাদি ব্যবহার করতে হয়। স্বাভাবিকভাবেই সার্ভার অপারেটিং সিস্টেমগুলি শক্তিশালী এবং স্থিতিশীল। এগুলি নন-স্টপ চালানোর জন্য ডিজাইন করা হয়েছে এবং এগুলো হাজারের মত কনকারেন্ট কানেকশন পরিচালনা করতে সক্ষম।
সার্ভার টাইপ
বিভিন্ন টাইপের সার্ভার রয়েছে। সার্ভারের সার্ভিসের উপর ভিত্তি করে কিছু উল্লেখযোগ্য সার্ভার হচ্ছেঃ
- Web Server
- MAIL Server
- FTP Server
- Database Server
- Proxy Server
- Virtual Server etc.
ওয়েব সার্ভার কোনও ওয়েবসাইটকে হোস্ট করে। ইন্টারনেট ব্যবহার করে আপনার ওয়েব ব্রাউজারের মাধ্যমে আপনি যেকোন ওয়েবসাইটে যাওয়া মানেই আপনি সেই ওয়েব সার্ভারের সাথে সংযোগ স্থাপন করেন এবং আপনার ওয়েবসাইটটি সেখান থেকে আপনার ব্রাউজারে এলে তা আপনি দেখতে পান। ওয়েব সার্ভারে তার ওয়েবসাইটটি সম্পর্কে সব ধরনের ডেটা রয়েছে কোড এবং গ্রাফিক্স সহ।
আর এক ধরণের সার্ভার হ’ল মেইল সার্ভার। একটি মেইল সার্ভার ইমেইল সেন্ড ও রিসিভের সুবিধার্থে ব্যবহৃত হয়। আপনি আপনার ওয়েব ব্রাউজারটি ব্যবহার করে ইমেইলটি অ্যাক্সেস করতে পারেন অথবা আপনি কোনও ইমেইল ক্লায়েন্ট যেমন Outlook বা Thunderbird ব্যবহার করতে পারেন SMTP, POP, IMAP-এর মত ইমেইল প্রটোকল ব্যবহার করে।
আর এক ধরণের সার্ভার হচ্ছে ডাটাবেস সার্ভার। এই ধরণের সার্ভার ব্যাক-এন্ড এর ডেটা স্টোর করে এবং তারপরে কোয়েরি ব্যবহার করে এটিকে কম্পিউটারগুলোর ফ্রন্ট-এন্ড থেকে রিট্রিভ করা হয়, যেমন SQL.
এসব ছাড়াও বিভিন্ন কাজের জন্য ভিন্নরকমের অসংখ্য সার্ভার রয়েছে।
আশা করি আর্টিকেলটি পড়ে সার্ভার সম্পর্কিত মৌলিক বিষয়বস্তু সম্পর্কে পরিষ্কার ধারণা অর্জন করতে পেরেছেন। এই সম্পর্কিত আরও প্রশ্ন থাকলে বা আপনাদের কোন সাজেশন যদি থেকে থাকে তাহলে অবশ্যই তা কমেন্ট সেকশনে জানাতে ভুলবেন না।
ধন্যবাদ।
Very Nice write up
Thanks.