VF ভার্টফিউশন বাংলা ডকুমেন্টেশন
English

ফেজ ৪ — দৈনন্দিন অ্যাডমিন#

১১টি লেসন · লেভেল: মধ্যম

প্যানেল চালু হয়ে গেছে। এখন আসল কাজ — টেমপ্লেট, প্যাকেজ, কাস্টমার, সার্ভার, ব্যাকআপ।

এই ফেজে কী আছে#

লেসনকী শিখবেন
১ — OS টেমপ্লেট ও মিডিয়াটেমপ্লেট, কাস্টম ISO ও Windows প্রস্তুত করা
২ — প্যাকেজ (রিসোর্স প্ল্যান)বিক্রয়যোগ্য প্ল্যান বানানো
৩ — ইউজার তৈরি ও extRelationIdনিজের সিস্টেমের আইডির সাথে কাস্টমার মেলানো
৪ — সার্ভার তৈরি ও বিল্ডকাজটি কেন দুই ধাপে হয়
৫ — সার্ভারের দৈনন্দিন কাজপাওয়ার, রিবিল্ড, পাসওয়ার্ড ও ট্রাফিক রিসেট
৬ — মাইগ্রেশন: hybrid ও liveকোন সার্ভার কোন পথে অন্য নোডে যাবে
৭ — Elevate: ঝুঁকি ছাড়া পরীক্ষাপরিবর্তন করে পরে commit বা discard
৮ — Backup Manager (v7)ইনক্রিমেন্টাল ও এনক্রিপ্টেড ব্যাকআপ বসানো
৯ — ইউজার ব্যাকআপ ও ডিজাস্টার রিকভারিকাস্টমারের ব্যাকআপ, আর নোড নষ্ট হলে করণীয়
১০ — পুরনো KVM সার্ভার ইমপোর্টঅন্য প্যানেল থেকে VM নিজে হাতে সরিয়ে আনা
১১ — মেইলআউট, লোকালাইজেশন ও ট্রাফিকঘোষণা পাঠানো, ভাষা ও ব্যান্ডউইথ হিসাব

লেসন ১ — OS টেমপ্লেট ও মিডিয়া#

সহজ ভাষায়#

টেমপ্লেট হলো তৈরি OS ইমেজ। কাস্টমার "Ubuntu 24.04" বাছলে VirtFusion ওই টেমপ্লেট কপি করে, cloud-init দিয়ে হোস্টনেম, IP, পাসওয়ার্ড ও SSH কী বসিয়ে দেয়।

Media → Templates থেকে টেমপ্লেট ব্যবস্থাপনা হয়। টেমপ্লেট গ্রুপে সাজানো যায় (Linux / Windows / Panels ইত্যাদি)।

যা মনে রাখবেন#

বিষয়কারণ
cloud-init থাকতেই হবেনা থাকলে IP ও পাসওয়ার্ড বসবে না
QEMU guest agent রাখুনভেতরের IP, ভদ্র শাটডাউন, ফাইল সিস্টেম ফ্রিজ
টেমপ্লেট হালকা রাখুনক্লোন দ্রুত হয়, ডিস্ক বাঁচে
নিয়মিত হালনাগাদ করুনকাস্টমার প্রথম বুটেই ১০০টা প্যাচ টানবে না

কাস্টম ISO#

কাস্টমার নিজের ISO থেকে ইনস্টল করতে চাইলে VirtFusion দূরবর্তী সার্ভার থেকে ISO স্ট্রিম করতে পারে — ISO-এর URL দিলেই হয়। বড় ISO আগে থেকে হোস্ট করে রাখুন।

নিজের আইকন#

সর্বোচ্চ ২০টি নিজস্ব আইকন (লোগো) যোগ করা যায়, রাখতে হয় /opt/virtfusion/app/control/public/img/logo-তে। নিজের ব্র্যান্ডের OS ইমেজ থাকলে কাজে লাগে।

Windows টেমপ্লেট#

Windows-এর জন্য আলাদা যত্ন লাগে:

  • VirtIO ড্রাইভার টেমপ্লেটে আগে থেকেই থাকতে হবে
  • Cloudbase-Init (Windows-এর cloud-init) বসাতে হবে
  • Hyper-V enlightenments চালু রাখলে পারফরম্যান্স অনেক ভালো হয়

Cloudbase-Init-এর লগ: C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\cloudbase-init


লেসন ২ — প্যাকেজ (রিসোর্স প্ল্যান)#

সহজ ভাষায়#

প্যাকেজ হলো আপনার বিক্রয় পরিকল্পনা — কত vCPU, কত RAM, কত ডিস্ক, কত ট্রাফিক। সার্ভার সবসময় কোনো একটি প্যাকেজ থেকে তৈরি হয়।

Admin → Packages → Create

প্যাকেজে যা থাকে#

ক্ষেত্রমন্তব্য
CPU coresvCPU সংখ্যা
CPU throttleশতাংশে CPU সীমা (ওভারসেল সামলাতে)
MemoryRAM (MB)
Storageপ্রাথমিক ডিস্ক (GB)
Trafficমাসিক ব্যান্ডউইথ (GB), ০ = সীমাহীন
Network speedইনবাউন্ড/আউটবাউন্ড গতি সীমা
IPv4 countকতটি IPv4 বসবে
Backup planকোন ব্যাকআপ পরিকল্পনা যুক্ত হবে
Asset groupGPU ইত্যাদি অ্যাসেট

বাস্তব পরামর্শ#

  • প্যাকেজের নামে রিসোর্স লিখুন (VPS-2C-4G-80N) — বিলিং সিস্টেমে মেলাতে সহজ
  • বিলিং মডিউলে প্যাকেজের ID লাগে, নাম নয়। ID লিখে রাখুন
  • CPU throttle দিয়ে ওভারসেল সামলান — একজন কাস্টমার পুরো নোড খেয়ে ফেলতে পারবে না

লেসন ৩ — ইউজার তৈরি ও extRelationId#

সহজ ভাষায়#

প্রতিটি কাস্টমারের জন্য একটি VirtFusion ইউজার। বিলিং সিস্টেম বা আপনার নিজের অ্যাপ এই ইউজার তৈরি করে এবং নিজের আইডি extRelationId-তে বসিয়ে দেয়।

CODE
আপনার অ্যাপের users.id = 4821
        │
        ▼
VirtFusion user (extRelationId = 4821, নিজস্ব id = 93)

পরে সেই ইউজার খুঁজতে নিজের আইডিই যথেষ্ট:

CODE
GET /api/v1/users/4821/byExtRelation

নিয়ম#

  1. প্রতি কাস্টমারে একটি VirtFusion ইউজার — বেশি নয়
  2. extRelationId একবার বসিয়ে আর বদলাবেন না
  3. হাতে তৈরি ইউজারে extRelationId বসাতে ভুলবেন না, নইলে SSO লগইন ভাঙবে

সতর্কতা: WHMCS মডিউলে "Oops! Something went wrong" এরর সাধারণত তিনটি কারণে আসে। এক, HTTPS ঠিক নেই। দুই, VirtFusion অ্যাডমিন অ্যাকাউন্ট দিয়ে কাস্টমার-লগইন চেষ্টা করা হয়েছে। তিন, হাতে তৈরি ইউজারে extRelationId ম্যাপিং নেই।


লেসন ৪ — সার্ভার তৈরি ও বিল্ড#

দুই ধাপ#

VirtFusion-এ সার্ভার তৈরি হয় দুই ধাপে — এটি না জানলে API-তে বিভ্রান্তি হয়।

ধাপকী হয়
১. Createসার্ভারের রেকর্ড তৈরি হয়, রিসোর্স ও IP বরাদ্দ হয়। OS বসে না
২. Buildটেমপ্লেট কপি হয়, cloud-init চলে, VM চালু হয়

প্যানেলে দুই ধাপ একসাথে দেখা যায়, কিন্তু API-তে আলাদা কল (POST /servers, তারপর POST /servers/{id}/build)। বিস্তারিত ফেজ ৫-এ।

বিল্ডের সময় যা দেওয়া হয়#

  • OS টেমপ্লেট
  • হোস্টনেম
  • root পাসওয়ার্ড (বা কাস্টমারের SSH কী)
  • ঐচ্ছিক: প্রভিশনার স্ক্রিপ্ট

প্রভিশনার#

প্রভিশনার হলো প্রথম বুটে চলা স্ক্রিপ্ট — bash, python, PowerShell বা cloud-init YAML।

  1. Server → Provisioners-এ স্ক্রিপ্ট তৈরি করুন
  2. Media → Templates-এ টেমপ্লেটের সাথে যুক্ত করুন
  3. ওই টেমপ্লেট দিয়ে সার্ভার হলে স্ক্রিপ্ট নিজে থেকেই চলে

সার্ভারের ভেরিয়েবল (হোস্টনেম, IP ইত্যাদি) স্ক্রিপ্টে ইনজেক্ট করা যায়।

কাজে লাগে: ফায়ারওয়াল বসানো, মনিটরিং এজেন্ট, নিজস্ব SSH ব্যানার, প্যানেল ইনস্টল।

ডিবাগ: স্ক্রিপ্ট ব্যর্থ হলে সার্ভারের ভেতরে দেখুন — /var/log/cloud-init.log/var/log/cloud-init-output.log


লেসন ৫ — সার্ভারের দৈনন্দিন কাজ#

কাজের তালিকা#

কাজকোথায় / কীভাবে
চালু / বন্ধ / রিবুটপ্যানেল বা API /servers/{id}/power/{action}
রিবিল্ড (OS পুনরায়)Build আবার চালানো — ডিস্ক মুছে যায়
রিসাইজCPU, RAM, ট্রাফিক আলাদা আলাদা বদলানো যায়
root পাসওয়ার্ড রিসেটপ্যানেল বা API /servers/{id}/resetPassword
সাসপেন্ড / আনসাসপেন্ডবিল না দিলে সাসপেন্ড; ডিস্ক থাকে, সার্ভার বন্ধ
ট্রাফিক দেখাপ্রতি সার্ভারে মাসিক হিসাব
ডিলিটরিসোর্স ও IP ফেরত আসে

ভুলে ডিলিট ঠেকানো#

গুরুত্বপূর্ণ সার্ভারে "do not disturb" চালু রাখুন:

BASH
vfcli-ctrl server:dnd enable SERVER_ID
vfcli-ctrl server:dnd disable SERVER_ID

শেষ পাসওয়ার্ড দেখা#

BASH
vfcli-ctrl server:password show SERVER_ID

ট্রাফিক হিসাব রিসেট#

BASH
vfcli-ctrl server:traffic-statistics reset-all
vfcli-ctrl server:traffic-statistics reset-all --include-datastore

সতর্কতা: --include-datastore দিলে পুরনো ট্রাফিক ইতিহাসও মুছে যায়। বিলিং বিতর্কে প্রমাণ থাকবে না। খুব দরকার ছাড়া ব্যবহার করবেন না।


লেসন ৬ — মাইগ্রেশন: hybrid ও live#

দুই ধরন#

ধরনকীভাবেকোথা থেকে চালাবেন
Hybridসার্ভার চালু বা বন্ধ — দুইভাবেই চলে। চালু থাকলে ডিস্ক দুই ধাপে যায়: প্রথমে চালু অবস্থায়, তারপর সাসপেন্ড করে বাকিটাকন্ট্রোল প্যানেল (UI)
Livelibvirt/QEMU-এর লাইভ মাইগ্রেশন, local বা Ceph স্টোরেজেকন্ট্রোল সার্ভারের CLI (লগ প্যানেলে দেখা যায়)

Live মাইগ্রেশনের শর্ত#

  • সার্ভার online, suspended বা awaiting setup অবস্থায় (offline হলে --force-offline)
  • গন্তব্য নোডে SSH (root) চালু ও সঠিক পোর্টে
  • সার্ভারের সব IP গন্তব্য নোডে বৈধ — নাহলে নেটওয়ার্ক মরে যাবে
  • স্টোরেজ মাউন্ট পয়েন্ট গন্তব্যে আছে, সব স্টোরেজ চালু
  • উৎস ও গন্তব্যের CPU একই ভেন্ডরের

ডকুমেন্টেশনের পরামর্শ: দুই হাইপারভাইজার যতটা সম্ভব অভিন্ন রাখুন — OS সংস্করণ, libvirt ও QEMU সংস্করণসহ।

সতর্কতা: NAT ইন্টারফেসওয়ালা সার্ভার এখনো কোনো মাইগ্রেশনেই যায় না। অ্যাসেট (GPU ইত্যাদি) যুক্ত সার্ভারও নয়।

আটকে যাওয়া hybrid মাইগ্রেশন#

Server → Migrations → আটকে থাকা মাইগ্রেশনের লগ খুলুন → Commands অংশের প্রথম কমান্ডটি কপি করে কন্ট্রোল সার্ভারে SSH-এ চালান।


লেসন ৭ — Elevate: ঝুঁকি ছাড়া পরীক্ষা#

সহজ ভাষায়#

Elevate (৪.১+) সার্ভারে অস্থায়ী পরিবর্তনের সুযোগ দেয়। পরে হয় commit, নয় discard

  1. কোন ড্রাইভ elevate হবে বাছুন
  2. সার্ভারে পরিবর্তন করুন, পরীক্ষা করুন
  3. ঠিক থাকলে প্রতি ড্রাইভে commit; না হলে discard — elevate-এর মুহূর্তের অবস্থায় ফিরে যায়

কাজে লাগে: বড় আপগ্রেড, কার্নেল বদল, ঝুঁকিপূর্ণ কনফিগ পরীক্ষা। Proxmox-এর স্ন্যাপশটের সবচেয়ে কাছাকাছি জিনিস এটিই।


লেসন ৮ — Backup Manager (v7)#

সহজ ভাষায়#

৭.x সংস্করণে সম্পূর্ণ নতুন ব্যাকআপ ব্যবস্থা এসেছে — ইনক্রিমেন্টাল, এনক্রিপ্টেড, একাধিক স্টোরেজ ব্যাকএন্ডসহ।

ব্যাকআপের ধরন#

ধরনকী নেয়
Fullপুরো ডিস্ক ইমেজ — চেইনের ভিত্তি
Incrementalগত ব্যাকআপের পর বদলানো ব্লক — সবচেয়ে ছোট ও দ্রুত
Differentialশেষ full-এর পর বদলানো সব ব্লক
Copyস্বতন্ত্র full, চেইনে প্রভাব ফেলে না

সিস্টেম নিজেই চেইন সামলায় — নির্দিষ্ট বিরতির পর (ডিফল্ট ৭ দিন) নতুন চেইন শুরু করে।

স্টোরেজ ব্যাকএন্ড#

  • SSH/SFTP
  • S3-সঙ্গতিপূর্ণ (AWS, MinIO, Wasabi, Cloudflare R2, Backblaze B2)
  • Proxmox Backup Server (PBS) — চাংক পর্যায়ে ডিডুপ্লিকেশন
  • FTP/FTPS
  • Rclone

সেটআপ#

  1. Backup Manager → Storage — ব্যাকএন্ডের সংযোগ তথ্য দিন
  2. Schedule — হাইপারভাইজারের সাথে স্টোরেজ জুড়ে বিরতি ঠিক করুন
  3. প্রথম ব্যাকআপ সবসময় full; এরপর নির্ধারিত বিরতিতে চলে

রিটেনশন#

নীতিকীভাবে
Age-basedনির্দিষ্ট সময়ের ভেতরের সব রাখে, পুরনো ছাঁটে (১ সপ্তাহ – ১০ বছর)
GFSদিন/সপ্তাহ/মাস/বছরে একটি করে রাখে — জায়গা অনেক কম লাগে

দুইটির সাথেই "Keep Last N" মেলানো যায় — শেষ N-টি ব্যাকআপ বয়স নির্বিশেষে থাকে।

রিস্টোর#

অ্যাডমিন ইন্টারফেস থেকে ডিস্ক, চেইন ও রিস্টোর পয়েন্ট বেছে রিস্টোর করা যায়। অন্য সার্ভারেও রিস্টোর করা যায় (cross-server restore)।

মনে রাখুন: রিস্টোরের সময় লক্ষ্য সার্ভার বন্ধ হয়। কাজ শেষ হলেও এটি নিজে থেকে চালু হয় না। এটি ইচ্ছাকৃত — চালু করার আগে যাতে কনফিগ ঠিক করে নিতে পারেন।


লেসন ৯ — ইউজার ব্যাকআপ ও ডিজাস্টার রিকভারি#

ইউজার-পর্যায়ের ব্যাকআপ#

কাস্টমার নিজে ব্যাকআপ নিতে পারে — on demand বা নির্ধারিত সময়ে।

সেটআপ তিন ধাপে:

  1. Backups → Backup Storage — স্টোরেজ যোগ করুন, কোন হাইপারভাইজার ব্যবহার করবে ঠিক করুন
  2. দূরবর্তী ব্যাকআপ সার্ভারে: একটি Unix ইউজার, VirtFusion-এর পাবলিক SSH কী

authorized_keys-এ, এবং rsync ইনস্টল

  1. Backups → Server Backup Plan — পরিকল্পনা তৈরি করে প্যাকেজে বা নির্দিষ্ট সার্ভারে দিন

কাস্টমার তখন তার সার্ভারের "Backups" ট্যাবে বিকল্প দেখতে পায়।

"Failed to login on the SSH2 check" এররের মানে — কন্ট্রোল সার্ভার, হাইপারভাইজার ও ব্যাকআপ সার্ভারের মধ্যে সংযোগ বা ফায়ারওয়াল সমস্যা।

ডিজাস্টার রিকভারি (হাইপারভাইজার স্তর)#

পুরো নোড মরে গেলে যাতে ফেরানো যায়, তার জন্য vfcli-hv dr

BASH
vfcli-hv dr:backup                          # সব
vfcli-hv dr:backup --only-servers=1754,1253 # নির্দিষ্ট সার্ভার
vfcli-hv dr:backup --exclude-system-data    # শুধু সার্ভারের ডিস্ক
  • স্টোরেজ: S3-সঙ্গতিপূর্ণ, অথবা স্থানীয় পার্টিশন
  • S3 হলে AWS CLI বসিয়ে /root/.aws/config-এ virtfusion নামে প্রোফাইল রাখুন
  • কনফিগ ফাইল: /home/vf-data/conf/dr.json (কম্প্রেশন, রিটেনশন)
  • cron দিয়ে নিয়মিত চালান

নোড বদলাতে হলে: নতুন হার্ডওয়্যারে VirtFusion বসান → ব্যাকআপ অ্যাক্সেস দিন → কন্ট্রোল সার্ভারে যুক্ত করুন → সিস্টেম ফাইল ও সার্ভার রিস্টোর করুন।

সীমা: DR শুধু স্থানীয় ডিস্ক নেয়। Ceph-এর মতো শেয়ার্ড স্টোরেজ বাদ যায়।

কন্ট্রোল সার্ভারের ব্যাকআপ#

সবচেয়ে বেশি অবহেলিত অংশ। কন্ট্রোল সার্ভারের ডাটাবেস ও এনক্রিপশন কী ব্যাকআপ না থাকলে সব হাইপারভাইজার বেঁচে থাকলেও প্যানেল ফেরানো যাবে না। VirtFusion-এর "System Backup" গাইড এই প্রক্রিয়া দেখায় — নিয়মিত চালান এবং অন্য মেশিনে রাখুন।


লেসন ১০ — পুরনো KVM সার্ভার ইমপোর্ট#

সহজ ভাষায়#

অন্য প্যানেল (SolusVM, Virtualizor) থেকে আসা VM VirtFusion-এ আনা যায়, তবে পুরো কাজটি হাতে করতে হয় — কোনো স্বয়ংক্রিয় ইমপোর্ট টুল নেই।

ধাপ#

  1. সার্ভার বন্ধ করুন। সব ডিস্ক অপারেশন অফলাইনে করতে হবে
  2. ডিস্ক প্রস্তুত করুন — LVM হলে qemu-img দিয়ে ইমেজে রূপান্তর

(VirtFusion ডিফল্টে qcow2, raw-ও চলে)

  1. ভেতরে cloud-initQEMU guest agent বসান — নইলে VirtFusion সার্ভারটি

পুরোপুরি নিয়ন্ত্রণ করতে পারবে না

  1. নেটওয়ার্ক কনফিগ পরিষ্কার করুন। Debian-এ /etc/network/interfaces-এ শুধু

source /etc/network/interfaces.d/* রাখুন, যাতে cloud-init নিয়ন্ত্রণ নিতে পারে

  1. VirtFusion-এ সমান আকারের সার্ভার তৈরি করে কাছাকাছি OS ইনস্টল করুন
  2. প্রস্তুত ডিস্ক হাইপারভাইজারে নিয়ে সঠিক নামে বসান: [UUID]_[DISK_ID].img

লেসন ১১ — মেইলআউট, লোকালাইজেশন ও ট্রাফিক#

মেইলআউট#

রক্ষণাবেক্ষণের নোটিশ বা ঘোষণা সব কাস্টমারকে পাঠাতে Mailouts ব্যবহার করুন। নোড রিবুট বা নেটওয়ার্ক কাজের আগে আগেভাগে জানিয়ে রাখাই পেশাদার কাজ।

লোকালাইজেশন#

প্যানেল একাধিক ভাষায় দেখানো যায়। বাংলাভাষী কাস্টমার থাকলে ভাষা তালিকা দেখে নিন।

ট্রাফিক হিসাব#

  • প্রতি সার্ভারে মাসিক ব্যান্ডউইথ হিসাব করা হয়
  • প্যাকেজে সীমা বসানো যায়, সীমা ছাড়ালে গতি কমানো বা সাসপেন্ড করার নীতি ঠিক করুন
  • সার্ভারের তৈরির তারিখ বদলালে মাসিক ইতিহাস মুছে যায়:
BASH
  vfcli-ctrl server:creation-date SERVER_ID '2026-08-01 00:00:00'

ফেজ ৪ শেষে আপনি যা পারবেন#

  • টেমপ্লেট ও ISO ব্যবস্থাপনা, Windows টেমপ্লেট প্রস্তুত করা
  • বিক্রয়যোগ্য প্যাকেজ বানানো
  • কাস্টমার ইউজার ও extRelationId ম্যাপিং ঠিক রাখা
  • সার্ভার তৈরি, বিল্ড ও প্রভিশনার চালানো
  • মাইগ্রেশন ও Elevate ব্যবহার করা
  • ব্যাকআপ, ইউজার ব্যাকআপ ও DR সাজানো
  • পুরনো KVM সার্ভার ইমপোর্ট করা

পরবর্তী: ফেজ ৫ — API ও ইন্টিগ্রেশন