ফেজ ১ — পরিচিতি ও স্থাপত্য#
৬টি লেসন · লেভেল: শুরুর
VirtFusion কী করে, ভেতরে কীভাবে সাজানো, আর কোন শব্দ কী মানে — এই ফেজেই।
এই ফেজে কী আছে#
| লেসন | কী শিখবেন |
|---|---|
| ১ — VirtFusion কী, কোন সমস্যার সমাধান | শুধু KVM-এর উপরে VirtFusion বাড়তি কী দেয়, আর কী দেয় না |
| ২ — কন্ট্রোল সার্ভার ও হাইপারভাইজার | দুই অংশ কী করে, আর কোন পোর্টে একে অন্যের সাথে কথা বলে |
| ৩ — মূল শব্দগুলোর মানে | যে শব্দগুলো বাকি ছয় ফেজে বারবার আসবে |
| ৪ — লাইসেন্স ও খরচের হিসাব | ক্লাস্টারে একটি কী, আর প্রতিটি নোডে VM-এর সীমা |
| ৫ — প্রয়োজনীয় পোর্ট ও নেটওয়ার্ক প্রবাহ | কোন পোর্ট কোন দিকে খোলা রাখতে হয় |
| ৬ — VirtFusion না Proxmox: প্রথম ধারণা | দুইটির উদ্দেশ্য কোথায় আলাদা |
লেসন ১ — VirtFusion কী, কোন সমস্যার সমাধান#
ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: KVM দিয়েই সার্ভার কেটে VPS বানানো যায়। যেটা যায় না, সেটা হলো কাস্টমারকে প্যানেল দেওয়া, IP বিলি করা, ব্যান্ডউইথ গোনা আর বিলিং সিস্টেমের সাথে কথা বলা। VirtFusion ঠিক ওই অংশটাই। এটা KVM-এর উপরে বসে, নিজে হাইপারভাইজার নয়।
সহজ ভাষায়#
আপনার কাছে বেয়ার-মেটাল সার্ভার আছে। আপনি তা ভাগ করে VPS বানিয়ে বিক্রি করতে চান। শুধু KVM দিয়েও করা যায়, কিন্তু তখন সবকিছু নিজে বানাতে হয়: কাস্টমার প্যানেল, IP বরাদ্দ, OS টেমপ্লেট, ব্যান্ডউইথ হিসাব, VNC কনসোল, বিলিং সংযোগ।
VirtFusion ঠিক এই স্তরটিই দেয়। এটি নিজে হাইপারভাইজার নয় — নিচে চলে সাধারণ লিনাক্স KVM (libvirt + QEMU)। VirtFusion তার উপরে বসে ব্যবস্থাপনা, প্যানেল ও API দেয়।
কী কী দেয়#
| দেয় | মানে |
|---|---|
| দুই প্যানেল | অ্যাডমিনের জন্য একটি, কাস্টমারের জন্য আরেকটি |
| VM লাইফসাইকেল | তৈরি, বিল্ড, চালু/বন্ধ, রিবিল্ড, রিসাইজ, ডিলিট |
| IP ব্যবস্থাপনা | IPv4/IPv6 ব্লক, স্বয়ংক্রিয় বরাদ্দ, rDNS |
| OS টেমপ্লেট | cloud-init ভিত্তিক Linux ও Windows টেমপ্লেট |
| কনসোল | ব্রাউজারে VNC, SSH ছাড়াই |
| ট্রাফিক হিসাব | প্রতি সার্ভারে ব্যান্ডউইথ গণনা ও সীমা |
| ব্যাকআপ | ইনক্রিমেন্টাল ব্যাকআপ, একাধিক স্টোরেজ ব্যাকএন্ড |
| বিলিং সংযোগ | WHMCS সহ ৭টি বিলিং সিস্টেমের মডিউল |
| API | পূর্ণ REST API, সব কাজ স্ক্রিপ্ট করা যায় |
কী দেয় না#
- বিলিং নিজে করে না — ইনভয়েস, পেমেন্ট গেটওয়ে, ট্যাক্স আলাদা সিস্টেমের কাজ
(ব্যতিক্রম: Self Service-এর ঘণ্টাভিত্তিক ক্রেডিট, ফেজ ৬ দেখুন)
- কন্টেইনার চালায় না — LXC/Docker নেই, শুধু পূর্ণ VM
- নেটওয়ার্ক সুইচ কনফিগ করে না — VLAN, রাউটিং আপনার দায়িত্ব
লেসন ২ — কন্ট্রোল সার্ভার ও হাইপারভাইজার#
ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: VirtFusion দুই টুকরায় চলে। কন্ট্রোল সার্ভার হলো মাথা, আর সেখানে একটাও VM চলে না। হাইপারভাইজার হলো গায়ের জোর, কাস্টমারের VM ওখানেই থাকে। ক্লাস্টারে একটা কন্ট্রোল সার্ভার, হাইপারভাইজার যত খুশি। এই ভাগটা না বুঝলে বাকি সব ঘোলাটে লাগবে।
সহজ ভাষায়#
VirtFusion দুই অংশে ইনস্টল হয়। এই ভাগটা না বুঝলে বাকি সব গুলিয়ে যাবে।
| অংশ | কী চালায় | কয়টি লাগে |
|---|---|---|
| কন্ট্রোল সার্ভার | ওয়েব প্যানেল, API, ডাটাবেস, টাস্ক কিউ | ১টি। এটাই ক্লাস্টার ঠিক করে দেয় |
| হাইপারভাইজার | KVM, libvirt, আসল VM-গুলো | যত ইচ্ছা, যত জায়গায় ইচ্ছা |
কন্ট্রোল সার্ভার কোনো VM চালায় না। এটি শুধু নির্দেশ দেয়। হাইপারভাইজার সেই নির্দেশ পালন করে এবং অবস্থা ফেরত জানায়।
"ক্লাস্টারে ১টি" মানে "প্রতি রিজিয়নে ১টি" নয়#
ক্লাস্টার মানে একটি কন্ট্রোল সার্ভার আর সে যত হাইপারভাইজার চালায় তার সবগুলো। ক্লাস্টার ঠিক করে দেয় কন্ট্রোল সার্ভার — ভূগোল নয়।
তাই একটি কন্ট্রোল সার্ভার একই সাথে সিঙ্গাপুর, ফ্রাঙ্কফুর্ট ও ডালাসের নোড চালাতে পারে। সেটা তবুও একটাই ক্লাস্টার, আর একটাই লাইসেন্স। লোকেশনগুলো আলাদা করতে হাইপারভাইজার গ্রুপ ব্যবহার করুন, আর কাস্টমার অর্ডারের সময় গ্রুপ বেছে নেয়।
দ্বিতীয় কন্ট্রোল সার্ভার তখনই লাগে যখন আপনি সত্যিই আলাদা একটা ক্লাস্টার চান — মাপা যায় এমন লেটেন্সির জন্য, ব্যর্থতা আলাদা রাখার জন্য, অথবা আইন বলছে ডেটা এক দেশেই থাকতে হবে বলে। দ্বিতীয় ক্লাস্টার মানে দ্বিতীয় লাইসেন্স।
নোট: এর পরের ব্যাপারটা ফেজ ৫, লেসন ৫-এ আছে। একাধিক ক্লাস্টার চালালে প্রতিটির নিজস্ব বেস URL ও নিজস্ব API টোকেন থাকে, আর কোন সার্ভার কোন ক্লাস্টারের সেটা আপনার অ্যাপ্লিকেশনকে লিখে রাখতে হবে।
যোগাযোগ কীভাবে হয়#
কাস্টমার ব্রাউজার ──443──▶ কন্ট্রোল সার্ভার
│
│ 8892 (HTTPS, দুই দিকেই)
▼
হাইপারভাইজার ১ … n
│
কাস্টমার ব্রাউজার ──5900+─────────┘ (VNC কনসোল)- কন্ট্রোল সার্ভার হাইপারভাইজারকে কাজ পাঠায় পোর্ট 8892-এ
- হাইপারভাইজারও একই পোর্টে ফেরত রিপোর্ট করে — তাই দুই দিকেই খোলা রাখতে হয়
- VNC কনসোল কাস্টমারের ব্রাউজার থেকে সরাসরি হাইপারভাইজারের 5900+ পোর্টে যায়
একই মেশিনে দুইটাই?#
পরীক্ষার জন্য চলে, কিন্তু সুপারিশ নয়। বিশেষ করে NAT ব্যবহার করলে চলবেই না — প্রক্সি পোর্ট সংঘাত করে (ফেজ ৩, লেসন ৪)।
লেসন ৩ — মূল শব্দগুলোর মানে#
ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: এটা শব্দের তালিকা। মুখস্থ করার দরকার নেই, শুধু জেনে রাখুন এখানে আছে। পরের ছয়টা ফেজে ঠিক এই শব্দগুলোই ব্যবহার হবে, আর প্রতিটার মানে একদম নির্দিষ্ট।
KVM, হাইপারভাইজার, VM — কোনটা কী#
এই তিনটা শব্দ এমনভাবে ব্যবহার হয় যেন একই জিনিস। আসলে এক নয়, আর গুলিয়ে ফেললে এরপরের সবকিছু অকারণে কঠিন লাগে।
KVM কোনো প্রোগ্রাম নয় যেটা আপনি চালান। এটা Linux কার্নেলের ভেতরের একটা মডিউল, যেটা একটা ফিজিক্যাল CPU-কে অনেকগুলোর মতো আচরণ করতে দেয়। ২০০৭ সাল থেকে এটা Linux-এর সাথেই আসে। কোনো মেশিনে এটা হয় আছে, নয় নেই — আর সেটা নির্ভর করে BIOS-এ VT-x (Intel) বা AMD-V (AMD) চালু আছে কিনা তার উপর। VT-x বা AMD-V না থাকলে KVM নেই, আর কনফিগারেশন দিয়ে এই কথা বদলানো যায় না।
QEMU হলো সেই প্রোগ্রাম যেটা হার্ডওয়্যার সেজে বসে থাকে — ডিস্ক, নেটওয়ার্ক কার্ড, স্ক্রিন। প্রতি VM-এর জন্য একটা QEMU প্রসেস। একা QEMU ধীর, কারণ ও সফটওয়্যার দিয়ে CPU নকল করে। KVM-এর সাথে জুড়লে গেস্টের নির্দেশ আসল CPU-তেই চলে, প্রায় নেটিভ গতিতে। লোকে "KVM ভার্চুয়ালাইজেশন" বলতে এই জোড়াটাই বোঝায়।
libvirt হলো ম্যানেজার। এই ডেমনটাই ওই QEMU প্রসেসগুলো তৈরি করে, চালু করে, বন্ধ করে আর খবর নেয়, আর virsh হলো তার কমান্ড লাইন। কন্ট্রোল সার্ভার বন্ধ থাকা অবস্থায় আপনি যখন নোডে SSH করে হাতে কাস্টমারের VM রিবুট করেন, তখন আসলে libvirt-এর সাথেই কথা বলছেন।
হাইপারভাইজার এখানে কোনো সফটওয়্যার নয়, এটা মেশিন। একটা বেয়ার-মেটাল বাক্স, যাতে KVM সহ কার্নেল, তার সাথে QEMU, libvirt আর VirtFusion এজেন্ট চলছে। প্যানেলে "Hypervisor" মানে ঠিক এটাই — আপনার র্যাকের একটা ফিজিক্যাল নোড।
VM হলো একটা গেস্ট। নিজের কার্নেল, নিজের অপারেটিং সিস্টেম, নিজের IP, নিজের রুট পাসওয়ার্ড। VirtFusion একে বলে Server। আর বেচার সময় আপনি বলেন VPS। তিনটা নাম, জিনিস একটাই।
আর VirtFusion এর কোনোটাই নয়। এটা সেই স্তর যেটা হাইপারভাইজারদের কাজের নির্দেশ দেয় আর কাস্টমারকে বোতাম টেপার জায়গা দেয়। নিজে একটাও VM চালায় না।
| শব্দ | আসলে জিনিসটা কী | কোথায় থাকে |
|---|---|---|
| KVM | Linux কার্নেল মডিউল, যেটা আসল CPU ভার্চুয়ালাইজেশন দেয় | প্রতিটি হাইপারভাইজারের কার্নেলের ভেতরে |
| QEMU | যে প্রোগ্রাম একটি গেস্টের হার্ডওয়্যার নকল করে | হাইপারভাইজারে, প্রতি VM-এ একটি প্রসেস |
| libvirt | যে ডেমন গেস্ট তৈরি, চালু ও বন্ধ করে | হাইপারভাইজারে। virsh তার CLI |
| Hypervisor | যে বেয়ার-মেটাল মেশিনে এই তিনটাই একসাথে চলে | আপনার র্যাকে |
| VM (Server, VPS) | একটি গেস্ট, নিজের OS ও নিজের IP সহ | একটি হাইপারভাইজারের ভেতরে |
| VirtFusion | যে প্যানেল ও API হাইপারভাইজারদের নির্দেশ দেয় | কন্ট্রোল সার্ভারে |
আরেকটা জিনিস অনেকে গুলিয়ে ফেলে: কন্টেইনার (LXC, Docker) কিন্তু VM নয়। কন্টেইনার হোস্টের কার্নেল ভাগ করে নেয়, আর VM নিজের কার্নেল নিয়ে আসে। VirtFusion শুধু VM চালায়। কন্টেইনার লাগলে সেটা Proxmox, আর ফেজ ৭-এ দুইটার তুলনা আছে।
সহজ ভাষায়#
VirtFusion-এ প্রতিটি জিনিসের একটি নির্দিষ্ট নাম আছে। এই টেবিলটি মুখস্থ না হলেও বারবার ফিরে দেখুন — বাকি ছয়টি ফেজ এই শব্দেই লেখা।
| শব্দ | মানে |
|---|---|
| Hypervisor | একটি বেয়ার-মেটাল নোড, যেখানে VM চলে |
| Cluster | একটি কন্ট্রোল সার্ভার আর সে যত হাইপারভাইজার চালায় তার সবগুলো। এটি একাধিক রিজিয়ন জুড়ে থাকতে পারে |
| Hypervisor Group | কয়েকটি হাইপারভাইজারের দল — সাধারণত এক লোকেশন = এক গ্রুপ |
| Server Distribution | গ্রুপের ভেতরে নতুন VM কোন নোডে বসবে, তার নিয়ম |
| Package | রিসোর্স প্ল্যান: vCPU, RAM, ডিস্ক, ট্রাফিক, IP সংখ্যা |
| Server | একটি VM |
| Template | OS ইমেজ (cloud-init প্রস্তুত), যা থেকে সার্ভার বিল্ড হয় |
| Media | টেমপ্লেট ও ISO রাখার জায়গা |
| IP Block | IPv4 বা IPv6 রেঞ্জ, যা হাইপারভাইজারে বরাদ্দ হয় |
| User | কাস্টমার অ্যাকাউন্ট |
| extRelationId | আপনার নিজের সিস্টেমের ইউজার আইডি, VirtFusion ইউজারের সাথে জোড়া |
| Provisioner | প্রথম বুটে চলা স্ক্রিপ্ট (bash/python/cloud-init) |
| Queue / Task | পটভূমির কাজ — বিল্ড, রিবুট, ব্যাকআপ সব এখানেই সারিবদ্ধ হয় |
| Self Service | কাস্টমার নিজেই সার্ভার বানাবে-মুছবে, এমন ব্যবস্থা |
| Resource Pack | Self Service-এর জন্য কাস্টমারকে দেওয়া রিসোর্স কোটা |
| Asset | GPU বা USB-এর মতো হার্ডওয়্যার, যা VM-এ পাসথ্রু হয় |
| Elevate | সার্ভারে অস্থায়ী পরিবর্তন — পরে commit বা discard |
extRelationId — সবচেয়ে গুরুত্বপূর্ণ ধারণা#
আপনার নিজের অ্যাপ বা WHMCS-এর ইউজার আইডি VirtFusion-এ extRelationId হিসেবে রাখুন। তাহলে VirtFusion-এর ভেতরের ইউজার আইডি মনে রাখতে হয় না — নিজের আইডি দিয়েই খুঁজে নেওয়া যায়:
GET /api/v1/users/{আপনার-সিস্টেমের-user-id}/byExtRelationনিয়ম: নিজের ডাটাবেসে VirtFusion-এর ইউজার আইডি প্রাইমারি কী হিসেবে রাখবেন না। নিজের আইডি আর VirtFusion ইউজারের মধ্যে
extRelationId-ই একমাত্র নির্ভরযোগ্য যোগসূত্র। ইউজার মুছে আবার তৈরি হলে ভেতরের আইডি বদলায়, আপনার আইডি বদলায় না।
লেসন ৪ — লাইসেন্স ও খরচের হিসাব#
ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: একটা কী দিয়েই পুরো ক্লাস্টার চলে, আর সেটা কন্ট্রোল সার্ভারের সাথে বাঁধা। তবে প্রতিটা হাইপারভাইজারের জন্য একটা টিয়ার লাগে, যেটা ঠিক করে ওই নোডে কয়টা VM চলবে। টিয়ার মিশিয়ে ব্যবহার করা যায় — বড় নোডে Unlimited, ছোট টেস্ট নোডে ৫।

সহজ ভাষায়#
লাইসেন্স প্রতি ক্লাস্টারে একটি — অর্থাৎ কন্ট্রোল সার্ভারের সাথে যুক্ত থাকে। হাইপারভাইজার যতগুলোই হোক, কী একটিই লাগে। তবে প্রতিটি হাইপারভাইজারের জন্য আলাদা স্তর (tier) বেছে নিতে হয়।
| স্তর | ওই হাইপারভাইজারে সর্বোচ্চ VM |
|---|---|
| Unlimited | সীমা নেই |
| 35 servers | ৩৫টি |
| 5 servers | ৫টি |
| 1 server | ১টি |
| Branding Removal | VirtFusion-এর ব্র্যান্ডিং সরায় (অ্যাড-অন) |
একই লাইসেন্সে ভিন্ন ভিন্ন স্তর একসাথে ব্যবহার করা যায় — যেমন বড় নোডে Unlimited, ছোট টেস্ট নোডে 5।
বাস্তব বিষয়গুলো#
- আপগ্রেড/ডাউনগ্রেড অ্যাকাউন্ট পোর্টাল থেকে যেকোনো সময় (বকেয়া ইনভয়েস না থাকলে)
- লাইসেন্স কন্ট্রোল সার্ভারে লক হয়ে যায়। নতুন সার্ভারে নিতে হলে re-issue করতে হয়,
এবং re-issue-এর সংখ্যা সীমিত
- একই তথ্য দিয়ে একাধিক অ্যাকাউন্ট খুললে স্বয়ংক্রিয় বাতিল হতে পারে
সতর্কতা: কন্ট্রোল সার্ভারের ঘড়ি ৬০ সেকেন্ডের বেশি এদিক-ওদিক হলে লাইসেন্স যাচাই ব্যর্থ হয়। NTP চালু রাখুন —
chronycবাntpdateদিয়ে মিলিয়ে নিন।
লেসন ৫ — প্রয়োজনীয় পোর্ট ও নেটওয়ার্ক প্রবাহ#
ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: কন্ট্রোল সার্ভারে ৮০ আর ৪৪৩ ঢুকতে দিন, প্রতিটা হাইপারভাইজারে ৮৮৯২ দুই দিকে, আর কনসোলের জন্য ৫৯০০+। মূল কথা হলো প্রতিটা হাইপারভাইজারে UFW আগে থেকেই চালু থাকে। VM-এ ইন্টারনেট না আসার পেছনে ওটাই সবচেয়ে বড় কারণ।
পোর্ট তালিকা#
| উপাদান | পোর্ট | প্রোটোকল | দিক | কাজ |
|---|---|---|---|---|
| কন্ট্রোল সার্ভার | 80 | HTTP | ইনবাউন্ড | SSL সার্টিফিকেট নেওয়া (ACME) |
| কন্ট্রোল সার্ভার | 443 | HTTPS | ইনবাউন্ড | প্যানেল ও API |
| হাইপারভাইজার | 8892 | HTTPS | দুই দিকেই | কন্ট্রোল ↔ হাইপারভাইজার যোগাযোগ |
| হাইপারভাইজার | 5900+ | VNC | ইনবাউন্ড | কনসোল, প্রতি সেশনে একটি পোর্ট |
হাইপারভাইজারে ডিফল্টে UFW ইনস্টল ও চালু থাকে। নিয়ম যোগ করার সময় মনে রাখুন।
সতর্কতা: VM ইন্টারনেট পাচ্ছে না অথচ হোস্ট পাচ্ছে — সবচেয়ে সাধারণ কারণ UFW রাউট করা প্যাকেট আটকাচ্ছে। সমাধান হাইপারভাইজারে:
BASHufw default allow routed
সাধারণ ভুল#
- ৮৮৯২ শুধু একদিকে খোলা → হাইপারভাইজার "commissioned" দেখায় না
- ৫৯০০+ ব্লক → কনসোল কালো পর্দা
- কন্ট্রোল সার্ভারের IP বদলেছে অথচ হাইপারভাইজার জানে না → 401 এরর
(সমাধান ফেজ ৭, লেসন ৩)
লেসন ৬ — VirtFusion না Proxmox: প্রথম ধারণা#
ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: দুটোই KVM চালায়, তাই প্রশ্নটা কোনটা শক্তিশালী তা নয়। প্রশ্ন হলো আপনি কী করছেন। কাস্টমারের কাছে VPS বেচলে VirtFusion। নিজের সার্ভার চালালে Proxmox। সিদ্ধান্তটা এটুকুই।
সহজ ভাষায়#
দুইটিই KVM চালায়। পার্থক্য উদ্দেশ্যে।
| VirtFusion | Proxmox VE | |
|---|---|---|
| কাদের জন্য | হোস্টিং প্রোভাইডার, মাল্টি-টেন্যান্ট | সিসঅ্যাডমিন, নিজের অবকাঠামো |
| কাস্টমার প্যানেল | আছে, শুরু থেকেই | নেই (সবাই অ্যাডমিন-মুখী UI দেখে) |
| কন্টেইনার | নেই | LXC আছে |
| স্টোরেজ | local, Ceph, StorPool, Lightbits, remote FS | LVM, ZFS, Ceph, NFS, iSCSI |
| ক্লাস্টারিং | কন্ট্রোল সার্ভার + নোড (quorum লাগে না) | Corosync quorum, QDevice |
| HA ফেইলওভার | নেই (নোড নষ্ট হলে ম্যানুয়াল/DR) | আছে (fencing দরকার) |
| বিলিং সংযোগ | ৭টি বিলিং সিস্টেমের মডিউল | নেই |
| লাইসেন্স | বাণিজ্যিক, ক্লাস্টারপ্রতি | ফ্রি (সাবস্ক্রিপশন ঐচ্ছিক) |
মোদ্দা কথা: VPS বিক্রি করলে VirtFusion, নিজের সার্ভার চালালে Proxmox। বিস্তারিত তুলনা ও মাইগ্রেশন পথ ফেজ ৭-এ।
ফেজ ১ শেষে আপনি যা পারবেন#
- VirtFusion কী দেয়, কী দেয় না — আলাদা করা
- কন্ট্রোল সার্ভার ও হাইপারভাইজারের ভূমিকা বলা
- প্রতিটি মূল শব্দের মানে জানা
- লাইসেন্স কীভাবে হিসাব করা হয় বোঝা
- কোন পোর্ট কেন লাগে জানা
পরবর্তী: ফেজ ২ — ইনস্টলেশন