تحمل پذیری خطا Fault Tolerance ماشین مجازی در VMWare
تحمل پذیری خطا Fault Tolerance ماشین مجازی در VMWare، در مقاله قبل به مفهوم و نحوه پیاده سازی دسترسی بالا (High Availability) در محیط VMware vSphere پرداختیم. مفهوم تحمل پذیری خطا FT گاها با دسترسی بالا HA اشتباه گرفته می شود. اما باید در نظر داشت که بین این دو مفهوم تفاوت وجود دارد. در دسترسی بالا HA یک ماشین مجازی بر روی یک میزبان ESXi وجود دارد و با بروز خطا در میزبان ESXi ماشین مجازی مورد نظر بر روی یک میزبان دیگر مجدد راه اندازی می گردد. این فرایند یک مقدار زمان تاخیر خواهد داشت. اما در تحمل پذیری خطا (Fault Tolerance) از ماشین مجازی مورد نظر یک کپی دیگر در میزبان دیگر وجود دارد. بدین معنا که از یک ماشین مجازی یک نسخه همگام در میزبان دیگر وجود دارد و در شرایطی که خطایی در میزبان ESXi رخ داد، ماشین مجازی همگام سازی شده بلافاصله آماده سرویس دهی خواهد بود. در این مقاله قصد داریم به تحمل پذیری خطا (Fault Tolerance) و نحوه پیکربندی آن در محیط VMware vSphere بپردازیم.
تحمل پذیری خطا Fault Tolerance ماشین مجازی در VMWare
فهرست مطالب
- Fault Tolerance چیست
- مکانیزم عملکرد Fault Tolerance
- محدودیت های FT
- پیشنیاز ها
- راه اندازی Fault Tolerance
Fault Tolerance چیست
تحمل پذیری خطا (Fault Tolerance) یا به اختصار FT یکی از ویژگیهای پلتفرم مجازی سازی vSphere VMware است که دسترسی مداوم را برای ماشین های مجازی فراهم می نماید. در این قابلیت یک کپی ثانویه یا Shadow Copy از یک ماشین مجازی در حال اجرا ایجاد می گردد که با نمونه اولیه در زمان واقعی همگام شده است. ماشین مجازی ثانویه با استفاده از فناوری به نام vLockstep که تمام اقدامات انجام شده روی ماشین مجازی اولیه را به ماشین مجازی ثانویه منعکس می کند، فرایند همگام سازی را انجام می دهد. اگر ماشین مجازی اولیه به هر دلیلی از کار بیفتد، ماشین مجازی ثانویه بدون ایجاد اختلال در برنامه ها یا سرویس های در حال اجرا بر روی آن، به طور یکپارچه سرویس دهی را به دست میگیرد. این قابلیت سطح دسترسی بالاتری نسبت به راه حل های HA فراهم می نماید. با بهره گیری از قابلیت Fault Tolerance، نیازی به مداخله دستی یا راهاندازی مجدد ماشین مجازی نیست، و برنامه ها و سرویس های حیاتی همیشه در دسترس کاربران نهایی قرار خواهند داشت.
Fault Tolerance با حذف کوچکترین اختلالات ناشی از خرابی سخت افزار سرور، به برنامه های کاربردی حیاتی تجاری کمک می کند تا دسترسی بالایی را تجربه نمایند. با این قابلیت و امکان حذف خرابی و دسترسی بالا، در صورت خرابی در یکی از میزبان های ESXi اختلالی در شبکه سازمان رخ نخواهد داد و تداوم کسب و کار تضمین خواهد گردید که ادر نهایت به جلوگیری از ضرر های مالی سازمان منجر می گردد. VMware Fault Tolerance همچنین دسترسی مداوم برنامه های حیاتی فراهم می نماید. هنگامی که سخت افزاری از یک سرور از کار میافتد، برنامه ها بدون وقفه، قطع ارتباط کاربر یا از دست دادن داده ها به دلیل تشخیص خودکار خرابی به کار خود ادامه خواهند داد.
مکانیزم عملکرد Fault Tolerance
Fault Tolerance با ایجاد و نگهداری یک کپی همگام از یک ماشین مجازی در حال اجرا بر روی یک میزبان ثانویه فعالیت می نماید. ماشین مجازی کپی شده به طور مداوم با ماشین مجازی اولیه همگام سازی می شود. هنگامی که Fault Tolerance برای یک ماشین مجازی فعال است، ماشین مجازی اولیه و کپی آن در میزبان های جداگانه در کلاستر vSphere نگهداری می شوند. ماشین مجازی ثانویه به طور مداوم با ماشین مجازی اولیه در زمان واقعی همگام سازی می شود و تمام عملیات CPU و Memory آن را منعکس می نماید.
چنانچه ماشین مجازی اولیه به هر دلیلی از جمله خرابی سخت افزار یا خرابی سیستم عامل از کار بیفتد، ماشین مجازی کپی به طور یکپارچه، بدون هیچ گونه اختلالی در برنامه ها یا سرویس های در حال اجرا بر روی آن، شروع به سرویس دهی می نماید. ماشین مجازی دوم کاملا همگام و مشابه حالت ماشین مجازی اولیه، شامل CPU و محتویات حافظه آن را دارد و می تواند بلافاصله از جایی که ماشین مجازی اولیه متوقف شده است، پردازش را ادامه دهد.
فرایند جایگزینی ماشین دوم در شرایط خرابی به صورت اتوماتیک و بدون راه اندازی مجدد (Restart) انجام می گیرد. در شرایط خرابی هنگامی که VM ثانویه جایگزین میشود، پس از آن تبدیل به VM اولیه جدید میشود و یک کپی جدید روی میزبان دیگری در کلاستر ایجاد خواهد شد تا مجدد دسترسی بالا و تحمل پذیری خطا برقرار گردد. در تصویر زیر می توان نحوه عملکرد Fault Tolerance را مشاهده نمود.
محدودیت های FT
در حالی که Fault Tolerance سطح بالایی از دسترسی و تحمل پذیری خطا را برای ماشین های مجازی فراهم می نماید، چندین محدودیت وجود دارد که قبل استفاده از این قابلیت می بایست از آن ها آگاه باشیم.
- محدودیت به 8 vCPU: تحمل پذیری خطا FT به ماشین های مجازی با 2 vCPU یا 8 vCPU بسته به نوع لایسنس، محدود می شود. این بدان معناست که اگر ماشین مجازی شما چندین vCPU دارد، برای استفاده از Fault Tolerance باید آن را کاهش دهید.
- محدودیت تعداد ماشین مجازی: حداکثر تعداد مجاز ماشین های مجازی جهت قابلیت Fault Tolerance روی یک میزبان در کلاستر 4 عدد است. هم ماشین های مجازی اولیه و هم ماشین های مجازی ثانویه در این تعداد حساب می شوند. با این حال، اگر حجم کار در ماشین های مجازی به خوبی مدیریت شود، می توان از اعداد بزرگتر نیز استفاده نمود.
- جهت پیکربندی Fault Tolerance، سیستم می بایست شرایط خاصی را برآورده نماید. این شرایط شامل داشتن منابع CPU کافی، رعایت محدودیت های ماشین مجازی (Limit) و اطمینان از استفاده از لایسنس مناسب می باشد. هنگام پیکربندی Fault Tolerance، باید عوامل دیگری مانند نوع بار کاری، سایز ماشین های مجازی و عملکرد کلی و مقیاس پذیری محیط نیز در نظر گرفته شود.
- سازگاری سخت افزاری محدود: تحمل پذیری خطا به پیکربندی های سخت افزاری خاصی برای عملکرد صحیح نیاز دارد. جهت اطمینان از سازگاری سخت افزار با این ویژگی، می بایست راهنمای سازگاری VMware را مورد مطالعه قرار داد.
- محدود به انواع خاصی از ماشین های مجازی: تحمل پذیری خطا برای همه انواع ماشین های مجازی، مانند ماشین های مجازی با پیکربندی های خاص، در دسترس نیست. برخی از این محدودیت ها عبارتند از:
ماشین های مجازی با بیش از 16 دیسک مجازی و دیسک با اندازه بزرگتر از 2 ترابایت.
ماشین های مجازی با بیش از 128 گیگابایت RAM.
ماشین های مجازی با بیش از 8 CPU مجازی (vCPU).
ماشین های مجازی که با CPU affinity پیکربندی شدهاند.
ماشینهای مجازی با دستگاه های مجازی خاص، مانند دستگاه های USB، پورتهای Parallel و SATA Controller.
پیشنیاز های Fault Tolerance
جهت بهره وری از قابلیت Fault Tolerance می بایست از بر آورده شدن شرایط مورد نیاز اطمینان حاصل نماییم. برخی از این پیشنیاز ها عبارتند از:
- سازگاری سخت افزاری: تحمل پذیری خطا به پیکربندی های سخت افزاری خاصی جهت عملکرد صحیح نیاز دارد. برای اطمینان از سازگاری سخت افزار با این قابلیت، می بایست راهنمای سازگاری VMware را مورد مطالعه قرار دهید.
- CPU های موجود در سطح میزبان، می بایست با vSphere vMotion سازگار باشند و همچنین باید از مجازی سازی Hardware MMU پشتیبانی نمایند (Intel EPT یا AMD RVI).
- الزامات ماشین مجازی در نظر گرفته شوند. Fault Tolerance به ماشین های مجازی با 2 vCPU یا 8 vCPU (بسته به نوع لایسنس) محدود می شود.
- الزامات شبکه در نظر گرفته شود. همگام سازی بین ماشین مجازی اولیه و ثانویه نیاز به یک شبکه با پهنای باند کافی و پایدار نیاز دارد بنابراین می بایست از شبکه و قابلیت آن در مدیریت ترافیک افزوده ای که Fault Tolerance در آن ایجاد می نماید، اطمینان حاصل نمود.
- الزامات Storage و ذخیره سازی در نظر گرفته شود. FT به منابع ذخیره مازاد جهت ذخیره ماشین مجازی ثانویه نیاز دارد. بنابراین حاصل نمودن اطمینان از وجود ظرفیت کافی جهت سربار ذخیره سازی ایجاد شده توسط FT بسیار حیاتی می باشد.
- میزبان ها می بایست به Datastore های سازگار با FT، مانند ذخیره سازی اشتراکی (NAS، vSAN، NFS یا iSCSI) دسترسی داشته باشند.
- الزامات میزبان ها در نظر گرفته شود. Fault Tolerance مستلزم این است که ماشین های مجازی اولیه و ثانویه بر روی میزبان های جداگانه در یک کلاستر قرار گیرند. علاوه بر این، میزبان ها می بایست در یک کلاستر vSphere HA در حال اجرا بوده و به فضای ذخیره سازی مشترک دسترسی داشته باشد.
راه اندازی Fault Tolerance
جهت پیکربندی Fault Tolerance در ابتدا می بایست سرویس FT را در سطح VMK در شبکه فعال نماییم. این کار می بایست بر روی هر یک از میزبان ها به صورت مجزا صورت گیرد. به همین منظور میزبان مورد نظر را انتخاب نموده و با انتخاب تب Configure بر روی گزینه VMkernel Adapters کلیک می کنیم تا لیست کلی vmk ها نمایش داده شده و بتوان vmk مورد نظر را ویرایش نمود.
دقت داشته باشید که مرحله فوق می بایست بر روی تمامی میزبان های مورد نظر به صورت مجزا انجام گیرد. در مرحله بعدی می بایست ماشین مجازی که قصد داریم تحمل پذیری خطا برای آن فعال گردد را انتخاب نموده و بر روی آن کلیک راست می کنیم. در این قسمت از زیر منوی Faut Tolerance گزینه Turn on Fault Tolerance را انتخاب می کنیم. در این سناریو قصد داریم بر روی یک VM با سیستم عامل ویندوز، FT را فعال نماییم. پس از کلیک بر روی گزینه Turn on Fault Tolerance در پنجره باز شده ابتدا محل ذخیره سازی که از فضاهای اشتراکی قابل انتخاب می باشد را مشخص می کنیم.
در مرحله بعد می بایست میزبان دوم را که ماشین مجازی ثانویه بر روی آن قرار خواهد گرفت را مشخص نماییم.
در مرحله بعد با کلیک بر روی Next خلاصه ای از تنظیمات انجام شده نمایش داده خواهد شد و در پایان بر روی Finish کلیک می نماییم.
با کلیک بر روی Finish مدتی زمان نیاز است تا ماشین مجازی ثانویه ایجاد گردد. با انجام این کار آیکون ماشین مجازی نیز تغییر خواهد نمود و از سایر ماشین های مجازی دیگر تفاوت خواهد داشت و در جلوی نام ماشین مجازی عبارت (Primary) ظاهر می گردد. در نظر داشته باشید پس از انجام این کار به مقدار منابع این ماشین مجازی هم اولیه و هم ثانویه مقدار منابع رزرو خواهد شد و قابل استفاده برای سایر ماشین های مجازی نخواهد بود.
جهت اطمینان از صحت عملکرد Fault Tolerance در محیط آزمایشگاهی می بایست بر روی ماشین مجازی اولیه (Primary) یک برنامه یا حتی پینگ به مقصدی مشخص را به صورت ادامه دار اجرا نماییم. به واسطه Fault Tolerance این برنامه اجرا شده در پیش زمینه و به صورت همگام در ماشین مجازی ثانویه نیز اجرا خواهد گردید. اکنون می توان جهت تست میزبانی ESXi که ماشین مجازی اولیه (Primary) بر روی آن قرار دارد را خاموش نمود. پس از انجام این کار چندین هشدار در vCenter نمایش داده خواهد شد و ماشین مجازی ثانویه (Secondary) اکنون به عنوان اولیه (Primary) شروع به سرویس دهی خواهد نمود و سرویس دهی بدون هیچ اختلالی ادامه خواهد یافت.
نظرات کاربران