مجازیسازی سرور چگونه کار میکند؟
مجازیسازی سرور با انتزاع یا جداسازی سختافزار کامپیوتر از تمام نرمافزارهایی که ممکن است روی آن سختافزار اجرا شوند، عمل میکند. این فرآیند انتزاع توسط هایپروایزر (Hypervisor) انجام میشود، یک نرمافزار تخصصی که باید روی یک کامپیوتر فیزیکی نصب شود. در فضای سازمانی، هایپروایزرهای متعددی مانند Microsoft Hyper-V و VMware vSphere وجود دارند.
بعداً معرفی کانتینرهای مجازی (Virtual Containers) بهعنوان جایگزینی برای مجازیسازی، از یک نوع تغییریافته هایپروایزر به نام موتور کانتینر (Container Engine)، مانند Docker یا Apache Mesos استفاده کرد. اگرچه ویژگیها و رفتار کانتینرها با ماشینهای مجازی کمی متفاوت است، اما اهداف اصلی آنها، یعنی انتزاع منابع، تخصیص (Provisioning) و مدیریت منابع، یکسان است.
انتزاع، منابع فیزیکی کامپیوتر – از جمله پردازندهها، حافظه، حجمهای ذخیرهسازی و رابطهای شبکه – را شناسایی کرده و معادلهای منطقی برای آنها ایجاد میکند. بهعنوان مثال، یک پردازنده فیزیکی میتواند بهصورت منطقی به یک پردازنده مجازی (vCPU) تبدیل شود. هایپروایزر مسئول مدیریت تمام منابع مجازی است که انتزاع کرده و تمام تبادلات داده بین منابع مجازی و همتایان فیزیکی آنها را انجام میدهد.
قدرت واقعی یک هایپروایزر در انتزاع نیست، بلکه در استفادهای است که از منابع انتزاعشده میشود. یک هایپروایزر از منابع مجازیشده برای ایجاد نمایههای منطقی از کامپیوترها یا ماشینهای مجازی (VM) استفاده میکند. به هر ماشین مجازی پردازندهها، حافظه، ذخیرهسازی، آداپتورهای شبکه و سایر اجزای مجازیشده مانند واحد پردازش گرافیکی (GPU) که توسط هایپروایزر مدیریت میشوند، اختصاص داده میشود. زمانی که هایپروایزر یک ماشین مجازی را تخصیص میدهد، نمونه منطقی حاصل بهطور کامل از سختافزار زیرین و تمامی ماشینهای مجازی دیگر که توسط هایپروایزر ایجاد شدهاند، ایزوله میشود. این بدین معناست که یک ماشین مجازی هیچ وابستگی مستقیم یا آگاهی از کامپیوتر فیزیکی زیرین یا هر یک از ماشینهای مجازی دیگر که ممکن است منابع کامپیوتر فیزیکی را به اشتراک بگذارند، ندارد.
این ایزولاسیون منطقی، همراه با مدیریت دقیق منابع، به هایپروایزر این امکان را میدهد که چندین ماشین مجازی را بهطور همزمان روی یک کامپیوتر فیزیکی ایجاد و کنترل کند – به طوری که هر ماشین مجازی قادر است بهعنوان یک کامپیوتر کامل و کاملاً عملیاتی عمل کند. مجازیسازی به سازمانها این امکان را میدهد که چندین سرور مجازی را از یک سرور فیزیکی استخراج کنند. زمانی که یک ماشین مجازی ایجاد میشود، به مجموعه کامل نرمافزار برای نصب نیاز دارد، از جمله سیستمعامل، درایورها، کتابخانهها و برنامه سازمانی مورد نظر خود. این امکان را برای سازمانها فراهم میکند که از چندین سیستمعامل برای پشتیبانی از ترکیب وسیعی از بارهای کاری همه بر روی همان کامپیوتر فیزیکی استفاده کنند. برای مثال، یک ماشین مجازی ممکن است از نسخهای از Windows Server برای اجرای یک برنامه ویندوزی استفاده کند، در حالی که یک ماشین مجازی دیگر روی همان کامپیوتر ممکن است از یک نسخه لینوکس برای اجرای یک برنامه لینوکسی استفاده کند.
انتزاعی که توسط مجازیسازی فعال میشود، به ماشینهای مجازی (VMs) انعطافپذیری فوقالعادهای میدهد که با کامپیوترهای فیزیکی سنتی و نصبهای نرمافزاری فیزیکی امکانپذیر نیست. تمام ماشینهای مجازی در فضای حافظه فیزیکی یک کامپیوتر وجود دارند و اجرا میشوند، بنابراین ماشینهای مجازی به راحتی میتوانند بهعنوان فایلهای تصویر حافظه معمولی ذخیره شوند. این فایلهای ذخیرهشده میتوانند برای ایجاد سریع نسخههای تکراری یا کپیشده از ماشینهای مجازی در همان کامپیوتر یا کامپیوترهای دیگر در سطح سازمان استفاده شوند، یا برای ذخیره وضعیت ماشین مجازی در آن لحظه خاص.
بهطور مشابه، یک ماشین مجازی به راحتی میتواند از یک کامپیوتر مجازیشده به کامپیوتر دیگر منتقل شود، فقط با کپی کردن ماشین مجازی مورد نظر از فضای حافظه یک کامپیوتر منبع به فضای حافظه کامپیوتر مقصد و سپس حذف ماشین مجازی اصلی از کامپیوتر منبع. در اکثر موارد، این مهاجرت میتواند بدون اختلال در تجربه کاربری یا عملکرد ماشین مجازی انجام شود.
اگرچه مجازیسازی این امکان را فراهم میآورد که کامپیوترهای منطقی متعددی از یک کامپیوتر فیزیکی واحد ایجاد شوند، تعداد واقعی ماشینهای مجازی که میتوان ایجاد کرد، محدود به منابع فیزیکی موجود در کامپیوتر میزبان و نیازهای محاسباتی که توسط برنامههای سازمانی که در این ماشینهای مجازی اجرا میشوند، است. به عنوان مثال، یک کامپیوتر با چهار پردازنده (CPU) و 64 گیگابایت حافظه ممکن است حداکثر چهار ماشین مجازی را میزبانی کند، که هر کدام دارای یک پردازنده مجازی (vCPU) و 16 گیگابایت حافظه مجازیشده باشند.
پس از ایجاد یک ماشین مجازی، ممکن است منابع انتزاعشده اختصاصدادهشده به آن ماشین مجازی تغییر کنند تا عملکرد آن بهینه شده و تعداد ماشینهای مجازی میزبانیشده روی سیستم حداکثر شود.
کامپیوترهای جدیدتر و دارای منابع بیشتر میتوانند تعداد بیشتری ماشین مجازی میزبانی کنند، در حالی که سیستمهای قدیمیتر یا سیستمهایی با بارهای کاری سنگین ممکن است تعداد کمتری ماشین مجازی را میزبانی کنند. هایپروایزر میتواند منابع را به بیش از یک ماشین مجازی اختصاص دهد – که این عمل overcommitment (تخصیص بیش از حد منابع) نامیده میشود – اما این کار توصیه نمیشود، زیرا باعث افت عملکرد محاسباتی میشود، زیرا سیستم باید منابع اضافی را به صورت زمانبندیشده بین ماشینهای مجازی به اشتراک بگذارد.
دسترسپذیری راحت کامپیوترهای جدید و قدرتمند همچنین باعث میشود که تخصیص منابع اضافی (overcommitment) تقریباً بینیاز شود، زیرا جریمههای ناشی از این کار بهمراتب بیشتر از منافع قرار دادن یک ماشین مجازی اضافی روی سیستم فیزیکی هستند. در نتیجه، راحتتر و بهتر است که ماشین مجازی اضافی را روی یک سیستم دیگر که منابع در دسترس دارد، تخصیص داد.
مزایای مجازیسازی سرور
مجازیسازی مزایای فناوری و تجاری گستردهای را برای سازمان به ارمغان میآورد. در اینجا چند مورد از مهمترین و رایجترین مزایای مجازیسازی آورده شده است:
ادغام سرورها (Server Consolidation): زیرا مجازیسازی به یک سرور فیزیکی این امکان را میدهد که کار چندین سرور را انجام دهد، تعداد کل سرورها در سازمان میتواند کاهش یابد. این فرآیند ادغام سرور نامیده میشود. به عنوان مثال، فرض کنید که در حال حاضر 12 سرور فیزیکی وجود دارد که هرکدام یک برنامه را اجرا میکنند. با معرفی مجازیسازی، هر سرور فیزیکی ممکن است سه ماشین مجازی میزبانی کند، که هر ماشین مجازی یک برنامه را اجرا میکند. در این صورت، سازمان تنها به چهار سرور فیزیکی نیاز خواهد داشت تا همان 12 بار کاری را اجرا کند.
سادگی زیرساخت فیزیکی: با کاهش تعداد سرورها، تعداد رکها و کابلها در مرکز داده بهطور چشمگیری کاهش مییابد. این امر استقرارها و رفع اشکالها را سادهتر میکند. سازمان میتواند همان اهداف محاسباتی را با تنها بخشی از فضایی که برای پشتیبانی از سرورهای فیزیکی مورد نیاز است، به دست آورد.
کاهش هزینههای سختافزاری و تأسیسات: ادغام سرورها هزینههای سختافزار مرکز داده و همچنین تأسیسات را کاهش میدهد – به یاد داشته باشید، نیاز به انرژی و خنککنندگی کمتر. ادغام سرور از طریق مجازیسازی یک استراتژی صرفهجویی قابل توجه در هزینهها برای سازمانهایی است که تعداد زیادی سرور دارند و یکی از دلایل اصلی پذیرش اولیه مجازیسازی در دهه 2000 بود.
انعطافپذیری بیشتر سرورها: چون هر ماشین مجازی بهعنوان یک نمونه مستقل وجود دارد، هر ماشین مجازی باید یک سیستمعامل مستقل اجرا کند. با این حال، سیستمعاملها میتوانند بین ماشینهای مجازی متفاوت باشند، که این امکان را به سازمان میدهد تا هر ترکیب مورد نظر از ویندوز، لینوکس و سایر سیستمعاملها را روی همان سختافزار فیزیکی اجرا کند. چنین انعطافپذیری در استقرار سرورهای فیزیکی سنتی بیسابقه است.
مدیریت بهبود یافته: مجازیسازی کنترل منابع و ایجاد نمونههای ماشین مجازی را متمرکز میکند. مجازیسازی مدرن ابزارها و ویژگیهای زیادی را اضافه میکند که به مدیران فناوری اطلاعات کنترل و نظارت بر محیط مجازیشده را میدهد. به عنوان مثال، ویژگیهای مهاجرت زنده (Live Migration) امکان جابجایی یک ماشین مجازی بین دو سرور فیزیکی بدون توقف بار کاری را فراهم میکند. ویژگیهای حفاظت از دادهها مانند snapshots میتوانند وضعیت ماشین مجازی را در هر نقطه زمانی ذخیره کنند و این امکان را فراهم میآورد که ماشین مجازی بهراحتی و سریع از خرابیها یا بلایای غیرمنتظره بازیابی شود. مجازیسازی بهخوبی برای مدیریت متمرکز مناسب است و به مدیران این امکان را میدهد که همه ماشینهای مجازی را در محیط مشاهده کرده و با کمترین احتمال اشتباه، پچها یا بهروزرسانیها را اعمال کنند.
معایب مجازیسازی سرور
اگرچه مجازیسازی سرور مزایای زیادی برای سازمان به ارمغان میآورد، اما نرمافزار مجازیسازی و ملاحظات مدیریتی آن میتواند معایب بالقوهای را به همراه داشته باشد که سازمان باید در نظر بگیرد:
✅ ریسک و دسترسیپذیری: اجرای بارهای کاری متعدد بر روی یک کامپیوتر فیزیکی واحد برای سازمان خطراتی به همراه دارد. پیش از ظهور مجازیسازی، خرابی یک سرور تنها بر بار کاری مرتبط تأثیر میگذاشت. با مجازیسازی، خرابی یک سرور میتواند بر چندین بار کاری تأثیر بگذارد و احتمالاً اختلال بیشتری برای سازمان، کارکنان، شرکا و مشتریان آن ایجاد کند. رهبران فناوری اطلاعات باید مسائلی مانند توزیع بار کاری — که کدام ماشینهای مجازی باید بر روی کدام سرورهای فیزیکی قرار گیرند — را در نظر بگیرند و تکنیکهای بازیابی و تابآوری را پیادهسازی کنند تا اطمینان حاصل شود که ماشینهای مجازی حیاتی پس از خرابی سرور یا سایر مشکلات زیرساخت فیزیکی در دسترس هستند.
✅ گسترش ماشینهای مجازی (VM Sprawl): منابع فناوری اطلاعات به مدیریت دقیق نیاز دارند تا در دسترس بودن، استفاده، سلامت و عملکرد منابع را پیگیری کنند. دانستن اینکه چه چیزی موجود است، چگونه استفاده میشود و چطور کار میکند، کلیدهای بهرهوری مرکز داده هستند. یکی از چالشهای دائمی با مجازیسازی و ماشینهای مجازی، ایجاد و در نهایت ــ هرچند گاهی بدون قصد ــ رها شدن ماشینهای مجازی است. ماشینهای مجازی بدون استفاده یا غیرضروری همچنان منابع باارزش سرور را مصرف میکنند اما تنها کار کمی انجام میدهند؛ در حالی که این منابع برای ماشینهای مجازی دیگر در دسترس نیستند. با گذشت زمان، ماشینهای مجازی افزایش مییابند و سازمان با کمبود منابع مواجه میشود و مجبور میشود سرمایهگذاریهای غیرمترقبه برای ظرفیت اضافی انجام دهد. این پدیده به نام گسترش ماشینهای مجازی یا گسترش سرورهای مجازی شناخته میشود. باید ماشینهای مجازی غیرضروری شناسایی و از دسترس خارج شوند تا منابع برای استفاده مجدد آزاد شوند. مدیریت مناسب چرخه عمر بار کاری و مدیریت منابع فناوری اطلاعات به کاهش مشکلات گسترش کمک میکند، اما برای حل این مشکل نیاز به تلاش و نظم است.
✅ کمبود منابع: مجازیسازی این امکان را فراهم میآورد که استفاده از منابع سرور را به میزان بیشتر از حد معمول، بهویژه در حافظه و شبکه، انجام دهد. به عنوان مثال، ماشینهای مجازی میتوانند از فضای حافظه فیزیکی مشترک استفاده کنند و به استفاده از swap صفحه معمولی متکی باشند ــ جابجایی موقت صفحات حافظه به دیسک سخت تا فضای حافظه برای استفاده توسط برنامه دیگری آزاد شود. مجازیسازی میتواند حافظه بیشتری از آنچه که سرور دارد تخصیص دهد؛ این کار overcommitment حافظه نامیده میشود. Overcommitment مطلوب نیست زیرا تأخیر اضافی در دسترسی به دیسک میتواند عملکرد ماشین مجازی را کاهش دهد. پهنای باند شبکه نیز میتواند به گلوگاه تبدیل شود زیرا ماشینهای مجازی متعدد روی یک سرور برای دسترسی به شبکه رقابت میکنند. هر دو مشکل میتوانند با ارتقاء سرور میزبان یا با توزیع مجدد ماشینهای مجازی بین سرورها حل شوند.
✅ مجوزها: هزینههای نرمافزاری شامل هزینههای تأمین و مجوزها میشود که ممکن است به راحتی نادیده گرفته شود. نرمافزارهای هیپرویزر و ابزارهای مدیریت مجازیسازی مربوطه هزینههای اضافی را به سازمان تحمیل میکنند و باید مجوزهای هیپرویزر به دقت پیگیری شوند تا شرایط و ضوابط توافقنامههای مجوز نرمافزار رعایت شوند. نقض مجوز میتواند به دعاوی قضائی و جریمههای مالی قابل توجه برای سازمان متخلف منجر شود. علاوه بر این، ماشینهای مجازی مبتنی بر سختافزار (bare-metal) نیاز به سیستمعاملهای مستقل دارند که برای هر استقرار سیستمعامل مجوزهای جداگانهای لازم است.
✅ تجربه: پیادهسازی و مدیریت موفق یک محیط مجازیشده به تخصص کارکنان فناوری اطلاعات بستگی دارد. آموزش و تجربه برای اطمینان از تخصیص منابع به صورت مؤثر و ایمن، نظارت و بازیابی به موقع، و محافظت مناسب برای اطمینان از دسترسپذیری مداوم هر بار کاری ضروری است. سیاستهای تجاری نقش مهمی در استفاده از منابع ایفا میکنند و به تعریف نحوه درخواست، تأیید، تخصیص و مدیریت ماشینهای مجازی در طول چرخه عمر آنها کمک میکنند. خوشبختانه، مجازیسازی یک فناوری بالغ و بهطور گسترده پذیرفته شده در حال حاضر است، بنابراین فرصتهای زیادی برای آموزش و هدایت در زمینه هیپرویزرها و مدیریت مجازیسازی وجود دارد.
موارد استفاده و کاربردها
مجازیسازی به عنوان یک فناوری قابل اعتماد و چندمنظوره ثابت شده است که در دو دهه گذشته بخشهای زیادی از دیتاسنتر را در بر گرفته است. با این حال، سازمانها ممکن است همچنان با سوالات مهمی درباره موارد استفاده و کاربردهای مناسب برای پیادهسازی مجازیسازی روبرو شوند. امروزه، مجازیسازی سرور میتواند در گستره وسیعی از موارد استفاده سازمانی، پروژهها و اهداف تجاری اعمال شود، از جمله موارد زیر:
ادغام سرورها: ادغام، مورد استفاده اصلی برای مجازیسازی سرور است – این همان چیزی است که مجازیسازی را مطرح کرد. ادغام فرایند تبدیل بارهای کاری فیزیکی به ماشینهای مجازی (VM) و سپس مهاجرت این ماشینهای مجازی به سرورهای فیزیکی کمتر است. این کار تعداد سرورها را کاهش میدهد، هزینههای خرید و نگهداری سرورها را کاهش میدهد، فضای دیتاسنتر را آزاد میکند و نیازهای توان و خنکسازی IT را تسهیل میکند. مجازیسازی به IT این امکان را میدهد که با منابع کمتری بیشتر کار کند و همزمان پول صرفهجویی کند. ادغام ممکن است امروزه بهطور پیشفرض یک مورد استفاده در نظر گرفته شود، اما هنوز هم محرک اصلی برای مجازیسازی است.
توسعه و تست: اگرچه مجازیسازی سرور از محیطها و بارهای کاری تولید پشتیبانی میکند، انعطافپذیری و سهولتای که مجازیسازی در تخصیص و استقرار ماشینهای مجازی فراهم میآورد، آن را برای ابتکارات توسعه و تست مناسب میکند. این کار بسیار ساده است که یک ماشین مجازی برای آزمایش یک نسخه جدید نرمافزار تخصیص داده شود؛ با پیکربندیها، بهینهسازیها و یکپارچهسازیهای ماشینهای مجازی آزمایش کنید – و ارتباط بین چندین ماشین مجازی را برقرار کنید – و بازیابی بارهای کاری را به عنوان بخشی از آزمایش بازیابی پس از فاجعه تأیید کنید. این ماشینهای مجازی معمولاً موقت هستند و میتوانند زمانی که آزمایش کامل شد حذف شوند تا از گسترش غیرقابلدسترس ماشینهای مجازی جلوگیری شود.
بهبود در دسترسبودن:
نرمافزارهای مجازیسازی به طور معمول شامل مجموعهای از ویژگیها و عملکردهایی هستند که میتوانند قابلیت اطمینان و در دسترس بودن بارهای کاری که در ماشینهای مجازی اجرا میشوند را بهبود بخشند. به عنوان مثال، مهاجرت زنده (Live Migration) این امکان را میدهد که یک ماشین مجازی بین سرورهای فیزیکی جابهجا شود بدون اینکه بار کاری متوقف شود. ماشینهای مجازی میتوانند از سیستمهای دچار مشکل یا از سیستمهایی که برای نگهداری برنامهریزی شدهاند، بدون هیچگونه اختلال قابل توجهی جابهجا شوند. ویژگیهایی مانند راهاندازی مجدد اولویتبندیشده ماشینهای مجازی تضمین میکند که مهمترین ماشینهای مجازی – که بارهای کاری و خدمات یا وابستگیهای حیاتی دارند – قبل از سایر ماشینها مجدداً راهاندازی شوند تا فرآیند راهاندازی مجدد بعد از اختلالات سادهتر شود. ویژگیهایی مانند snapshotها میتوانند نسخههای اخیر ماشینهای مجازی را حفظ کرده و از آنها محافظت کنند و به راهاندازی مجدد سریع با کمترین یا هیچگونه از دست دادن داده کمک کنند. ویژگیهای دیگری برای در دسترس بودن به کمک میآیند تا چندین نسخه از همان بار کاری بتوانند ترافیک و بار پردازش را به اشتراک بگذارند و در صورت خرابی یکی از ماشینهای مجازی، دسترسی به بار کاری حفظ شود. مجازیسازی به یک عنصر مرکزی در برنامههای نگهداری و بازیابی از فاجعه تبدیل شده است.تمرکززدایی:
قبل از مجازیسازی سرور، مسئولیت پیگیری برنامهها و سرورهای مرتبط بر عهده کارکنان IT بود. مجازیسازی ابزارهای قدرتمندی به ارمغان میآورد که میتوانند تمامی ماشینهای مجازی در حال اجرا در محیط را شناسایی، سازماندهی، پیگیری و مدیریت کنند و این کار از طریق یک صفحه نمایش واحد انجام میشود تا به مدیران IT دید جامعتری از وضعیت ماشینهای مجازی و هرگونه هشدار یا مشکلی که نیاز به توجه دارد، ارائه دهد. علاوه بر این، ابزارهای مجازیسازی بهطور ویژه برای تکنولوژیهای اتوماسیون و ارکستراسیون مناسب هستند، که امکان ایجاد و مدیریت خودکار ماشینهای مجازی را فراهم میآورند و باعث تسریع در انجام وظایف مدیریت IT میشوند.پشتیبانی چند پلتفرمی:
هر ماشین مجازی (VM) سیستمعامل منحصر به فرد خود را اجرا میکند. مجازیسازی به عنوان یک راهحل مناسب برای پشتیبانی از چندین سیستمعامل در یک سرور فیزیکی واحد به وجود آمده است و همچنین میتواند از سرورها در تمام محیط مرکز داده پشتیبانی کند. سازمانها میتوانند ترکیبهای دلخواهی از سیستمعاملهای ویندوز، لینوکس و سایر سیستمعاملها را بر روی همان سختافزار سرور x86 اجرا کنند که کاملاً توسط هایپروایزر مجازیسازی جداسازی شده است.بسیار کم پیش میآید که بارهای کاری سازمانی نتوانند به خوبی در یک ماشین مجازی عمل کنند. این موارد شامل برنامههای قدیمی هستند که برای عملکرد خود به دسترسی مستقیم به دستگاههای خاص سختافزار سرور نیاز دارند، مانند یک مدل یا نوع خاص پردازنده. چنین نگرانیهایی امروز نادر است و باید به تدریج کاهش یابد زیرا برنامههای قدیمی بهطور اجتنابناپذیری در طول زمان اصلاح و بهروزرسانی میشوند.
انواع مجازیسازی سرور:
مجازیسازی از طریق چندین تکنیک اثباتشده انجام میشود: استفاده از ماشینهای مجازی (VMs)، استفاده از پارا-مجازیسازی و پیادهسازی مجازیسازی میزبانیشده توسط سیستمعامل.
مدل ماشین مجازی (VM)
مدل ماشین مجازی (VM) پرکاربردترین و گستردهترین روش مجازیسازی است که توسط VMware و Microsoft استفاده میشود. این روش از یک هایپروایزر مبتنی بر مانیتور ماشین مجازی (VMM) استفاده میکند که معمولاً مستقیماً روی سختافزار کامپیوتر اعمال میشود. چنین هایپروایزرهایی معمولاً به نامهای نوع 1، مجازیسازی کامل یا مجازیسازی بیسیم شناخته میشوند و نیازی به سیستمعامل اختصاصی روی کامپیوتر میزبان ندارند. در واقع، هایپروایزر بیسیم اغلب به عنوان یک سیستمعامل مجازیسازی شناخته میشود — یک سیستمعامل به طور مستقل. اصطلاح “ماشین مجازی میزبان” معمولاً برای ماشین مجازی اصلی که نرمافزار مدیریت سرور یا سایر بارهای کاری اصلی را اجرا میکند، استفاده میشود، اگرچه هایپروایزرهای نوع 1 معمولاً به ماشین مجازی میزبان نیازی ندارند.
هایپروایزر مسئول تجرید و مدیریت منابع کامپیوتر میزبان، مانند پردازندهها و حافظه است، و سپس این منابع تجرید شده را به یک یا چند نمونه ماشین مجازی ارائه میدهد. هر ماشین مجازی به عنوان مهمان بالای هایپروایزر وجود دارد. ماشینهای مجازی مهمان بهطور کامل از هایپروایزر و سایر ماشینهای مجازی بهصورت منطقی جدا شدهاند. هر ماشین مجازی نیاز به سیستمعامل مهمان خود دارد، که به سازمانها این امکان را میدهد که نسخههای مختلف سیستمعامل را روی یک کامپیوتر فیزیکی مشترک استفاده کنند.
فرا مجازی سازی(Paravirtualization)
هایپروایزرهای بیسیم اولیه با محدودیتهای عملکرد مواجه بودند. پاراویرتوالیسازی برای حل این مشکلات عملکردی اولیه به وجود آمد، به طوری که سیستمعامل میزبان برای شناسایی و تعامل با هایپروایزر از طریق دستورات خاصی به نام هایپرکالها (hypercalls) اصلاح شد. پس از اصلاح موفقیتآمیز، کامپیوتر مجازیسازی شده میتوانست ماشینهای مجازی مهمان را ایجاد و مدیریت کند. سیستمعاملهای نصبشده در ماشینهای مجازی مهمان میتوانستند از سیستمعاملها و برنامههای بدون تغییر استفاده کنند.
چالش اصلی پاراویرتوالیسازی نیاز به سیستمعامل میزبان و نیاز به اصلاح آن برای پشتیبانی از مجازیسازی است. سیستمعاملهای اختصاصی بدون تغییر، مانند Microsoft Windows، از محیط پاراویرتوالیسازی پشتیبانی نمیکنند و هایپروایزر پاراویرتوالیسازی شدهای مانند Xen به پشتیبانی و درایورهای داخلی در هسته لینوکس نیاز دارد. این موضوع خطراتی برای بهروزرسانیها و تغییرات سیستمعامل به همراه دارد. یک سازمان که از یک سیستمعامل به سیستمعامل دیگر منتقل میشود، ممکن است با خطر از دست دادن پشتیبانی پاراویرتوالیسازی روبرو شود. محبوبیت پاراویرتوالیسازی به سرعت کاهش یافت زیرا سختافزار کامپیوتری تکامل یافت تا به طور مستقیم از مجازیسازی مبتنی بر VMM پشتیبانی کند، مانند معرفی گسترشهای مجازیسازی در مجموعه دستورات پردازندهها.
مجازیسازی میزبانیشده (Hosted Virtualization)
اگرچه رایجترین روش این است که هایپروایزر مستقیماً روی سختافزار کامپیوتر نصب شود و نیازی به سیستمعامل میزبان نباشد، اما هایپروایزر میتواند بر روی یک سیستمعامل میزبان موجود نصب شده و خدمات مجازیسازی برای یک یا چند ماشین مجازی (VM) فراهم کند. این روش به عنوان مجازیسازی نوع 2 یا میزبانیشده شناخته میشود و محصولاتی مانند Virtuozzo و Solaris Zones از این روش استفاده میکنند. هایپروایزر نوع 2 به هر ماشین مجازی این امکان را میدهد که هسته سیستمعامل میزبان را همراه با باینریها و کتابخانههای مشترک استفاده کند، در حالی که هایپروایزرهای نوع 1 اجازه چنین اشتراکی را نمیدهند.
مجازیسازی میزبانیشده میتواند کارایی منابع ماشینهای مجازی (VM) مهمی را افزایش دهد زیرا ماشینهای مجازی یک سیستمعامل مشترک دارند و نیازی نیست که سیستمعامل برای هر ماشین مجازی تکرار شود. بنابراین، مجازیسازی میزبانیشده میتواند به طور بالقوه صدها، حتی هزاران، نمونه ماشین مجازی را روی یک سیستم پشتیبانی کند. با این حال، سیستمعامل مشترک یک نقطه ضعف واحد برای خرابی یا حمله به حساب میآید: اگر سیستمعامل میزبان مورد حمله قرار گیرد، تمام ماشینهای مجازی که بر روی هایپروایزر اجرا میشوند، ممکن است به خطر بیفتند.
کارایی ماشینهای مجازی میزبانیشده باعث توسعه کانتینرها شد. مفهوم اصلی کانتینرها مشابه مجازیسازی میزبانیشده است، جایی که هایپروایزر بر روی یک سیستمعامل میزبان نصب میشود و نمونههای مجازی از همان سیستمعامل مشترک استفاده میکنند. اما لایه هایپروایزر — مانند Docker و Apache Mesos — به طور خاص برای حجم بالایی از ماشینهای مجازی کوچک و کارآمد طراحی شده است که هدف آنها به اشتراکگذاری اجزاء یا وابستگیهای مشترک مانند باینریها و کتابخانهها است. کانتینرها در معماریهای نرمافزاری مبتنی بر میکروسرویسها رشد قابل توجهی داشتهاند، جایی که اجزای مقیاسپذیر و چابک به سرعت در محیط مستقر و از آن حذف میشوند.
بهترین شیوهها برای مهاجرت و استقرار
مجازیسازی قابلیتهای قدرتمندی را به فناوری اطلاعات سازمانی میآورد، اما مجازیسازی نیاز به یک لایه نرمافزاری اضافی دارد که مدیریت دقیق و مدبرانهای را میطلبد — بهویژه در زمینههای استقرار و مهاجرت ماشینهای مجازی (VM).
یک ماشین مجازی میتواند بهصورت درخواستی ایجاد شود، بهطوری که منابع تخصیص داده شده و مجموعهای از موارد پیکربندی تنظیم شوند، سپس سیستمعامل و نرمافزار نصب شود. اگرچه این فرآیند دستی میتواند برای آزمایشهای مقطعی یا موارد خاصی مانند ارزیابی نرمافزار مناسب باشد، اما استقرار میتواند بهطور قابل توجهی با استفاده از الگوها تسریع شود، که منابع، پیکربندی و محتوای یک ماشین مجازی مطلوب را از قبل تعریف میکنند. یک الگو ماشین مجازی را تعریف میکند، که سپس میتواند بهطور خودکار به سرعت و با دقت ساخته شده و در صورت نیاز تکثیر شود. هایپروایزرهای اصلی و ابزارهای مدیریتی مرتبط از استفاده از الگوها پشتیبانی میکنند، از جمله Hyper-V و vSphere.
الگوها در محیطهای محاسباتی سازمانی اهمیت زیادی دارند. آنها به ایجاد سازگاری و پیشبینیپذیری در ایجاد ماشینهای مجازی کمک میکنند و تضمین میکنند که موارد زیر رعایت شوند:
منابع به طور بهینه تخصیص داده میشوند.
امنیت به درستی پیکربندی میشود، مانند اضافه کردن ماشینهای مجازی محافظت شده در Hyper-V.
تمام محتویات اضافه شده به ماشین مجازی، مانند سیستمعاملها، به درستی مجوزدهی میشوند.
ماشین مجازی به سرورهای مناسب استقرار مییابد تا بار سرور، تعادل بار شبکه و سایر عوامل در مرکز داده رعایت شود.
الگوها نه تنها تلاشهای فناوری اطلاعات را ساده میکنند و عملکرد بارهای کاری را بهبود میبخشند، بلکه سیاستهای تجاری سازمان را منعکس کرده و الزامات انطباق را تقویت میکنند. ابزارهایی مانند Microsoft System Center Virtual Machine Manager، Packer و PowerCLI میتوانند به ایجاد و استقرار الگوها کمک کنند.
مهاجرت جنبه حیاتی دوم فرآیند و تمرین مجازیسازی است. هایپروایزرهای مختلف میتوانند مجموعههای ویژگی متفاوتی را ارائه دهند و 100% قابلیت همکاری ندارند. یک سازمان ممکن است تصمیم بگیرد از هایپروایزرهای متعدد استفاده کند، اما جابجایی یک ماشین مجازی موجود از یک هایپروایزر به دیگری نیازمند روشی برای مهاجرت ماشینهای مجازی ایجاد شده برای یک هایپروایزر بهطوریکه در هایپروایزر دیگر کار کنند، میباشد. به عنوان مثال، مهاجرت از Hyper-V به VMware، جایی که ابزاری مانند VMware vCenter Converter میتواند به مهاجرت ماشینهای مجازی بهصورت انبوه کمک کند.
مهاجرتها معمولاً شامل بررسی موجودی فعلی ماشینهای مجازی هستند که باید تعداد ماشینهای مجازی، ظرفیت سیستم مقصد و وابستگیها را شرح دهند. مدیران میتوانند ماشینهای مجازی منبع را انتخاب کرده، ماشینهای مجازی مقصد را تعیین کنند ــ شامل هر پوشه مقصدی ــ هر عاملی که برای تبدیل نیاز است را نصب کرده، گزینههای مهاجرت مانند فرمت ماشین مجازی را تنظیم کرده و وظیفه مهاجرت را برای اجرا ارسال کنند. اغلب امکان تنظیم زمانبندیهای مهاجرت وجود دارد که به مدیران این امکان را میدهد تا زمانها و گروههای مهاجرت مورد نظر را تنظیم کنند تا ماشینهای مجازی مرتبط به بهترین ترتیب در زمانی که اثرات به حداقل برسد، منتقل شوند.
مهاجرتهای هایپروایزر چنین آسان یا سریع نیستند. تصمیم برای تغییر هایپروایزرها و مهاجرت ماشینهای مجازی از یک هایپروایزر به دیگری باید به دقت آزمایش و پیش از هرگونه ابتکار مهاجرت واقعی، به خوبی تایید شود.
مدیریت مجازیسازی سرورها
مدیریت مجازیسازی در سطح یک سازمان نیازمند ترکیبی از تجربه عملی، سیاستهای واضح، برنامهریزی دقیق و ابزارهای توانمندی است. مدیریت مجازیسازی معمولاً از طریق یک سری بهترین شیوههای معمول که بر نقش زیرساختها و همچنین کسب و کار تاکید دارد، قابل توضیح است:
- یک برنامه داشته باشید. مجازیسازی را صرفاً به خاطر خود آن اتخاذ نکنید. مجازیسازی سرورها مزایای قابل توجهی دارد، اما هزینهها و پیچیدگیهایی هم وجود دارد که باید در نظر گرفته شود. یک سازمان که قصد دارد برای اولین بار از مجازیسازی استفاده کند، باید درک روشنی از دلیل و مکان استفاده از این فناوری در برنامه تجاری خود داشته باشد. به همین ترتیب، سازمانهایی که بخشی از محیط خود را مجازیسازی کردهاند باید بدانند چرا و چگونه گسترش نقش مجازیسازی به نفع کسب و کار خواهد بود. پاسخ ممکن است به سادگی یک پروژه ادغام سرور برای صرفهجویی در هزینهها باشد یا راهی برای پشتیبانی از پروژههای فعال توسعه نرمافزار خارج از محیط تولید. صرفنظر از دلایل، قبل از شروع یک ابتکار مجازیسازی، یک برنامه داشته باشید.
ارزیابی سختافزار. ابعاد پروژه را درک کنید. نرمافزارهای مجازیسازی، از جمله هایپرویسورها و ابزارهای مدیریت، باید خریداری و نگهداری شوند. تعداد سیستمها و همچنین برنامههایی که باید مجازیسازی شوند را مشخص کرده و زیرساخت را بررسی کنید تا اطمینان حاصل کنید که سختافزار میتواند مجازیسازی را پشتیبانی کند. تقریباً همه سختافزارهای مراکز داده فعلی برای مجازیسازی مناسب هستند، اما باید دقت لازم را از قبل انجام دهید تا از کشف مشکلات ناسازگاری یا سختافزار ناکافی در حین نصب جلوگیری کنید.
آزمایش و یادگیری. هر راهاندازی جدید مجازیسازی معمولاً با یک دوره آزمایش و تجربی همراه است، بهویژه زمانی که فناوری برای سازمان و تیم IT جدید باشد. تیمهای IT باید پیش از استقرار و استفاده از پلتفرم مجازیسازی در محیط تولید، دانش کاملی از آن داشته باشند. حتی زمانی که مجازیسازی قبلاً در سازمان پیادهسازی شده باشد، جابجایی به سمت مجازیسازی بارهای کاری جدید — بهویژه بارهای کاری حیاتی — باید شامل پروژههای دقیق اثبات اصول برای یادگیری ابزارها و اعتبارسنجی فرآیند باشد. سازمانهای کوچکتر در صورت نیاز میتوانند از ارائهدهندگان خدمات و مشاوران کمک بگیرند.
تمرکز بر کسبوکار. مجازیسازی باید بر اساس نیازهای کسبوکار پیادهسازی و استفاده شود، که شامل بررسی دقیق امنیت، انطباق با مقررات، تداوم کسبوکار، بازیابی از بلایا و چرخه زندگی VMs — تأمین، استفاده و سپس بازیابی منابع — میشود. ابزارهای مدیریت IT باید از مجازیسازی پشتیبانی کرده و بهطور مناسب با تمام این ملاحظات کسبوکار هماهنگ شوند.
شروع کوچک و گسترش تدریجی. سازمانهای تازهکار با مجازیسازی سرور باید یک دوره آزمایش و تجربیات با استقرارهای کوچک و غیر بحرانی، مانند سرورهای آزمایش و توسعه، داشته باشند. به دنبال پیروزیهای کوچک و سریع باشید تا تجربه کسب کنید، عیبیابی یاد بگیرید و ارزش مجازیسازی را در حالی که ریسک را به حداقل میرسانید، نشان دهید. هنگامی که تخصص لازم در دسترس قرار گرفت، سازمان میتواند پروژههای پیچیدهتر مجازیسازی را برنامهریزی و اجرا کند.
پذیرش دستورالعملها. وقتی سازمان به سمت مجازیسازی سرور میرود، ایجاد و پذیرش دستورالعملهایی در مورد تأمین منابع VMs، نظارت و چرخههای زندگی آنها مناسب است. منابع محاسباتی هزینهبر هستند. دستورالعملها میتوانند به کدگذاری فرآیندها و شیوههایی کمک کنند که به سازمان امکان میدهند این هزینهها را مدیریت کرده، از هدر رفت منابع با جلوگیری از تخصیص بیش از حد و گسترش VMs جلوگیری کرده و رفتارهای ثابتی را حفظ کنند که به مسائل امنیتی و انطباقی برمیگردد. دستورالعملها باید بهطور دورهای بازبینی و بهروزرسانی شوند.
انتخاب ابزار. ابزارهای مدیریت مجازیسازی معمولاً اولین ملاحظه در استراتژی مجازیسازی سازمانها نیستند. پلتفرمهای مجازیسازی معمولاً ابزارهای پایهای شامل میشوند و در مراحل اولیه پذیرش مجازیسازی، استفاده از این ابزارها کار خوبی است. در نهایت، سازمانها ممکن است از پذیرش ابزارهای جامع و قدرتمندتر که از محیطهای مجازیسازی بزرگ و پیچیده پشتیبانی میکنند، بهرهمند شوند. در آن زمان، سازمان و تیم IT تصویری روشن از ویژگیها و عملکردهای مورد نیاز از یک ابزار خواهند داشت، اینکه چرا این ویژگیها لازم هستند و چگونه این ویژگیها به سازمان کمک خواهند کرد. ابزارهای مدیریت مجازیسازی سرور بر اساس طیف وسیعی از معیارها انتخاب میشوند، از جمله هزینههای مجوز، سازگاری بینپلتفرمی که از چندین هایپروایزر از فروشندگان مختلف پشتیبانی میکند، پشتیبانی از الگوها و اتوماسیون، کنترل مستقیم بر روی VMs و ذخیرهسازی، و حتی پتانسیل خودسرویسی و بازپرداختها — که به دپارتمانها یا کاربران دیگر این امکان را میدهد که VMs را تأمین کنند و در صورت تمایل صورتحساب دریافت کنند. سازمانها میتوانند از بسیاری از ابزارهای نظارت بر مجازیسازی سرور انتخاب کنند که از نظر ویژگیها، پیچیدگی، سازگاری و هزینه متفاوت هستند. فروشندگان مجازیسازی معمولاً ابزارهایی برای هایپروایزرهای خاص خود ارائه میدهند. به عنوان مثال، Microsoft System Center از Hyper-V پشتیبانی میکند، در حالی که vCenter Server برای هایپروایزرهای VMware مناسب است. اما سازمانها میتوانند ابزارهای شخص ثالث را نیز انتخاب کنند، از جمله ManageEngine Applications Manager، SolarWinds Virtualization Manager و Veeam One.
پشتیبانی از اتوماسیون. مجازیسازی به تکنیکهای اتوماسیون و ارکستراسیون تمایل دارد که میتوانند وظایف رایج تأمین و مدیریت را تسریع کرده، در عین حال اجرای مداوم، حداقل کردن خطاها، کاهش خطرات امنیتی و تقویت انطباق را تضمین کنند. بهطور کلی، ابزارها از اتوماسیون پشتیبانی میکنند، اما تجربه و بینش انسانی برای کدگذاری شیوهها و فرآیندهای established در اتوماسیون مناسب لازم است. پذیرش کانتینرهای مجازی به شدت به اتوماسیون و ارکستراسیون وابسته است — و از ابزارهای بهخوبی طراحیشدهای مانند Kubernetes برای مدیریت یک محیط کانتینری استفاده میکند.
آینده مجازیسازی سرور
مجازیسازی سرور در دو دهه گذشته پیشرفت زیادی کرده است. امروزه، مجازیسازی سرور به طور گستردهای به عنوان یک تکنولوژی رایج و ضروری شناخته میشود. این یک جزء معمولی از هر زیرساخت IT مدرن سازمانهاست. هایپروایزرها نیز به محصولاتی رایج تبدیل شدهاند که تقریباً هیچ ویژگی جدید یا نوآورانهای برای تمایز رقبا در بازار ندارند. آینده مجازیسازی سرور به جای توجه به هایپروایزرها، بیشتر بر این تمرکز دارد که چگونه مجازیسازی سرور میتواند از طرحهای حیاتی کسبوکار پشتیبانی کند.
اولاً، مجازیسازی سرور تکنولوژیای نیست که به صورت متقابل و انحصاری استفاده شود. ممکن است یک نوع هایپروایزر برای هر وظیفهای ایدهآل نباشد، و هایپروایزرهای bare-metal، میزبان و مبتنی بر کانتینر میتوانند در همان دیتاسنتر برای انجام نقشهای خاص به صورت همزمان وجود داشته باشند. سازمانهایی که نوع خاصی از مجازیسازی را استاندارد کردهاند، ممکن است دلایلی برای استقرار و مدیریت انواع اضافی هایپروایزر در آینده پیدا کنند.
نفوذ فزاینده کانتینرها را در نظر بگیرید. VMs و کانتینرها دو نوع مختلف از مجازیسازی هستند که توسط دو نوع مختلف از هایپروایزرها مدیریت میشوند – با این حال، VMs و کانتینرها قطعاً میتوانند در کنار هم در یک دیتاسنتر عمل کنند و انواع مختلف بارهای کاری سازمانی را مدیریت کنند.
ثانیاً، تأثیر و تکامل مستمر فناوریهایی مانند HCI (سرورهای مرکب یا Hyper-Converged Infrastructure) محدودیتهای مدیریت مجازیسازی را به چالش خواهد کشید. به عنوان مثال، روندهای اخیر به سمت تفکیک منابع یا HCI 2.0 با جداسازی منابع محاسباتی و ذخیرهسازی کار میکنند، و ابزارهای مجازیسازی باید به طور مؤثری این منابع تفکیکشده را به استخرها و لایهها سازماندهی کرده، این منابع را به بارهای کاری تخصیص دهند و منابع توزیعشده را به دقت نظارت کنند.
تهدیدات مداوم از نفوذهای امنیتی و حملات مخرب، نیاز به گزارشدهی، تحلیل و گزارشگیری، مدیریت تغییرات و اتوماسیون را افزایش خواهد داد. این عوامل موجب تکامل ابزارهای مدیریت مجازیسازی سرور خواهند شد – هرچند خود هایپروایزر تغییر نخواهد کرد – و دید بهتری از محیط برای تحلیلها و بینشهای کسبوکار فراهم خواهند کرد.
به آینده مدیریت مجازیسازی نگاه کنید. تمرکز مجازیسازی از هایپروایزرها (اینکه باید چه کاری انجام دهید) به سمت اتوماسیون، ارکستراسیون و هوش کلی موجود برای سادهسازی و کمک به مدیران در انجام روزانه وظایف (چگونگی انجام آنها) تغییر کرده است. ابزارهایی مانند Kubernetes برای کانتینرهای Docker، همراه با اسکریپتها و قالبها، برای استقرار موفقیتآمیز کانتینرها ضروری خواهند بود. انتظار میرود فناوریهای هوش مصنوعی ویژگیهای خودکار، تحلیلی و پیشبینیکننده را به محیطهای مجازیشده پویا اضافه کنند.
در نهایت، مجازیسازی سنتی سرور شاهد ادغام بیشتر با ابرها و پلتفرمهای ابری خواهد بود، که امکان مهاجرتهای راحتتر و روانتر بین دیتاسنترها و ابرها را فراهم میکند. نمونههایی از چنین ادغامهایی شامل VMware Cloud on AWS و Microsoft Azure Stack هستند.
