در بخش پنجم یک خوشه ساختیم و 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
گام ۲: پیکربندی اولیه و ساخت 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
ceph -s: سه OSD در حالت up و in و سلامت HEALTH_OK.در پنل هم میتوانید درخت OSDها را ببینید: روی هر گره یک OSD که در حالت up و in است.
گام ۴: ساخت Pool و اتصال بهعنوان ذخیرهسازی
حالا یک استخر (pool) میسازیم که دیسک ماشینها روی آن قرار بگیرد. گزینهی --add_storages این استخر را بهطور خودکار بهعنوان یک فضای ذخیرهسازی به همهی گرهها اضافه میکند:
pveceph pool create cephpool --add_storages 1
cephpool و فعال شدن آن بهعنوان ذخیرهسازی از نوع RBD روی خوشه.در پنل، بخش Pools استخرها را نشان میدهد. عدد Size/min برابر ۳/۲ یعنی از هر داده سه نسخه نگهداری میشود و برای نوشتن دستکم دو نسخه لازم است. مدیریت تعداد PGها هم میتواند خودکار (autoscale) باشد.
cephpool با اندازهی ۳/۲ و autoscale روشن.بررسی سلامت خوشهی Ceph
در پایان، سلامت را بررسی میکنیم. چه با ceph -s و چه در پنل، باید وضعیت HEALTH_OK را ببینید: سه Monitor، سه OSD در حالت up و in، و همهی PGها در حالت active+clean.
ceph -s: سه Monitor در کورام، سه OSD، و همهی PGها active+clean.چرا این مهم است؟
حالا فضای ذخیرهسازی cephpool روی همهی گرهها در دسترس است. اگر دیسک یک ماشین را روی این فضا بگذارید، دو قابلیت مهمی که در بخش قبل ناقص ماندند کامل میشوند:
- مهاجرت زندهی واقعی. چون دیسک ماشین روی همهی گرهها دیده میشود، جابهجایی یک ماشین در حال اجرا بین گرهها بدون کپی دیسک و بدون قطعی انجام میشود.
- HA واقعی. اگر یک گره از کار بیفتد، گرهی دیگر میتواند ماشین را روشن کند، چون به همان دیسک روی Ceph دسترسی دارد.
- خودترمیمی. اگر یک دیسک یا OSD خراب شود، Ceph خودش نسخههای گمشده را از روی نسخههای سالم روی گرههای دیگر بازسازی میکند.
جمعبندی و بخش بعد
در این بخش یک ذخیرهسازی توزیعشده و مشترک با Ceph ساختیم: نصب، Monitorها، OSDها و یک استخر برای دیسک ماشینها. با این کار، خوشهی ما حالا هم دسترسپذیری بالا دارد و هم ذخیرهسازی مقاوم در برابر خرابی.
در بخش بعد سراغ پشتیبانگیری سازمانی میرویم: Proxmox Backup Server با پشتیبانهای افزایشی، حذف دادههای تکراری و بازیابی سریع.
بخشهای این مجموعه
- بخش ۱: نصب Proxmox
- بخش ۲: ساخت اولین ماشین مجازی
- بخش ۳: ذخیرهسازی و پشتیبانگیری
- بخش ۴: شبکه، از یک IP به چند ماشین
- بخش ۵: خوشه و دسترسپذیری بالا
- بخش ۶: ذخیرهسازی مشترک با Ceph (همین بخش)
- بخش ۷: پشتیبانگیری با Proxmox Backup Server