در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

معرفی قابلیت Fault Tolerance و FT Logging در VSPhere - قسمت 6

خوب تا به حال 5 قسمت از سری آموزشی Fault Tolerance در VMware را با هم در ITPRO مرور کردیم ، امیدوارم تا اینجای کار به مفاهیم اصلی این سرویس زیبا پی برده باشید . دوست داریم همیشه در ITPRO بهترین مطالب و با کیفیت ترین آنها بصورت متفاوت از سایر وب سایت ها عنوان شود . این مقاله آخرین مقاله از سری آموزشی FT خواهد بود و به امید خدا در آینده ای نه چندان دور پیاده سازی این سروی را نیز بصورت کاملا کاربردی و عملی به شما آموزش خواهیم داد.

در این مقاله به شما ITPRO های عزیز می خواهیم اطلاعات علاوه بر سازمانی که باید در خصوص FT بدانید و همچنین نکات ریزی که در پیاده سازی کردن این سرویس حتما باید در نظر بگیری را برای شما عنوان کنیم . موارد زیر اطلاعات بیشتری در خصوص درک مفهوم FT و نحوه پیاده سازی آن به شما می دهد که حتما برای شما هم جالب خواهد بود.


ملاحظات مهم در خصوص سرویس FT

VMware برای اینکه بتواند تکنولوژی vLockstep را پیاده سازی کند زمان بسیار زیادی را به پالایش کردن و تجزیه و تحلیل پردازنده های فیزیکی شرکت های AMD و Intel اختصاص داد ، با استفاده از این تکنولوژی کلیه تبادلاتی که هنوز در حافظه سیستم ثبت نشده اند و بصورت کامل پردازش آنها قطعی نشده است به همراه همه دستورالعمل ها بصورت کامل از CPU سیستم اصلی به داخل CPU سیستم جانبی عینا تکرار می شوند.

در واقع هر چیزی که در لحظه در CPU اصلی در حال اجرا شدن است در همان لحظه در CPU دوم که در اختیار VM دوم است نیز تکرار می شود و این دو سیستم با یکدیگر کاملا همگام سازی می شوند به گونه ای که حتی دستوراتی که داخل CPU وجود دارد در CPU دوم نیز تکرار شده و وجود خواهند داشت. تمامی داده ها بین سیستم ها همگام سازی می شوند و تقریبا می توانیم بگوییم Data Loss یا از بین رفتن داده ها بین این دو سیستم صفر است.

در زمانیکه یک مشکل سخت افزاری پیش بیاید در واقع فقط یک IP Packet است که مجددا ارسال می شود و هرگز اختلالی در سرویس دهی ایجاد نمی شود و Data Loss وجود نخواهد داشت ، همانطور که گفتیم حتی آخرین دستوراتی که داخل CPU مربوط به Primary VM وجود داشته است در CPU مربوط به Secondary VM هم وجود خواهد داشت و به عنوان آخرین ورودی بلافاصله بعد از بروز مشکل شروع به فعالیت می کند.


VlockStep چیست


FT از یک ویژگی خاص در CPU ها استفاده نمی کند که بگوییم هر CPU ای که دارای این ویژگی باشد می تواند در FT استفاده شود در عوض فقط از یک خانواده خاص از CPU ها پشتیبانی می کند و تا این خانواده از CPU را در اختیار نداشته باشد نمی تواند کار کند. همانطور که عنوان کردیم vLockstep بیشتر یک راهکار نرم افزاری است که وابسته به وظایف اصلی است که توسط CPU انجام می شود.

لایه نرم افزار تمامی دستورالعمل هایی که داخل CPU وجود دارد را در لایه VM ضبط یا Record می کند و برای انجام اینکار وابسته به پردازنده سیستم است ، انجام شدن این فرآیند Record نیازمند یک قابلیت زمانبندی بسیار دقیق در CPU ها است و VMware هم برای اینکه بتواند این قابلیت را داشته باشد به CPU هایی از شرکت های AMD و Intel نیاز داشت که بتوانند حداکثر صحت و تمامیت از نظر دستورالعمل ها و زمانبندی را ارائه بدهند. ابزار SiteSurvey به داخل CPU شما توجهی نمی کند که آیا قابلیت vLockstep را دارد یا خیر بلکه فقط به مدل های و خانواده های خاصی از CPU توجه می کند، اگر CPU شما جزو آن دسته از CPU هایی باشد که FT را پشتیبانی می کند به شما گزارش هماهنگی می دهد .

در غیر اینصورت به شما گزارش عدم هماهنگی می دهد. در آینده VMware به احتمال زیاد ابزار SiteSurvey خودش را بروز رسانی می کند که در گزارش خودش بر اساس CPU-ID هم گزارش بدهد که آیا قابلیت پشتیبانی از FT دارد یا خیر ، در حال حاضر فقط یک سری خانواده CPU مشخص را پشتیبانی می کند و امکانسنجی در نرم افزار وجود ندارد.


زمانیکه ارتباط شبکه بین دو Host قطع شود که در اصطلاح فنی به آن Split-Brain گفته می شود ، Secondary VM تلاش می کند که خودش را تبدیل به Primary VM کند چون تصورش این است که Host اصلی دچار مشکل شده است و باید به سرعت سرویس دهی را شروع کند ، در چنین حالتی ممکن است دو عدد Primary VM در لحظه در شبکه ایجاد شود. برای جلوگیری از به وجود آمدن چنین مشکلی از یک قفل یا Lock که درون یک فایل خاص در FT ایجاد می شود استفاده می شود.

زمانیکه یک خرابی تشخیص داده شود هر دو VM تلاش می کنند که این فایل را تغییر نام بدهند ، اگر Secondary VM موفق به تغییر دادن اسم این فایل شود تبدیل به Primary VM می شود و یک Secondary VM جدید هم در Host دیگری در Cluster ایجاد می کند. حال اگر Secondary VM موفق به تغییر اسم فایل نشود و دلیل آن روش بودن Primary VM باشد ، Secondary VM از بین می رود و یک Secondary VM جدید در Host دیگری در Cluster ایجاد می شود.


برای تعداد Host هایی که می توانند درون یک FT-Cluster قرار بگیرند محدودیتی وجود ندارد اما شما نمی توانید از برای VM هایی که FT بر روی آنها فعال شدن است Span Cluster ایجاد کنید. شاید در نسخه های بعدی از VSPhere این قابلیت پشتیبانی شود و شما بتوانید از Spanning Clusters هم استفاده کنید. یک API برای FT وجود دارد که امکان انجام دادن برخی از کارها مثل فعال و غیرفعال کردن FT با استفاده از PowerShell را به شما می دهد و شما برخی کارهای مربوط به FT را می توانید از طریق اسکریپت نویسی انجام دهید.

در حال حاضر شما می توانید بر روی هر کدام از Host های خودتان حداکثر 4 عدد VM داشته باشید که در حالت FT کار کنند ، البته توجه کنید بر روی هر Host نه بر روی هر Cluster ، البته این یک محدودیت عجیب و غریب نیست ، در واقع اگر بیشتر از این تعداد شما VM را در حالت FT بر روی یک Host قرار بدهید کارایی Host و شبکه شما دچار اختلال می شود.نسخه های فعلی FT به گونه ای طراحی شده اند که فقط می توانند بین Host های یک Datacenter قابلیت FT را ایجاد کنند و هنوز نمی توانند بر روی شبکه های WAN و لینک های سرعت پایین ، بین Datacenter ها کار کنند و این امر هم طبیعی است ، مشکلات مربوط به سرعت و تاخیر ارسال و دریافت و همچنین مشکلات failover شدن بین سایت ها در حال حاضر زیاد است . شاید در نسخه های بعدی امکان ایجاد کردن FT بین Datacenter ها هم با مهندسی بیشتر در این حوزه امکانپذیر شود.


تصویر مروبط به Spanning Clusters یا Stretched Cluster


توجه کنید که در صورتیکه Secondary VM نتواند به اندازه کافی منابع پردازشی از CPU دریافت کند ممکن است باعث کند شدن Primary VM شود. البته شاید این کندی از نظر شما چیزی نباشد و بین 1 یا حداکثر چند ثانیه باشد اما به هر حال در فرآیند های کلان سازمانی همین چند ثانیه هم ممکن است مهم باشد. برای برطرف کردن این مشکل باید مطمئن باشید که سرعت CPU های Host ها یکسان هستند و از طرفی از طریق اعمال برخی تنظیمات بر روی Primary VM به نام CPU Reservation شما می توانید مطمئن شوید که سرعت CPU مربوط به VM ها هم یکسان است ، اگر در چنین حالتی Primary VM احساس کند که Secondary VM بر روی یکی از Host ها باعث ایجاد کندی برای Primary VM می شود ، بلافاصله Secondary VM مشکل ساز را از مدار خارج و یک Secondary VM جدید بر روی یک Host جدید در Cluster ها ایجاد می کند.

CPU Reservation در VM در FT


بروز رسانی و Patch کردن Host ها در زمانیکه شما از سرویس FT استفاده می کنید کمی ممکن است مشکل ساز شود و نیاز به کمی مهارت در انجام این کار وجود دارد ، توجه کنید که هر دو Host ای که در FT قرار می گیرند باید در یک سطح باشند و تمامی Patch هایی که در یک سمت وجود دارد در سمت دیگر نیز بایستی وجود داشته باشد ، برای انجام اینکار دو روش پیشنهاد می شود.

ساده ترین روش این است که زمانیکه می خواهید Host ها را بروز رسانی کنید سرویس FT را بصورت موقتی غیرفعال کنید و عملیات بروز رسانی خود را انجام دهید و بعد از اتمام فرآیند بروز رسانی و یکسان شدن Host ها مجددا سرویس FT را بر روی VM های مورد نظرتان فعال کنید. اما در چنین حالتی هم شما Downtime دارید و ممکن است مدت زمان طولانی طول بکشد که Host های شما بروز رسانی شود ، روش بهتر این است که شما اگر دو یا چهار عدد Host بر روی Cluster خودتان دارید ، VM هایی که بر روی آنها FT فعال شده است را بر روی Host های دیگری که وجود دارند VMotion کنید و بعد از بروز رسانی Host های قبلی ، مجددا VM ها را به محل قبلی خودشان VMotion کنید و FT را فعال کنید. با این روش شما Downtime نخواهید داشت. بعد از انجام اینکار شما می توانید سایر Host ها را هم بروز رسانی کنید.


FT براحتی قابل پیاده سازی ، فعال و غیرفعال کردن در هر لحظه است ، بعضا زمانیکه شما می خواهید مواردی از قبیل SVMotion ، Snapshot ، Hot-Add و یا ... را که توسط FT پشتیبانی نمی شود را انجام دهید می توانید بصورت لحظه ای آن را غیرفعال کنید و سپس بعد از انجام کار آن را فعال کنید. برخی اوقات شما نمی خواهید یک VM را بصورت دائمی در FT داشته باشد و صرفا جهت انجام یک فرآیند مقطعی دسترسی پذیری یک VM مهم است و شما می توانید برای مدت زمان خاصی FT را برای آن VM فعال کنید .

برای مثال ممکن است یک فرآیند پردازشی سازمانی داشته باشید که چند روز نیاز به کار داشته باشد و در این میان دسترسی پذیری سرور بسیار مهم است ، شما می توانید در چنین مواردی FT را فعال کنید و پس از اتمام کار آن را غیرفعال کنید. زمانیکه FT فعال می شود هرگونه محدودیت استفاده از حافظه یا Memory Limit از روی Primary VM حذف می شود و Memory Reservation هم دقیقا برابر با RAM ای خواهد شد که به VM اختصاص داده شده است. زمانیکه FT فعال شده باشد شما نمی توانید Memory Limit ، Memory Reservation ، Share ها و .. را از روی Primary VM تغییر بدهید.


خلاصه

در این سری آموزشی در انجمن تخصصی فناوری اطلاعات ایران من Unity بعد از چند روز که هیچ مطلب و مقاله خاصی در وب سایت قرار ندادم تصمیم گرفتم یکی از محبوب ترین و البته پیشرفته ترین سرویس های موجود در VSPhere به نام Fault Tolerance را برای شما تشریح کنم ، البته قطعا نکات در خصوص پیاده سازی و استفاده از اینگونه قابلیت های VSPhere بسیار زیاد است و ما سعی کردیم تا جای ممکن بهترین کیفیت را در ITPRO به شما ارائه بدهیم .

در نهایت شما باید مستندات مربوط به پیاده سازی این قابلیت را به خوبی مطالعه کنید و از جهتی حتما بصورت عملی FT را پیاده سازی کنید تا تجربه کاری شما هم بالا برود ، شاید باور نکنید که نوشتن این سری مطالب در خصوص FT به یکباره به ذهنم خطور کرد و بعد از پیاده سازی FT در محیط شرکت تصمیم گرفتم که در خصوص این سرویس مطلبی ارائه کنم ، امیدوارم مورد توجه شما قرار گرفته باشد ولی واقعا حلال نمی کنم اگر این مطلب رو کپی کنید و نام نویسنده و منبع را ذکر نکنید. ITPRO باشید


نویسنده : محمد نصیری
منبع : جزیره مجازی سازی وب سایت توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد
#معرفی_سرویس_fault_tolerance_در_vmware #paravirtualization_چیست #stretched_cluster_در_vmware #تفاوت_vmotion_و_storage_vmotion #پیشنیازهای_راه_اندازی_سرویس_ft_در_vmware #کاربرد_vlockstep_چیست #intel-vt_چیست #معرفی_قابلیت_storage_drs_در_vmware #کاربرد_cpu_reservation_در_vmware #flash_read_cache_چیست
عنوان
1 معرفی قابلیت Fault Tolerance و FT Logging در VSPhere - قسمت 1 رایگان
2 معرفی قابلیت Fault Tolerance و FT Logging در VSPhere - قسمت 2 رایگان
3 معرفی قابلیت Fault Tolerance و FT Logging در VSPhere - قسمت 3 رایگان
4 معرفی قابلیت Fault Tolerance و FT Logging در VSPhere - قسمت 4 رایگان
5 معرفی قابلیت Fault Tolerance و FT Logging در VSPhere - قسمت 5 رایگان
6 معرفی قابلیت Fault Tolerance و FT Logging در VSPhere - قسمت 6 رایگان
زمان و قیمت کل 0″ 0
8 نظر
فرهاد خانلری

محمد جان با این سری از مقاله ات انقلابی نو به پا کردی.

واقعاً خسته نباشید و ایشالا همیشه پر انرژی باشی دوست من.

جعفر قنبری شوهانی

خیلی عالیه

از این همه انرژی آدم لذت میبره

مهدی باقری

محمد جان دم شما گرم واقعا که بمب افکنی

ما نمیرسیم با سرعت نوشتن شما بخونیم !؟

کی وقت میکنی بنویسی ما شاا...

عالی بود عالی

محمد نصیری

وقتی ITPRO بچت باشه ... و بچت همه زندگیت ... واسش جوری زمان میزاری که تصورش سخته ... مهم اینه باور کنی ITPRO متفاوت هست و آینده رو تغییر میده ...

فرهاد خانلری

یه روز خوب میاد ، بلاخره پیداش میشه رنگین کمون.

میثم رضوان دوست

خیلی رسا و کامل ممنون

Ali Heidari

جناب نصیری

با سلام و تشکر از زحمات شما

یه سوال خدمتتون داشتم. تو سناریوهایی که پیاده سازی میشهبرای مبحث faul tolerance , از راهکارهای مایکروسافت استفاده کنیم بهتره یا vmware.

مثلا جایی داریم که بستر مجازی سازی با چند تاesxi هاست داره. وب سرویس و بانک اطلاعاتی sql هم جز vm ها هست. که برای سازمان خیلی حیاتیه . برای تحمل خطا چه روشی پیشنهاد میشه؟

ممنون از شما

محمد نصیری

سلام و عرض ادب و احترام ، بستگی به شرایط داره ... ولی در کل اگر دو تا ESXi کنار هم دارید FT برای هر دو بهتر هست ... چون کل سیستم رو Clone می کنه

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....