Ceph storage چیست ؟ چه تفاوتی با Storage های سنتی دارد؟
این روزها که بحث cloud و رایانش ابری در ایران بیش از پیش داغ شده، ذخیره سازی ابری و Ceph stotage نیز بسیار مورد توجه قرار گرفته است. ما در این مقاله قصد داریم شما را با مفهوم Ceph storage چیست آشنا کرده و به شما توضیح دهیم که این نرمافزار چه اجزایی دارد و چگونه کار میکند.
Ceph storage چیست ؟ درواقع Ceph storage یک پروژه اُپن سورس است که راهکاری برای Software-define storage با کیفیت بالا و حذف single point of failure فراهم مینماید. به عبارتی Ceph storage یک راهکار واقعی و جامع در زمینهی سرویسهای یکپارچه ذخیرهسازی است که دسترسیهای استوریج در سطوح Block، Object و File را در اختیار ما میگذارد. قابلیت توسعه و اتصال از طریق API را نیز به این فهرست اضافه کنید. Ceph در ابتدا به عنوان یک پروژه دانشگاهی Phd در سال ۲۰۰۳ در دانشگاهی در کالیفرنیا بوده است که در ادامه و تغییراتی که در آن داده شد. در سال ۲۰۱۲ به مرحله اجرا در Production رسیده و در سال ۲۰۱۴ شرکت ردهت (redHat) مالکیت این پروژه را خریداری و آنرا تصاحب کرد.
در اینجا تصمیم به بررسی کامل این پروژه داریم و اینکه ببینیم آیا تنها نرمافزاریست مانند سایرین که روزی هستند و روزی دیگر خیر، و یا می تواند نرم افزاری عملیاتی در محیط های Production بزرگ باشد.
انتقال فایلها برای ذخیرهسازی با هاست دانلود
هاست دانلود ابری سرویسی بسیار به صرفه برای کسانیست که دیتاهایی چون فایل، ویدئو و آهنگ بر روی سایت خود دارند و میخواهند با کمترین هزینه ممکن این فایلها را با کاربران خود به اشتراک بگذارند؛ اما در صورتی که از هاست اشتراکی استفاده کنند، سرعت سایت را با مشکل روبرو خواهند کرد؛ یکی از مزایای قابل توجه میزبانی دانلود این است که افراد متعددی به صورت همزمان میتوانند فایلهای مورد نیاز خود را با بالاترین سرعت ممکن، دانلود کنند. شما با خرید هاست دانلود پرسرعت می توانید کلیه دانلود و آپلود ها را مدیریت کنید و فشار وارده را از روی میزبانی خود بردارید. توجه داشته باشید که سرویس اشتراک گذاری فایل به صورت سازمانی و شخصی در host دانلود حرفه ای ابرآراز ارائه میگردد.
ceph storage چیست ؟
امروزه نیاز به شیوههای نوین ذخیرهسازی بیش از هر زمان دیگری احساس میشود. هم اکنون میزان زیادی از بودجه شرکتها و سازمانها صرف تهیه و راهاندازی زیرساختهای ذخیرهسازی میشود. روشهایی مانند استفاده از SAN در کنار مزایایی که دارد، هزینهی سرسامآوری را به سازمانها تحمیل میکند. علاوه بر آن، این خود بحث و چالشی مهم است که آیا زیرساختهایی مانند SAN و یا NAS با دنیای امروزی که به سمت Cloud پیش رفته است، سازگاری دارد یا خیر.
ورود ceph که ماهیتی باز و توسعهپذیر دارد، توانست بسیاری از استراتژیها و معماری زیرساختهای استوریج را در ابرهای خصوصی، عمومی و هیبرید تغییر دهد. تا به امروز برآورد شده است که حداقل ۶۰ درصد کسانی که از اپن استک استفاده میکنند به این نرمافزار رو آوردهاند.
اساس و بنیان سف، Object است و ساختارهای block و file بصورت سرویسهایی به آن اضافه شدهاند. دیتا در هر نوعی که باشد در نهایت در Ceph Backend بصورت object نمایش داده میشود. همانطور که میدانید Object Storage برای دیتاهای از نوع unstructured بسیار راهکار مناسبی بوده و نوع عملکردش بگونهای است که توسعه آن تا ظرفیتهای پتابایت و اگزابایت امکان دارد.
Object Storage چیست؟
Object Storage که اغلب از آن با عنوان ذخیره سازی مبتنی بر اشیا ( object based storage ) یاد میشود، یک معماری ذخیره سازی داده برای مدیریت مقدار زیادی از دادههای بدون ساختار است. دادههای بدون ساختار، دادههایی هستند که با یک پایگاه داده (data base) سازگار نیست و نمیتوان آنها را به راحتی سازماندهی کرد. البته باید گفت که امروزه عمده دادههای ارتباطات اینترنتی، برخلاف دادههای سنتی، ساختار درست و منظمی ندارند.
علاقه دارید بیشتر با این مفهوم آشنا شوید؟ ما در مقالهای دیگر به تفصیل در مورد Object Storage چیست و کاربرهای آن صحبت کردهایم. پیشنهاد میکنیم فرصت مطالعهی این مقاله را از دست ندهید.
تفاوت Storageهای سنتی با Ceph storage چیست ؟
اما سیستمهای سنتی استوریج مانند SAN Storage و NAS Storage که بصورت سختافزاری هستند، نسبت به سیستمهای جدید SDS یا همان Software-define storage چه مزایا و معایبی دارند. بررسی این دو بسیار حائز اهمیت است زیرا میتواند در سرنوشت سازمانی که میخواهید راهکار ارائه دهید، بسیار تاثیرگذار باشد.
ابتدا مزیت سختافزار را نسبت به نرمافزار بررسی میکنیم. بصورت معمول اینگونه است که سازمانها اقدام به خرید استوریجهای گرانقیمتی مانند VNX، Unity و یا ۳Par کرده و بعد از راهاندازی اولیه دیگر با آن کاری ندارند. شما تنها درصروتیکه دیسکها دچار مشکل شوند، ناچار به تعویض آنها خواهید بود. از این بعد، سختافزار مزیت بسیار بزرگی دارد.
حال بیاییم کمی در مورد عامل مهم هزینه صحبت کنیم. از آنجایی که امروزه نگهداری دیتا از اهمیت زیادی برخوردار است، سازمانها به عملیاتهایی مانند RAID کردن و همچنین کپی دیتا در یک استوریج دیگر که همان Mirroring نام دارد و از طریق Replication انجام میشود، رو آوردهاند. پس با این وجود، تعداد استوریجها بیشتر خواهد شد و علاوه بر قیمت سختافزار، هزینههای مربوط به لایسنس نرمافزارهای Replication را نیز به آن اضافه میشود.
RAID چیست؟
حرف از RAID شد، راهکاری که برای سالیان متمادی توانست دیتای ما را محافظت نماید و هم اکنون نیز در اکثر شرکتها استفاده میشود. اما امروزه با ورود مباحث جدیدی مانند Big Data و حجمهای ترابایتی دیسکها، دیگر استفاده از RAID جوابگو نیست. زیرا در صورت از دست رفتن دیسک، چندین ساعت برای ریکاوری و بازسازی دیتا زمان نیاز است که بخصوص در پلتفرمهای Cloud مشکل ایجاد مینماید.
اشکالات Storageهای سنتی با Ceph storage چیست ؟
مساله بعدی در پلتفرمهای Cloud این است که استفاده از Object Storage از مهمترین خواستههای آنها است. جالب است بدانید که استوریجهای SAN سنتی نمیتوانند این سرویس را ارائه نمایند. در نتیجه هم باید اقدام به خرید Block Storage نمایید و هم Object Storage که هزینه گزافی را برعهده سازمان میگذارد. البته در نسلهای جدید استوریج که ECS نامیده میشود این مشکل حل شده است و هر دو قابلیت در یک استوریج قرار داده شده.
مورد بعدی در رابطه با ضعفهای سیستم استوریج سخت افزاری، مشکلی است بنام Bottleneck یا همان تنگراه. در ساختارهای بزرگ، تعداد زیادی سرور از طریق پروتکل FC و کارتهای HBA و پهنای باندهای متفاوتی از ۸Gbps تا ۳۲Gbps و یا حتی بالاتر، به SAN Switch متصل میشوند.
تمامی ترافیک این سرورها باید وارد مسیر تعداد بسیار کمتری استوریج شوند که مطمئنا میزان پهنای باند آنها با سرورها برابری نخواهد کرد. در صورتیکه سرورها دائما و بصورت همزمان در حال ارسال ترافیک باشند، برای ورود به استوریج به یک Bottleneck بر میخورند که به یکباره، مسیر به میزان زیادی باریک میشود. در نتیجه ترافیکها باید در یک صف قرار بگیرند و به نوبت ارسال شوند.
نحوهی کار در Ceph storage چیست ؟
همچنین تمامی ترافیک ورودی در استوریج توسط یک یا دو کنترولر مدیریت میشوند. این کار فاجعهای است که به هیچ نحو نباید صورت بگیرد. اما در مورد همین سناریو در سیستم نرمافزاری مانند Ceph چه اتفاقی میافتد؟ اول اینکه دیگر نیازی به یک طراحی جدا برای شبکه FC نداشته و از کارتهای CNA در سرور برای اتصال به شبکه استفاده مینمایید. هر سرور برای خود یک کنترولر خواهد بود، پس SPOF را نیز نخواهیم داشت. پهنای باند کلی نیز از حاصلضرب تعداد سرورها در پهنای باند بدست میآید که عدد بسیار قابل توجهی است. در نتیجه در این راهکار مشکل Bottleneck نیز وجود نخواهد داشت.
اجزای تشکیل دهنده کلاستر ذخیره سازی
تفاوتی نمیکند که شما برای محیط ابری به Object Storage یا Block Storage نیاز دارید یا برای ذخیره سازی فایلها Ceph File System رو راه اندازی میکنید. در هر صورت، پیاده سازی Ceph Cluster با راهاندازی Ceph Node ها، شبکه و منابع ذخیره سازی شروع میشود. یک کلاستر Ceph برای شروع به کار به حداقل یک نود مانیتور (Monitor Node)، یک نود مدیر (Manager Node)، یک نود ذخیره سازی (OSD Node) و برای استفاده از Ceph File System یا همان CephFS به یک نود ابرداده (MDS Node) نیاز دارد.
نود مانیتور (Monitor Node)
ceph-mon وظیفه نگهداری وضعیت کلی کلاستر را به عهده دارد. تمامی اجزای این سیستم دارای Map هایی هستند که توسط این نود نگهداری و مدیریت میشود. همچنین وظیفه تصدیق و احراز هویت اعضای کلاستر و کلاینتها به عهده این نود میباشد. مهمترین عضو کلاستر Ceph همین نود مانیتور هست که به عنوان قلب کلاستر فعالیت میکند. در یک پیاده سازی کوچک تا متوسط برای افزونگی و پایداری سرویس حداقل به 3 نود مانیتور نیاز است.
نود مدیر در Ceph storage چیست ؟ (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 مقیاس پذیری، بالانس کردن و بازیابی پویای اطلاعات فراهم شده است.
ما در مقالهای دیگر برای آشنایی شما با Ceph، به معرفی دستورات پرکاربرد آن اقدام کردهایم. پیشنهاد میکنیم فرصت مطالعهی مقالهی آموزش ceph را از دست ندهید.