img

بررسی مهاجرت ماشین‌های مجازی (چالش‌ها، تکنیک‌ها و مسائل باز آن)

/
/
/

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

مهاجرت ماشین مجازی یک فناوری بنیادین برای اکثر مدیران کلاد می‌باشد. این فناوری ماشین مجازی را از سخت‌افزارهای زیربنایی آزاد می‌کند. این ویژگی مزایای زیادی را برای ارائه‌دهندگان و کاربران کلاد فراهم می‌کند. بسیاری از محققان بر روی این فناوری نوآورد، تمرکز کرده‌اند.
در این فصل ما ابتدر مهاجرت ماشین مجازی، مروری خواهیم داشت و سپس هم مزایا و هم چالش های این فناوری را مورد بحث قرار خواهیم داد.
طرح‌های ارائه شده برای مهاجرت ماشین مجازی در سه بخش طبقه‌بندی شده‌اند: فاصله، مسافت، جزئیات.
مطالعات در مورد مهاجرت غیر زنده بسادگی قابل انجام است ولی کسانی که بر روی مهاجرت زنده مطالعه می‌کنند، بصورت کلی با سه چالش اساسی روبرو می‌شوند: مهاجرت داده‌های حافظه، مهاجرت داده‌های ذخیره شده و تداوم برقراری اتصال به شبکه.
کارهایی که برای تجزیه و تحلیل عملکرد و کارایی مهاجرت ماشین مجازی انجام شده است، نیز ذکر شده است. با توسعه و تکامل رایانش‌ابری، تحرک کاربر ، یک انگیزه مهم برای مهاجرت زنده VM در برخی از سناریوها(مانند محاسبات مه خواهد بود.
بنابراین مطالعات در مورد پیوند مهاجرت VM، به تحرک کاربران خلاصه شده است.

کلیدواژه : رایانش‌ابری، مراکز داده، مهاجرت ماشین مجازی، Pre-Copy، Post-Copy، Hybrid-Copy، اتصال به شبکه، تحرک کاربر، ارزیابی عملکرد

 

۱- مقدمه

تکنولوژی مجازی سازی، یک سرور فیزیکی را بوسیله استقرار یک لایه(مانند مدیریت ماشین مجازی یا هایپروایزر) در بالای منابع سخت‌افزاری یا سیستم عامل، به چندین محیط اجرایی مختلف؛ تقسیم می‌کند.
هر محیط اجرایی، یعنی دقیقا یک ماشین مجازی، که سیستم عامل و برنامه‌های کاربردی را بدون وابستگی به دیگر سیستم‌ها، اجرا می‌کند. در ابتدا تکنولوژی مجازی‌سازی به دلایل مختلفی به صورت گسترده استفاده نمی‌شد. برای مثال، بخشی از منابع سخت‌افزاری(پردازنده و حافظه) را اشغال می‌کرد. علاوه بر این، پهنای باند ضعیف شبکه، مانع اجاره سرورهای فیزیکی، توسط فروشندگان به مشتریان می‌شد. اما با توسعه فناوری‌های مرتبط، مثل بهره‌برداری از کانال فیبر، بهبود کارایی سخت‌افزار، توسعه تکنولوژی‌های امنیتی و …، خدمات جدید-رایانش‌ابری، با پایه و اساس مجازی‌سازی شکل گرفتند.
در رایانش‌ابری، شرکت‌های بزرگ می‌توانند منابع سخت‌افزاری خود را بتدریج وبصورت جداگانه در اختیار مشتریان قرار داده و مشتریان با پرداخت بهای اجاره این خدمات شروع به استفاده از VM نمایند، بدون اینکه مجبور به پرداخت هزینه‌های سنگین نگهداری و تعمیرات باشند.
از آنجا که تعداد زیادی از کاربران، مراکز داده کلاد را برای نگهدای برنامه‌های کاربردی خود انتخاب می‌کنند، چگونگی نحوه مدیریت VMها در مراکز داده به یک موضوع مشکل تبدیل می‌شود. بطور مثال، ممکن است برخی از سرورها بار اضافی زیادی را تحمل کنند، در حالی که باقی سرورها بار ناچیزی دارند و در نهایت اگر یک سرور موفق به تحمل بار اضافی نشود و از کار بیافتد، همه سرورها در این موضوع دخیل خواهند بود. تمامی این مشکلات (چگونگی نحوه پخش و توزیع وظایف بین سرورها، نحوه محافظت از سرورها در صورت خرابی سخت افزار و …) همگی با ظهور تکنولوژی ارزشمند مهاجرت VM، حل خواهد شد.
مهاجرت VM ناشی از مهاجرت فرآیند است. با اینحال مهاجرت فرآیند، از مشکل وابستگی محلی رنج می‌برد که مانع استفاده برای مدیران کلاد می‌شود. مهاجرت VM یک VM فیکس نشده بر روی سرور ایجاد می‌کند. ما می‌توانیم یک VM را از یک سرور به سرور دیگر و یا حتی از یک مرکز داده به مرکز داده دیگر، انتقال دهیم. اکثرعملیات مدیریت کلاد بوسیله مهاجرت VM، پشتیبانی می‌شوند، مانند تجمیع سرورها، نگهداری سخت افزار با خرابی نزدیک به صفر، مدیریت انرژی و مدیریت ترافیک.
مهاجرت VM عملی نیست که فقط مزایا به دنبال داشته باشد، بلکه می‌تواند موجب بار اضافی روی همه نقش‌های درگیر گردد(VM مهاجر، میزبان منابع، میزبان مقصد، VMهای زندانی شده در این دو میزبان)، بنابراین مهاجرت VM باید بدقت برای مدیریت کلاد بکار گرفته شود.
مطالعات زیادی برای بهبود علمکرد و کاهش عوارض جانبی آن در سال‌های گذشته انجام شده است. در حال حاضر برخی از آثار قبلی تلاشی برای خلاصه‌سازی دستاوردها در زمینه مهاجرت VM است. بیشتر تمرکز بر روی سربار عملکرد VM هست و نه خود تکنیک مهاجرت. آنها مهاجرت به VM را بعنوان یک فاکتور کاهش عملکرد و کارایی VM می‌دانند، زیرا مهاجرت VM نه تنها روی VMهای مهاجر دخالت میکند، بلکه همچنین به محل‌های دیگر روی منابع و مقاصد میزبان نیز دخالت دارد.
Medina و Garc´ıa، بر روی یک پروژه بررسی مکانیسم مهاجرت VM کار می‌کنند اما تکنولوژی‌های مشترک بین آن‌ها را استخراج نمی‌کنند. و فقدان یک تجزیه و تحلیل دقیق و مقایسه بین مکانیسم‌های مختلف بصورت جدی احساس می‌شود.
آنها یک طبقه‌بندی دقیق برای طرح‌های مهاجرت VM ساخته و سپس تکنولوژی‌های مهاجرت بصورت Pre-Copy، Past-Copy، Hybrid-Copy و مهاجرت غیر زنده را بررسی می‌کنند.
با اینحال، نتایح کمی در مورد مهاجرت VM در مرکز داده و مهاجرت چندگانه که در حال حاضر موضوعاتی داغی هستند، اعلام شده‌است.
تکنولوژی‌های مهاجرت زنده و بازیابی از حادثه برای شبکه‌هایی با مسافت طولانی استفاده می‌شوند. هر دوی آن‌ها با انتقال حجم بزرگی از داده بر روی یک شبکه کُند، روبرو هستند. مهاجرت زنده یکبار اتفاق می‌افتد، در حالیکه بازیابی از حادثه یک عمل متوالی می‌باشد. اما آن‌ها فقط کارهایی را در ارتباط با مهاجرت VM در مراکز داده از لحاظ بهینه‌سازی عملکرد شبکه انجام می‌دهند.
در این مقاله، ما بصورت جامع و کلی تمام تکنولوژی‌های مهاجرت VM، از مهاجرت غیر زنده تا مهاجرت زنده، مهاجرت از شبکه‌های محلی، به شبکه‌های گسترده ، از مهاجرت تک تا مهاجرت چندگانه، از مهاجرت user mobility-induced به مهاجرت مجازی‌سازی توابع شبکه ، مهاجرت نمونه و غیره.
این مقاله نه تنها تمام محتویات بررسی شده قبلی را پوشش می‌دهد، بلکه دستاوردهای جدید در زمینه مهاجرت زنده VM را نیز دربر می‌گیرد(مانند تکنولوژی‌های مهاجرت در سناریویی از محاسبات در لبه شبکه موبایل)، مقایسه بین مکانیسم‌های مختلف مهاجرت، و یک بررسی در مورد موضوعات برجسته تحقیقاتی و غیره.

این مقاله به شرح زیر خلاصه شده است:
۱- سه چالشِ مهم (مهاجرت داده‌های حافظه، مهاجرت داده‌ها ذخیره شده و تداوم اتصال به شبکه) بوسیله مهاجرت زنده VM در رایانش‌ابری مرسوم و سازگاری بین تکنولوژی‌های حل چالش‌های مختلف مورد بحث قرار میگیرند.
۲- طبقه‌بندی جدیدی از مهاجرت VM طراحی شده‌است. طرح‌های مهاجرت بوسیله نوع مهاجرت (غیرزنده یا زنده)، مسافت مهاجرت(شبکه‌های محلی یا شبکه‌های گسترده) و جزئیات مهاجرت(تکی یا چندگانه) دسته‌بندی می‌شوند.
۳- فناوری‌هایی برای اصلاح و بهبود عملکرد مهاجرت VM مطابق با چالش‌های پیش رو، طبقه‌بندی و بررسی شده‌اند.
۴- مهاجرت VM همراه با سربارها و عملکرد مهاجرت است و با فاکتورهای مختلفی روبرو خواهد بود.
۵- با تکامل رایانش‌ابری(بطور مثال محاسباتfog ) و توسعه مناطق کاربردی در تکنولوژی مجازی‌سازی نظیر NFV، مهاجرت زنده VM با برخی چالش‌های جدید مواجه خواهد بود. مکانیسم‌های مخصوص مهاجرت برای این مناطق در نظر گرفته شده است)
۶- تمامی فناوری‌های مهاجرت مرور شده در این مقاله، با معیارهای بدست آمده از آثار ادبی مقایسه شده‌است.
۷- در نهایت، مسائل مهم در مهاجرت VM که نیاز به بهینه‌سازی‌ و راه‌حل‌های بیشتری دارد مورد بحث قرار می‌گیرد.
و ادامه این مقاله بصورت زیر دنبال خواهد شد.
در بخش دوم، تمام دانش‌های پایه در مورد مهاجرت VM را معرفی خواهد شد.
و کارهایی که بر روی مهاجرت غیر زنده انجام شده در بخش سوم شرح داده می‌شود.
تکنولوژی‌هایی برای حل سه چالش در مهاجرت VM به ترتیب در بخش چهارم، بخش پنجم و بخش ششم، نشان داده خواهد شد.
در بخش هفتم، عواملی که باعث درک ارتباط بین عملکرد مهاجرت و فاکتورهای درونی می‌شود، تشریح خواهد شد. راه‌حل‌هایی در مهاجرت VM ناشی از تحرک کاربر-user mobility-induced- در بخش هشتم بررسی خواهد شد. موضوعات تحقیقاتی باز روی مهاجرت زنده VM که در بخش نهم بررسی شده‌اند. و در نهایت مقاله در بخش دهم به انتهای خود خواهد رسید.

 

۲- دانش پایه
۱-۲- اساس مدیریت ابر

بیشتر عملیات مدیریت ابر بوسیله پشتیبانی از مهاجرت VM انجام می‌شوند. در این بخش ما بصورت مختصر از تمام مزایا و موارد مورد استفاده روی مهاجرت VM برای مدیرت محیط کلاد استفاده خواهیم کرد.
– نگهداری و تعمیر سخت افزار(نزدیک به صفر): احتمال اینکه سرورها پس از مدت طولانی فعال بود ن در مراکز داده، با مشکل و خرابی روبرو شوند زیاد خواهد بود. این سرورها میتوانند با موارد جدیدی که خارج از محل VM قرار دارند جابجا شده تا شرایط دوباره به حالت عادی برگردد. این حالت برای زمان ارتقا نیز کاربرد خواهد داشت.
– تعادل بار ترافیکی: وضعیت سربار نه تنها عمر یک سرور را کم می‌کند، بلکه کیفیت سرویس (QoS) را نیز کاهش می‌دهد. همچنین سرورهایی هم که با بار کم ترافیکی روبرو هستند باعث اتلاف انرژی می‌شوند. اینجاست که مهاجرت زنده VM بکار آمده و تضمین می‌کند که تمامی سرورها با بار ترافیکی متعادل و بدون کاهش کیفیت به کار خود ادامه خواهند داد. حتی این بار و ترافیک در زمانی که مهاجرت زنده بر روی اینترنت فعال می‌شود، می‌تواند بین چندین مرکز داده در مناطق جغرافیایی مختلف تقسیم شود.
– تجمیع سرورها: در مراکز داده VMها به طور مداوم ایجاد و تخریب می‌شوند. همچنین، برخی از آن‌ها ممکن است متوقف یا بیکار باشند. در تجمیع سرورها، VMها بخاطر دو هدف مهاجرت می‌کنند:
هدف انرژی (استفاده از حداقل تعداد سرور ممکن)
هدف ارتباطی(قرار دادن VMهای مرتبط باهم بر روی سرورهای مشابه برای کاهش بار ترافیکی)
مدیریت Across-site : برای ارائه دهندگان کلاد با سایت‌های چندگانه، گزینه‌های مدیریتی بیشتری برای بهبود QoS و کم کردن هزینه‌ها وجود دارد. بعنوان مثال، استراتژی‌های عملیاتی جدیدی وجود دارند که اقدام به محاسبه منابع بجهت به حداقل رساندن تاخیر در شبکه می‌کنند. در مقابل، به منظور کاهش هزینه‌های سیستم خنک کننده، گوگل و مایکروسافت طرح خنک کننده‌های رایگان را پیشنهاد می‌کنند، همچنین با نام ماه نیز معرفی می‌شود. که در این طرح VMها و برنامه‌های کاربردی را به مکان‌هایی ببرند که دارای شب‌های طولانی‌تر و یا درجه هوای خنک تری می‌باشند.
ابر ترکیبی یا هییرید کلاد: هیبرید کلاد با ویژگی‌های خاص و برجسته: بسیار مقرون بصرفه و الاستیک، هماهنگ شده با خواسته‌های تجاری، نگهداری سرویس‌های خصوصی به صورت محلی. در هیبرید کلاد، در زمان مواجهه با ترافیک زیاد، کاربران می‌توانند بعضی از وظایف را به یک کلاد عمومی بسپارند.
فدراسیون کلاد: معایب ذاتی مراکز داده شخصی، ارائه دهندگان کلاد را به همکاری با سایر ارائه دهندگان سوق می‌دهد(یعنی تشکیل فدراسیون کلاد). البته هنوز راه طولانی برای فدراسیون کلاد در صنعت امروزی مانده است. اما می‌تواند امروزه در دانشگاه‌ها سودمند باشد. بطور مثال، فدراسیون کلاد، بیشتر از ۲۲ سایت محاسباتی در سراسر اروپا و جهان را برای ارائه خدمات به محققان، به یکدیگر متصل می‌کند. با کمک فدراسیون کلاد، زمانی که حجم داده‌های پردازش شده سنگین بود، می‌توانیم برای محاسبات داده‌های سنگین، آن‌ها را به محل‌های دیگر انتقال دهیم.
واکنش به کاربر سیار: برای جلوگیری از نقض قرارداد سطح خدمات(SLA)، گاهی اوقات ارائه دهندگان خدمات، VMها را به یک مرکز داده نزدیک به کاربر مهاجرت می‌دهند. این کار به شدت در محاسبات fog و سناریوهای مشابه، زمانی که مرکز داده ادج کلاد، فقط یک ناحیه کوچک از کاربران را پوشش می‌دهد، مورد نیاز هست. زمانی که یک کاربر از ناحیه تحت پوش یک مرکز داده ادج کلاد، خارج می‌شود، VMهای متناظر بسمت مراکز داده ادج کلادی که کاربر در حال حاضر در حال استفاده از آن می‌باشد مهاجرت می‌کنند.

 

 

۲-۲- مهاجرت VM

در این بخش، ابتدا مختصری از چالش‌های پیش رو در مهاجرت VM را خواهیم گفت و سپس یک طبقه‌بندی برای طرح‌های مهاجرت موجود ایجاد خواهیم کرد. مهاجرت VM شاید یک قسمت یا تمام داده‌های یک VM را به مکانی دیگر منتقل کند.
مهاجرت زنده تحت پیش شرط‌های خدمات، بدون وقفه در مهاجرت VM در حال اجرا می‌باشد، در حالی که در مهاجرت غیر زنده این محدودیت‌ها وجود ندارد. بصورت کلی، مهاجرت VM به سه چالش زیر روبرو می‌باشد:
۱- مهاجرت داده‌های حافظه: اگر می‌خواهید مهاجرت VM از نقطه متوقف شده قبل مهاجرت ادامه یابد، باید تمام حالات جاری به سایت هدف انتقال داده شود.
حالت داده شامل حالت‌های پردازنده، داده حافظه، حالت‌های دستگاه و غیره می‌باشد. بطور معمول، انتقال حالت‌های جاری مثل مهاجرت داده حافظه، کوتاه است.
۲- مهاجرت داده‌های ذخیره‌شده: اگر سیستم‌ ذخیره‌سازی مرکز داده منبع، برای سرور هدف مهاجرت VM در دسترس نباشد، دیسک‌های مجازی VM مهاجر به سایت مقصد منتقل داده می‌شوند، زیرا دسترسی از راه دور به دیسک داده، نه تنها به یک تاخیر بزرگ منجر می‌شود، بلکه ممکن است SLA را نیز نقض نماید.
۳- تداوم اتصال به شبکه: پس از اینکه VM به محل جدیدی منتقل شد، نیاز است تا برخی از استراتژی‌ها در دسترس کاربران قرار بگیرند. برای مهاجرت زنده، ارتباطات باز باید در طول زمان مهاجرت در دسترس قرار داشته باشد.
مهاجرت با حالت‌های مختلف با چالش‌های متفاوتی روبرو خواهد شد. ما تمامی تکنیک‌های مهاجرت را سه دسته طبقه‌بندی می‌کینم:
نوع مهاجرت، فاصله مهاجرت و جزئیات مهاجرت طبقه‌بندی می‌کنیم.
مهاجرت VM را می‌توان با دو روش انجام داد: مهاجرت غیر زنده و مهاجرت زنده. در مهاجرت غیر زنده، ابتدا VM قبل از مهاجرت متوقف یا خاموش می‌شود، بسته به اینکه بخواهید سرویس‌های در حال اجرا ادامه داده شود یا خیر.

 

بررسی مهاجرت ماشین‌های مجازی (چالش‌ها، تکنیک‌ها و مسائل باز آن)اگر بخواهید VM متوقف شود، حالت‌های جاری کپسوله‌سازی شده و به سایت هدف منتقل می‌شود، در طول مهاجرت، هیچ اتصال شبکه‌ای، نگهداری نمی‌شود و تمام ارتباطات پس از سرگیری VM مجددا راه اندازی می‌شود، همانطوری که در شکل ۱-۲ قسمت a، نشان داده شده است.
در مهاجرت زنده، مهاجرت داده حافظه و تدوام اتصال به شبکه دو مشکلی هستند که باید برای جلوگیری از وقفه در سرویس حل شوند. اگر سایت‌های منبع و مقصد سیتسم ذخیره سازی را به اشتراک نگذارند، مهاجرت داده‌های ذخیره‌شده نیز باید انجام پذیرد.
بدیهی است که مهاجرت غیر زنده، وقفه قابل ملاحظه‌ای را برای سرویس‌های در حال اجرا VM مهاجر خواهد داشت. این وقفه بصورت چشمگیری زمینه کاربرد آن را محدود می‌کند زیرا بسیاری از برنامه‌های کاربردی در کلاد بصورت دائمی و ۲۴ ساعته باید در دسترس باشند. به همین دلیل است که اکثر تحقیقات بر روی مهاجرت زنده انجام می‌شود.
با توجه به فاصله مهاجرت، مهاجرت VM به دو دسته تفسیم می‌شود: مهاجرت در شبکه LAN و مهاجرت به شبکه WAN. مهاجرت یک VM به LAN به این معنس است که منبع و سرور مقصد در یک مرکز داده قرار دارند. با توسعه فن‌آوری‌های شبکه، اختلاف و مرز بین شبکه MAN و WAN از بین می‌رود.
در این مقاله، به مهاجرت بر روی WAN بیشتر از مهاجرت‌های دیگر در مراکز داده، اشاره شده است. مکانیسم‌های مهاجرت برای محیط‌های LAN بصورت معمول دو فرضیه اساسی دارند:
۱- سیستم ذخیره‌سازی مشترک، مثل SAN و NAS که در مراکز داده استفاده می‌شوند. آن‌ها در زمان مهاجرت از هر دو سرور در دسترس خواهد بود که نشان از این است که مهاجرت داده‌هاهی ذخیره شده غیر ضروری است.
۲- سرورهای منبع و مقصد در ساب‌نت‌ها قرار دارند. VM مهاجر تمامی پیکربندی شبکه را در طول مهاجرت نگهداری می‌کند. بنابراین، فقط ARP ناخواسته می‌تواند ارتباطات شبکه را به موقعیت جدید هدایت کند.
بر اساس این دو فرضیه، مهاجرت VM در LAN فقط نیاز به حل تکالیف مهاجرت داده حافظه خواهد داشت. همانطور که در شکل ۱-۲ قسمت b، می‌بینید.
با اینحال مهاجرت یک VM در شبکه WAN این مزایا را نخواهد داشت.
هیچ سیستم ذخیره سازی مشترکی وجود ندارد و دیتاسنترهای مختلف پیکربندی‌های شبکه مختلفی دارند. علاوه بر این، وضعیت شبکه(نظیر پهنای باند و تاخیر) در بین دیتاسنترها بسیار بدتر از شبکه‌های LAN می‌باشد. همانطور که در شکل ۱-۲ قسمت C، نشان داده شده است.
بنابراین، مهاجرت VM به WAN نه تنها نیاز به حل تمام این سه چالش دارد، بلکه در مقایسه با مهاجرت LAN بسیار سخت‌تر نیز می‌باشد.
برای ازائه خدمات با کیفیت بالا به دستگاه‌های سیار، تعدادی پارادایم‌های محاسباتی جدید، نظیر محاسبات Flog، محاسبات در لبه سیار، Cloudlet و غیره پیشنهاد شده است.
همه آن‌ها ساختار مشابه‌ای را نشان می‌دهند، بعنوان مثال، منابع کلاد(محاسبه و ذخیره‌سازی) در لبه شبکه قرار داده می‌شوند تا سرویس‌ها با تاخیر کم برای تجهیزات سمت کاربرمانند گوشی‌های هوشمند و تبلت‌ها، یا دستگاه موجود در اینترنت اشیاء فراهم گردد.
ما از MEC برای نشان دادن تمامی این پارادایم‌ها در این مقاله استفاده می‌کنیم. بدیهی است، مهاجرت در MEC وابسته به مهاجرت WAN است، زیرا با چالش‌های مشابهی در مهاجرت مواجه است.
با این‌حال، نزدیکی منابع کلاد به کاربران در MEC، الزامات جدیدی را در مهاجرت VM معرفی می‌کند. (توضیحات بیشتر در بخش هشتم).
بعنوان مثال، یک دیتاسنتر لبه کلاد در MEC فقط به کاربران تحت منطقه پوششی خودش خدمات می‌دهد. هنگامی که کاربر بین دیتاسنترهای لبه کلاد، میچرخد، VMهای مربوطه نیز باید مهاجرت کنند تا نیاز تاخیر کم برنامه‌های کاربردی سیار را برآورده کنند. ما این نوع از مهاجرت VM را مهاجرت ناشی از تحرک کاربرد می‌نامیم.
امروزه بسیازی از اپلیکیشن‌ها در یک دیتاسنتر شامل یک گروه از VMها می‌شوند. این VMها رابطه نزدیکی باهم دارند و با یکدیگر همکاری میکنند تا خدماتی را ارائه دهند.
بعنوان مثال، اپلیکیشن‌های سه لایه، نوعی معماری توسعه معمول هستند و بطور معمول از یک لایه ارائه، یک لایه کاربردی و یک لایه دیتابیس تشکیل شده‌اند.
تعداد VMها در هر لایه می‌تواند بسته به حجم کار، افزایش یا کاهش یابد.
همچنین غیر ممکن است که یک VMمرتبط، به دیتاسنترهای دیگر مهاجرت کند زیرا تاخیر شبکه بین دیتا سنترها به شدت باعث کاهش کیفیت عملکرد خدمات خواهد شد. و حتی ممکن است سرویس را از بین ببرد. همانطور که که در شکل ۱-۲ قسمت d، نشان داده شده است.
در داخل یک دیتاسنتر، تمام VMهای روی یک سرور می‌توانند برای تعمیر و نگهداری سخت‌افزار به دیتاسنترهای دیگر منتقل شوند. بنابراین براساس دانه‌بندی مهاجرت، مهاجرت VM، مهاجرت‌ تکی و مهاجرت چندگانه را شامل می‌شود. مهاجرت تکی هر بار یک VM را منتقل می‌کند، درحالی که مهاجرت چندگانه، چندین دسته از VM را به صورت همزمان جابه‌جا می‌کند.

 

۳-۲- مهاجرت VM در برابر مهاجرت کانتاینر
در صورتی از VM استفاده می‌کنید، کانتاینر یک موضوع غیرقابل اجتناب است، زیرا نقاظ مشترک زیاد میان این دو وجود دارد. در همین حین، تفاوت‌های میان آنها وجود دارد که زندگی مشترک آنها در «دنیای مجازی‌سازی» را ممکن می‌سازد. در این بخش ما به بررسی این دو از منظر مهاجرت می‌پردازیم.
کانتاینرها به‌وسیله ترسیم‌سازی سیستم‌عامل و VMها به‌وسیله ترسیم‌سازی سخت‌افزاری اجراء می‌شوند. کانتاینر میزبان در هسته سیستم‌عامل اصلی به اشتراگ‌گذاشته می‌شوند، اما VMها کامل هستند و به‌طور کلی محیط‌های اجرایی مجزا دارند (هر VM نصب‌شده بر روی سیستم‌عامل). این تفاوت باعث می‌شود تا مهاجرت کانتاینر به مهاجرت فرایند نزدیک تر باشد. در تحقیقات، فناوری رایج مهاجرت برای کانتاینرها، Checkpoint و Restart است که وضعیت حافظه یک فرایند در فایل‌ها را حفظ می‌کند و در میزبان مقصد در Checkpoint، فرایند را ادامه می‌دهد. یک پروژه (CRIU) براساس CR برای مهاجرت کانتاینرها اجراء شده است.
یک کانتاینر در مقایسه با VM بسیار سبک‌تر است که به طور ذاتی به چالش کم‌تر مهاجرت در نسبت با VM منجر می‌شود. برای‌مثال، در کانتاینری که در سرویسی بدون حالت اجراء می‌شوند (برای‌مثال وب سرویس RESTful)،‌ می‌توانیم کانتاینر میزبان منبع را به‌طور مستقیم تجزیه کنیم و یک میزبان مقصد جدید ایجاد کنیم. مدت زمان این عملیات قابل‌تحمل است و درخواست‌های اجراء فعلی تحت تأثیر قرار می‌گیرند.
مهاجرت کانتاینر برخی از مشکلات بی‌اهمیت مهاجرت VM را بررسی می‌کند. برای‌مثال کانتاینرها در سیستم‌عامل اصلی و همچنین در برخی کتابخانه‌ها به اشتراک‌گذاشته می‌شوند. بنابراین در مهاجرت کانتاینر، میزبان مقصد باید این کتابخانه‌ها را برای کانتاینر مهاجر آماده کند. بنابراین، میزبان سایت مقصد نیز کانتاینرهای دیگر را اجراء می‌کند. پس، انتخاب مقصد میزبان باید یک موضوع مهم برای مهاجرت ظرف باشد. اما، یک VM تنها یکبار بر روی هر میزبان اجراء می‌شوند. و به وسیله همین VMM مدیریت و ترسیم‌سازی می‌شوند.

۴-۲- عملکرد ماتریس و بالاسری
یک استراتژی مهاجرت مناسب برای جابه‌جایی VM از یک مکان به مکان دیگر با بالاترین سرعت تلاش می‌کند. این استراتژی باید تأثیرات جانبی را به حداقل برساند. در این بخش، ما ماتریس عملکرد ارزیابی استراتژی مهاجرت را خلاصه می‌کنیم. برخی از مکانیزم‌های مهاجرت تنها بر بهینه‌سازی یک جنبه تمرکز دارند، درحالی که جنبه‌های دیگر چندین ماتریس را به صورت همزمان انجام می‌دهند.
* مجموع زمان مهاجرت. این مهفوم به مدت زمان بین شروع مهاجرت و زمان ادامه کار VM مهاجرکرده بر روی سرور مقصد اشاره دارد. هیچ داده‌ای در سایت منبع باقی نمی‌ماند.
– زمان تأخیر: مدت زمانی که VM مهاجرت‌کرده از سرویس خارج شده است. این ماتریس، شفافیت مهاجرت برای کاربر VM مهاجرت‌کرده را نشان می‌دهد. برای مهاجرت‌های غیر زنده، مجموع زمانن مهاجرت همان زمان تأخیر است.
– مجموع ترافیک شبکه: این ماتریس یعنی کل داده‌های انتقال‌داده‌شده در مهاجرت. زمانی که VM مهاجرت‌کرده در یک سرویس شبکه شدید اجراء می‌شود، این اندازه‌گیری مهم اس، زیرا پهنای‌باند را با فرایند مهاجرت تأیید می‌کدن.
– تنزل سرویس: تأثیر مهاجرت بر نحوه اجراء سرویس در VM مهاجرت‌شده را نشان می‌دهد و از طریق تغییرات در ورودی، زمان پاسخ و غیره اندازه‌گیری می‌شود.
عملکرد مهاجرت نیز با استفاده از پهنای‌باند ارزیابی می‌شود. این ماتریس با ترکیب مجموعه زمان مهاجرت با مجموع ترافیک شبکه به‌دست می‌آید. هر چه مجموع زمان مهاجرت کم‌تر باشد و مجموع ترافیک شبکه برای مهاجرت خاص بشتر باشد، استفاده از شبکه بیشتر می‌شود. تمام مزایای مهاجرت VM را در بخش ۲-الف فهرست می‌کنیم. اما مهاجرت VM یک عملیات بی‌دردسر نیست. شاید با تمام نقش‌های مهاجرت تداخل داشته باشد. این نقش‌ها به سه دسته تقسیم می‌شوند که عبارتند از: بالاسری محاسباتی، بالاسری شبکه و بالاسری فضا.
بالاسری محاسباتی: معمولا، روح مهاجرت در VMMهای منبع و میزبان‌های مقصد اجراء می‌شوند. فرایند مهاجرت بخشی از چرخه‌های CPU و فضای حافظه را اشغال می‌کند. این موضوع به تداخل تمام VMها بر روی این دو میزبان منجر می‌شود. اگر روح‌های مهاجرت در VM مهاجرت‌کرده اجراء شوند، برخی از منابع محاسباتی این فناوری‌های بهینه‌سازی نیز می‌تواننند بالاسری‌های محاسباتی مانند تکرار داده و فشرده‌سازی داده را معرفی کنند.
بالاسری شبکه: مهاجرت VM یک بار کاری شدید شبکه است و بر سر منابع شبکه رقابت می‌کند، درحالی که VMها بر روی منبع و میزبان‌های مقصد اجراء می‌شوند. به‌علاوه فرایند مهاجرت داده‌ها را از فضای ذخیره سایت منبع می‌خواند و آنها را برای آن سایت مقصد می‌نویسد. این سایت بخشی از پهنای‌باند I/O را نیز مصرف می‌کند.
بالاسری فضا: فضای ذخیره‌سازی در مقایسه با منابع دیگر (مانند چرخه‌های CPU و پهنای‌باند شبکه)، از ارزش کم‌تری برخوردار است. قطعا، برخی از فناوری‌های مهاجرت، مهاجرت را اجراء می‌کنند یا عملکرد مهاجرت را با کاهش فضای‌ذخیره‌سازی ارتقاء می‌دهند. برای‌مثال می‌توان به فناوری Snapshoting اشاره کرد.
در بررسی هر استراتژی مهاجرت در این مقاله، مزایا و معایب هر کدام خلاصه و مقایسه می‌شوند. برای‌مثال به مزایای کاربردی و بالاسری‌های اضافه‌شده می‌پردازیم.

 

۵-۲- چارچوب بررسی
براساس دسته‌بندی بخش ۲-۲، طرح‌های مهاجرت VM در شکل ۲-۲(صفحه قبل) را نشان می‌دهیم. بر این اساس، فناوری‌های مهاجرت را با چارچوب زیر بررسی می‌کنیم:
۱- اولا به توصیف مکانیزم‌های مهاجرت غیرزنده می‌پردازیم (بخش ۳). این مکانیزم‌ها در ابتدای ظهور فناوری مهاجرت VM ارائه شدند. در حال حاضر، از این فناوری‌ها استفاده نمی‌شود اما، شاید در توسعه فناوری‌های مهاجرت غیرزنده استفاده شوند و به درک ماهیت مهاجرت VM به ما کمک می‌کنند.
۲- مهاجرت داده حافظه، مسئولیت اصلی برای مهاجرت زنده VM در محیط‌های LAN است. با بهینه‌سازی در چند سال اخیر، عملکرد آن به حداکثر رسیده است. به‌علاوه، فناوری‌های مهاجرت داده برای محیط‌های LAN نیز در محیط‌های WAN کاربرد دارند، تنها سرعت پهنای‌باند کم‌تر است. بنابراین، ما تمام فناوری‌های مهاجرت داده حافظه را با هم بررسی می‌کنیم (بخش ۵)
۳- مهاجرت داده‌ ذخیره‌سازی، گلوگاه مهاجرت در محیط WAN است. سیستم‌های ذخیره‌سازی مشترک (NAS و SAN) در مراکز داده غیرفعال هستند، اما برخی از مراکز از دیسک‌های محلی برای حفظ داده‌های ذخیره‌ VM استفاده می‌کنند. با این ساختار، مهاجرت داده ذخیره‌ نیز در محیط‌ها LAN نیاز است. فناوری‌های داده ذخیره‌سازی برای محیط‌های WAN،‌ مانند مهاجرت داده‌ حافظه در محیط‌های LAN استفاده می‌شند.
۴- حل مشکل اتصال شبکه برای مهاجرت در LAN ساده است، اما در این بررسی به آن نمی‌پردازیم. فناوری‌های حفظ ارتباط در مهاجرت و بعد از آن در محیط‌های WAN در بخش ۵ بررسی می‌شوند.
۵- مهاجرت WAN مشکلاتی را نیز به همراه دارد. بالاسری را به تمام نقش‌های درگیر مانند VMهای مشترک در یک میزبان یا VM مهاجرت‌کرده اضافه می‌کند. در همین حین، عوامل زیادی بر عملکرد مهاجرت تأثیر دارند. برای این هدف، محققین به تحلیل روش مهاجرت VM به منظور درک بهتر استراتژی‌های بهینه‌سازی طراحی پرداخته‌اند.
۶- در پارادایم‌های جدید رایانش ابری (برای‌مثال MEC)، مهاجرت VM ارتباط نزدیکی با تحرک کاربران دارد. این نوع از مهاحرت VM، نه تنها چالش‌هایی مانند مهاجرت VM را حل نمی‌کند، بلکه با چالش‌هایی مانند مهاجرت WAN نیز رو به رو است. اما، بررسی پیشرفت‌های این موضوع در بخش جدا (بخش ۸) انجام می‌شود.
۷- در نهایت، تحقیقات مختلف در زمینه مهاجرت VM در بخش ۹ بررسی می‌شوند.

 

۳- مهاجرت غیر زنده

پژوهش‌های مرتبط با مهاجرت غیر زنده تنها در ابتدای محبوبیت رایانش‌ابری دیده شد. این کارها عموماً به دنبال سیار بودن کاربر یا برنامه هستند، نه مدیریت مرکز داده. سیار بودن کاربر یعنی یک کاربر بتواند کارش را از طریق معلق کردن آن بر روی یک کامپیوتر متوقف و آن را از طریق اجرای محیط بر روی یک کامپیوتر دیگر ادامه دهد و سیار بودن برنامه یعنی یک برنامه محدود به سیستم عامل زیرمبنا نباشد. ولی با توسعه‌ی رایانش‌ابری، مهاجرت غیر زنده به دلیل زمان از کار افتادگی سرویس طولانی‌اش دیگر نمی‌تواند الزامات سخت SLA را ادا کند. در این بخش، ما باز هم برخی از مکانیسم‌های مهاجرت غیر زنده‌ی معمول را بررسی می‌کنیم، زیرا آنها بخش مهمی از تاریخچه‌ی مهاجرت VM هستند.
کوچ و ساتیانرایان{۶۴} یک سیستم مهاجرت طراحی کردند (ISR) که به دنبال حل مشکل سیار بودن کاربر بود. ISR سیار بودن کاربر را از طریق ترکیب فناوری مجازی سازی با سیستم فایل توزیع شده پیاده سازی می‌کند. این سیستم از مجازی سازی بهره می‌برد تا تمامی داده‌های کاربر (وضعیت اجرا و داده‌های دیسک) را خلاصه کند و از یک سیستم فایل شبکه (NFS) ی مرکزی استفاده می‌کند تا یک ذخیره سازی پایدار برای ادامه دادن VM در هر مکانی فراهم کند. ISR در دو مرحله کار می‌کند: رویداد تعویق و رویداد از سرگیری . در طول رویداد تعویق، حالت‌های VM ذخیره و به NFS مرکزی کپی می‌شوند، در حالی که رویداد از سرگیری داده‌ی حالت را از NFS مرکزی به مکان جدید کپی کرده و VM را از سر می‌گیرد. هنگامی که مهاجرت بین دو مکان ثابت رخ می‌دهد، کپی کردن افزایشی را می‌توان برای بهبود سرعت مهاجرت به کار گرفت. وایتیکر و همکاران{۶۶} تلاش کردند تا سیار بودن کاربر را از طریق طراحی یک VMM قابل برنامه ریزی و توسعه پذیر پیاده سازی کنند. این سیستم عملکردی شبیه به ISR از طریق یکپارچه سازی یک مکانیسم شروع مجدد-نقطه بررسی با سیستم فایل NFS را فراهم می‌کند. مهاجرت VM در سه مرحله انجام می‌شود: نقطه‌ی بررسی حالت‌های VM، انتقال فایل حالت به NFS، و بازکردن بسته‌ی آن به یک VM جدید ایجاد شده بر روی سرویس دهنده‌ی مورد نظر.
در رابطه با همین مسئله در{۶۴}، ساپونتازکی و همکاران{۵۷} یک معماری سیستم مبتنی بر کپسول با نام اشتراکی ایجاد کردند. آن‌ها تمامی وضعیت‌ها (دیسک، حافظه، ثبت‌های CPU و دستگاههای I/O) ی یک کامپیوتر در حال اجرا را به عنوان یک کپسول فراخوانی می‌کرد. به منظور کاهش داده‌های در حال انتقال در بستر شبکه، کپسول‌ها به شکل سلسله مراتبی درختی با به کارگیری فناوری کپی در حال نوشتن (COW) ذخیره شدند. یک کپسول جدید بر اساس کپسول موجود ایجاد می‌شود و تمامی کپسول‌های جدید در یک فایل جداگانه ذخیره می‌شود. در ادامه، چندین بهینه سازی دیگر برای افزایش سرعت مهاجرت یک کپسول طراحی شدند، بهینه سازی‌هاییمانند بالون سازی، واکشی بر حسب تقاضای سازه‌های دیسک، ناهمتاسازی داده و فشرده سازی.
در کاری متفاوت از پیاده سازی‌های مبتنی بر VMM در {۶۴}، {۶۶} و {۶۷}، عصمان و همکاران {۹} بر روی مهاجرت مجموعه‌ای از فرایندها به جای کل ماشین از طریق افزودن یک لایه بر روی یک سیستم عامل تمرکز کرد که مجازی سازی زپ نامیده می‌شد. زپ یک مفهوم دامنه‌ی فرایند (pod) بود که مجموعه‌ای از فرایندها را در فضای نام خصوصی مجزا می‌کند. یک pod یک ابزار خودمختار است و از سیستم عامل زیرمبنای آن مستقل است، بنابراین می‌توان آن را بین ماشین‌ها مهاجرت داد. زپ همچنین از مکانیسم شروع مجدد – نقطه‌ی بررسی برای پیاده سازی مهاجرت pod استفاده می‌کرد. این سیستم سیار بودن برنامه را بر روی مقیاس کوچکتری – سطح فرایند – تحقق داد که این کار با پیچیدگی پیاده سازی بالاتری همراه بود.
ما تنها فناوری مهاجرت غیرزنده را خلاصه کردیم و مزایا و معایبشان را در جدول ۱-۳ آورده‌ایم. با توجه به جدول می‌توانیم ببینیم که مجازی سازی یک فناوری مهم برای مهاجرت غیرزنده است. این فناوری یک محیط اجرایی یا دسته‌ای از فرایندها را درون یک بسته‌ی قابل جا به جایی بسته بندی می‌کند. سپس مکانیسم‌های متفاوتی برای کاهش داده‌های انتقالی (مانند استفاده از سیستم ذخیره سازی مشترک (NFS)) و شتاب دهی به سرعت انتقال (مانند ناهمتاسازی و فشرده سازی) به کار گرفته شدند. به طور کلی این مطالعات پنجره‌ای جدید به سوی مدیریت کارامد فضای ابری باز کردند و جایگزین مهاجرت زنده‌ی VM شدند. ترکیب تعویق/ از سرگیری و NFS ساده است، ولی با سرعت مهاجرت آهسته روبرو است. راهکار مبتنی بر بسته و راهکار مبتنی بر POD می‌تواند یک محیط اجرایی را با سرعت مهاجرت دهد. ولی سلسله مراتب بسته‌ی درختی موجب هزینه‌ی مدیریتی بالا می‌شود و مفهوم دامنه‌ی فرایند پیچیدگی پیاده سازی بالایی دارد.

 

برای مطالعه کامل این مقاله می‌توانید مجله چاپی شماره ۲۹۸ ماهنامه رایانه را تهیه فرمائید.

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

It is main inner container footer text