برای دستیابی به Live Migration چه مسیری را طی کردیم؟

قابلیت Live Migration یا اصطلاحا VMotion کاربرد زیادی در مراکز داده دارد. مدیران فناوری اطلاعات با استفاده از آن قادر هستند بار پردازشی سرورها را مدیریت کنند و یا چنانچه سروری را بخواهند از مدار خارج کنند، بدون قطعی سرویس، سرویس‌های موجود در آن را به سرور دیگری منتقل کنند.

در یک سال اخیر پشتیبانی از Migration جزو برنامه‌های اصلی شرکت بود. KVM که تکنولوژی پایه PVM هست چندسالی است که از این قابلیت پشتیبانی می‌کند، اما پیاده سازی آن در قالب قابلیت‌های محصول PVM نیازمند فعالیت‌های فنی متعددی بود تا بتواند به صورت امن و پایدار در سایت کارفرمایان مورد استفاده قرار گیرد.

آنچه ما در این مسیر انجام دادیم بدین شرح است:

  • پشتیبانی از قابلیت PCI Addressing در PVM
    تمامی ابزارهای یک کامپیوتر در فضای فیزیکی، به هنگامی که بر روی مادربورد مستقر می‌شوند به صورت ذاتی، بر اساس Slotی که در آن قرار گرفته‌اند، آدرسی را به خود اختصاص می‌دهند. دلیل این امر آن است که هر Slot بر روی Bus مادربورد دارای آدرس ثابتی است.
    از آنجا که در دنیای مجازی Slot فیزیکی وجود ندارد، دیوایس‌های مجازی می‌توانند در هر مرتبه اجرای ماشین مجازی بر روی یک Slot متفاوت قرار بگیرند. این موضوع علاوه بر نشان دادن دیوایس جدید به سیستم عامل، مشکلات متعددی را در مایگریشن ایجاد می‌کند.
    برای این منظور لازم است که در هنگام تعریف دیوایس مجازی، آدرسی به آن اختصاص داده شود و در تمام مدت زمانی که دیوایس وجود دارد از آن آدرس استفاده گردد.
    برای دستیابی به این مهم از ترکیب مشخص کردن آدرس توسط ساختار مدیریتی PVM و همچنین ساختار داینامیک اختصاص آدرس توسط Qemu استفاده گردید تا به واسطه‌ی آن از اختصاص آدرس درست و همچنین تثبیت آن در طول عمر ماشین مجازی مطمئن گردیم.
  • تغییر ساختار دیوایس‌های مجازی کارت گرافیک و کارت صدا
    در نسخه های جدید Qemu از ساختار جدید device جهت مشخص کردن ابزارهای استفاده می‌شود و معمولا ابزارها به دو قسمت Front End و Back End تقسیم می‌شوند. این روش انعطاف بالایی در آدرسی دهی ابزارها و مدیریت آنها را در اختیار ما قرار می‌دهد.
    برای دستیابی به ساختار آدرس دهی مطمئن لازم بود ساختار دیوایس‌های گرافیک و صدا تغییر کند. در این میان امکان برخورداری از قابلیت Multi Display را نیز به کارت گرافیک افزودیم.
تنظیمات مایگریشن
  • مدیرت فلگ‌های پردازنده
    یکی از پرچالش‌ترین مباحث در بحث مایگریشن، موضوع فگل‌های پردازنده‌ها است. در پردازنده‌های اینتل و AMD دستورات با عنوان CPUID وجود دارد که لیست قابلیت‌های پردازنده را در قالب اعداد صحیح integer با طول 32 بیت تحویل می‌دهند. هر بیت از این اعداد دارای معنایی هستند که یک قابلیت از پردازنده را مشخص می‌کند (یک فلگ پردازنده را مشخص می‌کند).
    در سیستم عامل لینوکس از طریق فایل /proc/cpuinfo قادر هستید فلگ‌های پردازنده را مشاهده کنید.
    در مایگریشن این موضوع زمانی ایجاد چالش می‌کند که عملیات مایگریشن در بین دو پردازنده متفاوت انجام می‌شود. در این شرایط، عملیات مایگریشن بعد از انتقال کامل ماشین مجازی به مقصد با شکست مواجه شده و ماشین مجازی عملا خاموش می‌شود.
    ما اطمینان حاصل کردیم که در زمان مایگریشن، از فلگ‌های یکسانی توسط ماشین مجازی در مبدا و مقصد استفاده می‌شود.
  • تست Loop
    یکی از ابزارهایی که در آوید جهت اطمینان از صحت عملکرد یک عملیات انجام می‌شود تست Loop در محیط واقعی است. این کار با هزاران مرتبه مایگریت ماشین‌های مختلف و تست صحت عملکرد آنها انجام می‌شود.
    در یک نمونه ماشین مجازی به میزان 7000 مرتبه مایگریت شد و در انتها صحت عملکرد سامانه PVM و ماشین مجازی مورد بررسی قرار گرفت.
    یکی دیگر از انواع تستها، تست سریالی است، به این شکل که در یک کلاستر 4 نوده(هاست)، ماشین مجازی به تناوب از سیستم 1 به 2، از 2 به 3، و از 3 به 4 و مجدد به 1 مایگریت می‌شود و این عملیات برای چند روز تکرار می‌شود.

دستیابی به Migration و قابلیت‌های شبیه به آن، علاوه بر نیاز به توسعه دقیق و امن، نیازمند کاوش دانش عمیق موجود در این حوزه است که توسط تیم آوید با موفقیت به انجام رسید.

در 20 اسفند 1399، و در سالگرد تولید آوید، Live Migration در سامانه PVM رونمایی گردید.

به اشتراک بگذارید.

بیشتر بخوانیم