An Introduction to Ceph Storage
معرفی تکنولوژی ذخیره سازی Ceph :
این روزها که بحث رایانش ابری در ایران بیش از پیش داغ شده است، نیاز به شیوههای نوین ذخیرهسازی بیش از هر زمان دیگری احساس میشود. با ظهور نرمافزارهای متنباز و سیستمهای ذخیرهسازی با عملکرد بالا، امکان وارد شدن این پلتفرم ها به فناوریهای ابری بسیار زیاد شده است. با رشد حس نیاز به سیستم های ذخیره سازی با کارایی بالا برای محاسبه سریع، تکنولوژی ذخیره سازی به نام Ceph شکل گرفت.
Ceph Storage چیست؟
Ceph یک پلتفرم کاملا متنباز است که برای فراهم کردن فضای ذخیرهسازی مبتنی بر اشیا (Object)، بلوکها (Block) و پروندهها (File) تحت یک سیستم واحد طراحی شده است. Ceph یک بستر ذخیرهسازی کاملاً آزاد است که ذخیره سازی مبتنی بر شی را روی یک خوشه توزیع شده فراهم میکند. Ceph همچنین رابطهایی را برای ذخیرهسازی مبتنی بر پرونده و بلوک نیز فراهم میکند. این پلتفرم از چندین ویژگی پیشرفته مانندCeph File System (CephFS) ، RADOS Gateway (RGW) و RADOS Block Device (RBD) برخوردار میباشد.
همچنین از طریق کتابخانههای نرمافزاری موجود در خود، برنامههای مشتری به سیستم ذخیرهسازی مبتنی بر شی Reliable Autonomic Distributed Object Store (RADOS) دسترسی مستقیم خواهند داشت.
خوشههای Ceph به منظور اجرا روی سخت افزار ها با کمک الگوریتمی به نام CRUSH (Replication Controlled Under Scalable Hashing) طراحی شدهاند. این الگوریتم از این موضوع که همه دادهها بدرستی در خوشه توزیع شدهاند و همه گرههای خوشه میتوانند جذب شوند و همچنین دادهها را بدون هیچ محدودیتی به سرعت بازیابی کنند.
Ceph چگونه کار میکند؟
Ceph از چیزی به اسم Ceph Block Device استفاده میکند، یک دیسک مجازی که میتواند به سرورها BareMetal یا ماشین های مجازی مبتنی بر لینوکس متصل شود.
RADOS (Reliable Autonomic Distribution Object Store)، یک جز مهم در Ceph، قابلیت ذخیره سازی بلوک مانند SnapShot ها و تکثیر داده را فراهم میکند که میتواند با OpenStack Block Storage نیز یکپارچه شود.
Ceph همچنین از "POSIX" رابط سیستم عامل قابل حمل نیز پیروی میکند، یک سیستم پرونده Ceph برای ذخیره داده ها در خوشه های ذخیره سازی خود استفاده میکند. سیستم فایل از همان سیستم خوشهای ذخیره سازی بلوک Ceph و ذخیره سازی شی برای ذخیره مقدار زیادی داده استفاده میکند.
Ceph از پنج بخش مجزا و توزیع شده تشکیل شده است و این بخش ها میتوانند در همان مجموعه سرورها اجرا شوند و به کاربران اجازه میدهند مستقیماً با آنها تعامل داشته باشند:
- Ceph monitors (ceph-mon) که بطور خلاصه گرههای فعال و ناموفق خوشه را ردیابی میکند.
- Ceph managers (ceph-mgr) که در کنار سرویس های مانیتور کار خواهد کرد تا نظارت و رابط های اضافی برای سیستم های نظارت و مدیریت خارجی فراهم کند.
- Metadata servers (ceph-mds) که وظیفه آن ذخیره متا دیتا های inode ها و دایرکتوری ها است.
- Object storage devices (ceph-osd) که وظیفه آن ذخیره فایل های اصلی و محتوای آن ها میباشد.
- Representational state transfer (RESTful) gateways (ceph-rgw) وظیفه آن این است که لایه ذخیرهسازی اشیا را به عنوان یک رابط سازگار با API های OpenStack Swift در معرض دید بگذارد.
استقرار یک یا چند Ceph Monitor و دو یا چند دستگاه ذخیره سازی آبجکت Ceph را Ceph Storage Cluster مینامند. در عمل، سیستم فایلCeph، ذخیره ساز شی Ceph و دستگاه های بلوک Ceph داده ها را از خوشه ذخیره سازی Ceph میخوانند و مینویسند.
در داخل خوشه ذخیره سازیCeph، دستگاه های ذخیره سازی آبجکت Ceph داده ها را به عنوان اشیا در گره های ذخیره سازی ذخیره میکنند. یک خوشه ذخیره سازی Ceph میتواند هزاران گره ذخیره سازی داشته باشد.
در داخل این سیستم ذخیرهسازی، Cephاز ذخیره سازی شی توزیع شده استفاده میکند، که یک معماری ذخیره سازی است که با دادهها به عنوان اشیا رفتار میکند. این امر متفاوت از سایر معماری های ذخیره سازی است که دادهها را در یک سلسله مراتب پرونده، مانند سیستم های پرونده مدیریت میکنند.
از طریق کتابخانه های نرم افزارCeph ، کاربران مستقیماً به سیستم ذخیره سازی قابل اعتماد مبتنی بر آبجکت توزیع شده مستقل (RADOS) دسترسی پیدا میکنند، که همچنین پایهای برای برخی از ویژگی های Ceph مانند RADOS Block Device و Ceph File system فراهم میکند.
اصلا چرا باید از Ceph Storage استفاده کنیم؟
از آنجا که امروزه داده ها با سرعت تصاعدی در حال رشد هستند، سازمان ها به راه حلی نیاز دارند که بتواند حجم زیادی از داده ها را به طور موثر ذخیره کند. این امر یک چالش اساسی شده است. ذخیره سازی Ceph ابزاری موثر است که کم و بیش بطور خوبی به این مشکل پاسخ داده است. علاوه بر این، شهرت Ceph روز به روز افزایش یافته است، زیرا:
- Ceph از زیرساخت های فناوری اطلاعات نوظهور پشتیبانی میکند:
امروزه، هنگام ذخیره سازی یا بایگانی کردن حجم زیادی از داده ها، راه حل های ذخیره سازی نرم افزار محور پیش روی ما است. یکی از دلایل اصلی این است که زیرساخت ها و راه حل های قدیمی دیگر نمیتواند نیازهای ذخیره سازی را با هزینه مناسب تأمین کند. همه این عوامل به Ceph کمک کرده است تا هنگام ورود به زیرساخت های جدید، یک مکان مهم را از آن خود کند.
- Ceph خوشههای ذخیره سازی پویا را برای ما فراهم میکند:
بیشتر برنامه های ذخیره سازی از CPU و RAM موجود در یک سرور معمولی بیشترین استفاده را نمیکنند اما ذخیره سازی Cephاین کار را انجام میدهد Ceph .با استفاده از توان محاسباتی توزیع شده Ceph’s OSD (Object Storage Daemons) برای انجام کارهای مورد نیاز مشتری استفاده میکند.
- Ceph مقیاس پذیر، قابل اعتماد و مدیریت آن آسان است:
Ceph به سازمانها اجازه مقیاس بندی میدهد بدون اینکه بر روی Cap-ex یا Op-ex خود تأثیر بگذارند. یک گره Ceph از سخت افزار و سرویس های هوشمند به همراه Cluster های ذخیره سازی Ceph استفاده میکند که برای تکثیر و توزیع مجدد داده ها به صورت پویا با یکدیگر ارتباط برقرار میکنند. این گره ها توسط مانیتورهای Ceph کنترل میشوند تا از HA آنها اطمینان حاصل کنند.
به طور خلاصه، Ceph سازمان های IT را در زمینه ذخیره سازی اطلاعات تغییر اساسی داده است.
نتیجهگیری:
اگر به طور کلی به Ceph نگاه کنید، سه چالش اساسی را در مورد سیستم های ذخیره سازی برآورده کرده است:
مقیاس پذیری، قابلیت اطمینان و عملکرد و از همه مهمتر، اصول مرکزی RADOS، CRUSH و POSIX آن را به یک سیستم ذخیره سازی جامع تبدیل کرده است. علاوه بر این موارد، در بحث امنیت ذخیره سازی ابری نیز خود را مفید نشان داده است.