همهٔ VPSها یکسان ساخته نمیشوند. فناوری مجازیسازی زیرین تعیین میکند سرور شما چقدر ایزوله است، چه نرمافزاری میتوانید اجرا کنید و چگونه عمل میکند. دو نامی که بیشتر میبینید KVM و OpenVZ هستند، در کنار LXC.
دو روش ساخت سرور مجازی
مجازیسازی کامل (KVM) به هر مشتری یک ماشین مجازی کامل با هستهٔ (kernel) خودش میدهد. هایپروایزر سختافزار را تقسیم میکند و سرور شما مثل یک رایانهٔ واقعی رفتار میکند.
مجازیسازی کانتینری (OpenVZ، LXC) هستهٔ میزبان را بین همهٔ مشتریان به اشتراک میگذارد. هر کانتینر فایلها و پردازشهای خودش را میبیند اما روی همان هستهٔ همسایگانش اجرا میشود.
مقایسهٔ کنار هم
| KVM | OpenVZ / LXC | |
|---|---|---|
| هسته | مخصوص خودتان | مشترک با میزبان |
| ایزولاسیون | قوی | ضعیفتر |
| اجرای Docker، WireGuard، ماژولهای هستهٔ سفارشی | بله | اغلب محدود یا غیرممکن |
| اجرای Windows | بله | خیر |
| تضمین رم | ثابت و رزروشده | میتواند بیشفروش شود («burstable») |
| سربار | کم | کمترین |
چرا KVM انتخاب امنتری است
- نرمافزار را شما انتخاب میکنید. Docker، VPN، فایروالهایی مانند nftables و ابزارهایی که ماژول هسته بارگذاری میکنند بدون کسب اجازه کار میکنند.
- حافظهٔ واقعی. رمی که میخرید به ماشین شما اختصاص مییابد. میزبانهای کانتینری گاهی بیشتر از حافظهٔ موجود میفروشند و امیدوارند مشتریان همه را مصرف نکنند.
- ایزولاسیون بهتر. خطا یا حمله در ماشین مجازی همسایه بسیار کمتر به ماشین شما میرسد.
- هر سیستمعاملی. توزیعهای لینوکس، BSD و Windows همه بدون تغییر اجرا میشوند.
چه زمانی کانتینرها هنوز منطقیاند
کانتینرها سریع شروع میشوند و کم هدر میدهند، به همین دلیل میزبانها برای پلنهای بسیار ارزان از آنها استفاده میکنند و شما از طریق Docker داخل VPS خودتان. برای بارهای ساده که چیز خاصی از هسته نمیخواهند مناسباند.
چگونه بفهمیم چه داریم
systemd-detect-virt
lscpu | grep -i hypervisor
cat /proc/user_beancounters # exists only on OpenVZ
kvm در دستور اول یعنی مجازیسازی کامل. اگر فایل آخر وجود داشته باشد، روی OpenVZ هستید.
پرسشهای متداول
آیا KVM بهتر از OpenVZ است؟
برای بیشتر کاربردها بله. KVM به هر VPS هستهی خودش و ایزولاسیون قویتری میدهد، پس میتوانید هر سیستمعاملی و Docker را اجرا کنید. OpenVZ هستهی میزبان را به اشتراک میگذارد و محدودتر است.
آیا میتوانم Docker را روی OpenVZ اجرا کنم؟
اغلب نه، یا فقط با محدودیتهایی، چون کانتینرها هستهی میزبان را به اشتراک میگذارند. KVM انتخاب مطمئنتری برای Docker است.
آیا KVM گرانتر است؟
کمی، چون منابع سختگیرانهتر اختصاص مییابند، اما ایزولاسیون و سازگاری معمولاً میارزد.