با توجه به ارائه مزایایی همچون استفاده بهینه از منابع، افزایش عملکرد سیستمها، بهبود امنیت و … استفاده از مجازیسازی در سراسر دنیا فراگیر شده است. شرکت VMware نیز به عنوان برترین شرکت در حوزهی مجازیسازی همواره قابلیتها و امکانات جدیدی را به آن وارد مینماید که NUMA نیز یکی از این تکنولوژیها به شمار میرود. در قسمت اول از سری مقالات NUMA به بررسی مفهوم این تکنولوژی و نحوه عملکرد آن پرداختیم. در این مقاله که قسمت دوم (پایانی) از این سری مقالات میباشد، به ارائه توضیحاتی در مورد الگوریتم ها و تنظیمات مورد استفاده در ESXi برای به حداکثر رساندن عملکرد برنامههای کاربردی و در عین حال تضمین حفظ و نگهداری منابع میپردازیم.
Home Node و استقرار اولیه
با روشن نمودن ماشین مجازی، یک Home Node توسط ESXi به آن اختصاص داده می شود. لازم به ذکر است که ماشین مجازی فقط در پردازندههای موجود در محدوده Home Node مربوط به خود فعالیت مینماید و حافظه جدید اختصاص یافته به آن نیز متعلق به Home Node میباشد.
تا زمانیکه تغییری در Home Node ماشین مجازی رخ ندهد، این ماشین تنها از حافظه Local خود استفاده میکند و بدین ترتیب از خسارات عملکردی ناشی از دسترسی حافظه Remote به Nodeهای دیگر NUMA جلوگیری مینماید.
با روشن شدن ماشین مجازی، یک Home Node اولیه به آن اختصاص مییابد تا تعدیل بار CPU و حافظه در بین Nodeهای NUMA به طورکلی حفظ شود. از آنجایی که تاخیرهای Internode در یک سیستم بزرگ NUMA ممکن است تا حد زیادی متغیر باشد، ESXi میزان این نوع تاخیر را در زمان Boot تعیین نموده و سپس از این اطلاعات در هنگام استقرار اولیه آن دسته از ماشینهای مجازی که بزرگتر از یک Node مختص بهNUMA بوده، استفاده میکند. این ماشینهای مجازی برروی آن دسته از Nodeهای NUMA قرار میگیرند که برای کاهش هر چه بیشتر تاخیر در دسترسی به حافظه، در نزدیکی یکدیگر قرار گرفتهاند.
رویکردهای مربوط به استقرار اولیه (Initial Placement-Only) معمولا برای سیستمهایی مانند Benchmarking مناسب میباشند که تنها یک بار کاری واحد بر روی آنها اجرا میشود و این بار کاری تا پایان مدت فعالیت سیستم بدون تغییر باقی میماند. اما این رویکرد نمیتواند حفظ قواعد و عملکرد مطلوب برای سیستمهای در سطح دیتاسنتر را که از بارهای کاری درحال تغییر پشتیبانی مینمایند، تضمین کند. بنابراین EXSi 5.0 علاوه بر تعیین مکان اولیه میتواند فرآیند انتقال دینامیک از حافظه و CPUهای مجازی را بین Nodeهای NUMA امکانپذیر نماید تا علاوه بر بهبود وضعیت تعادل CPU موجب افزایش ظرفیت حافظه گردد.
Load Balancing و Page Migration به صورت Dynamic
ESXi در واقع به ترکیب رویکرد قدیمی برای تعیین مکان اولیه با استفاده از یک الگوریتم Rebalancing به صورت Dynamic پرداخته است. سیستم معمولا به صورت دورهای و در حالت پیش فرض هر دو ثانیه یک بار به بررسی میزان بار Nodeهای مختلف پرداخته و در صورت نیاز با انجام Rebalancing، ماشین مجازی را از یک Node به Node دیگر منتقل میکند.
لازم به ذکر است که ساختار و تنظیمات ماشینهای مجازی و Poolهای منابع در این محاسبات مورد توجه قرار میگیرد تا بدون نقض قواعد مربوط به منابع، موجب بهبود عملکرد گردد.
سیستم Rebalancer، یک ماشین مجازی مناسب را انتخاب نموده و Home Node خود را به Node دارای بار کمتر تغییر می دهد. در صورت امکان، Rebalancer قادر به انتقال یک ماشین مجازی خواهد بود که بخشی از حافظه آن بر روی Node مقصد استقرار مییابد. از این مرحله به بعد، ماشین مجازی در صورتیکه مجددا انتقال نیافته باشد، اقدام به تخصیص حافظه به Home Node جدید نموده و تنها به فعالیت بر روی پردازندههای موجود در همان Home Node جدید میپردازد.
فرآیند Rebalancing به عنوان یک راهکار اثربخش برای حفظ هماهنگی با قواعد به شمار رفته و تضمین مینماید که تمامی Nodeها به طور کامل استفاده میشوند. به علاوه شاید ضرورت داشته باشد که Rebalancer، ماشین مجازی را به یک Node انتقال دهد که هیچ یا اندکی حافظه به آن اختصاص داده شده باشد. در این صورت، ماشین مجازی با مفهوم محدودیت عملکرد (Performance Penalty) در رابطه با تعداد زیاد دسترسیهای Remote به حافظه مواجه میشود. ESXi میتواند این محدودیت را با انتقال حافظه از Node اصلی در ماشین مجازی به یک Home Node جدید به صورت زیر حذف نماید:
1- سیستم یک صفحه (4KB حافظهی به هم پیوسته) را برروی Node اصلی انتخاب میکند و سپس دادهها را در صفحهای در Node مقصد، کپی میکند.
2- سیستم از لایه مانیتورینگ ماشین مجازی و سختافزار مدیریت حافظه در پردازنده استفاده میکند تا قابلیت دید ماشین مجازی نسبت به حافظه را به صورت یکپارچه Map نماید؛ در نتیجه برای تمامی مراجع از یک صفحه برروی Node مقصد استفاده نموده و محدودیت ناشی از دسترسی به حافظه Remote را حذف مینماید.
در صورت انتقال ماشین مجازی به یک Node جدید، ESXi Host بلافاصله شروع به انتقال حافظه به صورت ذکر شده مینماید. همچنین ESXi این قابلیت را داراست که میزان بار را مدیریت نماید تا مانع از تحمیل بار اضافه بر سیستم گردد، خصوصا زمانی که ظرفیت کمی از حافظه Remote در ماشین مجازی باقی مانده یا میزان کمی از حافظه در Node مقصد، آزاد باشد. همچنین الگوریتم انتقال حافظه تضمین میکند که در صورت انتقال ماشین مجازی به یک Node جدید برای مدتی کوتاه، از انتقال بیمورد حافظه توسط ESXi Host جلوگیری میگردد.
در صورتی که استقرار اولیه، فرآیند Rebalancing به صورت Dynamic و انتقال هوشمند حافظه با هم صورت گیرد، میتوان عملکرد مطلوب حافظه در سیستمهای NUMA را حتی در صورت وجود بارهای کاری درحال تغییر تضمین نمود. در صورت بروز تغییر قابلتوجه در بارکاری مانند زمانی که ماشینهای مجازی جدید شروع به فعالیت میکنند، سیستم نیاز به تطبیق مجدد دارد و حافظه و ماشینهای مجازی را به موقعیتهای مکانی جدید منتقل مینماید. پس از طی یک دوره زمانی کوتاه که معمولا بین چند ثانیه تا چند دقیقه زمان میبرد، سیستم فرآیندهای تطبیقی خود را از سر گرفته و به یک وضعیت ثابت و پایدار میرسد.
اشتراکگذاری صفحه بهینهسازی شده برای NUMA به صورت Transparent
بسیاری از بارهای کاری ESXi به ارائه فرصتهایی برای اشتراکگذاری حافظه در سراسر ماشینهای مجازی میپردازند.
برای مثال ممکن است چندین ماشین مجازی به اجرای Instanceهای مختلف از یک سیستمعامل بپردازند و برنامههای کاربردی یا اجزای مشابهی را بارگذاری نموده و یا حاوی دادههای مشترکی باشند. در این موارد، سیستمهای ESXi از یک تکنیک اختصاصی Transparent برای اشتراکگذاری صفحه استفاده میکنند تا کپیهای اضافی از صفحات حافظه را به شکلی ایمن حذف نمایند. اغلب بارهای کاری موجود در ماشینهای مجازی با اشتراکگذاری حافظه در مقایسه با ماشینهای فیزیکی، حافظه کمتری را اِشغال میکنند. در نتیجهی این امر، امکان پشتیبانی از سطوح عملکردی بالاتری فراهم میگردد.
اشتراکگذاری صفحه به صورت Transparent برای سیستمهای ESXi، جهت استفاده در سیستمهای NUMA نیز بهینهسازی شده است. در سیستمهای NUMA، صفحات برای هر Node اشتراکگذاری میشوند؛ بنابراین هر NUMA Node دارای یک کپی Local از صفحات اشتراکگذاری شده در حجم بالا میباشد. به علاوه اینکه در صورت استفادهی ماشینهای مجازی از صفحات اشتراکگذاری شده دیگر نیازی به دسترسی به حافظه Remote نخواهد بود.
ــــــــــــــــــــــــــــــــ