جنگ سیستم های Block Storage ،File Storage و Object Storage

ذخیره دیتا زمانی آسان بود. دیتای ساختاریافتۀ شما منظم و مرتب در یک دیتابیس قرار می گرفت و کارمندان فایل های خود را بر روی فایل سیستم در کامپیوتر رومیزی خود ذخیره می کردند. اما امروزه وضعیت کاملا تغییر کرده است.

یکی از بخش های مقالۀ "File Storage چقدر هزینه دارد؟" در مورد دیتای ساختار نایافته بحث می کند و این که چگونه رشد سریع آن، دنیای دیجیتال را فرا گرفته است. حجم انبوه فایل های متنی، ویدئوها، ایمیل ها و محتوای وب باعث شده است که مدیران IT به دنبال راه حل بهتری برای ذخیره اطلاعات خود باشند.
فناوری های مختلف مزایای مختلفی دارند اما انتخاب از بین آنها اصلا ساده نیست.

Storage_Wars

از نظر معماری، سه سطح مختلف ذخیره سازی وجود دارد که می توانید انتخاب کنید:
Block Storage ،File Storage و Object Storage. بیایید در مورد آنها بحث کرده و مزایای آنها و موارد استفاده هریک را بیان کنیم.

ذخیره آسان و مستقیم در سطح فایل
ذخیره مبتنی بر فایل قدمت زیادی دارد و مثل بسیاری از چیزهای دیگری که قدیمی اند، ساده هم هست. شما نامی برای فایل انتخاب می کنید، فراداده می دهید و سپس آنها را در فولدرها و زیرفولدرها قرار می دهید. قراردادهای ساده نامگذاری باعث شده است که ساماندهی فایل ها به این روش خیلی ساده باشد در حالی که ذخیره سازی NAS برای تسهیلِ به ‌اشتراک‌گذاری محلی در نظر گرفته شده است. بسیاری از شرکت ها نیاز به راهی ساده و متمرکز برای ذخیره فایل ها دارند. File Storage می تواند به تمام این نیازها پاسخ گوید و هزینه آن نیز معمولا برای تجارت های کوچک معقول است.
در File Storage، یک ساختار سلسله مراتبی داریم که معمولا برای مقادیر نسبتا کم دیتا به خوبی انجام می شود. اما هر مدیر IT که با این سیستم کار کرده باشد مطمئنا متوجه ضعف های آن شده است. از نظر فنی شما می توانید تعداد نامحدودی فایل ایجاد و ذخیره کنید. اما پیدا کردن آن فایل ها کاری طاقت فرسا است. هرچه تعداد فایل ها بیشتر باشد این مساله بغرنج تر می شود. سر و کار داشتن با تعداد زیادی فولدر، اسکرول کردن تعداد زیادی فایل برای پیدا کردن فقط یک فایل، اصلا جالب نیست.

موارد استفاده File Storage
File Storage بر خلاف مشکلاتی که دارد برای بسیاری از کاربردها مناسب است:
اشتراک فایل: اگر به دنبال راهی برای ذخیره و اشتراک فایل در اداره هستید، سادگی ذخیره سازی سطح فایل کاملا آشکار است.
• آرشیو محلی: ذخیره سازی سطح فایل این قابلیت را دارد که با استفاده از راهکار Scale-Out NAS به خوبی قابل مقیاس دهی و Scalable و به طور همزمان مقرون بصرفه باشد و می توان از آن در دیتاسنترهای کوچک استفاده کرد.
• محافظت از دیتا: پیاده سازی آسان، پشتیبانی از پروتکل های استاندارد، تکثیر Native و فناوری های مختلف درایو باعث می شود ذخیره سازی سطح فایل، راهکاری انعطاف پذیر باشد.


Storage_Wars_2

سطح بعدی: Block Storage
حرفه ای های IT از روش Block Storage بیش از همه در معماری های SAN استفاده می کنند. این گزینه جایگزین خوبی برای ذخیره سازی سطح فایل است. Block یک حجم خام ذخیره سازی است که با فایل هایی پر شده است که تکه های دیتا با حجم یکسان را تشکیل می دهند.
یک سیستم عامل مبتنی بر سرور این حجم ها را مدیریت می کند و می تواند از آنها به عنوان هارد درایو استفاده کند. این بدین معنی است که آنها قابلیت هایی دارند که به صورت Native در سیستم عامل وجود دارد.
به عنوان مثال سازمان ها معمولا از ابزارهای جانبی برای مدیریت و Backup گرفتن از دیتایی استفاده می کنند که در معماری Block Storage وجود دارد.

یکی از موارد جالب در مورد Block Storage نوع رفتار آن با فراداده است. برخلاف معماری مبتنی بر فایل، هیچ یک از جزئیات مربوط به یک بلاک در خارج از آدرس آن قرار ندارد. در عوض، سیستم عامل تعیین می کند که چگونه ذخیره سازی مدیریت شود.
سیستم عامل، ذخیره سازی را برای نرم افزارهای مختلف تخصیص می دهد، تصمیم می گیرد که دیتا به کدام قسمت از بلاک برود و فضای ذخیره سازی را با ابزارهایی فراهم می آورد که در روش های دیگر ذخیره سازی وجود ندارد. در شرایط ایده آل، این کنترل به ظاهر کوچک باعث می شود یک Block Storage با عملکرد خیلی خوب داشته باشیم که اساسا Block Storage به همین دلیل مشهور است.


موارد استفاده Block Storage
این واقعیت که Block Storage باعث می شود حجم ها به چیزی تبدیل شوند که می توان با آنها به صورت هارد درایو رفتار کرد باعث می شود Block Storage را بتوان در این موارد استفاده کرد:
• Databaseها: Block Storage در Databaseها و موارد حیاتی دیگر کاربرد دارند که نیاز به عملکرد دائمی خوبی دارند.
• سرورهای ایمیل: Block Storage یک استاندارد Defacto برای ایمیل‌سرور محبوب مایکروسافت یعنی Exchange دارد که از سیستم ذخیره سازی مبتنی بر فایل یا شبکه پشتیبانی نمی کند.
Block Storage :RAID شالوده محکمی برای آرایه RAID فراهم می کند که شرایط بهتری را برای محافظت از دیتا و بهبود عملکرد فراهم می کند. این کار با استفاده از ترکیب چند دیسک به عنوان حجم های مستقل انجام می شود.
• ماشین های مجازی: شرکت های فروشنده نرم افزارهای مجازی سازی مثل VMware از Block Storage به عنوان فایل سیستم برای سیستم عامل مهمانی استفاده می کند که با Image ماشین مجازی یکپارچه شده است.

Object Storage: راهکاری پیچیده برای نیازهای پیچیده ذخیره سازی
Object Storage همان طور که از نامش پیداست برای ذخیره فایل در Containerهای مجزایی به کار می رود که Object نام دارند. می توانید به یک Object یک Identifier منحصربفرد بدهید و آن را در یک حافظه مدل Flat ذخیره کنید. این مساله به دو دلیل مهم است. می توانید Object را با ارائه ID منحصربفرد آن، از Storage بازیابی کنید و در نتیجه پیدا کردن اطلاعات در یک مخزن بزرگ دیتا ساده تر می شود. می توانید دیتا را به صورت فیزیکی در یک سرور محلی یا روی یک سرور بر روی کلود که کیلومترها دورتر است، ذخیره کنید. با استفاده از ساختار آدرس Flat می توان Object را به همان صورت بازیابی کرد.
Object Storage همچنین رویکرد انعطاف پذیرتری در مورد فراداده دارد. به عنوان مثال می توانید فراداده را طوری تنظیم کنید که Objectها را با نرم افزارهای خاصی Pair کند. همچنین می توانید تعیین کنید که بر اساس اهمیت نرم افزارها، Objectها به قسمت های مختلفی از ذخیره سازی انتقال داده شوند و حتی Objectهایی را که به مدت طولانی به آنها نیاز نداشتید به کلی حذف کنید. سقف محدودیت شما آسمان است! این حالت های مختلف و بی پایان تنظیمات فقط در Object Storage وجود دارد.
می توانید در اعتراض بگویید که ذخیره سازی سطح فایل و بلاک، کارایی بهتری دارند، اما انعطاف پذیری مزیتی است که باعث می شود Object Storage از نظر سهولت مدیریت با اختلاف فاحشی از رقبای خود سبقت بگیرد.

همگام شدن با سرعت فزاینده رشد داده ها از بزرگ ترین چالش هایی است که تیم های IT با آن مواجهند. قطعا هر دو روش ذخیره سازی مبتنی بر فایل و مبتنی بر بلاک، قابل توسعه هستند و می توان آنها را برای مقادیر بزرگ دیتا استفاده کرد، اما وقتی دیتا به ترابایت و پتابایت می رسد، این قابلیت‌ اطمینان است که اهمیت می یابد و بی‌شک باید در ذخیره سازی در نظر گرفته شود.
قابلیت توسعه جایی است که Object Storage در آن کارکرد شگفت انگیز خود را به نمایش می گذارد. Scale Out کردن معماری Object به سادگی افزودن یک Node به کلاستر ذخیره سازی است. هر سروری محدودیت های فیزیکی خاص خود را دارد، اما این نوع ذخیره سازی با استفاده از Location Transparency و انعطاف پذیری فراداده می تواند بدون هیچ محدودیتی Scale شده و روش های متداول ذخیره سازی را به چالش بکشد.

Storage_Wars_3

شرکت هایی مثل Exablox مسیر ساخت سیستم های ذخیره سازی را که قابلیت توسعه فوق العاده ای داشته و هزینه و پیچیدگی کمی دارند هموار کرده اند. در نتیجه برای هر کاربردی می توان مورد مناسب با آن را انتخاب کرد.

APIهای RESTful دسترسی آسانی را فراهم می کنند
دسترسی موضوع دیگری است که باعث تمایز Object Storage نسبت به رقبای خود می شود. در حالی که فایل ها و بلاک ها به طور کلی برای سیستم عامل ها در دسترس هستند، پلتفرم های مبتنی بر Object از REST API برای دسترسی استفاده می کنند. نرم افزارهای API مثل Amazon Simple Storage Services و OpenStack Swift انعطاف پذیری فوق العاده ای دارند.
آنها Objectها را از طریق HTTP در دسترس قرار می دهند و کارکردهای مدیریتی مربوط به Permission ،Authentication و ویژگی های فایل را تسهیل می کنند. این ابزارها باعث می شوند Object Storage از زمان آپلود تا زمان حذف بهینه و Administration ساده تر شده و به بهترین حد خود برسد.

مساله مهم درباره REST APIها این است که آنها برای همه سیستم ها و نرم افزارهای ذخیره سازی در دسترس نیستند. این مساله ممکن است به دلیل مشکلات Licensing مربوط به نرم افزارها باشد. یا شاید توانایی برنامه نویسی مربوط به نوشتن Callها و توابع در نرم افزار را نداشته باشید. اما خوشبختانه گزینه های جایگزینی به صورت ابزارهای تبدیل وجود دارد که می توانید با استفاده از آنها و پروتکل های فایل این کارها را انجام دهید. این ابزارها باعث می شود Object Storage به صورت یک ذخیره سازی متداول عمل کند بدون این که مشکلی برای فایل سیستم یا نرم افزار ایجاد کند.

موارد استفاده Object Storage
Object Storage مفهوم جدیدی نیست، اما به نظر می رسد ابزاری باشد که بیشتر مناسب حجم انبوه دیتای موجود در سازمان ها باشد.
برخی موارد استفاده ایده آل عبارتند از:

Object Storage :Big Data این قابلیت را دارد که دیتای Unstructured را به راحتی ذخیره کند. این مساله Object Storage را به گزینه مناسبی برای کاربردهای Big Data در سازمان های مالی، سلامت و ... تبدیل کرده است.
• نرم افزارهای وب: در حالت عادی می توانید از طریق API به Object Storage دسترسی یابید. به همین دلیل است که Object Storage گزینه مناسبی برای نرم افزارهای وب مبتنی بر API است که نیاز به ذخیره سازی مقدار زیادی دیتا دارند.
آرشیوهای Object Storage :Backup دارای پشتیبانی Native برای حجم های بالای دیتا است و مقیاس پذیری آن تقریبا نامحدود است. به همین دلیل برای مقادیر بزرگ دیتا که در آرشیو استفاده می شوند به کار گرفته می شود.
همه شواهد نشان می دهد که دنیای IT به سمتی حرکت می کند که در آن Object Storage بهترین گزینه برای ذخیره سازی است. البته هنوز هم ذخیره سازی مبتنی بر بلاک و حتی مبتنی بر فایل، در چشم انداز ذخیره سازی فعلی حرفی برای گفتن دارند. تعیین نیازهای شخصی شما اولین گامی است که باید در راستای انتخاب نوع ذخیره سازی برای سازمانتان برداشته شود.

*منبع

برچسب ها: Storage Wars, OpenStack Swift, File Storage, جنگ ذخیره سازی, Object Storage, Block Storage, RAID, VMware, Big Data, NAS