PVE প্রক্সমক্স বাংলা ডকুমেন্টেশন

ফেজ ১ — লিনাক্স বেসিক (Linux Fundamentals)#

১০টি লেসন · আনুমানিক ৪ ঘণ্টা ৩০ মিনিট · লেভেল: শুরুর

Proxmox VE Debian লিনাক্সের উপরে চলে। তাই লিনাক্স শেখা বাধ্যতামূলক। যারা শুধু ওয়েব UI-তে ক্লিক করে, আর যারা সার্ভার সত্যিই নিয়ন্ত্রণ করে — পার্থক্য এই জ্ঞানটুকু।


লেসন ১ — প্রক্সমক্সের জন্য লিনাক্স পরিচিতি (২০ মিনিট)#

সহজ ভাষায়#

পৃথিবীর ৯৬% সার্ভার লিনাক্সে চলে। প্রক্সমক্স Debian বেছে নিয়েছে, কারণ Debian স্থিতিশীল, এর প্যাকেজ সিস্টেম নির্ভরযোগ্য, এবং এতে বাড়তি জিনিস কম থাকে।

Proxmox VE 9.x চলে Debian 13 "Trixie"-এর উপরে, কার্নেল ৬.৮ বা তার নতুন।

লিনাক্সের তিনটি স্তর#

স্তরকাজ
KernelCPU, RAM, ডিস্ক, প্রসেস নিয়ন্ত্রণ করে
Shellআপনার লেখা কমান্ড কার্নেলের ভাষায় অনুবাদ করে (bash, sh, zsh)
Userspaceসাধারণ প্রোগ্রাম — ls, apt, systemctl, qm, pct

মনে রাখুন: qm (VM ম্যানেজার) আর pct (কন্টেইনার ম্যানেজার) কোনো জাদু নয়। এগুলো সাধারণ userspace প্রোগ্রাম, যেগুলো কার্নেলকে অনুরোধ পাঠায়।


লেসন ২ — কমান্ড লাইনের মৌলিক বিষয় (৩৫ মিনিট)#

সহজ ভাষায়#

ওয়েব UI-তে যা যা করেন, তার প্রতিটির একটি শেল কমান্ড আছে। শেল দ্রুত, স্ক্রিপ্ট করা যায়, এবং ওয়েব UI নষ্ট হলেও কাজ করে।

চলাফেরা ও ফাইল দেখা#

BASH
pwd                         # এখন কোন ফোল্ডারে আছি
ls -la /etc/pve             # প্রক্সমক্সের কনফিগ ফোল্ডার
cd /etc/pve && ls           # corosync.conf, storage.cfg, nodes, priv ...
cat /etc/pve/storage.cfg    # ফাইলের ভেতরটা দেখা
less /var/log/syslog        # পাতা করে পড়া (বের হতে q)
tail -f /var/log/syslog     # লাইভ লগ দেখা

ফাইল অপারেশন#

BASH
cp /etc/pve/storage.cfg /tmp/storage.cfg.bak   # কপি
mv old-name.conf new-name.conf                 # নাম বদল বা সরানো
mkdir -p /mnt/storage/backups                  # ফোল্ডার তৈরি
rm file.txt                                    # ডিলিট
rm -rf directory/                              # ফোল্ডারসহ ডিলিট — খুব বিপজ্জনক

খোঁজা#

BASH
find / -name "vm-100-disk-0.qcow2" 2>/dev/null   # নাম দিয়ে ফাইল খোঁজা
grep -r "storage" /etc/pve/                      # ফাইলের ভেতরে লেখা খোঁজা
grep -n "ERROR" /var/log/syslog | tail -20       # শেষ ২০টি এরর
dmesg | grep -i "error" | tail -10               # pipe দিয়ে কমান্ড জোড়া

সতর্কতা: rm -rf / পুরো সিস্টেম মুছে ফেলে। ফেরত আনার উপায় নেই। rm -rf লেখার আগে পাথ দুইবার পড়ুন।


লেসন ৩ — ব্যবহারকারী, পারমিশন ও sudo (৩০ মিনিট)#

সহজ ভাষায়#

প্রতিটি ফাইলের একজন মালিক (owner), একটি গ্রুপ, আর একটি পারমিশন সেট থাকে। এটা বুঝলে "Permission denied" এরর আর নিরাপত্তার ভুল দুইটাই কমে যায়।

পারমিশন পড়ার নিয়ম#

-rw------- মানে:

অংশমানে
প্রথম অক্ষরধরন: - ফাইল, d ফোল্ডার, l লিংক
পরের ৩টিমালিকের অধিকার (rw- = পড়া+লেখা)
পরের ৩টিগ্রুপের অধিকার
শেষ ৩টিবাকি সবার অধিকার
BASH
chmod 600 ~/.ssh/id_rsa           # শুধু মালিক পড়তে-লিখতে পারবে
chmod 755 /usr/local/bin/script   # মালিক সব, বাকিরা পড়া+চালানো
chown root:www-data /etc/pve/storage.cfg   # মালিক ও গ্রুপ বদল

id                          # আমি কে
adduser admin               # নতুন ইউজার
usermod -aG sudo admin      # sudo দলে যোগ

লেসন ৪ — apt দিয়ে প্যাকেজ ম্যানেজমেন্ট (২৫ মিনিট)#

সহজ ভাষায়#

apt হলো Debian-এর সফটওয়্যার ইনস্টলার। প্রক্সমক্সে সফটওয়্যার যোগ করার এটাই সঠিক পথ।

BASH
apt update                       # প্যাকেজ তালিকা নতুন করা
apt upgrade -y                   # আপডেট বসানো
apt install htop curl wget -y    # নতুন সফটওয়্যার
apt remove --purge snapd -y      # কনফিগসহ মুছে ফেলা
apt autoremove -y                # অপ্রয়োজনীয় প্যাকেজ পরিষ্কার

নতুন ইনস্টলের পর রিপো বদলানো#

ফ্রি ব্যবহারকারীদের enterprise রিপো কাজ করে না। বদলে না নিলে apt update চালালে 401 Unauthorized এরর আসে।

BASH
echo "# deb https://enterprise.proxmox.com/debian/pve trixie pve-enterprise" \
  > /etc/apt/sources.list.d/pve-enterprise.list

echo "deb http://download.proxmox.com/debian/pve trixie pve-no-subscription" \
  > /etc/apt/sources.list.d/pve-install-repo.list

apt update && apt dist-upgrade -y

লেসন ৫ — systemd ও সার্ভিস ম্যানেজমেন্ট (৩০ মিনিট)#

সহজ ভাষায়#

প্রক্সমক্সের প্রতিটি সার্ভিস — ওয়েব API, KVM ডেমন, ক্লাস্টার corosync — systemd চালায়। systemctl কমান্ডটি প্রতিদিন লাগবে।

BASH
systemctl status pvedaemon      # সার্ভিস চালু আছে কি না
systemctl restart pveproxy      # সার্ভিস রিস্টার্ট
systemctl enable --now corosync # বুটে চালু + এখনই চালু
systemctl list-units --type=service --state=running

লগ দেখা#

BASH
journalctl -u pvedaemon --since "1 hour ago"   # এক সার্ভিসের লগ
journalctl -fu pveproxy                        # লাইভ লগ
journalctl -p err --since today                # শুধু এরর
dmesg | tail -30                               # হার্ডওয়্যার ঘটনা

টিপ: ওয়েব UI না খুললে প্রথমে দেখুন systemctl status pveproxy এবং journalctl -u pveproxy

গুরুত্বপূর্ণ সার্ভিস: pvedaemon (API), pveproxy (ওয়েব UI), pvestatd (স্ট্যাটাস), corosync (ক্লাস্টার)।


লেসন ৬ — SSH: রিমোট অ্যাক্সেস ও কী অথেন্টিকেশন (৩৫ মিনিট)#

সহজ ভাষায়#

সার্ভার দূর থেকে চালাতে SSH লাগে। পাসওয়ার্ডের বদলে কী (key) ব্যবহার করা অনেক নিরাপদ।

BASH
# নিজের ল্যাপটপে কী তৈরি
ssh-keygen -t ed25519 -C "admin@proxmox" -f ~/.ssh/proxmox_key

# পাবলিক কী সার্ভারে পাঠানো
ssh-copy-id -i ~/.ssh/proxmox_key.pub root@192.168.1.100

# কী দিয়ে লগইন
ssh -i ~/.ssh/proxmox_key root@192.168.1.100

sshd শক্ত করা (/etc/ssh/sshd_config)#

CODE
PermitRootLogin prohibit-password   # root শুধু কী দিয়ে ঢুকবে
PasswordAuthentication no           # পাসওয়ার্ড বন্ধ
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 20

এরপর systemctl restart sshd

সতর্কতা: sshd সেটিং বদলানোর সময় আরেকটি কনসোল খোলা রাখুন। নিজেকে বাইরে আটকে ফেললে ফিজিক্যাল অ্যাক্সেস বা প্রক্সমক্স কনসোল ছাড়া উপায় থাকবে না।


লেসন ৭ — প্রসেস ম্যানেজমেন্ট (২৫ মিনিট)#

সহজ ভাষায়#

প্রতিটি চালু VM হোস্টে একটি প্রসেস। প্রসেস দেখতে ও থামাতে জানলে পারফরম্যান্স সমস্যা ধরতে পারবেন।

BASH
ps aux --sort=-%cpu | head -10    # সবচেয়ে বেশি CPU খাওয়া ১০টি প্রসেস
htop                              # ইন্টারঅ্যাক্টিভ মনিটর (q চেপে বের হন)
pgrep -a kvm                      # চালু VM প্রসেসগুলো

kill 1234                         # ভদ্রভাবে থামানো (SIGTERM)
kill -9 1234                      # জোর করে থামানো (SIGKILL)
kill -9 $(pgrep -f "kvm -id 100") # VM 100-এর প্রসেস — শুধু জরুরি অবস্থায়

ss -tulnp | grep :8006            # কোন প্রসেস 8006 পোর্ট ধরে আছে
lsof -i :8006

লেসন ৮ — টেক্সট এডিটর: vim ও nano (২৫ মিনিট)#

সহজ ভাষায়#

প্রক্সমক্সের সব কনফিগ ফাইল কমান্ড লাইন থেকে এডিট করতে হয়। দুটি টুল যথেষ্ট।

nano — সহজটি#

CODE
nano /etc/network/interfaces

Ctrl+O   সেভ
Ctrl+X   বের হওয়া
Ctrl+K   লাইন কাটা
Ctrl+U   পেস্ট
Ctrl+W   খোঁজা

vim — শক্তিশালীটি#

vim-এ দুইটি মোড: Normal (নেভিগেশন) আর Insert (লেখা)। Esc চাপলে Normal মোডে ফেরে।

CODE
i        লেখা শুরু (Insert মোড)
Esc      Normal মোডে ফেরা
:w       সেভ
:wq      সেভ করে বের হওয়া
:q!      সেভ না করে বের হওয়া
gg / G   ফাইলের শুরু / শেষ
/শব্দ    খোঁজা (n = পরেরটি)
dd / yy / p   লাইন কাটা / কপি / পেস্ট
u        আগের কাজ বাতিল

টিপ: প্রক্সমক্স কনফিগের জন্য nano ব্যবহার করুন। vim ব্যবহার করুন শুধু যদি আগে থেকেই অভ্যস্ত হন।


লেসন ৯ — নেটওয়ার্ক ডায়াগনস্টিক টুলস (৩০ মিনিট)#

সহজ ভাষায়#

নেটওয়ার্ক সমস্যা আসবেই। এই টুলগুলো দিয়ে ধাপে ধাপে কারণ বের করা যায়।

BASH
ping -c 4 8.8.8.8            # সংযোগ আছে কি না
traceroute 8.8.8.8           # প্যাকেট কোন পথে যাচ্ছে
mtr --report 8.8.8.8         # প্রতিটি হপে প্যাকেট লস দেখায় (সবচেয়ে কাজের)

ss -tlnp                     # কোন কোন পোর্ট খোলা আছে
ss -tlnp | grep 8006         # ওয়েব UI পোর্ট
nc -zv pve2.lab.local 8006   # অন্য সার্ভারের পোর্ট খোলা কি না
nc -zv pve2 22

curl -I http://download.proxmox.com/debian/pve   # রিপো পৌঁছায় কি না
wget https://example.com/file.iso -O /var/lib/vz/template/iso/file.iso

টিপ: apt install mtr করে নিন। প্যাকেট লস কোন হপে হচ্ছে, সেটা traceroute-এর চেয়ে ভালো দেখায়।


লেসন ১০ — প্রক্সমক্সের জন্য Bash স্ক্রিপ্টিং (৩৫ মিনিট)#

সহজ ভাষায়#

একই কাজ বারবার করলে স্ক্রিপ্ট লিখুন — বাল্ক VM তৈরি, হেলথ চেক, ব্যাকআপ। ছোট স্ক্রিপ্টও ঘণ্টার পর ঘণ্টা বাঁচায়।

BASH
#!/bin/bash
set -euo pipefail   # এরর হলে থামো, খালি ভ্যারিয়েবল = এরর, pipe-এর এররও ধরো

PVE_HOST="pve1.lab.local"
VM_IDS=(100 101 102)

if systemctl is-active --quiet pvedaemon; then
  echo "PVE daemon is running"
else
  echo "ERROR: pvedaemon is down!"
  systemctl restart pvedaemon
fi

for vmid in "${VM_IDS[@]}"; do
  status=$(qm status "$vmid" 2>/dev/null || echo "missing")
  echo "VM $vmid: $status"
done

check_storage() {
  local threshold=$1
  local usage
  usage=$(df /var/lib/vz | awk 'NR==2{print $5}' | tr -d '%')
  if [ "$usage" -gt "$threshold" ]; then
    echo "WARNING: /var/lib/vz is ${usage}% full"
  fi
}
check_storage 80

বাস্তব উদাহরণ — হেলথ চেক স্ক্রিপ্ট#

/usr/local/bin/pve-health-check.sh ফাইলে রাখুন। এটি দেখায়: চালু VM, স্টোরেজ ব্যবহার, মেমরি, ZFS পুলের অবস্থা, ফেইল করা সার্ভিস।

BASH
qm list | grep running
df -h /var/lib/vz /var/lib/pve-cluster
free -h
zpool status -x 2>/dev/null || echo "No ZFS pools"
systemctl --failed --no-legend | head -5

chmod +x দিয়ে চালানোর অনুমতি দিন, তারপর cron-এ বসান:

CODE
0 8 * * * /usr/local/bin/pve-health-check.sh | mail -s "PVE Health" admin@example.com

সতর্কতা: যে স্ক্রিপ্ট নিজে নিজে চলে, তাতে সবসময় set -euo pipefail দিন। না দিলে একটি কমান্ড ব্যর্থ হলেও স্ক্রিপ্ট চলতে থাকে এবং ক্ষতি করে ফেলে।


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

  • শেল থেকে ফাইল দেখা, কপি করা, খোঁজা
  • পারমিশন পড়া ও বদলানো
  • প্যাকেজ ইনস্টল ও রিপো ঠিক করা
  • সার্ভিস চালু-বন্ধ করা ও লগ পড়া
  • SSH কী দিয়ে নিরাপদে লগইন করা
  • প্রসেস দেখা ও থামানো
  • কনফিগ ফাইল এডিট করা
  • নেটওয়ার্ক সমস্যা ধাপে ধাপে খোঁজা
  • ছোট অটোমেশন স্ক্রিপ্ট লেখা

পরবর্তী: ফেজ ২ — নেটওয়ার্কিং বেসিক