Object Storage چیست؟
Objectها واحدهای مستقلی از داده هستند که در محیطی همسطح (flat) ذخیره میشوند. در این محیط هیچگونه دایرکتوری یا پوشهای وجود ندارد. هر Object یک مخزن (repository) از اطلاعات است که شامل دادهی اصلی، اطلاعات توصیفی (metadata) و ID یکتاست. یک object storage device را میتوان در مجموعهای بزرگتر جا داد. این ویژگی، دلیل مقیاسپذیری بالای object storage است.
Object storage بهشکل مستقیم در دسترس سیستم عامل قرار ندارد، بلکه باید بهوسیلهی RESTful API http-based از آن استفاده کرد. برای نمونه، با استفاده از دستورات PUT یا POST میتوان یک Object را آپلود، با GET آن را دریافت و با DELETE حذف کرد. از راههای مدیریت Object storage نیز میتوان به OpenIO SDS C API و Object Storage API موجود در OpenStack اشاره کرد.
مزایای Object Storage
- مقیاسپذیری: سیستمهای ذخیره دادهی سنتی به خوبی قابل گسترش نیستند، در حالی که ظرفیت Object Storage بهراحتی قابل افزایش است و در عمل هیچ محدودیتی به جز داشتن تجهیزات ذخیرهسازی وجود ندارد. شاید بتوان گفت مهمترین مزیت Object Storage مقیاسپذیری آن است.
- بهینگی: در این سیستم ذخیرهسازی، بهینگی static data به بیشترین حالت خود میرسد. با استفاده از metadata موجود، تحلیل و بررسی داده به راحتی انجام میشود و بهوسیلهی قابلیت بالا در شخصیسازی، استفادهی بهینهتر از منابع ممکنتر میشود.
- قابلیت اطمینان: در Object Storage از اطلاعات موجود، چندین نسخه تهیه و ذخیره میشود تا اگر خطایی رخ داد، با از دست دادن یکی از آنها از دیگری بتوان استفاده کرد.
- سرعت: از آنجایی که هیچگونه پوشه و دایرکتوریای وجود ندارد، دسترسی به داده سریعتر اتفاق میافتد. همچنین، چون فایلها فشرده و رمزگذاری نمیشوند، میتوانند با سرعت بالاتری در دسترس کاربر قرار بگیرند.
- سادگی: با http request میتوان به سادگی هرچه تمامتر با آن کار کرد.
- هزینه: در این روش کاربر به میزان استفاده، هزینه پرداخت میکند (pay as you go!).
کاربرد Object Storage
کاربرد Object storage بیشتر در مواردی است که نیاز است اطلاعات را تا حجم بالایی در حدود پتابایت (معادل یک میلیون گیگابایت) افزایش داد و این افزایش حجم در حالی باشد که همچنان بتوان دسترسی و عملکرد خوبی دریافت کرد. دادههایی مانند موارد زیر به خوبی با ویژگیهای Object storage همخوانی دارند:
- دادههای ساختارنیافته مانند تصویر، آهنگ و فیلم
- فایلهای پشتیبانی و log
- پایگاهدادههای بزرگ
- فایلهای آرشیو
به این ترتیب میتوان گفت Object storage برای شرکتها ارزش افزوده به همراه دارد. برای نمونه، در بیشتر سازمانها فایلهای پشتیبانی و آرشیو برای بازیابی اطلاعات از دست رفته یا پایگاهدادههای بزرگ برای اجرای الگوریتمهای تحلیل داده، بسیار حیاتی هستند. و اینها مواردی هستند که object storage برای این قبیل سازمانها فراهم میکند.
برای نمونه فرض کنید که میخواهید کتابهای موجود در یک کتابخانه بزرگ را ذخیره کنید؛ برای این کار افزونبر محتوای کتاب، باید اطلاعاتی مانند نویسنده، ناشر، تاریخ نشر، موضوع و ... را نیز نگهداری کنید. شما میتوانید این اطلاعات را در یک پایگاهداده بهشکل ترکیبی از دایرکتوریها ذخیره کنید. اما با وجود میلیونها کتاب، فرآیند جستجو و بهدستآوردن کتاب بسیار طولانی میشود. از آنجایی که در این مثال اطلاعات ثابت هستند، Object storage به خوبی کار میکند. چون Objectها دریک فضای همسطح ذخیره میشوند و با یک API به راحتی قابل دسترس هستند.
در چه مواردی نباید از Object Storage استفاده کرد؟
برای مواردی که ممکن است مقدار متغیرها تغییر کنند، استفاده از Object Storage مناسب نیست. چون زمان بهنسبت زیادی لازم است تا چند نسخه از Object تهیه شود. همچنین، برای ویرایش آن نیز باید این نسخهها فراخوانی شوند. در این حالت Block Storage گزینهی مناسبی است، چون دیتای اخیر ثبت شده را به سرعت در اختیار قرار میدهد. مهمترین نمونه این موارد، اطلاعات مربوط به خرید هستند.
توجه شود که Object Storage برای اطلاعات ثابت مناسب است، چون هرگونه تغییری در فایل ذخیره شده، سبب میشود تا نسخهای جدید از کل فایل ایجاد و ذخیره شود.