الهه موبد
کارشناس شبکه های مایکروسافت

Quorum چیست؟ معرفی 4 نوع Quorum در Failover Clustering مایکروسافت

قبلا آقای نصیری در مورد Failover Cluster مطالب مفصلی ارائه داده اند. این مطالب را می توانید در لینک های زیر مطالعه کنید.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

در این مقاله سعی بر آن شده تا به مفهوم Quorum در Failover Cluster به صورت جداگانه پرداخته شود.

Quorum در Failover Cluster چیست؟

Quorum در لغت به معنای حد نصاب است. در Failover Cluster این Quorum است که مشخص می کند چه تعداد خرابی و نقص را کلاستر می تواند تحمل کند و همچنان آنلاین بماند. اگر خرابی ها در کلاستر بیشتر از حد مشخص شده باشد کلاستر متوقف می شود.Quorum برای این طراحی شده که کلاستر را هنگام بروز مشکل در ارتباط بین گره ها، handle کند تا دو سرور به صورت همزمان سعی در میزبانی گروه منابع نکنند و برای مثال در یک زمان روی یک دیسک یکسان اطلاعات را ننویسند. این مفهوم را split brain (مغز تقسیم شده) می گویند که هدف جلوگیری از آن است.

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

دلیل پیکربندی Quorum چیست؟

برای بالا بردن میزان در دسترس بودن (high availability) کلاستر و رول هایی که در کلاستر وجود دارند، وجود پیکربندی مناسبی برای Quorum مهم است. به دلایل زیر پیکر بندی Quorum اثر مستقیمی روی high availability کلاستر دارد:

  • می تواند کمک کند تا مطمئن شوید که failover cluster در صورت تغییر عضو فعال، به طور مناسب به کار خود ادامه می دهد. تغییر عضویت ها می تواند به طور برنامه ریزی شده و یا اتفاقی در صورت خاموش شدن یک گره و یا قطع ارتباط بین گره ها یا قطع ارتباط با storage رخ دهد.
  • زمانی که subset ی از گره ها نتواند با subset دیگری از گره ها ارتباط داشته باشد (split cluster)، این Quorum است که مطمئن می شود تنها یک subset از کلاستر وظایف کلاستر را ادامه می دهد.
  • پیکربندی یک witness کمک می کند تا کلاستر، fail شدن یک گره بیشتر را تحمل کند.(جلوتر درباره witness صحبت خواهیم کرد)
  • فاکتورهای زیر علاوه بر لزوم وجود Quorum در ادامه روند کلاسترینگ در صورت بروز مشکل مهم هستند:
  • اتصال شبکه ای بین گره های کلاستر
  • ظرفیت هر گره برای میزبانی رول های کلاستر در صورت دریافت وظیفه
  • تنظیمات اولویت که برای رول های کلاستر در نظر گرفته شده

Voting در Quorum

داشتن حد نصاب یا حداکثری رای ها بر پایه یک الگوریتم رای گیری است که بر اساس آن باید بیشتر از نصف رای دهنده ها آنلاین و قادر به ارتباط برقرار کردن با بقیه گره ها باشند. چون یک کلاستر تعداد گره های مشخص و پیکربندی Quorum مشخصی دارد، کلاستر می داند چه تعداد رای، اکثریت رای ها یا همان حد نصاب را دارد. اگر رای دهنده ها به حد نصاب نرسند، سرویس کلاستر متوقف خواهد شد. در این حالت گره ها به دیگر گره ها گوش می دهند؛ اگر گره های fail شده به شبکه متصل شوند، تا زمانی که تعداد گره ها به حد نصاب نرسند کلاستر شروع به کار نمی کند.

همانطور که گفته شد کلاستر برای به دست آوردن حد نصاب به بیشتر از نصف گره هایش نیاز دارد. برای مثال در یک کلاستر پنج گره ای، سه رای دهنده باید آنلاین باشد؛ برای یک کلاستر چهار گره ای، باز هم سه رای دهنده باید آنلاین باشد. به همین منظور پیشنهاد می شود که همیشه تعداد فرد رای دهنده در کلاستر موجود باشد.رای دهنده ها در کلاستر بسته به مدل Quorum متفاوتند. علاوه بر گره های کلاستر که حق رای دارند یک disk و یا یک file share نیز می تواند یک رای دهنده باشد.

انواع Quorum

چهار نوع Quorum وجود دارد:

1. Node Majority

این ساده ترین نوع برای درک Quorum است و برای کلاسترهای با تعداد گره های فرد (سه گره، پنج گره و ...) پیشنهاد می شود. در این نوع پیکربندی هر گره یک رای دارد، پس در کل تعداد فرد رای در کلاستر وجود دارد. اگر کلاستر به دو subset تبدیل شود، subset با بیشتر از نصف گره ها حد نصاب را در اختیار دارد. برای مثال اگر یک کلاستر پنج گره ای به دو subset سه گره ای و دو گره ای بخش شود، subset سه گره ای آنلاین باقی می ماند و subset دو گره ای آفلاین شده تا زمانی که بتواند دوباره با subset سه گره ای ارتباط برقرار کند.

2. Node & Disk Majority

از این نوع پیکربندی زمانی استفاده می شود که در کلاستر تعداد زوج گره داشته باشیم (دو گره، چهار گره و ...). در این نوع پیکربندی هر گره یک رای دارد و علاوه بر آن یک دیسک هم یک حق رای دارد. پس در کل تعداد فرد رای را خواهیم داشت.این دیسک Disk Witness یا دیسک شاهد نام دارد (گاهی به عنوان quorum disk هم منتسب است) و در واقع یک دیسک کلاستری کوچک است که در گروه Cluster Available Storage قرار دارد. این دیسک بخشی از گروه Cluster Core Resources است و عموما در Failover Cluster Manager به صورت پنهان است.

اگر کلاستر به دو subset تقسیم شود، subset با بیشتر از نصف رای ها حد نصاب را در اختیار دارد. برای مثال اگر یک کلاستر چهار گره ای با یک Disk Witness به دو subset دو گره ای تقسیم شود، subset ی که مالک Disk Witness است سه رای دارد، پس حد نصاب را در اختیار داشته و آنلاین باقی می ماند و subset دو گره ای آفلاین می شود تا زمانی که بتواند با subset دیگر ارتباط برقرار کند. در این حالت کلاستر می تواند ارتباطش را با دو رای دهنده از دست بدهد خواه این دو رای دهنده دو گره باشد خواه یک گره و Disk Witness.

3. Node & File Share Majority

این نوع معمولا در کلاسترهای multi-site استفاده می شود و برای تعداد گره های زوج کاربرد دارد پس با نوع Node and Disk Majority تبادل پذیر است. هر گره یک رای دارد و علاوه بر آن یک remote file share هم یک رای دارد.این فایل، (File Share Witness (FSW نام دارد و در واقع یک file share روی هر سروری در AD Forest است که تمام گره های کلاستر به آن دسترسی دارند. یک گره در کلاستر یک قفل روی این file share می گذارد تا مالک آن شود و اگر گره مالک فایل fail شود یکی دیگر از گره ها قفل فایل را تصرف می کند تا مالک جدید آن شود.

عموما کلاسترهای multi-site دو سایت با تعداد برابر و تعداد زوج گره ها دارند. با اضافه شدن این رای در سایت سوم، تعداد فرد رای را در کلاستر خواهیم داشت (با هزینه بسیار کم در مقایسه با استقرار سایت سوم با گره های فعال کلاستر و DC قابل نوشتن). این بدان معناست که هر کدام از سایت ها و یا FSW می تواند fail شود و همچنان کلاستر حد نصاب خود را داشته باشد. برای مثال برای یک کلاستر multi-site با دو گره در سایت اول و دو گره در سایت دوم و FSW در سایت سوم تعداد پنج رای خواهیم داشت. اگر این کلاستر به دو بخش در سایت ها تقسیم شود، سایتی که شامل گره مالک FSW است سه رای دارد و آنلاین می ماند. سایت دو گره ای آفلاین می شود تا زمانی که بتواند با سایت دارای سه رای ارتباط برقرار کند.

4. Legacy: Disk Only

این نوع Quorum پیشنهاد نمی شود زیرا فقط یک single point of failure دارد.نوع Disk Only در ویندوز سرور 2003 موجود بود و برای سازگاری (compatibility) هنوز نیز موجود است. در این نوع فقط Disk Witness است که یک رای دارد و دیگر هیچ رای دهنده ای در کلاستر نیست. این بدان معنی است که اگر دیسک unavailable شود تمام کلاستر آفلاین خواهد شد و این همان مفهوم single point of failure است.

برخی از این پیکربندی استفاده می کنند تا last man standing (مقاومت تا پای جان!) را در کلاسترینگ داشته باشند یعنی کلاستر آنلاین باقی می ماند تا زمانی که هر تک گره ای هنوز در کلاستر کار کند و به دیسک کلاستر دسترسی داشته باشد. در این نوع پیکربندی مهم است که بدانیم آیا آخرین گره باقی مانده ظرفیت آن را دارد که بتواند بار کاری که از دیگر گره های کلاستر به آن می رسد را handle کند یا نه.

Default Quorum Selection

هنگامی که کلاستر با استفاده از Failover Cluster Manager، Cluster.exe یا PowerShell ساخته می شود، کلاستر به صورت اتوماتیک بهترین نوع Quorum را با توجه به تعداد گره ها و storage موجود انتخاب می کند. منطق این انتخاب به شکل زیر است:

  • • تعداد فرد گره ها : Node Majority
  • • تعداد زوج گره ها با Available Cluster Disk : Node and Disk Majority
  • • تعداد زوج گره ها بدون Available Cluster Disk:

Node Majority

کلاستر هیچ گاه Node and File Share Majority و Legacy Disk Only را انتخاب نمی کند.نوع Quorum توسط admin قابل تغییر است. برای این کار در Failover Cluster Manager روی نام کلاستر راست کلیک کرده و روی گزینه More Actions اشاره رفته و گزینه Configure Cluster Quorum Settings را انتخاب می کنیم تا ویزارد مربوط به آن باز شود. در این ویزارد امکان پیکربندی چهار نوع Quorum، تغییر Disk Witness یا File Share Witness وجود دارد. این ویزارد با توجه به پیکربندی که انتخاب کرده اید تعداد خرابی و نقص هایی که کلاستر می تواند تحمل کند را نیز به شما نشان می دهد.


نظرات