راه‌اندازی آسان Proxmox، بخش ۶: ذخیره‌سازی مشترک با Ceph

در بخش پنجم یک خوشه ساختیم و HA را فعال کردیم، ولی دیدیم که برای مهاجرت زنده و بازیابی واقعی ماشین‌ها روی گره‌ی دیگر، به یک ذخیره‌سازی مشترک نیاز داریم که همه‌ی گره‌ها به آن دسترسی داشته باشند. در این بخش همان تکه‌ی گمشده را می‌سازیم: یک ذخیره‌سازی توزیع‌شده با Ceph.

Ceph چیست؟

Ceph یک سیستم ذخیره‌سازی توزیع‌شده، خودترمیم و مقیاس‌پذیر است. به‌جای اینکه داده‌ها روی دیسک یک سرور باشند، Ceph آن‌ها را روی دیسک‌های همه‌ی گره‌ها پخش می‌کند و چند نسخه از هر داده نگه می‌دارد. Proxmox می‌تواند Ceph را مستقیماً روی همان گره‌های خوشه اجرا کند (به این حالت hyperconverged می‌گویند).

چند مفهوم کلیدی:

  • OSD (Object Storage Daemon): برای هر دیسکی که به Ceph می‌دهید یک OSD ساخته می‌شود. داده‌ها روی OSDها ذخیره می‌شوند.
  • Monitor (MON): نقشه‌ی خوشه و وضعیت آن را نگه می‌دارد. برای کورام به تعداد فرد (معمولاً ۳) نیاز دارد.
  • Manager (MGR): آمار و مدیریت را فراهم می‌کند.
  • Pool و PG: داده‌ها در «استخر»ها (pool) نگه‌داری می‌شوند و هر استخر به قطعه‌هایی به نام Placement Group تقسیم می‌شود.
  • RBD: دیسک بلوکی Ceph که دیسک ماشین‌های مجازی روی آن ساخته می‌شود.

مهم‌ترین ویژگی برای ما: چون هر داده روی چند گره کپی می‌شود، اگر یک دیسک یا حتی یک گره کامل از کار بیفتد، داده‌ها سالم می‌مانند و Ceph خودش دوباره آن‌ها را متعادل می‌کند.

پیش‌نیازها

  • یک خوشه‌ی سالم با سه گره (همان که در بخش پنجم ساختیم: pve، pve2، pve3).
  • روی هر گره یک دیسک خالی و اختصاصی برای OSD. این دیسک نباید هیچ داده یا پارتیشنی داشته باشد، چون کامل پاک می‌شود.
  • ترجیحاً یک شبکه‌ی سریع و جدا برای ترافیک Ceph تا با ترافیک ماشین‌ها تداخل نکند.

گام ۱: نصب Ceph روی همه‌ی گره‌ها

Ceph باید روی همه‌ی گره‌ها نصب شود. در پنل، گره را انتخاب کنید و روی Ceph بزنید؛ اگر هنوز نصب نشده باشد، یک ویزارد نصب باز می‌شود. با خط فرمان هم روی هر گره یک دستور کافی است:

pveceph install --repository no-subscription
نصب موفق Ceph روی گره
پایان موفق نصب Ceph روی یک گره. این کار را روی هر سه گره تکرار می‌کنیم.

گام ۲: پیکربندی اولیه و ساخت Monitorها

روی گره‌ی اول، Ceph را مقداردهی اولیه می‌کنیم و شبکه‌ی Ceph را مشخص می‌کنیم. سپس روی هر سه گره یک Monitor می‌سازیم تا کورام برقرار شود:

pveceph init --network 10.20.20.0/24
pveceph mon create

همان‌طور که در بخش خوشه دیدیم، Monitorها هم برای تصمیم‌گیری به اکثریت (کورام) نیاز دارند؛ برای همین سه Monitor روی سه گره می‌سازیم.

گام ۳: ساخت OSDها

حالا دیسک اختصاصی هر گره را به‌عنوان یک OSD به Ceph می‌دهیم. روی هر گره:

pveceph osd create /dev/vdb
ساخت OSDها و وضعیت سالم Ceph
پس از ساخت سه OSD، خروجی ceph -s: سه OSD در حالت up و in و سلامت HEALTH_OK.

در پنل هم می‌توانید درخت OSDها را ببینید: روی هر گره یک OSD که در حالت up و in است.

درخت OSDها در پنل Ceph
بخش «OSD» در پنل: سه OSD (یکی روی هر گره)، همه up و in.

گام ۴: ساخت Pool و اتصال به‌عنوان ذخیره‌سازی

حالا یک استخر (pool) می‌سازیم که دیسک ماشین‌ها روی آن قرار بگیرد. گزینه‌ی --add_storages این استخر را به‌طور خودکار به‌عنوان یک فضای ذخیره‌سازی به همه‌ی گره‌ها اضافه می‌کند:

pveceph pool create cephpool --add_storages 1
ساخت pool و فعال شدن ذخیره‌سازی
ساخت استخر cephpool و فعال شدن آن به‌عنوان ذخیره‌سازی از نوع RBD روی خوشه.

در پنل، بخش Pools استخرها را نشان می‌دهد. عدد Size/min برابر ۳/۲ یعنی از هر داده سه نسخه نگه‌داری می‌شود و برای نوشتن دست‌کم دو نسخه لازم است. مدیریت تعداد PGها هم می‌تواند خودکار (autoscale) باشد.

فهرست استخرهای Ceph
بخش «Pools»: استخر cephpool با اندازه‌ی ۳/۲ و autoscale روشن.

بررسی سلامت خوشه‌ی Ceph

در پایان، سلامت را بررسی می‌کنیم. چه با ceph -s و چه در پنل، باید وضعیت HEALTH_OK را ببینید: سه Monitor، سه OSD در حالت up و in، و همه‌ی PGها در حالت active+clean.

پنل خلاصه‌ی Ceph با سلامت HEALTH_OK
پنل «Ceph»: سلامت HEALTH_OK، سه OSD فعال، و همه‌ی PGها active+clean.
خروجی ceph -s با وضعیت سالم
خروجی ceph -s: سه Monitor در کورام، سه OSD، و همه‌ی PGها active+clean.

چرا این مهم است؟

حالا فضای ذخیره‌سازی cephpool روی همه‌ی گره‌ها در دسترس است. اگر دیسک یک ماشین را روی این فضا بگذارید، دو قابلیت مهمی که در بخش قبل ناقص ماندند کامل می‌شوند:

  • مهاجرت زنده‌ی واقعی. چون دیسک ماشین روی همه‌ی گره‌ها دیده می‌شود، جابه‌جایی یک ماشین در حال اجرا بین گره‌ها بدون کپی دیسک و بدون قطعی انجام می‌شود.
  • HA واقعی. اگر یک گره از کار بیفتد، گره‌ی دیگر می‌تواند ماشین را روشن کند، چون به همان دیسک روی Ceph دسترسی دارد.
  • خودترمیمی. اگر یک دیسک یا OSD خراب شود، Ceph خودش نسخه‌های گم‌شده را از روی نسخه‌های سالم روی گره‌های دیگر بازسازی می‌کند.

جمع‌بندی و بخش بعد

در این بخش یک ذخیره‌سازی توزیع‌شده و مشترک با Ceph ساختیم: نصب، Monitorها، OSDها و یک استخر برای دیسک ماشین‌ها. با این کار، خوشه‌ی ما حالا هم دسترس‌پذیری بالا دارد و هم ذخیره‌سازی مقاوم در برابر خرابی.

در بخش بعد سراغ پشتیبان‌گیری سازمانی می‌رویم: Proxmox Backup Server با پشتیبان‌های افزایشی، حذف داده‌های تکراری و بازیابی سریع.

بخش‌های این مجموعه

← بازگشت به وبلاگ