امروزه افزایش تعداد دستگاههای تلفن همراه و بنابراین برنامههای کاربردی، و به تبع آن افزایش روزافزون حجم دادهها، انتظارات ما در مورد نحوهی دسترسی به دادهها را افزایش دادهاند و بنابراین نیاز به رویکردهای جدیدی برای ذخیرهی این حجم از دادهها که بتواند چالشهایی مانند مقیاسپذیری و دسترسیپذیری را حل کند، بهوضوح احساس میشود. در ادامه به توضیح یکی از این رویکردهای ذخیرهسازی داده، یعنی Object Storage خواهیم پرداخت.
ـObject Storage یا Object based Storage
ـObject Storage یک معماری ذخیرهسازی داده است که دادهها را بهعنوان شی مدیریت میکند. این درحالی است که دیگر معماریهای ذخیرهسازی مانند فایلسیستمها، دادهها را بهصورت سلسلهمراتبی از فایلها، ذخیره میکنند. در واقع Object storage یک استراتژی برای مدیریت و دستکاری دادهها بهعنوان واحدهای مجزایی به نام شی است.
ـobject storage ترکیبیست از:
پس بهطور کلی میتوان گفت در این رویکرد هر شیء، شامل خود داده، یک مقدار متغیر از متادیتاها و یک شناسهی محنصربهفرد است.
متادیتا، به اطلاعاتی گفته میشود که راجع به فایل توضیحاتی را بهصورت خلاصه ارائه میکنند و کار کردن با نمونههای مشخص از داده و طبقهبندی آن را آسان میکنند. متادیتاها همراه با شی و در متغیرهایی قابل تعمیم، قابل تغییر و قابل حذف و یا اضافهشدن، ذخیره میشوند.
شناسه (ID) منحصر به فرد، به سرور یا کاربر امکان بازیابی شی و مشخص کردن موقعیت فیزیکی داده را میدهد.
در تصویر زیر میتوانید نمونهای از فایل و متادیتای مرتبط با آن را ببینید.
اگر بخواهیم مفهوم Object Storage و ID را با یک مثال توضیح دهیم، میتوانیم آن را به یک پارکینگ موسوم به Valet Parking تشبیه کنیم. در این نوع پارکینگها هنگامی که مشتری درخواست استفاده از پارکینگ را دارد، کلید ماشین را تحویل داده و یک شناسهی منحصربهفرد دریافت میکند. در این پارکینگ، مشتری نمیداند که ماشین در کجا پارک شده است و حتی نمیداند ماشینش در طول این زمان، چندبار در پارکینگ جابهجا شده است. هنگامی که مشتری درخواست تحویل گرفتن ماشین را دارد، شناسهی منحصر به فرد را ارائه کرده و بنابراین ماشین خود را دریافت میکند.
ء Object storage متادیتاهای جامعی را به فایل اضافه میکند و ساختار سلسلهمراتبی استفاده شده در file storage را حذف میکند و هرچیزی را در یک فضای آدرس مسطح (flat)، به اسم استخر ذخیرهسازی (Storage Pool) قرار میدهد. سیستمهای Object-storage امکان نگهداری مقادیر زیادی از دادههای بدون ساختار را فراهم میکنند. Object Storage برای اهدافی مانند ذخیرهسازی عکس برروی فیسبوک، صوت بر روی Spotify، یا فایل در سرویسهای همکاری آنلاین مانند Dropbox استفاده میشود.
چرا Object Storage؟
مهمترین مشکلی که Object Storage تلاش میکند تا آن را حل کند مقیاسپذیری است. نرخ تولید داده بهطور مداوم در حال افزایش است. اگر شما مسئول ذخیره و حفاظت از دادهها باشید، میدانید که این نرخ تولید کمکم به یک مشکل جدی تبدیل میشود، چرا که تکنیکهای ذخیرهسازی معمولی برای پاسخگویی به این مقیاس، طراحی نشدهاند. این، همانجایی است که Object Storage به میدان میآید. Object Storage تکنولوژیای است که برای فراهمکنندگان سرویسها یک فضای مقیاسپذیر و شدیدا مقرون به صرفه را ارائه میکند.
مزایای استفاده از Object Storage
مقایسهی Object Storage با File Storage و Block Storage
نحوهی دسترسی و استفاده از Object Storage
برخلاف استوریجهای قدیمی که از طریق سیستمعامل میتوان به آنها دسترسی داشت، در مورد Object Storage، اپلیکیشنها میتوانند از آن بهعنوان یک سرویس و از طریق HTTP API استفاده کنند. این دقیقا همان الگوی دسترسی بهتری است که کمک میکند تا در هرجایی بتوان به راحتی به دادهها دسترسی داشت و همچنین امکان ارائه کردن Storageها را بهعنوان یک سرویس فراهم کرد. از مزایای دیگر این نوع از دسترسی میتوان به توانایی توزیع دادهها در چندین مرکز داده، اشاره کرد.
همانطور که گفته شد، دسترسی به دادهها در Object Storage با دسترسی از طریق File Systemها متفاوت است. در این مورد از HTTP RESTful API استفاده میشود و درخواست های مرتبط با Storage از طریق HTTP و با استفاده از یک RESTful API ساخته میشوند.
سه کامپوننت اولیه در هر درخواست وجود دارد:
در جدول زیر میتوانید Methodها و توضیحات عملیاتی که بر روی شی انجام میدهند را مشاهده کنید.
نمونههایی از Object Storage بر روی ابر
ا. Amazon S3: Amazon S3 دادهها را بهعنوان شیهایی داخل منابعی به نام "bucket" ذخیره میکند. AWS S3 ویژگیهایی مانند دوام، اعلان رویدادها، نسخهبندی، رمزنگاری و ... را ارائه میکند.
اا. Rackspace Cloud Files: Cloud Files سرویس ذخیرهسازی شیگرا را بهصورت آنلاین و برای فایلها و رسانهها ارائه میکند. همهی ترافیک بین اپلیکیشن شما و Cloud Files از SSL استفاده میکند تا یک کانال رمزنگاری شده و امن ایجاد شود. شما میتوانید میزبانی وبسایتهای ایستا را بهطور کامل از Cloud Files دریافت کنید.
ااا. Azure Blob Storage: برای کاربرانی که مقادیر زیادی دادهی بدون ساختار برای ذخیره بر روی ابر دارند، Blob Storage یک راهحل مقرونبهصرفه و مقیاسپذیر است.
اااا. Google Cloud Storage: Cloud Storage به شما این امکان را میدهد تا دادهها را بر روی ابر گوگل ذخیره کنید. این سرویس همچنین، به ازای هر حساب کاربری، تعداد زیادی bucket را پشتیبانی میکند.