حامد خاکباز
حامد خاکباز
خواندن ۶ دقیقه·۲ سال پیش

SDS چیست؟ بررسی مفهوم Sofware Defined Storage

منظور از SDS یا Software Defined Storage چیست؟ مفهوم SDS چه کاربردی دارد؟ SDS چه معایبی دارد؟ اگر با مفاهیم ذخیره سازی و زیرساخت Storage آشنا هستید تاکنون با عنوان SDS برخورد کرده اید. در این مجموعه مطالب از زوایای جدیدی به تعریف کاربردی و بررسی اولیه و تحلیل Software Defined Storage و در مقاله های بعدی به بررسی انواع SDS خواهیم پرداخت. همچنین پیش نیاز این مطالب آشنایی با مفاهیمی از قبیل Storage Virtualization و دوره +Storage است.


معرفی مفهوم SDS

یکی از مهمترین چالش هایی که در ذخیره سازی یا Storage وجود دارد، رشد تدریجی میزان دیتا ذخیره شده و به تبع آن نیاز به افزایش ظرفیت ذخیره سازی است. در یک سازمان بزرگ بسته به نوع کسب و کار میتوان سالیانه 40 تا 60 درصد انتظار افزایش میزان دیتا را شاهد بود و بدنبال آن باید ظرفیت ذخیره سازی Data Storage آن سازمان نیز به همین میزان توان افزایش را داشته باشد. یکی از سوالاتی که در این لحظه مطرح می شود سوال در مورد آینده ذخیره سازی است؛ تا کی و چقدر دیتا افزایش می یابد؟ یا به عبارت دیگر تکنیک ها و تکنولوژِی های ذخیره سازی کنونی تا چه زمان پاسخگوی نیازها هست و چقدر هزینه اقتصادی دارد.

به همین دلایل در طول تاریخ IT و با تغییرات هر دوره شاهد ایجاد روش های جدید ذخیره سازی هستیم و همیشه باید به دنبال راهکاری باشیم که نیازهای دوره های بعد از خود را نیز بتواند پوشش دهد. هم اکنون آخر خط و بهترین مجموعه تکنیک راهکار ذخیره سازی، Software Defined Storage یا SDS است چرا که SDS به شرکت ها کمک می کند تا انعطاف پذیری کافی در مقابله با روندهای نوین و گرایش های جدید دنیای دیجیتال را داشته باشند و مشکلات Critical ذخیره سازی را برطرف کنند.

همانطور که همه ی ما بارها شنیده ایم؛ تعریف های زیادی از زوایای مختلف از مفهوم Software Defined Storage شده است، اما آنچه که باید در بحث تئوریک SDS مطرح شود این است که SDS دروازه ورود Hardware به دنیای AI ، HPC و Big Data است و منظور از واژه Software در عبارت Software Defined Storage و در این مفهوم به معنای نقطه ی مقابل Hardware نیست و نمی توان استوریج را به دو بخش سخت افزاری و نرم افزاری تفکیک کرد، چرا که SDS بر خلاف تصور اولیه به معنای رها شدن و یا مستقل بودن از سخت افزار نیست.

بلکه منظور از Software در این عبارت به معنای رها شدن از Hardware Vendor و مستقل بودن از سازنده ی سخت افزار و ویژگی های خاص هر سخت افزار است. به همین دلیل است که SDS مورد توجه سازمان ها و مدیران قرار می گیرد چرا که می توان ظرفیت آن را به سادگی افزایش داد بدون اینکه وابسته به سخت افزار و یا سازنده خاصی باشیم و این منجربه کاهش هزینه نگه داری و یا TCO می شود چرا که SDS در بطن خود نوعی Cost Saving را به دنبال دارد.

یک SDS نحوه عملکرد Storage I/O را برای گرفتن Performance بیشتر از منابع ذخیره سازی موجود تغییر می دهد و باعث افزایش efficiency در مصرف ظرفیت ذخیره سازی ، storage provisioning و همچنین فرآیند های snapshot/clone در سطح Storage Operating System می شود. یک SDS یک Hypervisor نیست اما مانند یک Hypervisor ، عملکرد و انعطاف پذیری را برای استفاده بهتر از منابع ذخیره سازی افزایش می دهد.

همچنین پیش از اشاره بیشتر به مزایای SDS برای درک بهتر اهداف SDS از معایب آن نیز مواردی را به زبان می آوریم از این رو در اینجا و به طور مختصر از معایب SDS می توان به ایجاد Complexity اشاره کرد و علاوه بر آن ضرورت نیاز هرچه بیشتر به نیروی متخصص .

از طرفی برخی راهکار های ذخیره سازی هستند که با وجود اینکه در طراحی اولیه تابع مدل SDS هستند ولی بازهم وابستگی به سخت افزار یا Vendor خاصی دارند. از طرفی در کنار تمام خصوصیات خوب SDS که جلوتر به آنها بیشتراشاره میکنیم؛ سازمان های کوچک و متوسط زیادی هستند که به سمت SDS رفته اند ولی هزینه های زیادی را متحمل شده اند و دست آخر با نارضایتی تصمیم به جایگزینی Storage خود و استفاده از راهکاری غیر از SDS شده اند. علت چیست؟ چرا SDS پاسخگو نبود؟ چرا نشد؟

بسته به شرایط مختلف دلایل غیرفنی و فنی زیادی می تواند داشته باشد اما یکی از شایع ترین آنها تعریف سازوکار SDS در موقعیتی است که اهداف واقعی تئوری SDS را پوشش نمی دهد. تئوری SDS برای ذخیره سازی یک هدف اصلی و اساسی را دنبال می کند و آن این است که (بدون کاهش سرعت و پرفرمنس ذخیره سازی ، بدون صرف هزینه بدون توجیه اقتصادی و بدون کاهش پایداری و سلامت دیتای ذخیره شده)، امکان تدریجی افزایش ظرفیت زخیره سازی از یک bit تا Zettabyte و یا Yottabyte را فراهم کند و این تناسب باید رعایت و اندازه گیری شود.

مفهوم SDS باعث می شود سازمان های Enterprise و همچنین Cloud Provider ها بتوانند برای زیرساخت خود یک Shared Storage ایجاد کرده و منابع ذخیره سازی خود را توزیع کنند. در واقع کاربرد اصلی و عمده SDS در Storage های زیرساخت های Public Cloud است. چرا که بدون SDS نمی توان در اندازه ها و ظرفیت بالای ذخیره سازی سرویس دهی کرد چون راهکاری به غیر از SDS در Cloud Provider می تواند هزینه های نگه داری بسیار سنگینی را ایجاد کند که توجیه اقتصادی ندارد.

از طرفی یک SDS باید Open Source باشد تا بتواند به کمک یک Community خودش را رشد داده و به بلوغ برسد تا ویژگی های آن بر اساس نیاز هر بیزینس قابل Customize و انعطاف پذیر باشد. به عبارتی دیگر Storage مورد استفاده در زیرساخت ابری باید all in one storage backend باشد و تنها SDS می تواند این دغدغه ها را پوشش دهد.

زیرساخت های Cloud مبتنی بر SDS انعطاف پذیری مورد نیاز ارائه دهندگان خدمات ابری را برای ارایه راه حل های ذخیره سازی از قبیل Infrastructure as a Service (که نمی توان از دیگر راه های سنتی ذخیره سازی سازمانی به دست آورد) و یا هر نوع Storage as a Service را فراهم می کند تا قابل ذخیره سازی ابری قابل ارایه باشد زیرا در حقیقت اساس SDS برای تحقق آنها طراحی شده است. بدین ترتیب با استفاده از SDS ، ارائه دهندگان خدمات ابری می توانند فضای ذخیره سازی ابری کم هزینه و قابل اطمینان را به مشترکین خود ارایه دهند.

اما همانطور که گفته شد سازوکار SDS از معماری های ذخیره سازی سنتی پیروی نمی کند. در واقع با پیدایش مفهوم SDS معماری ذخیره سازی نیز بر اساس محدودیت هایی که SDS از بین برد، دوباره و از نو طراحی و نوشته شده است. وقتی که می گوییم SDS مقیاس پذیر است یعنی الگوریتم های آن مقیاس پذیر شده است. به عبارت دیگر SDS به دنبال استفاده از الگوریتم هایی است که Scalable Hashing داشته باشند و بتوانند روند ذخیره دیتای تحت کنترل خود را با این نوع محاسبات جفت و جور کنند.

هم اکنون می توان از مفهومی تحت عنوان decentralized cluster در SDS صحبت کرد که به معنای جای دادن دیتا به صورت غیر متمرکز است. یعنی برخی الگوریتم های مورد استفاده در SDS در هر تراکنش به جای استفاده از یک Metadata Table واحد ای که از پیش تعریف شده ، فرآیند محاسبه و تعیین محل قرار گیری هر دیتا را در همان لحظه و هر بار بر روی Node های مختلفی انجام می دهند. این موضوع سرعت جستجو برای یافتن محل قرارگیری هر دیتا را به طرز چشمگیری افزایش می دهد. البته باید در نظر داشت که همه راهکارهای SDS موجود از این ویژگی ها پشتیبانی نمی کنند.

defined storageذخیره سازیانعطاف پذیریSDS
Cloud Engineer
شاید از این پست‌ها خوشتان بیاید