مفهوم High Availabilty (HA)
قابلیت High Availability (HA) یا دسترسپذیری بالا به ماشینهای مجازی اجازه میدهد تا بصورت اتوماتیک بر روی سروری از Resource Pool زمانیکه برای آن سرور failureی اتفاق بیفتد restart شوند. این عملکرد این اطمینان را میدهد که مدت زمان downtime برای یک ماشین مجازی تنها به مدت زمانیکه VM مزبور میبایست بر روی host دیگری restart شود محدود خواهد شد.
قابلیت HA دسترسپذیری بالا، مقرون به صرفه و سادهای را برای همه برنامههای در حال اجرا در ماشینهای مجازی مهیا میسازد. هنگام خرابی سرور فیزیکی، ماشینهای مجازی آسیبدیده بصورت خودکار روی سایر سرورهایی که دارای ظرفیت اضافه میباشند، مجدداً راهاندازی میگردند. در صورت خرابی سیستمعامل، فناوری HA، ماشین مجازی آسیبدیده را روی همان سرور فیزیکی Restart مینماید.
استفاده از HA در سازمانها قابلیتهای زیر را فراهم میسازد:
• ضمن رفع نیاز به سختافزار Standby اختصاصی و نصب نرمافزار اضافه، Downtimeهای ناگهانی و اختلال در خدمات IT را به حداقل میرساند.
• بدون هزینه و پیچیدگی راهحلهای Failover که به سیستمعامل و یا به برنامههای خاص وابستهاند، دسترسپذیری بالای یکپارچه و مقرون به صرفه در سراسر محیط مجازیسازی شده IT ایجاد نمایند.
قابلیت High Availability (HA) یا دسترسپذیری بالا به ماشینهای مجازی اجازه میدهد تا بصورت اتوماتیک بر روی سروری از Resource Pool زمانیکه برای آن سرور failureی اتفاق بیفتد restart شوند. این عملکرد این اطمینان را میدهد که مدت زمان downtime برای یک ماشین مجازی تنها به مدت زمانیکه VM مزبور میبایست بر روی host دیگری restart شود محدود خواهد شد.
قابلیت HA دسترسپذیری بالا، مقرون به صرفه و سادهای را برای همه برنامههای در حال اجرا در ماشینهای مجازی مهیا میسازد. هنگام خرابی سرور فیزیکی، ماشینهای مجازی آسیبدیده بصورت خودکار روی سایر سرورهایی که دارای ظرفیت اضافه میباشند، مجدداً راهاندازی میگردند. در صورت خرابی سیستمعامل، فناوری HA، ماشین مجازی آسیبدیده را روی همان سرور فیزیکی Restart مینماید.
استفاده از HA در سازمانها قابلیتهای زیر را فراهم میسازد:
• ضمن رفع نیاز به سختافزار Standby اختصاصی و نصب نرمافزار اضافه، Downtimeهای ناگهانی و اختلال در خدمات IT را به حداقل میرساند.
• بدون هزینه و پیچیدگی راهحلهای Failover که به سیستمعامل و یا به برنامههای خاص وابستهاند، دسترسپذیری بالای یکپارچه و مقرون به صرفه در سراسر محیط مجازیسازی شده IT ایجاد نمایند.
منظور از Server fencing چیست؟
قابلیت Sever fensing (اگر بخوام به فارسی ترجمش کنم میشه نرده کشیدن به دور سرور!) که گاهی اوقات با عنوان host fensing هم از آن یاد میشود، یک مکانیزم HA است که جهت محافظت از Cluster یا همان Resource Pool در وقوع evetی برای یک host تعیین شده زمانیکه unreachable و از دسترس خارج شود مورد استفاده قرار میگیرد. این قابلیت باعث جلوگیری از نوشتن اطلاعات توسط host مورد نظر بر روی shared storage شده و به این طریق از نوشتن و corrupt (خراب) شدن اطلاعات در آن جلوگیری کند.
شرایط زیر از self-fencing یک host جلوگیری خواهند کرد:
- در زمانیکه شبکه partition میشود (در واقع شبکه شما به دلیل failureی در آن به چند بخش تقسیم میشود)، سرورها در گروههای مختلفی قرار میگیرند و تنها سرورهایی عضو یک گروه میتوانند با هم ارتباط برقرار نمایند. در این حالت گروهی که سرورهای اکثریت را دارد، سرورهایش در حال اجرا باقی خواهند ماند (running) و گروههای کوچکتر از سرورها self-fences خواهند شد. اگر در شرایطی که شبکه partion میشود و به چند بخش (گروه) تقسیمبندی میشود، هر یک از گروهها دارای تعداد سرورهای یکسانی باشند، در این حالت فقط یک گروه self-fences خواهد شد، بنابراین پیشنهاد میکنیم که از تعداد فردی از سرورها جهت پیادهسازی قابلیت HA استفاده نمایید.
- در شرایطی که storae heartbeatها fail شوند اما network heartbeatها فعال (active) باقی بمانند، در این حالت hostها مطمئن میشوند که از طریق شبکه قابلیت دسترسی (reachability) به hostهای دیگر امکانپذیر است. بنابراین اگر hostها قابل دسترسی توسط یکدیگر باشند، هیچیک از hostها self-fense نخواهند شد البته با این فرض که گاهی فقط گاهی اوقات storage heartbeatها اتفاق بیفتند.
قابلیت Sever fensing (اگر بخوام به فارسی ترجمش کنم میشه نرده کشیدن به دور سرور!) که گاهی اوقات با عنوان host fensing هم از آن یاد میشود، یک مکانیزم HA است که جهت محافظت از Cluster یا همان Resource Pool در وقوع evetی برای یک host تعیین شده زمانیکه unreachable و از دسترس خارج شود مورد استفاده قرار میگیرد. این قابلیت باعث جلوگیری از نوشتن اطلاعات توسط host مورد نظر بر روی shared storage شده و به این طریق از نوشتن و corrupt (خراب) شدن اطلاعات در آن جلوگیری کند.
شرایط زیر از self-fencing یک host جلوگیری خواهند کرد:
- در زمانیکه شبکه partition میشود (در واقع شبکه شما به دلیل failureی در آن به چند بخش تقسیم میشود)، سرورها در گروههای مختلفی قرار میگیرند و تنها سرورهایی عضو یک گروه میتوانند با هم ارتباط برقرار نمایند. در این حالت گروهی که سرورهای اکثریت را دارد، سرورهایش در حال اجرا باقی خواهند ماند (running) و گروههای کوچکتر از سرورها self-fences خواهند شد. اگر در شرایطی که شبکه partion میشود و به چند بخش (گروه) تقسیمبندی میشود، هر یک از گروهها دارای تعداد سرورهای یکسانی باشند، در این حالت فقط یک گروه self-fences خواهد شد، بنابراین پیشنهاد میکنیم که از تعداد فردی از سرورها جهت پیادهسازی قابلیت HA استفاده نمایید.
- در شرایطی که storae heartbeatها fail شوند اما network heartbeatها فعال (active) باقی بمانند، در این حالت hostها مطمئن میشوند که از طریق شبکه قابلیت دسترسی (reachability) به hostهای دیگر امکانپذیر است. بنابراین اگر hostها قابل دسترسی توسط یکدیگر باشند، هیچیک از hostها self-fense نخواهند شد البته با این فرض که گاهی فقط گاهی اوقات storage heartbeatها اتفاق بیفتند.
پیشنیازهای HA
در زیر لیستی از پیشنیازهای لازم جهت راهاندازی و پیکربندی قابلیت HA بر روی Resource Pool آورده شده است:
• جهت پشتیبانی محافظت شده از ماشینهای مجازی نیاز به یک Shared Storage SR میباشد.
• یک iSCSI، Fibre Channel یا NFS SR با حداقل فضای 356MB یا بیشتر برای Heartbeat SR مورد نیاز است.
• ماشین مجازی محافظت شده نباید به یک DVD درایو local متصل باشد.
فعال کردن قابلیت HA
برای این منظور کافیست تا گامهای زیر را به ترتیب پیگیری نمایید:
• ابتدا دستور xe sr-list را جهت مشاهده UUID مربوط به SRها در Resource Pool خود اجرا کنید. سپس UUID مربوط به SRی که برای Storage Heartbeat مورد نیاز میباشد را در جاییکه یادداشت کنید تا در دستور فعالسازی HA از آن استفاده نمایید. توجه کنید که اضافه کردن عبارت shared=true به انتهای دستور فوق نیز خروجی این دستور را تنها به SRهایی که Shared شده هستند محدود خواهد نمود. بنابراین جهت مشاهده Shared SRهایی که برای Heartbeat SR مورد استفاده قرار میگیرند، میتوانید از دستور زیر استفاده کنید:
# xe sr-list shared=true
در زیر لیستی از پیشنیازهای لازم جهت راهاندازی و پیکربندی قابلیت HA بر روی Resource Pool آورده شده است:
• جهت پشتیبانی محافظت شده از ماشینهای مجازی نیاز به یک Shared Storage SR میباشد.
• یک iSCSI، Fibre Channel یا NFS SR با حداقل فضای 356MB یا بیشتر برای Heartbeat SR مورد نیاز است.
• ماشین مجازی محافظت شده نباید به یک DVD درایو local متصل باشد.
فعال کردن قابلیت HA
برای این منظور کافیست تا گامهای زیر را به ترتیب پیگیری نمایید:
• ابتدا دستور xe sr-list را جهت مشاهده UUID مربوط به SRها در Resource Pool خود اجرا کنید. سپس UUID مربوط به SRی که برای Storage Heartbeat مورد نیاز میباشد را در جاییکه یادداشت کنید تا در دستور فعالسازی HA از آن استفاده نمایید. توجه کنید که اضافه کردن عبارت shared=true به انتهای دستور فوق نیز خروجی این دستور را تنها به SRهایی که Shared شده هستند محدود خواهد نمود. بنابراین جهت مشاهده Shared SRهایی که برای Heartbeat SR مورد استفاده قرار میگیرند، میتوانید از دستور زیر استفاده کنید:
# xe sr-list shared=true
• در ادامه جهت فعالسازی قابلیت HA بر روی Resource Pool خود میبایست دستورxe pool-ha-enable را بصورت زیر اجرا نمایید:
# xe pool-ha-enable heartbeat-sr-uuids=heartbeat_sr_uuids
# xe pool-ha-enable heartbeat-sr-uuids=heartbeat_sr_uuids
• حال دستور زیر را به منظور پیکربندی محدودیت failure سرور برای Resource Poolتان اجرا کنید:
# xe pool-param-set ha-host-failures-to-tolerate=1 uuid=pool_uuid
# xe pool-param-set ha-host-failures-to-tolerate=1 uuid=pool_uuid
• در نهایت نیز جهت بررسی اینکه قابلیت HA بصورت موفقیتآمیز فعال شده است یا خیر، میتوانید از دستور xe pool-param-get جهت تعیین وضعیت HA مربوط به Resource Pool خود استفاده نمایید. توجه کنید که خروجی true به معنی فعال بودن قابلیت HA و خروجی false نیز به معنی غیرفعال بودن این قابلیت بر روی Resource Pool میباشد.
# xe pool-param-get param-name=ha-enabled uuid=pool_uuid
# xe pool-param-get param-name=ha-enabled uuid=pool_uuid
اما به منظور فعال کردن قابلت HA از طریق XenCenter، بر روی Resource Pool خود در پنل کناری XenCenter راست کلیک کرده و از منوی ظاهر شده همانند شکل 176، گزینه High Availability… را انتخاب نمایید تا پنجره ویزارد مربوطه باز شود.
حال در اولین صفحه از پنجره Configura HA همانند شکل 177، جهت scan کردن pool مورد نظر برای یک SR که میتواند به عنوان heartbeat SR استفاده شود بر روی دکمه Next کلیک کنید.
حال در این مرحله میبایست یک SR را جهت استفاده به عنوان heartbeat SR انتخاب نموده و سپس بر روی دکمه Next کلیک کنید.
در بخش بعد میبایست تنظیمات لازم برای گزینههای VM startup را پیکربندی نموده و محدودیت server failure را نیز تنظیم نمایید.