مقدمه
دادهها مهمترین دارایی سازمانها هستند و بقای یک سازمان در حفظ و نگهداری درست دادههای آن قرار دارد. این دادهها همواره در حال تغییر و تحول هستند و به مرور زمان بر حجم و اندازهی آنها نیز افزوده میشود. به همین دلیل، نحوهی ذخیرهسازی و نگهداری آنها میتواند برای بسیاری از سازمانها تبدیل به یک چالش شود. امروزه روشهای انعطاف پذیر و قابل انطباق با فناوری روز، بیش از پیش مورد استقبال قرار گرفتهاند. یکی از روشهایی که هم اکنون در دنیا در حال گسترش است، روش ذخیرهسازی دادهها به صورت شی (Object) است که معماری آن مناسب دادههای بدون ساختار بوده و اصطلاحا Object Storage نامیده میشود. در این مقاله میخواهم به شما در رابطه با انواع storage و نحوهی کار آنها بیشتر توضیح بدهم و همچنین، در رابطه با Object Storage ، به بررسی و توضیح مفاهیم بپردازم.
تاریخچهی Object Storage
در سال 1995، پژوهشی تحت مدیریت گارث گیبسون در مورد Secure Diskهای متصل به شبکه انجام شد و هدف آن جداکردن operation های مرتبط با پردازش فایلها مانند نامگذاری، read/write فایلها و … بود. در همان سال، یک شرکت بلژیکی – (Filepool)- برای ایجاد نوعی base برای آرشیو فایلها تاسیس شد. ذخیره سازی اشیا در آزمایشگاه دانشگاه کارنگی ملون گیبسون به عنوان یک پروژه تحقیقاتی در سال 1996 پیشنهاد شد. کنترل دسترسی دقیق از طریق معماری ذخیره سازی اشیا توسط تیم NASD، هوارد گوبیوف، که بعدها یکی از مخترعان سیستم فایل Google بود، بیشتر توضیح داده شد.
انواع Storage
به طور کلی، از منظر معماری سه روش برای ذخیرهسازی داده وجود دارد که این سه روش عبارتند از
- ذخیره سازی مبتنی بر فایل (File storage)
- ذخیره سازی مبتنی بر بلوک (Block Storage)
- ذخیره سازی مبتنی بر شی (Object Storage)
File Storage از روشهای سنتی و اولیهی ذخیرهسازی اطلاعات است و روش آن نیز بسیار ساده بوده و در هر شرایطی میتواند انجام شود. به این صورت که کاربر برای فایل مورد نظر نامی انتخاب کرده، آن را ذخیره کرده و در فولدر مورد نظر قرار میدهد. این روش برای سازمانهای کوچک با حجم محدودی از دادهها مناسب به نظر میرسد و سازماندهی فایلها در این روش نیز راحت بوده و با یک جست و جوی ساده میتوان به فایل یا فولدر مورد نظر دسترسی پیدا کرد. از معایب این روش این است که در صورت زیاد شدن تعداد فایلها، جست و جو کردن و یافتن آیتمهای مورد نظر سخت شده و این روش کارایی خود را از دست میدهد. در این روش، نوعی Hierarchy وجود دارد که برای آرشیو کردن اطلاعات به کار میرود و همینطور به دلیل مقیاس پذیر بودن با استفاده از راهکار NAS برای ایجاد آرشیوهای محلی و استفاده از دیتاسنترهای کوچک مناسب است.
Block Storage روشی برای ذخیرهسازی اطلاعات است که در معماری SAN کاربرد داشته و بسیاری از متخصصان IT آن را انتخاب میکنند. در این روش، دادهها به صورت تکههای یکسان مانند بلوک (حجم خام برای ذخیرهسازی) درامده و توسط سیستم عامل برای مکان ذخیره سازی آن تصمیم گرفته میشود. موارد کاربرد این روش ذخیرهسازی در Server های ایمیل، Database ها که نیاز به عملکرد مداوم دارند، ماشینهای مجازی و RAID است.
Object Storage تازهترین و در عین حال پیچیدهترین روش ذخیره سازی اطلاعات است. قبل از آن ابتدا باید درباره دادههای بدون ساختار صحبت کنم. فرض کنید که افراد بسیاری در سرتاسر دنیا دادههای مختلفی را از طریق اپلیکیشن پیامرسان خود برای دیگران ارسال میکنند و این اطلاعات ماهیت یکسان ندارند، یعنی به صورت عکس، فیلم، موزیک، یا فایل متنی هستند (ساختار بدون داده – Unstructured Data). همینطور مسلم است که کاربران انتظار دارند فایلها بدون آسیب و دست نخورده باشد و برای کاربر دسترسی به آن راحت و سریع باشد. امرزه بسیاری از پلتفرمهای انتقال داده (مثلا پیامرسانها) با این نوع داده سر و کار دارند. نحوهی عملکرد Object Storage به این صورت است که این اطلاعات را به صورت شی (Object) در محلهایی تحت عنوان استخر (Pool) با برخورداری از یک شناسه (Identifier) ذخیره میکند. این محیط ذخیرهسازی اصطلاحا Flat است (ساختار پیچیده و Directory به خصوصی ندارد و به جای آن شناسهی مخصوص برای پیدا کردن Object مورد نظر دارد) و تفاوت آن با file storage دقیقا در همین مورد است. از این نوع روش برای ذخیره سازی داده و فراداده (metadata) استفاده میشود. نحوهی دستیابی به دادهی مورد نظر از طریق API است. با بیشتر شدن تعداد و حجم Object ها، میتوان استخرهای نگهداری داده را نیز گسترش داد و در هر مکانی از این استخرها نگهداری کرد.
فرایند ذخیره سازی Object Storage میتواند بر بستر Cloud صورت بگیرد. اما اینکه از Private Cloud یا Public Cloud استفاده کنیم، موضوعی است که جای بحث دارد. ابر عمومی به دلیل وجود تقاضا و کاربران زیاد ممکن است به مرور زمان flexibility خود را از دست داده و دچار ناکارامدی شود. حتی ارائه دهندگان سرویسهای ابری با توجه به میزان درخواستهای API کارمزدهای استفاده از این سرویس را برای اپراتورها کم یا زیاد میکنند که ممکن است در بلند مدت تبدیل به معضلی برای کاربران شود. بنابراین استفاده از Object Storage در فضای ابر خصوصی به صرفهتر به نظر میرسد.
ذخیرهسازیهای مبتنی بر شی، در انواع مختلفی امکانپذیر است:
Kubernetes Object Storage: این نوع ذخیرهسازی امکان نگهداری و پردازش فایلها را در یک کانتینر یا خوشه به کاربر میدهد. این کانتینر امکان انجام فعالیت به عنوان یک واحد مستقل را دارا میباشد. قابلیت این نوع ذخیرهسازی این است که میتواند در صورت down شدن برنامه، به صورت خودکار آن را راهاندازی مجدد کند.
Docker Object Storage: این نوع ذخیرهسازی، زیرساختی با کارایی بالا دارد و برای برنامههای کاربردی حیاتی مورد نیاز است.
Cloud-Native Object Storage: این نوع ذخیهر سازی بر روی چند ابر بدون پیادهسازی داخلی انجام میشود.
Multi-cloud Object Storage: ذخیرهسازی بر روی ابرهای عمومی و خصوصی مختلفی انجام میگیرد.
ویژگیهای Object Storage چیست؟
دلیل اینکه Object Storage ها در حال رونق و توسعه هستند، انعطاف پذیری بالا، کم بودن هزینههای نگهداری، مدیریتپذیری راحت، و امکان دسترسی Remote است. اما اگر بخواهیم نگاه گستردهتری به این ویژگیها داشته باشیم، میتوانیم به این موارد اشاره کنیم:
ذخیره و مدیریت Unstructured Data: به دلیل گسترش استفاده از دادههای بدون ساختار، طبیعتا فضای بیشتری برای نگهداری آنها مورد نیاز است، به همین دلیل Object Storage راهکار مناسبی برای نگهداری از این نوع داده به حساب میآید.
Scalability: به دلیل ساختار flat ذخیرهسازی دادهها، مقیاسپذیری آن نیز بالاست، یعنی میتوان دادهها را در مقیاس ترابایت (TB) و یا پتابایت (PB) ذخیره کرد، بدون آنکه سلسله مراتبی برای نگهداری از آنها مورد نیاز باشد. وجود یک identifier در این نوع ذخیرهسازی یافتن داده مورد نظر را تسهیل میکند.
پیچیدگی کم: در روش ذخیره سازی مبتنی بر فایل، معمولا کاربر نیاز دارد تا فایل مورد نظر را بر اساس نام، تاریخ یا مسیر فولدر محل نگهداری پیدا کند، اما در روش Object Storage تنها با استفاده از Identifier، API موفق با یافتن آن در میان انبوهی از فایلها میشود.
Back Up گیری راحت: با تکیه به تکنولوژی Cloud ، میتوان دادهها را به تعداد زیاد Duplicate یا کپی و تکثیر کرد و با ذخیرهی آنها در فضای ابری، در صورت بروز حوادث امنیتی، به راحتی آنها را بازیابی کرد.
Customizable Metadata: از ویژگیهای Object Storage ، امکان customize کردن متادیتا و و استفاده از هوش مصنوعی برای تجزیه و تحلیل آن است.
مقرون به صرفه بودن: به دلیل نیاز سختافزاری کم، هزینهی تهیهی این نوع تکنولوژی ذخیرهسازی پایینتر از سایر روشها بوده و نیز به افزایش نیاز به زیرساخت، و تهیهی فضای بیشتر، هزینهی آن نیز به نسبت کاهش مییابد.
Cloud Compatible: با دلیل سازگار بودن با زیرساختهای ابری و نیز حرکت ددنیای فناوری اطلاعات به سوی دنیای ابری، این تکنولوژی میتواند به خوبی در فضای ابری مورد استفاده قرار بگیرد.
معایب Object Storage
شاید بزرگترین ایرادی که به این نوع ذخیره سازی وارد است، این مورد باشد که object ها پس از ذخیره سازی امکان ویرایش ندارند. همچنین اعمال فرایند ذخیرهسازی اشیا بر روی سیستمهای قدیمی کند و زمانبر است و بسیاری از سازمانها به همین دلیل به سراغ آن نمیروند.
جمعبندی
به دلیل اهمیت زیاد دادهها برای سازمانها، روشهای نگهداری از آنها همواره مقولهی مهمی برای مدیران است، و با ظهور Object Storage ، که به ذخیرهی Metadata در مخازن (pool) مختلف به صورت Object ، توسعه و گسترش زیادی داشته است. استفاده از این روش مبتنی بر ابر، میتواند انتخاب خوب یبرای حفظ و نگهداری داده ها باشد.
متن