Fault Tolerance قسمت دوم

مجازی سازی

رایانش ابری

با توجه به مطالبی که در قسمت اول از آموزش Fault Tolerance خدمتتان ارائه کردم وقت بر آن رسیده است تا نحوه کارکرد این تکنولوژی در پلتفرم مجازی سازی vSphere 6.0 آشنا شویم تا به طور صحیح متوجه شویم که در چه زمانی از آن استفاده کنیم و چه زمانی استفاده کردن از آن غلط می باشد.

ابتدا به شکل زیر توجه نمایید :

 

 

Fault Tolerance

در شکل زیر قابلیت Fault Tolerance بر روی ماشین مجازی که دارای 4 vCPU می باشد فعال شده است که این امر باعث می شود یک کپی با نام Shadow و یا Secondary بر روی سرور دومی ایجاد گردد .

در ابتدا برای ایجاد شدن این ماشین ثانویه زمان زیادی صرف می شود زیرا این ماشین باید از تمام لحاظ با ماشین اولیه یکسان باشد، از لحاظ های :

  • RAM
  • CPU
  • Disk
  • Cache

که ایجاد کردن و سینک کردن این 4 مورد در هنگام فعال سازی Fault Tolerance به نسبت زمان زیادی را به خود اختصاص می دهد.

اما بعد از اینکه این اتفاق رخ داد ، دو ماشین مجازی به کار معمول خود ادامه می دهند. دو ماشین به صورت همزمان کار می کنند ولی جواب تمامی تراکنش ها فقط از ماشین اولیه خارج می شود و ماشین ثانویه خود را به ماشین اولیه سینک می کند.

اگر به دقت به شکل نگاه کنید ، از اصطلاحی استفاده شده است که کمتر به توضیح آن می پردازند و آن اصطلاح Checkpoint می باشد ، در ادامه به توضیح این اصطلاح می پردازیم .

Checkpoint: این کلمه به معنی سینک شدن کامل تمامی 4 جزء :

 

  • RAM
  • CPU
  • Disk
  • Cache

می باشد.در هنگام ایجاد شدن Checkpoint ماشین مجازی اولیه برای مدت بسیار کوتاهی Pause می شود تا ماشین دوم بتواند به صورت کامل با آن سینک شود و پس از ایجاد شدن Checkpoint ماشین مجازی اولیه از حالت Pause خارج می شود و به کار خود ادامه می دهد.این زمان به اندازه ای کوتاه است که کاربر و یا ادمین متوجه نخواهد شد اما معایبی هم دارد .

با توجه به اینکه تعداد رم و CPU افزایش بسیار زیادی نسبت به ورژن های قبلیFault Tolerance داشته است اطلاعات زیادی برای هر Checkpoint باید بین دو ماشین مجازی سینک شود به همین دلیل اگر کارت شبکه 10G استفاده نکنیم این زمان های Pause بیشتر به طول می انجامند و باعث می شود که در کار ماشین مجازی ما Latency یا تاخیر ایجاد گردد.

با توجه با ایجاد شدن Checkpoint های زیاد در مرور زمان برای سینک کردن ماشین های مجازی و عملیات Pause شدن آنها از این تکنولوژی نباید بر روی ماشین هایی با تراکنش های (OLTP(Online Transaction Processing استفاده کرد زیرا تاخیر بوجود آمده به واسطه Pause شدن ماشین مجازی باعث ایجاد Latency و در نهایت Fail شدن برخی از تراکنش ها می شود که این امر به هیچ وجه مطلوب نمی باشد.

fault tolerance

حال اگر بخواهیم دقیق تر در مورد Checkpoint صحبت کنیم باید شکل بالا را در نظر بگیریم .

زمانی که بخواهد این اتفاق Checkpoint بیافتد ماشین مجازی اولیه Pause می شود و تمامی اطلاعات خود را به ماشین مجازی دوم می فرستد و منتظر می ماند تا ماشین مجازی دوم تمامی این اطلاعات را در رم و CPU و دیسک خود سینک کند و به ماشین مجازی اولیه خبر دهد که این خبر دادن همان Acknowledge می باشد که در شکل بالا به صورت ACKs مشخص شده است.

زمانی که ماشین مجازی اولیه این ACK را دریافت می کند ، خود را از حالت Pause خارج می کند و به کار خود ادامه می دهد.

پس نتیجه می گیریم که این زمان Pasue شدن ماشین مجازی اولیه بسیار مهم می باشد و نباید به طول بیانجامد زیرا کاربری سرور ها را مختل می کند.

در نهایت باید بدانیم هنگامی که Checkpoint صورت می گیرد اصطلاحا به ماشین های مجازی می گویند که در Lock Step می باشند بدین معنی که در هر زمان اطلاعات دو ماشین مجازی با هم سینک است.

نظرات