Ceph چیست و چه کاربردی دارد؟

Ceph چیست و چه کاربردی دارد؟

به منظور دستیابی به ذخیره سازهای مقیاس پذیر و سازگار با محیط ابر که همواره در رشد است راهکاری به نام Ceph به وجود آمد که توانست با ویژگی های خود سیستم های ذخیره سازی کلاستری را تحت تاثیر قرار دهد..


میزبانی کلاد برای توسعه هایی در سطح enterprise نیازمند یک راهکار ذخیره سازی مقیاس پذیر بوده تا کارایی و مدیریت داده های تجاری را بهبود ببخشد. در راستای همین موضوع با پیشرفت تکنولوژی و جهت گیری آن به سمت خدمات ابری برای زنده نگه داشتن تجارت های مختلف، Ceph متولد شد. Ceph راهکاری نرم افزاری است که با توجه به نیاز روز افزون به رشد و پیشرفت ارائه شده است.

Ceph و Ceph Storage چیست؟

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

Ceph چگونه کار می کند؟

Ceph میتواند ۵ daemon مجزا و کاملا توزیع شده را به کار گرفته و آنها را روی یک دسته از سرورهای مشترک اجرا کند تا به این وسیله کاربران بتوانند به طور مستقیم با هریک ارتباط برقرار کنند.

  • Ceph monitors(ceph-mon)  -برای بررسی وضعیت دستگاهها یا نودهای فعال و غیر فعال
  • Ceph managers(ceph-mgr) – در کنار daemonهای مانیتورینگ اجرا می شود تا مانیتورینگ و اینترفیسی اضافی را برای سیستم های مانیتورینگ و مدیریت خارجی ارائه کند.
  • Metadata servers(ceph-mds) – ذخیره متا دیتای مربوط به آینودها و دایرکتوری ها را به عهده دارد.
  • Object storage devices(ceph-osd) – ذخیره فایلهای محتوای اصلی را به عهده دارد.
  • Representational state transfer(RESTful) -گیت وی)  ceph-rgw ) لایه ی ذخیره ساز اشیا را به عنوان یک رابط یا اینترفیس سازگار با OpenStack Swift API آشکار می کند.

به کار گیری یک یا بیشتر از یک ceph ماینتور و همچنین دو یا بیشتر از دو object storage را کلاستر ذخیره سازی Ceph (Ceph Storage Cluster) می نامند.
در حین انجام کار فایل سیستم Ceph، ذخیره ساز Ceph و بلاک دیوایس های Ceph اطلاعات را از Ceph Storage Cluster و بر روی Ceph Storage Cluster ذخیره می کنند. در داخل کلاستر ذخیره ساز Ceph، دستگاههای ذخیره ساز اشیا Ceph اطلاعات را به عنوان شی بر روی گره های storage ذخیره می کنند. یک کلاستر ذخیره ساز Ceph می تواند هزاران storage node یا گره ذخیره سازی داشته باشد.

در داخل خود سیستم ذخیره سازی، Ceph از object storage توزیع شده استفاده می کند که یک معماری ذخیره سازی داده کامپیوتر است با این خصوصیت که با داده ها درست همانند اشیا برخورد می کند. این کار کاملا متفاوت از کارکرد دیگر معماری های ذخیره سازی است که مدیریت داده ها را در یک فایل سلسله مراتبی رعایت می کنند. مانند فایل سیستمی که درون کتابخانه های نرم افزارهای Ceph وجود دارد، کاربر دسترسی مستقیم به منابع اشیا توزیع شده ی خودکار که دارای سیستم ذخیره بر پایه شی هستند پیدا می کند که می تواند زیربنایی برای برخی ویژگی های Ceph فراهم کند مانند RADOS Block Device و Ceph Filesystem.

Block Storage

Ceph دسترسی به بلاک استوریج را از طریق سوار کردن Ceph Cluster به عنوان block device روی یک ماژول کرنل لینوکس ارائه می کند که RDE(Radios Block Device) نامیده می شود.
وقتی داده ها به وسیله بلاک دیوایس روی Ceph نوشته شد، Ceph به صورت خودکار داده ها را روی تمامی کلاستر پخش و تکرار می کند. همچنین سیستم ذخیره سازی اشیا Ceph به کاربران اجازه می دهد که Ceph را مثل یک بلاک دیوایس کوچک و پر بازده سوار کرده و استفاده کنند. Block deviceهای Ceph از قابلیت های RADOS استفاده میکند که شامل مواردی چون Snapshot،  Replication یا قابلیت ساخت نسخه های همتا و Consistency (یکنواختی) می شوند. همچنین بلاک دیوایس می تواند در ماشین های مجازی داخل OpenStack ذخیره سازی بلاک را فراهم کند.


همچنین اخبار بسیار خوبی از Ceph Crimson (پروژه تست NVMe) مبنی بر استفاده از قدرت بسیار بالای درایو های NVMe در سیستم های OSD مخصوص نیز به گوش رسیده است.

Filesystem

فایل سیستم Ceph یا CephFS از خانواده ی فایل سیستم POSIX است که از کلاستر ذخیره سازی Ceph به منظور ذخیره ی داده ها استفاده می کند. با استفاده از سرور کلاستر Ceph metadata نقشه های دایرکتوری و نام فایلها درون کلاسترهای RADOS ذخیره می شوند. به علاوه کلاستر سرور متادیتا قابلیت مقیاس پذیری و تعادل پذیری مجدد فایل سیستم را به صورت پویا برای پخش داده ها به صورت برابر در میان میزبان های کلاستر را نیز داراست تا به این وسیله بالاترین عملکرد را تضمین و جلوی فشار بیش از حد روی کلاستر را بگیرد.


Object Storage-Client Tools/RGW

در داخل storage system، Ceph از ذخیره ساز توزیع شده اشیا استفاده می کند. این با مفهوم اتصال به Ceph Cluster برای  ذخیره سازی شی متفاوت است. Ceph دارای یک object storage gateway محلی به نام RGW است. RGW سرویسی است که روی یک یا چندین عضو از کلاستر اجرا می شود و یک API با سازگاری S3 را فراهم می کند. در کنار آن یک دروازه برای اضافه، حذف و ... برنامه هایتان نیز در اختیارتان قرار می دهد.

 

Ceph Storage Cluster

یک کلاستر استوریج Ceph حالتی است که دو نوع daemon را به کار گرفته باشید: یک یا چند مانیتور Ceph و دو یا چند دیوایس  Ceph object storage داشته باشید. کلاستر ذخیره یازی Ceph یک زیر ساخت برای تمامی به کارگیری های Ceph است و می تواند شامل هزاران دیوایس ذخیره سازی نیز باشد.

 

Ceph چگونه کار می کند؟

در عمل فایل سیستم Ceph، Ceph object storage و Ceph block deviceها وظیفه ی خواندن داده از و نوشتن داده ها بر روی کلاستر استوریج Ceph را به عهده دارند. در داخل کلاستر ذخیره ساز Ceph دیوایس های ذخیره ساز شی داده ها را به عنوان شی روی گره های ذخیره سازی ثبت می کنند. دیوایس های ذخیره شی نیز فایلهای محتوای اصلی را ذخیره می کنند و در کنار آنها Ceph monitorها وظیفه بررسی مداوم فعالیت و یا عدم فعالیت دیوایس های کلاستر را به عهده دارند.


Ceph و کلاسترهای Ceph Storage می توانند فضای ذخیره سازی کاملا مقیاس پذیری را برای کسب و کار شما فراهم کنند که امکان رشد همراه با محیط ابر را نیز داشته باشد.