یکی از بخشهای مقالۀ “File Storage چقدر هزینه دارد؟” در مورد دیتای ساختار نایافته بحث میکند و این که چگونه رشد سریع آن، دنیای دیجیتال را فرا گرفته است. حجم انبوه فایلهای متنی، ویدئوها، ایمیلها و محتوای وب باعث شده است که مدیران IT به دنبال راه حل بهتری برای ذخیره اطلاعات خود باشند. فناوریهای مختلف مزایای مختلفی دارند اما انتخاب از بین آنها اصلا ساده نیست.
از نظر معماری، سه سطح مختلف ذخیرهسازی وجود دارد که میتوانید انتخاب کنید:
File Storage
Block Storage
Object Storage
بیایید در مورد آنها بحث کرده و مزایای آنها و موارد استفاده هریک را بیان کنیم.
1. File Storage: ذخیره آسان و مستقیم در سطح فایل
ذخیره مبتنی بر فایل قدمت زیادی دارد و مثل بسیاری از چیزهای دیگری که قدیمیاند، ساده هم هست. شما نامی برای فایل انتخاب میکنید، فراداده میدهید و سپس آنها را در فولدرها و زیرفولدرها قرار میدهید. قراردادهای ساده نامگذاری باعث شده است که ساماندهی فایلها به این روش خیلی ساده باشد در حالی که ذخیره سازی NAS برای تسهیلِ به اشتراکگذاری محلی در نظر گرفته شده است. بسیاری از شرکتها نیاز به راهی ساده و متمرکز برای ذخیره فایلها دارند. File Storage میتواند به تمام این نیازها پاسخ گوید و هزینه آن نیز معمولا برای تجارتهای کوچک معقول است.
در File Storage، یک ساختار سلسله مراتبی داریم که معمولا برای مقادیر نسبتا کم دیتا به خوبی انجام میشود. اما هر مدیر IT که با این سیستم کار کرده باشد مطمئنا متوجه ضعفهای آن شده است. از نظر فنی شما میتوانید تعداد نامحدودی فایل ایجاد و ذخیره کنید. اما پیدا کردن آن فایلها کاری طاقت فرسا است. هرچه تعداد فایلها بیشتر باشد این مساله بغرنجتر میشود. سر و کار داشتن با تعداد زیادی فولدر، اسکرول کردن تعداد زیادی فایل برای پیدا کردن فقط یک فایل، اصلا جالب نیست.
موارد استفاده File Storage
File Storage بر خلاف مشکلاتی که دارد برای بسیاری از کاربردها مناسب است:
• اشتراک فایل: اگر به دنبال راهی برای ذخیره و اشتراک فایل در اداره هستید، سادگی ذخیرهسازی سطح فایل کاملا آشکار است.
• آرشیو محلی: ذخیرهسازی سطح فایل این قابلیت را دارد که با استفاده از راهکار Scale-Out NAS به خوبی قابل مقیاس دهی و Scalable و به طور همزمان مقرون بصرفه باشد و میتوان از آن در دیتاسنترهای کوچک استفاده کرد.
• محافظت از دیتا: پیادهسازی آسان، پشتیبانی از پروتکلهای استاندارد، تکثیر Native و فناوریهای مختلف درایو باعث میشود ذخیرهسازی سطح فایل، راهکاری انعطاف پذیر باشد.
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 ماشین مجازی یکپارچه شده است.
3. 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 شده و روشهای متداول ذخیرهسازی را به چالش بکشد.
شرکتهایی مثل 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 بهترین گزینه برای ذخیرهسازی است. البته هنوز هم ذخیرهسازی مبتنی بر بلاک و حتی مبتنی بر فایل، در چشم انداز ذخیرهسازی فعلی حرفی برای گفتن دارند. تعیین نیازهای شخصی شما اولین گامی است که باید در راستای انتخاب نوع ذخیرهسازی برای سازمانتان برداشته شود.