فارسی (Farsi)
€EUR

مجازی‌سازی KVM روی VPS لینوکس چیست

3 min
سرور مجازی (VPS/VDS)

KVM (Kernel-based Virtual Machine) فناوری مجازی‌سازی داخلی هسته لینوکس است. روی یک VPS Linux Infrawire یعنی سرور شما مانند یک ماشین واقعی با هسته مخصوص خودش رفتار می‌کند، نه مانند یک پوشه ساده که درون سیستم دیگری ایزوله شده است. این راهنما تفاوت آن با فناوری‌های کانتینری را توضیح می‌دهد و نشان می‌دهد چگونه خودتان آن را بررسی کنید.

📋 پیش‌نیازها

  • یک VPS لینوکس (Ubuntu 24.04، Debian 12، AlmaLinux 9 یا Rocky Linux 9)
  • دسترسی SSH با کاربر root یا کاربری دارای sudo
  • آشنایی پایه با خط فرمان

1. KVM چگونه کار می‌کند

KVM هسته لینوکس میزبان فیزیکی را به یک هایپروایزر تبدیل می‌کند. هر ماشین مجازی یک فرایند معمولی است که QEMU مدیریت می‌کند، اما سخت‌افزار شبیه‌سازی‌شده می‌بیند: پردازنده، حافظه، دیسک و کارت شبکه. به لطف افزونه‌های مجازی‌سازی پردازنده (Intel VT-x و AMD-V) کد مهمان تقریباً با سرعت بومی اجرا می‌شود.

درون ماشین مجازی یک سیستم‌عامل کامل با هسته، سیستم init و فرایندهای مخصوص خودش نصب می‌کنید. از دید شما این یک سرور اختصاصی است.

2. KVM در برابر OpenVZ و LXC

فناوری‌های کانتینری متفاوت کار می‌کنند:

  • OpenVZ و LXC: همه کانتینرها هسته میزبان را به اشتراک می‌گذارند. فقط یک فضای کاربر ایزوله دریافت می‌کنید. نمی‌توانید هسته را عوض کنید، ماژول بارگذاری کنید یا نسخه هسته را انتخاب کنید.
  • KVM: مجازی‌سازی کامل. هر VPS هسته خودش را بوت می‌کند و حافظه و دیسک اختصاصی دارد.

کانتینر سبک‌تر است اما به آنچه هسته میزبان اجازه می‌دهد محدود است. VPS مبتنی بر KVM در ازای مصرف حافظه کمی بیشتر، آزادی عمل می‌دهد.

3. چرا روی VPS مهم است

با هسته مخصوص خودتان می‌توانید:

  • ماژول‌های هسته مانند WireGuard، br_netfilter یا nf_conntrack را بارگذاری کنید
  • Docker و سایر موتورهای کانتینر را بدون محدودیت اجرا کنید (cgroups، سیستم فایل overlay، iptables)
  • سیستم را با sysctl تنظیم کنید (بافرهای شبکه، IP forwarding، کنترل ازدحام BBR)
  • از فایروال، فایل swap و هر سیستم فایلی که می‌خواهید استفاده کنید
  • نسخه دیگری از هسته توزیع خود را نصب کنید
Bash
# نمایش هسته در حال اجرا uname -r # نمایش پارامترهای هسته که می‌توانید تغییر دهید sudo sysctl net.ipv4.ip_forward net.ipv4.tcp_congestion_control

4. بررسی کنید که روی KVM هستید

ساده‌ترین راه systemd-detect-virt است:

Bash
systemd-detect-virt # خروجی مورد انتظار: kvm

اگر دستور openvz، lxc یا docker نشان داد، درون یک کانتینر هستید. مقدار none یعنی ماشین فیزیکی.

می‌توانید با lscpu تأیید کنید:

Bash
lscpu | grep -iE 'hypervisor|virtualization type' # Hypervisor vendor: KVM # Virtualization type: full

و با پیام‌های بوت هسته:

Bash
sudo dmesg | grep -i -E 'kvm|hypervisor' # Hypervisor detected: KVM

در نهایت hostnamectl یک خط Virtualization: kvm نمایش می‌دهد.

5. آنچه KVM به شما می‌دهد را آزمایش کنید

بررسی کنید که می‌توانید ماژول بارگذاری کنید و کانتینر اجرا کنید:

Bash
# Ubuntu 24.04 / Debian 12: ماژول WireGuard sudo modprobe wireguard lsmod | grep wireguard # Docker را از مخزن توزیع نصب کنید و یک کانتینر آزمایشی اجرا کنید sudo apt update && sudo apt install -y docker.io sudo docker run --rm hello-world

روی AlmaLinux 9 یا Rocky 9 ابزارها را با sudo dnf install -y wireguard-tools نصب کنید و برای نصب موتور از مستندات رسمی Docker (docs.docker.com) پیروی کنید.

🔧 عیب‌یابی

dmesg: read kernel buffer failed: Operation not permitted
هسته استفاده از dmesg را به root محدود می‌کند. آن را با sudo اجرا کنید یا از sudo journalctl -k استفاده کنید.

modprobe: FATAL: Module wireguard not found
در برخی ایمیج‌های حداقلی ماژول‌های اضافی وجود ندارند. در Ubuntu بسته linux-modules-extra-$(uname -r) را نصب کنید. اگر تازه هسته را به‌روز کرده‌اید، ابتدا ریبوت کنید تا uname -r با ماژول‌های نصب‌شده مطابقت کند.

systemd-detect-virt: command not found
ایمیج systemd ندارد یا بسیار حداقلی است. به جای آن از lscpu یا dmesg استفاده کنید، یا بسته systemd را نصب کنید.

Docker درباره cgroups یا iptables خطا می‌دهد
با systemctl status docker بررسی کنید که سرویس در حال اجراست و در پیکربندی سفارشی فایروال، nf_tables یا iptables را غیرفعال نکرده‌اید.


🚀 اکنون می‌دانید KVM چه چیزی به VPS شما می‌دهد: هسته واقعی، کنترل کامل و بدون محدودیت پنهان از سوی میزبان.

با آخرین پیشنهادها، تخفیف‌ها و تبلیغات ویژه به‌روز بمانید.

مشاهده تخفیف‌ها

ما از کوکی استفاده می‌کنیم

ما از کوکی‌های تحلیلی برای بهبود تجربه شما در سایت خود استفاده می‌کنیم. هیچ داده‌ای به اشخاص ثالث فروخته نمی‌شود. اطلاعات بیشتر در سیاست حفظ حریم خصوصی ما.