اینکه یک سرور فیزیکی با کدام تکنولوژی مجازیسازی، به سرورهای مجازی تبدیل شود، در عملکرد، امنیت و مقیاسپذیری آن تاثیر دارد.
در این مقاله میخواهیم ۳ تا از معروفترین تکنولوژیهای مجازیسازی یعنی KVM ،OpenVZ و Xen را را بررسی کنیم و ببینیم هرکدام از آنها، برای چه کاربرد و نیازی مناسب است.
اگر اطلاعاتتان درباره مجازیسازی محدود است، پیشنهاد میکنیم اول مقاله «تکنولوژی مجازی سازی چیست؟» را بخوانید.
معرفی تکنولوژیهای مجازیسازی
در این قسمت که آن را به بررسی انواع تکنولوژی مجازیسازی اختصاص دادهایم، نگاهی ریزبینانه و موشکافانه میاندازیم به ۳ گزینۀ اصلی Virtualization و آنها را از همۀ جهات زیر ذرهبین خواهیم برد.
اول از همه، معروفترین گزینۀ لیست، یعنی KVM.
مجازیساز KVM چیست؟
KVM شکل مخفف عبارت Kernel-Based Virtual Machine است؛ یعنی ماشین مجازی مبتنیبر کرنل (هسته).
KVM روی هسته لینوکس اجرا میشود و آن را به یک مجازیساز (هایپروایزر) تبدیل میکند؛ به این ترتیب، سیستمعامل لینوکس میتواند میزبان چندین ماشین مجازی باشد که هرکدام سیستمعامل مستقل خود (از ویندوز گرفته تا انواع توزیعهای لینوکس) را اجرا و منابع مورد نیازشان را از ماشین میزبان، یعنی همان سیستمی که KVM روی آن فعال شده است، دریافت میکنند.
به زبان سادهتر، هرکدام از ماشینهایی که با این ابزار میسازید، به نسخۀ اختصاصی خود از کرنل و سیستمعامل (و البته دیگر نرمافزارها و اپلیکیشنها) دسترسی دارند و هیچ فضایی به فضای کناریاش وابسته نیست.
مهمترین نکته دربارۀ KVM اینکه متنباز است و هرکسی میتواند بهصورت کاملاً رایگان از آن استفاده کند.
![]() |
عملکرد KVM چگونه است؟
در مورد نحوۀ عملکرد KVM باید بگوییم که این فناوری مستقیماً با هسته لینوکس یکپارچه میشود و آن را به یک هایپروایزر نوع ۱ تبدیل میکند؛ یعنی برخلاف برخی مجازیسازی دیگر، نیازی به لایهای واسط میان سیستمعامل و سختافزار نیست و لینوکس با استفاده از KVM میتواند مستقیماً ماشینهای مجازی را مدیریت کند.
نکتۀ مهم این است که KVM یک نرمافزار جداگانه نیست که روی هسته نصب شود؛ بلکه بهصورت یک ماژول کرنل عمل میکند و قابلیت مجازیسازی را به خود هسته اضافه میکند. به این ترتیب، هسته لینوکس نقش هایپروایزر را ایفا میکند و منابع سیستم را بهطور مستقیم بین ماشینهای مجازی مدیریت میکند.
برای اجرای KVM، وجود پردازندهای که از فناوری مجازیسازی سختافزاری پشتیبانی کند (مانند Intel VT-x یا AMD-V) الزامی است. این قابلیتها به پردازنده اجازه میدهند میان ماشین میزبان و ماشینهای مهمان تفکیک قائل شود و از بروز اختلال یا تداخل در عملکرد VMها جلوگیری کند.
برای شبیهسازی سختافزار مجازی، KVM معمولاً در کنار QEMU (مخفف Quick EMUlator) استفاده میشود. QEMU اجزای سختافزاری مانند کارت شبکه، دیسک، گرافیک و … را بهصورت مجازی برای ماشینهای مهمان فراهم میکند تا آنها بتوانند درست مانند یک سیستم واقعی، به منابع مورد نیاز دسترسی داشته باشند.
هرچند مدیریت KVM معمولاً از طریق خط فرمان و ابزارهایی مانند virsh یا qemu-system انجام میشود، اما رابطهای گرافیکی مانند Virt-Manager نیز وجود دارند که فرآیند ایجاد، پیکربندی و مدیریت VMها را برای کاربران آسانتر میکنند.
مهمترین کاربردهای مجازیساز KVM
KVM بیشتر از هر جای دیگری در ساخت و راهاندازی سرورهای مجازی (VPS) به کار گرفته میشود. ولی خب کاربردهای این مجازیساز به ساخت سرورهای مجازی محدود نمیشود و در جاهای دیگری نیز کاربرد دارد:
-
رایانش ابری: KVM بهعنوان هسته اصلی در بسیاری از زیرساختهای ابری عمومی و خصوصی استفاده میشود.
-
محیطهای تست و توسعه ایزوله: توسعهدهندگان میتوانند با استفاده از KVM محیطهایی جداگانه و ایمن برای آزمایش نرمافزارها قبل از انتشار ایجاد کنند.
-
اجرای چند سیستمعامل روی یک دستگاه: این مجازیساز امکان نصب و اجرای چند سیستمعامل مختلف (از جمله ویندوز، لینوکس و …) را بهصورت همزمان روی یک سرور لینوکسی فراهم میکند.
-
افزایش امنیت و ایزولهسازی: به دلیل معماری ایزوله، KVM برای میزبانی برنامهها و سرویسهایی که با دادههای حساس سروکار دارند، گزینهای بسیار مناسب محسوب میشود.
![]() |
مزایا و معایب KVM
جدول زیر را داشته باشید:
مزایا | معایب |
متنباز و رایگان بودن | الزاماً نیازمند دستگاه لینوکسی و CPU با امکان پشتیبانی از مجازیسازی |
عملکرد و مجازیسازی خیلی خوب | فرایند آمادهسازی و تنظیمات نسبتاً پیچیده |
پشتیبانی از انواع سیستمعاملها برای ماشینهای مجازی | احتمال آسیبدیدگی جمعی VMها بهخاطر وابستگی همۀ آنها به یک دستگاه میزبان |
مقیاسپذیری بسیار عالی | تأثیر گرفتن عملکرد از آپدیتها و بهروزرسانیهای کرنل لینوکس |
امنیت خیلی خوب فضاهای ایزوله | تعداد کم رابطهای کاربری و گذاشتن تمرکز اصلی روی کار با خط فرمان |
تکنولوژی OpenVZ چیست؟
نوع بعدی از انواع تکنولوژی مجازیسازی، OpenVZ نام دارد که مثل KVM متنباز است. با این ابزار میتوانید چندین کانتینر لینوکس (کاملاً ایزوله از یکدیگر)، روی یک سرور فیزیکی بسازید.
کانتینرها شباهتهای زیادی با ماشینهای مجازی دارند؛ منتهی با این تفاوت که خیلی سبکتر هستند و به همین خاطر، برای میزبانی از چندین اپلیکیشن روی یک سرور به کار میآیند.
قبلاً در مقالۀ «داکر (Docker) چیست و چه کاربردی دارد؟»، کامل راجعبه کانتینرها صبحت کردهایم.
با توجه به همین موضوع، یعنی ساخت کانتینر بهجای ماشین مجازی، عدهای معتقدند که OpenVZ اصلاً نباید در بین انواع تکنولوژیهای مجازی به حساب بیاید! ولی خب چون این ابزار بهمنظور مجازیسازی در سرور به کار گرفته میشود، باید آن را یک Hypervisor در نظر بگیریم.
OpenVZ کرنل دستگاه لینوکسی را بین تمام فضاهای مجازی (همان کانتینرها) به اشتراک میگذارد؛ یعنی بهجای اینکه هر کانتینر، کرنل اختصاصی خود را داشته باشد، همۀ آنها بهصورت مشترک از کرنل اصلی که متعلق به میزبان لینوکسی است، استفاده میکنند؛ به این ترتیب، مدیریت کارها خیلی راحتتر میشود.
خرید سرور مجازی
قدرت واقعی در سرور مجازی لیموهاست
زیرساخت اختصاصی خود را در بهترین دیتاسنترهای جهان گسترش دهید. با VPS لیموهاست ضمن تامین منابع کافی، سرعت، انعطافپذیری، کنترل بیشتر و امنیت اطلاعات را تجربه کنید.
شروع قیمت از
۸۴۰ هزار تومان
خرید VPS
عملکرد مجازیساز OpenVZ چگونه است؟
این ابزار مجازیسازی را در سطح سیستمعامل انجام میدهد؛ به این شکل که هر کاربری فضای اختصاصی و ایزولۀ خود را خواهد داشت. هر کانتینر هم مثل یک سرور مستقل عمل میکند و همۀ ملزومات را در اختیار دارد.
برای مدیریت بهینۀ منابع، OpenVZ از یک سیستم حرفهای با نام User Beancounters استفاده میکند. ادمین با این ابزار میتواند برای هر کانتینر محدودیت مصرف مشخص کند. یادتان باشد کرنل و منابع بین کاربران مشترک هستند و اگر یکی از کانتینرها پا را از گلیمش درازتر کند، باقی کانتینرهای روی همان سرور با مشکل مواجه میشوند؛ User Beancounters برای جلوگیری از بروز چنین اتفاقی کاربرد دارد.
OpenVZ هم مثل KVM با خط فرمان کنترل میشود. در واقع، ابزارهایی مثل vzctl در پکیج این مجازیساز وجود دارند که برای امور مختلفی (از مدیریت چرخۀ طول عمر یک کانتینر تا متوقف کردن فعالیت آن) کاربرد دارند.
![]() |
رایجترین موارد استفاده از OpenVZ
بهرهوری بالا و سبک بودن OpenVZ، آن را به گزینهای مناسب برای طیف متنوعی از نیازها تبدیل میکنند؛ مثلاً:
- ساخت سرورهای مجازی: یکی از پراستفادهترین تکنولوژیهای مجازیسازی که هاستینگهای زیادی از آن استفاده میکنند.
- محیطهای تست و توسعه: به دولوپرها کمک میکند در زمانی خیلی کوتاه، یک محیط ایزولۀ لینوکسی بسازند و نرمافزارهایشان را روی توزیعهای مختلف لینوکس تست کنند.
- تجمیع اپلیکیشنهای مختلف روی یک سرور: ارگانهایی که از سرویسهای مختلف روی توزیعهای مختلف لینوکس استفاده میکنند، با استفاده از OpenVZ، با تعداد کمتری سرور فیزیکی کارشان را راه میاندازند.
- میزبانی از سایتها و اپلیکیشنهای سبک: انتخابی مناسب برای میزبانی و نگهداری از سایتها و اپلیکیشنهای کوچک تا متوسط.
- پیادهسازی سازوکار CI/CD: امکان ساخت و حذف سریع فضاهای تست ایزوله، فرایند CI/CD را تسریع میکند.
برای شناخت بهتر این سازوکار، مقالۀ «ci/cd چیست؟ به زبان خیلی ساده» را بخوانید.
مزایا و معایب OpenVZ
اینجا هم یک جدول داریم که نقاط قوت این مجازیساز را در یک سمت و نقاط ضعفش را در سمت دیگر نشانتان میدهد:
مزایا | معایب |
افزایش بهرهوری نیروی انسانی بهخاطر کرنل مشترک بین کانتینرها | محدود به لینوکس |
امکان ساخت و حذف خیلی سریع کانتینرها (سرعت بالا) | ایزولهسازی نهچندان مطلوب (بهخاطر مشترک بودن کرنل) |
امکان مدیریت آسان و منعطف اختصاص منابع به کانتینرها | امکان مشترک کردن تعداد زیادی کاربر و فشار وارد کردن به کرنل توسط ارائهدهنده |
متنباز و مقرونبهصرفه بودن | کند شدن فرایند بهروزرسانی و توسعه، بهخاطر جایگزینهای جدیدتر که جذابیت بیشتری هم دارند |
مجازیساز Xen چیست؟
مثل دیگر انواع تکنولوژی مجازیسازی، Xen هم امکان ساخت چندین ماشین مجازی روی یک سرور فیزیکی را به وجود میآورد. مجموعههایی که سراغ Xen میروند، میتوانند با استفاده از سرورهای کمتر، به محیطهای ایزولۀ بیشتری دسترسی داشته باشند؛ چون VMهای این مجازیساز هم از سیستمعامل و اپلیکیشنهای اختصاصی خود، بهصورت کاملاً مستقل، برخوردار هستند.
مثل دو مورد دیگر، این Hypervisor هم متنباز است و مجموعههای بزرگی مثل Red Hat و Oracle آن را توسعه میدهند.
نکتۀ مهم دیگر اینکه نرمافزار این مجازیساز در قالب دو پکیج عرضه میشود که عبارتند از:
- PV (paravirtualization)
- HVM (full hardware virtualization)
مجازیساز Xen هم مستقیماً روی سختافزار نصب میشود؛ یعنی با یک bare-metal hypervisor طرف هستیم؛ البته ناگفته نماند که Xen از مجازیسازی نوع ۲ هم پشتیبانی میکند.
رایجترین موارد استفاده از Xen
دربارۀ کاربردهای این مجازیساز، باید به موارد زیر اشاره کنیم:
- پلتفرمهای رایانش ابری: خیلی از ارائهدهندگان خدمات ابری (مثلاً AWS)، برای پیشنهادهای مرتبط با خدمات IaaS، وابسته به Xen هستند.
- رفع نیاز به سرورهای متعدد: ساخت ماشینهای مجازی روی یک سرور فیزیکی، یعنی نیاز به سرورهای کمتر و صرفهجویی در هزینهها.
- دیتاسنترهای شرکتهای بزرگ: مورد استفادۀ کمپانیهای بزرگ برای میزبانی از سرویسها و اپلیکیشنها در فضاهای امن و ایزوله.
- فضاهای با ایمنی خیلی بالا: Xen یکی از اجزای زیرساختی برای سیستمعاملهای متمرکز بر امنیت، مثل Qubes OS، محسوب میشود.
- فضاهای تست و توسعه: این مجازیساز هم برای ساخت فضاهای ایزوله جهت تست و توسعۀ نرمافزارها قبل از عرضه، مناسب است.
- سیستمهای اتوماسیون: Xen نقش پررنگی در صنعت خودکارسازی سیستمها بازی میکند.
![]() |
مزایا و معایب Xen
مثل KVM و OpenVZ، این مجازیساز هم مزایا و معایب خاص خودش را دارد که در این زیر آنها را میبینید:
مزایا | معایب |
متنباز و رایگان بودن | سخت بودن آمادهسازی، تنظیم و یادگیری استفاده از ابزار |
ایمنی بالا و ایزولهسازی قابل قبول | اکوسیستم کوچکتر در مقایسه با KVM و مجازیسازهای معروف دیگر |
عملکرد خیلی خوب، شبیه به یک کامپیوتر واقعی | وابستگی زیاد عملکرد به افزونههای مجازیسازی و سختافزارها |
مقیاسپذیری خیلی زیاد | مناسب نبودن برای مجازیسازی دسکتاپ و فراهم کردن دسترسی ریموت به کامپیوترها |
حالا که با انواع تکنولوژی مجازیسازی آشنا شدید، بیایید آنها را با یکدیگر مقایسه کنیم.
مقایسه مجازیساز KVM و OpenVZ ،Xen
بهترین روش برای بررسی تفاوت مجازیسازی KVM و OpenVZ و Xen، استفاده از یک جدول مقایسهای است؛ خدمت شما:
مورد مقایسه | KVM | OpenVZ | Xen |
---|---|---|---|
نوع مجازیسازی | Full Virtualization (HVM) | Container-based | Para (Type-1 Hypervisors) یا Full Virtualization (HVM) |
عملکرد منابع CPU/RAM | منابع بهصورت اختصاصی به هر VM داده میشود؛ عملکرد پایدار | منابع بین کانتینرها مشترک است؛ بهرهوری بالاتر در بارهای سبک | عملکرد قوی، مخصوصاً در حالت ParaVirtualization (PV) |
مدیریت هسته (Kernel) | هر VM کرنل اختصاصی و قابل سفارشیسازی دارد | همه کانتینرها از کرنل هاست مشترک استفاده میکنند؛ بدون امکان سفارشیسازی | امکان استفاده از کرنل اختصاصی یا سفارشیسازیشده وجود دارد |
امنیت | ایزولهسازی سختافزاری؛ امنیت بسیار بالا | امنیت ضعیفتر به دلیل کرنل مشترک | ایزولهسازی بسیار قوی و مناسب برای محیطهای حساس |
سازگاری با سیستمعاملها | پشتیبانی از اکثر توزیعهای لینوکس و حتی ویندوز | فقط پشتیبانی از لینوکس | پشتیبانی گسترده از انواع سیستمعاملها |
رایج در… | هاست ابری، سرورهای مجازی حرفهای، تست نرمافزار | VPSهای ارزانقیمت یا سرورهای سبک و با حداقل منابع | زیرساختهای سازمانی، سرویسهای ابری بزرگ، پروژههای امنیتی خاص |
سرعت راهاندازی | متوسط؛ نیاز به بوت کامل سیستمعامل دارد | بسیار سریع؛ کانتینرها مثل یک پردازش ساده اجرا میشوند | متوسط تا بالا؛ بستگی به نوع مجازیسازی (PV یا HVM) دارد |
مصرف منابع سیستم | نسبتاً بالا؛ چون ماشین مجازی کاملاً مستقل عمل میکند | بسیار کم؛ منابع بهینه مصرف میشوند | متوسط؛ بهتر از KVM در حالت PV، ولی در HVM مشابه KVM |
سهولت مدیریت توسط کاربر | نیاز به دانش متوسط تا پیشرفته در مدیریت سیستمعامل | بسیار ساده؛ شبیه به اجرای اپ در هاست اشتراکی | پیچیدهتر؛ مخصوصاً در تنظیمات اولیه و مانیتورینگ |
و اما پاسخ به سؤال مهمی که آخرین بخش مقاله را به خود اختصاص داده است.
کدام تکنولوژی به درد شما میخورد؟
شما به چه چیزی نیاز دارید؟ پاسخ به این سؤال کمکتان میکند تا بهترین نوع از انواع تکنولوژی مجازیسازی را برای شرایط خاص خودتان پیدا کنید.
بهطور کلی:
- اگر با دادههای حساس سروکار دارید و امنیت برایتان خیلی مهم است؛ همچنین فکر میکنید حتماً باید به منابع اختصاصی دسترسی داشته باشید، مجازیساز KVM همان چیزی است که دنبالش میگردید.
- اگر بدون کرنل اختصاصی هم کارتان راه میافتد و دنبال گزینهای هستید که مصرف منابع را به حداقل برساند و نهایت سرعت را داشته باشد، OpenVZ بهترین انتخابتان خواهد بود.
- اگر از تخصص فنی لازم برخوردار هستید و میخواهید به شکل حرفهای از مجازیساز استفاده کنید، سراغ Xen بروید و طرز استفاده از آن را یاد بگیرید.
نتیجهگیری: هر ابزاری را بهر کاری ساختهاند
عموم مردم فکر میکنند VPS با KVM ساخته میشود؛ در واقع، آنها فقط با این نوع از انواع تکنولوژی مجازیسازی آشنایی دارند.
اما شمایی که این مقاله را خواندهاید، علاوهبر شناخت بیشتر KVM، با دو مجازیساز معروف دیگر، یعنی OpenVZ و Xen هم آشنا شدهاید و میدانید در برخی شرایط، ماشینهای مجازی (یا کانتینرهایی) که با استفاده از یکی از این دو روی یک سرور فیزیکی ساخته شده باشند، بیشتر به کارتان میآیند.
در این مقاله، بعد از بررسی همهجانبۀ هر ۳ نوع تکنولوژی رایج، تفاوتهای آنها را زیر ذرهبین بردیم و در یک جدول آنها را با هم مقایسه کردیم؛ در آخر هم توضیح دادیم که هرکدام از آنها مناسب چه نوع نیازهایی هستند.
اگر همچنان سؤالی در این رابطه دارید، همین زیر برایمان کامنت بگذارید.
No comment