مانیتورینگ میزبانها و ماشینهای مجازی
شبکههای کامپیوتری هر روز در حال رشد و تغییر هستند و در صورتی که فکری برای کنترل این شبکهها نداشته باشید بزودی خود را وسط یک جنگل انبوه خواهید دید که ممکن است هر آن شاخ و برگ این جنگل به شما آسیب رساند. به جهت امکانات منحصربهفرد سیستمهای مجازیسازی رشد و گسترش سرویسهای IT چند برابر شده است اما این مسئله مشکلاتی را هم به همراه آورده است که بایستی به درستی کنترل شود. کنترل و نظارت در شبکهها مسئله تازهای نیست و به عنوان یک مدیر شبکه شاید با نرمافزارها و سیستمهای مختلف مانیتورینگ آشنا باشید و یا ممکن است در گذشته جهت کنترل و نظارت سرورهای فیزیکی از سیستمهای مانیتورینگ استفاده کرده باشید. اما آیا کنترل سرورهای مجازی جدید به آن صورت که در سرورهای فیزیکی مورد استفاده بود امکان پذیر است؟ آیا میتوانید همان پارامترهای کنترلی مانیتورینگ را برای ماشینهای مجازی نیز انتخاب کنید؟
برای یافتن جواب این سؤالها ابتدا باید به مقایسه تفاوت محیطهای کامپیوتری سنتی با محیطهای مجازی بپردازیم. درست است که میزبانهای مجازی از یک دستگاه سرور فیزیکی تشکیل شدهاند و تجهیزات و دستگاههای جانبی مشابهی دارند ولی ساختار راهاندازی و سرویس دهی در این بستر متفاوت است. محیطهای مجازی از یک هایپروایزر (لایه مجازیسازی) تشکیل شدهاند و ماشینهای مجازی بر روی این بستر ایجاد میشوند. یعنی تمامی منابع سیستم از قدرت پردازنده، حافظه RAM تا فضای هارد دیسکها و... در اختیار این لایه است و این لایه مسئول کنترل تمامی منابع سخت افزار است. برای طرح بهتر موضوع یعنی چگونگی انجام فرآیندها در این دو محیط - نحوه کنترل هر یک از منابع را در سیستمهای مجازی به بحث میگذاریم.
ابتدا از CPU شروع میکنیم. CPU در ماشینهای مجازی کاملاً در اختیار هایپروایزر است و ماشین مجازی تنها بخشی از CPU را استفاده میکند که از قبل به آن اختصاص داده شود. هایپروایزر درخواستهای پردازش تمامی ماشینهای مجازی را دریافت میکند و با برنامهریزی آنها امکان استفاده همزمان تمامی ماشینها از CPU را امکان پذیر میکند. ماشینهای مجازی که دارای دو CPU یا هستههای متعدد هستند نیز به همین روش کنترل میشوند. فرض کنید یکی از ماشینهای مجازی درخواست پردازش بالایی را برای هایپروایزر ارسال میکند و هایپروایزر نیز مشغول انجام پردازش درخواستهای قبلی است اتفاقی که روی میدهد این است که تمامی بستر مجازی شما به یکباره با افت سرعت شدید مواجه میشود و شما در صورتی از این موضوع مطلع خواهید شد که بتوانید ماشینهای مجازی را به صورت جز به جز و با یک سیستم مخصوص مانیتورینگ سیستمهای مجازی کنترل کنید.
شرایط در زمان استفاده از RAM نیز متفاوت است. RAM در ماشینهای مجازی به صورت متفاوتی تعریف میشود. اگر شما از سیستمعاملهای تحت ویندوز استفاده کنید میتوانید با کنترل RAM اختصاص داده شده به سیستمعامل و همچنین page file تا حدودی این منبع را کنترل کنید. اما بیرون از یک ماشین مجازی شرایط به گونه دیگری است شما بایستی بتوانید RAM رزرو (Resevred) شده ماشین، Swap file و Ballon را نیز تحت کنترل و نظارت داشته باشید تا از پایداری بستر مجازی مطمئن شوید.
فضای ذخیرهسازی چطور؟ فضای ذخیرهسازی نیز در ماشینهای مجازی شرایط خاصی دارند. ماشینهای مجازی اطلاعی از بستر ذخیرهسازی ندارند آنها تنها با یک هارد دیسک که به صورت یک فایل تعریف میشود ارتباط دارند. ممکن است این فایل بر روی یک هارد دیسک داخلی یا یک NAS و یا SAN Storage ذخیره شده باشد. کنترلرهای ذخیرهسازی نیز از دید ماشین مجازی کاملاً محفوظ است و به همین سبب امکان کنترل پهنای باند مصرفی وجود ندارد. حال فرض کنید در این شرایط درخواستهای دیسک I/O ماشینی افزایش یابد، در این شرایط ماشینهای مجازی هیچ گونه کنترلی نسبت به این مسئله نخواهند داشت و ارتباط بستر مجازی شما ناگهان قطع خواهد شد.
دیگر منابع مانند کارتهای شبکه و سوییچهای مجازی نیز داستان مشابهی دارند و تنها با کنترل تک به تک ماشینهای مجازی و هایپروایزر است که میتوانید پارامترهای خاص مخصوص آن ماشین و میزبان را تعریف و کنترل کرده و بر اساس درخواست و مصرف منابع تغییرات لازم را صورت دهید.
بدین ترتیب میتوان نتیجه گرفت سیستمهای قدیمی مانیتورینگ به طور کامل با نیازهای جدید بسترهای مجازیسازی در تطابق نیستند و صرف کنترل ماشینهای مجازی نمیتواند تضمینی در جهت اجرای صحیح تمامی فرآیندهای سیستم باشد.