VDS چیست؟
VDS مخفف Virtual Dedicated Server و به معنای «سرور مجازی اختصاصی» است؛ یک ماشین مجازی که کرنل مستقل خودش را اجرا میکند و سهم مشخص و رزروشدهای از پردازنده، حافظه و فضای ذخیرهسازی در اختیار دارد. در بازار ایران معمولاً با عنوان «سرور نیمهاختصاصی» هم شناخته میشود، چون از نظر کنترل و پایداری منابع، جایی میان یک سرور مجازی معمولی و یک سرور فیزیکی میایستد.
اما یک نکته را باید از همان ابتدا بدانید: مرز میان VDS و VPS تعریف استاندارد و رسمی ندارد. هیچ نهاد یا مشخصات فنی مرجعی این دو اصطلاح را از هم تفکیک نکرده است و هر ارائهدهنده برداشت خودش را دارد. بعضی شرکتها این دو نام را کاملاً هممعنی به کار میبرند و بعضی دیگر با VDS منظورشان محصولی با منابع تضمینشده است. پس به جای تکیه بر نام محصول، همیشه مشخصات فنی زیر آن را بخوانید.
کرنل اختصاصی یعنی چه؟
مهمترین تفاوت فنی که معمولاً پشت واژه VDS قرار میگیرد، نوع مجازیسازی است. مجازیسازی سرور در عمل دو خانواده دارد:
- مجازیسازی در سطح سیستمعامل (کانتینری) مانند OpenVZ، Virtuozzo و LXC: همه سرورهای مجازی روی یک ماشین میزبان، کرنل میزبان را به اشتراک میگذارند. شما فضای کاربری جداگانه، آیپی و فایلسیستم مستقل دارید، اما کرنل متعلق به شما نیست.
- مجازیسازی کامل یا سختافزاری مانند KVM، Xen HVM، VMware و Hyper-V: هر ماشین مجازی مجموعهای از سختافزار مجازی مستقل دارد، خودش بوت میشود و کرنل خودش را بالا میآورد.
آنچه اغلب با برچسب VDS عرضه میشود، در عمل یک ماشین مبتنی بر مجازیسازی کامل است. تفاوت کاربردی این موضوع کم نیست:
- میتوانید نسخه کرنل را خودتان انتخاب، بهروزرسانی یا حتی کامپایل کنید و ماژول کرنل بارگذاری کنید — چیزی که برای ZFS، برخی درایورهای شبکه یا ماژولهای فیلترینگ بسته لازم میشود.
- پارامترهای sysctl مثل تنظیمات پشته شبکه یا حافظه اشتراکی واقعاً قابل تغییرند؛ در محیط کانتینری بسیاری از این مقادیر توسط میزبان قفل شدهاند یا تغییرشان اثری ندارد.
- سیستمعامل دلخواه — از توزیعهای گوناگون لینوکس گرفته تا ویندوز سرور و BSD — و در بسیاری از موارد نصب از روی ISO سفارشی ممکن است.
- پارتیشنبندی دلخواه، LVM، سواپ واقعی و اجرای fsck روی فایلسیستم در اختیار خودتان است.
- اگر میزبان اجازه دهد، مجازیسازی تودرتو برای اجرای ماشین مجازی داخل سرور نیز شدنی است.
منابع رزروشده در برابر منابع اشتراکی
بخش دوم ادعای «اختصاصی بودن» به شیوه تخصیص منابع برمیگردد. در سرورهای مجازی ارزانقیمت، مجموع هستههای مجازی فروختهشده روی یک ماشین معمولاً بیشتر از هستههای فیزیکی آن است؛ به این کار overcommit یا بیشفروشی میگویند. تا وقتی همه سرورها همزمان پرکار نباشند مشکلی پیش نمیآید، اما در ساعت اوج، سرور شما باید برای گرفتن نوبت پردازنده منتظر بماند.
در میزبانی اشتراکی همه کاربران یک کرنل مشترک دارند؛ در VPS و VDS هر ماشین کرنل خودش را دارد و هایپروایزر مرز را نگه میدارد؛ در سرور اختصاصی کل سختافزار در اختیار شماست.
این انتظار قابل اندازهگیری است: در لینوکس ستون st (به معنای steal time) در خروجی top یا vmstat نشان میدهد چند درصد از زمان، پردازنده مجازی شما آماده اجرا بوده ولی هایپروایزر پردازنده فیزیکی را به ماشین دیگری داده است. عدد پیوسته و بالای این ستون یعنی همسایههای پرمصرف دارید. در یک VDS با هستههای اختصاصیافته و حافظه رزروشده، این عدد باید نزدیک صفر بماند. همین موضوع دلیل اصلی محبوبیت این نوع سرور برای بارهای کاری حساس به تأخیر مانند سرور مجازی ترید و فارکس، سرورهای بازی و ارتباطات صوتی است.
نکته مشابهی درباره حافظه وجود دارد: در برخی طرحهای کانتینری مقداری از رم به شکل «قابل انفجار» یا burstable عرضه میشود، یعنی تضمینی برای در دسترس بودن آن در لحظه نیاز نیست. در طرحهای اختصاصی، حافظه از ابتدا رزرو میشود.
VDS در برابر سرور اختصاصی
یک سرور اختصاصی کل ماشین فیزیکی است: بدون لایه هایپروایزر، با دسترسی به تنظیمات فریمور و بایوس، امکان استفاده از رید سختافزاری، افزودن کارت شبکه یا کارت گرافیک و کنترل کامل روی سختافزار. در مقابل، مسئولیت و زمان بازیابی در صورت خرابی قطعه هم بر عهده شماست و هزینهاش بهمراتب بیشتر است.
VDS همان جدایی کرنل و پایداری منابع را میدهد، بدون آنکه هزینه یک ماشین کامل را بپردازید. در عوض، همچنان روی سختافزاری مشترک با دیگران هستید و پهنای باند شبکه و توان ورودی/خروجی دیسک میزبان میان چند ماشین تقسیم میشود. لایه مجازیسازی هم مقدار کمی سربار پردازشی دارد، هرچند در پردازندههای امروزی این سربار برای بیشتر بارهای کاری قابل چشمپوشی است.
چه زمانی سراغ VDS بروید؟
- وقتی به کرنل سفارشی، ماژول کرنل یا تنظیمات سطح پایین سیستمعامل نیاز دارید.
- وقتی میخواهید ویندوز سرور، یک توزیع خاص یا هایپروایزر تودرتو نصب کنید.
- وقتی برنامهتان به تأخیر پایدار و قابل پیشبینی نیاز دارد و نوسان پردازنده برایتان هزینه دارد.
- وقتی پایگاه دادهای دارید که به توان ورودی/خروجی یکنواخت وابسته است.
- وقتی رشد کردهاید و سرور مجازی اشتراکی پاسخگو نیست، ولی حجم کار هنوز یک ماشین فیزیکی کامل را توجیه نمیکند.
در نقطه مقابل، اگر یک وبسایت معمولی، فروشگاه کوچک یا محیط آزمایشی دارید، تفاوت را در عمل حس نخواهید کرد و طرحهای سادهتر انتخاب منطقیتری هستند.
پیش از خرید چه چیزی بپرسید؟
چون نام محصول معنای ثابتی ندارد، این پرسشها را از ارائهدهنده بپرسید و پاسخ را در مشخصات فنی ببینید:
- پلتفرم مجازیسازی چیست؟ KVM و Xen و VMware کرنل مستقل میدهند، OpenVZ و LXC خیر.
- هستههای پردازنده اختصاصی و پینشدهاند یا مشترک؟ نسبت بیشفروشی چقدر است؟
- حافظه رزروشده است یا burstable؟
- دیسک محلی NVMe/SSD است یا فضای ذخیرهسازی شبکهای؟ محدودیت IOPS دارد؟
- دسترسی کنسول یا VNC برای مواقعی که سرور بوت نمیشود در دسترس است؟ امکان اسنپشات و نصب ISO سفارشی چطور؟
و یک نکته پایانی: کرنل اختصاصی به معنای مدیریت خودکار نیست. بهروزرسانی امنیتی، پیکربندی فایروال، پشتیبانگیری و پایش همچنان کار شماست. اگر تیم فنی برای این کارها ندارید، سرور مدیریتشده گزینهای است که همین آزادی فنی را با سپردن نگهداری به ارائهدهنده ترکیب میکند. فهرست کارهای اولیه در امنسازی سرور مجازی VPS جمع شده است.
جمعبندی
VDS یک ماشین مجازی با کرنل مستقل و منابع رزروشده است که رفتاری نزدیک به سرور فیزیکی دارد. اما چون این اصطلاح استاندارد نیست، تصمیم درست از روی برچسب محصول گرفته نمیشود؛ نوع مجازیسازی، شیوه تخصیص پردازنده و حافظه و نوع دیسک را ببینید و بر اساس آن انتخاب کنید.
