آشنایی با ذخیره سازی Ceph

این روزها که بحث کلود و رایانش ابری در ایران بیشتر از پیش داغ شده، بحث ذخیره سازی ابری و Ceph هم بسیار مورد توجه قرار گرفته که تو این پست شما رو با این پلتفرم باحال ذخیره سازی توزیع شده آشنا میکنم و بهتون میگم چیه، چه اجزایی داره و چطوری کار میکنه…

در مورد رایانش ابری نمیدونی؟ این پست رو حتما ببینید.

پلتفرم ذخیره سازی Ceph چیست؟

پلتفرم Ceph یک سیستم جامع و توزیع شده ذخیره سازی(Unified Distributed Storage) است که می تواند ذخیره سازی را در یک مجموعه تجمیع شده در 3 سطح Object, Block, File انجام دهد. این پلتفرم بسیار قابل اطمینان با مدیریت آسان و آزاد است و می تواند در تمام محیط هایی که به ذخیره سازی توزیع شده نیاز دارند مورد استفاده قرار گیرد.

مهم نیست محیط شما ابریه یا نه! Ceph میتونه خدمات فوق العاده ای بهتون ارایه کنه. 😉

اجزای تشکیل دهنده کلاستر ذخیره سازی:

فرق نداره شما برای محیط ابری به Object Storage یا Block Storage نیاز دارید یا برای ذخیره سازی فایل ها Ceph File System رو راه اندازی می کنید یا برای هر منظور دیگه بخواید از Ceph استفاده کنید. پیاده سازی Ceph Cluster با راه اندازی Ceph Node ها، شبکه و منابع ذخیره سازی شروع میشه. یک کلاستر Ceph برای شروع به کار به حداقل یک نود مانیتور(Monitor Node)، یک نود مدیر(Manager Node)، یک نود ذخیره سازی(OSD Node) و برای استفاده از Ceph File System یا همون CephFS به یک نود ابرداده(MDS Node) نیاز دارد.

نود مانیتور(Monitor Node): ceph-mon وظیفه نگهداری وضعیت کلی کلاستر را به عهده دارد. تمامی اجزای این سیستم دارای Map هایی هستند که توسط این نود نگهداری و مدیریت می شود. همچنین وظیفه تصدیق و احراز هویت اعضای کلاستر و کلاینت ها به عهده این نود می باشد. مهمترین عضو کلاستر Ceph همین نود مانیتور هست که به عنوان قلب کلاستر فعالیت می کند. در یک پیاده سازی کوچک تا متوسط برای افزونگی و پایداری سرویس حداقل به 3 نود مانیتور نیاز است.

نود مدیر(Manager Node): این نود(ceph-mgr) وظیفه نگهداری Runtime metrics، وضعیت جاری کلاستر، ذخیره سازها، کارایی و لود سیستم را به عهده دارد. همچنین با میزبانی ماژول هایی که به زبان پایتون نوشته می شوند، می تواند قابلیت های جانبی مثل Dashboard, Exporter, Remote Logging و… را فراهم کند. برای افزونگی و پایداری این سرویس حداقل 2 نمونه نیاز است.

نود ذخیره سازی(OSD Node): ذخیره کننده یا Object Storage Daemon وظیفه ذخیره سازی، مدیریت Replication، بازیابی و Rebalance را بر عهده داشته و اطلاعات لازم را در اختیار Monitor و Manager قرار می دهد. جهت افزونگی و پایداری داده ها حداقل به 3 OSD نیاز است.

نود ابرداده(MDS Node): Metadata Server، اطلاعات متا مربوط به فایل های ذخیره شده در CephFS یا Ceph File System را نگهداری و مدیریت می کند. این نود به کاربران استفاده کننده از استاندارد POSIX قابلیتی می دهد که بدون آوردن بار اضافی به کلاستر Ceph به فایل ها دسترسی داشته باشند. برای پایداری و افزونگی حداقل به 2 MDS نیاز داریم.

نحوه ذخیره سازی داده در کلاستر:

تمام اطلاعات در Ceph به صورت Object در استخر(Pool) های منطقی ذخیره می شوند که الگوریتمی به نام CRUSH وظیفه پیاده سازی Replication بر اساس روش تعریف شده را انجام می دهد. CRUSH محاسبه می کند که Object در کدام PG و PG در کدام OSD ذخیره شود. به طور کلی با وجود CRUSH مقیاس پذیری، بالانس کردن و بازیابی پویای اطلاعات فراهم شده است.

در پست های بعدی به صورت عمیق تر اجزا رو بررسی میکنیم.

برای اطلاعات بیشتر به سایتش برید.

موفق و پیروز باشید.

24

5 دیدگاه

  1. خیلی جالب بود. کاش یه کارگاهی چیزی روش برگزار کنی بیایم یاد بگیریم. بعد یه سوال ceph برای استفاده به عنوان object storage کلاینت و sdk خوبی مثل s3 و اینا داره که براحتی بشه از کلاینت باهاش کار کرد؟

    1. حتما. اره api های swift و s3 رو ساپورت میکنه و با تمام کلاینت های استاندارد کار میکنه.

    1. سلام به صورت کلی گنو/لینوکس و مباحث پایه ذخیره سازی نیاز هست.
      مواردی مثل شبکه و HA و… هم کم و بیش نیاز میشه.

  2. سلام استاد
    بسیار عالی ‌
    خیلی خوب بود مطالبتون
    ایا کارگاه اموزشی این دوره را برگزار می کنید؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *