وقتی همه ماشینهای مجازی شرکت روی یک میزبان اجرا میشوند، خرابی یک منبع تغذیه یا مادربرد یعنی توقف همه سرویسها تا تعمیر سرور. Proxmox VE امکان خوشهبندی (Cluster) و دسترسپذیری بالا (High Availability) را بدون لایسنس جداگانه در خودش دارد. اما HA فقط یک تیک در تنظیمات نیست؛ اگر پایهاش درست طراحی نشود، روز خرابی کار نمیکند یا حتی مشکل تازهای میسازد.
خوشه و HA؛ دو مفهوم جدا
خوشه یعنی چند میزبان Proxmox که با هم یک واحد مدیریتی میسازند: از یک کنسول وب مدیریت میشوند، تنظیمات را با هم به اشتراک میگذارند و میتوانید ماشینها را بین آنها جابهجا کنید. HA لایهای روی خوشه است: اگر میزبانی از دسترس خارج شود، ماشینهایی که در HA تعریف شدهاند بهطور خودکار روی میزبان دیگری روشن میشوند.
دقت کنید که HA در این حالت یعنی راهاندازی دوباره، نه ادامه کار بدون وقفه. ماشین روی میزبان جدید بوت میشود و چند دقیقه توقف طبیعی است. اما برای تعمیرات برنامهریزیشده میتوانید ماشینها را با مهاجرت زنده (Live Migration) و بدون توقف به میزبان دیگر منتقل کنید.
کوروم؛ قلب خوشه
اعضای خوشه با سرویس Corosync مدام وضعیت یکدیگر را بررسی میکنند. خوشه فقط وقتی تصمیم میگیرد که اکثریت اعضا (کوروم) در دسترس باشند. این قاعده جلوی بدترین حالت را میگیرد: دو میزبان که ارتباطشان قطع شده و هر دو فکر میکنند باید یک ماشین را روشن کنند؛ نتیجه، خرابی دیسک آن ماشین است.
- حداقل سه رأی لازم است: خوشه دوعضوی با از دست رفتن یک عضو، اکثریت را از دست میدهد. یا سه میزبان داشته باشید، یا برای دو میزبان یک QDevice اضافه کنید؛ یک سیستم کوچک جداگانه که فقط در رأیگیری شرکت میکند.
- حصارکشی (Fencing): میزبانی که ارتباطش با اکثریت قطع شود، با مکانیزم Watchdog خودش را ریاستارت میکند تا مطمئن شویم یک ماشین همزمان در دو جا اجرا نمیشود.
شبکه خوشه را جدی بگیرید
Corosync به تأخیر کم و پایدار حساس است، نه به پهنای باند زیاد. اگر ترافیک بکاپ یا ذخیرهساز روی همان کارت شبکه سنگین شود، ممکن است اعضا یکدیگر را گم کنند و میزبانها بیدلیل ریاستارت شوند.
- برای Corosync یک شبکه یا دستکم یک VLAN جداگانه در نظر بگیرید.
- یک مسیر دوم (Link دوم) برای Corosync تعریف کنید تا قطع یک سوئیچ، خوشه را از کار نیندازد.
- ترافیک ذخیرهساز و مهاجرت را از شبکه مدیریت و Corosync جدا کنید.
ذخیرهساز: ماشین باید روی میزبان دیگر به دیسکش برسد
برای اینکه ماشین روی میزبان دیگر روشن شود، دیسکش باید آنجا در دسترس باشد. سه راه رایج وجود دارد:
- ذخیرهساز مشترک مثل NFS یا iSCSI؛ ساده است، اما خود ذخیرهساز نباید نقطه شکست واحد باشد.
- Ceph روی خود میزبانها؛ توزیعشده و بدون دستگاه جداگانه است، اما دستکم سه میزبان، شبکه سریع و طراحی دقیق میخواهد.
- تکثیر ZFS (Replication) بین میزبانها؛ ارزانتر است، اما همگامسازی دورهای است و تغییرات بعد از آخرین همگامسازی، هنگام خرابی از دست میرود.
HA جایگزین بکاپ نیست. اگر ماشینی آلوده یا خراب شود، HA همان ماشین خراب را روی میزبان دیگر روشن میکند.
نکاتی که پیش از ساخت خوشه بدانید
- نام میزبان و آدرس IP اعضا را از ابتدا درست انتخاب کنید؛ تغییرشان بعد از عضویت در خوشه دردسرساز است.
- میزبانی که به خوشه اضافه میشود بهتر است ماشین مجازی نداشته باشد؛ شرایط دقیق را در مستندات نسخه خود ببینید.
- همه اعضا را روی یک نسخه Proxmox نگه دارید و ارتقا را با برنامه و یکییکی انجام دهید.
- منابع کافی کنار بگذارید: اگر یک میزبان خاموش شود، بقیه باید بار ماشینهای آن را تحمل کنند.
- بسته به نسخه، با گروهها یا قوانین HA مشخص کنید هر ماشین ترجیحاً روی کدام میزبانها اجرا شود.
چکلیست
- سه رأی کوروم یا دو میزبان بههمراه QDevice دارید.
- شبکه Corosync جدا است و مسیر دوم دارد.
- ذخیرهساز مشترک یا تکثیرشده برای ماشینهای HA آماده است.
- ظرفیت خالی برای خرابی یک میزبان وجود دارد.
- خرابی یک میزبان را در زمان کمکاری آزمایش کردهاید.
- بکاپ مستقل ماشینها برقرار است.
خوشهای که درست طراحی شده باشد، خرابی سختافزار را از یک بحران به چند دقیقه وقفه تبدیل میکند. کارشناسان ITPlus724 میتوانند خوشه Proxmox شما را طراحی و راهاندازی کنند یا خوشه موجودتان را بازبینی کنند.