کلاسترینگ (خوشهبندی) و کوارم (حد نصاب)
کوارم مشخص کننده حداقل تعداد گرههایی است که در یک کلاستر (خوشه) از گرههای افزونه بایستی فعال باشند تا آن کلاستر از گرهها به فعالیت خود ادامه دهد. هنگامیکه یک گره از کار میافتد و کنترل به دیگر گرهها داده میشود، سیستم بایستی طمینان پیدا کند که دادهها و فرآیندها، صحیح و یکسان باقی میمانند. به منظور مشخص کردن این مهم محتویات گرههای باقی مانده مقایسه میشود و اگر اختلافی در آنها دیده شود، قانون الگوریتم رأی اکثریت اجرا میشود.
به همین علت، تعداد گره هر کلاستر در یک محیط دسترس پذیری بالا بایستی عددی فرد باشد، و کوارم بیشتر از نصف تعداد گرهها تعیین شود. اگر چندین گره از کار بیفتند به طوریکه سایز کلاستر به کمتر از مقدار کوارم برسد، این کلاستر متوقف میشود.
به طور مثال در یک کلاستر با هفت گره، کوارم به این صورت تعریف میشود: floor(7/2) + 1 == 4. اگر کوارم چهار باشد و چهار گره به صورت همزمان از کار بیفتد، کل کلاستر متوقف میشود. و اگر حداکثر سه گره از کار بیفتد کلاستر به فعالیت خود ادامه میدهد. در صورتیکه کلاستر به دو قسمت سه و چهارتایی تقسیم شود، کوارم چهار گره با قسمت اکثریت به کار خود ادامه میدهد و فعالیت قسمت اقلیت متوقف و بلاک میشود.
پیشنهاد نمیشود که عدد کوارم با مقادیری کمتر از floor(n/2) + 1 تنظیم شود، چرا که هنگام قسمت شدن شبکه موجب split brain میشود.
هنگامیکه چهار گره به صورت همزمان از کار بیفتند، کلاستر به فعالیت خود ادامه میدهد. ولی اگر شبکه به دو قسمت سه و چهار گره تقسیم شود، کوارم سه باعث میشود هر دو قسمت تلاش کنند تا از فعالیت یکدیگر ممانعت کنند و به این ترتیب دو نسخه از هر منبع همزمان اجرا میشود.
به همین علت تنظیم کوارم به مقادیری کمتر از floor(n/2) + 1 خطرناک است. البته ممکن است در یک شرایط موقتی و در حالتی که از پایین بودن سایر گرهها کاملا مطمئن هستیم مجبور به این کار شویم.
هنگام راهاندازی محیط OpenStack در شرایط آزمایشگاهی، میتوان کوارم را غیر فعال کرد. ولی در محیطهای صنعتی همواره بایستی کوارم فعال باشد.
مود دسترس پذیری بالا در یک کنترلر
OpenStack از مود دسترس پذیری بالا در یک کنترلر پشتیبانی میکند. در این حالت سرویسهای OpenStack توسط سایر سرویسهای مرتبط با محیط در دسترس پذیری بالا مدیریت میشوند. ولی در حقیقت چون کنترلر افزونهای وجود ندارد، در عمل دسترس پذیری بالا نیز وجود نخواهد داشت. از این محیط میتوان به منظور راست آزمایی و در محیطهای آزمایشگاهی استفاده کرد و برای محیطهای صنعتی مناسب نیست.
این امکان وجود دارد که کنترلرهای بیشتری به این محیط اضافه کنیم تا این محیط به یک محیط واقعی دسترس پذیری بالا تبدیل شود.
دسترس پذیری بالا برای کاربران عادی نیست و دارای چالشهای است. این محیط ممکن است برای پایگاه دادهها یا سیستمهایی با حجم دادهی زیاد بسیار پیچیده باشد. تکثیر دادهها ممکن است باعث از کار افتادن سیستمهای بزرگ شود. همچنین در نظر داشته باشید که راهاندازیهای مختلف، پیش نیازات نصب متفاوتی را طلب میکند.
نکته: دسترس پذیری بالا به طور پیش فرض در OpenStack غیر فعال است.