فضای ذخیرهسازی بلوکی چیست؟
فضای ذخیرهسازی بلوکی فناوری است که ذخیرهسازی داده و دستگاههای ذخیرهسازی را کنترل میکند. این فناوری هر دادهای، مانند یک فایل یا ورودی پایگاه داده را میگیرد و آن را به بلوکهایی با اندازه مساوی تقسیم میکند. سپس سیستم ذخیرهسازی بلوکی، بلوک داده را روی فضای ذخیرهسازی فیزیکی زیرین به روشی بهینه برای دسترسی و بازیابی سریع ذخیره میکند. توسعهدهندگان، فضای ذخیرهسازی بلوکی را برای برنامههایی که نیاز به دسترسی کارآمد، سریع و مطمئن به دادهها دارند، ترجیح میدهند. فضای ذخیرهسازی بلوکی را به عنوان یک خط لوله مستقیمتر به دادهها در نظر بگیرید. در مقابل، فضای ذخیرهسازی فایل یک لایه اضافی متشکل از یک سیستم فایل (NFS، SMB) برای پردازش قبل از دسترسی به دادهها دارد.
مزایای فضای ذخیرهسازی بلوکی چیست؟
سازمانها به دلیل مزایای زیر از فضای ذخیرهسازی سطح بلوکی استفاده میکنند.
عملکرد:
فراداده، دادههای اضافی است که دادههای اصلی موجود در سیستم ذخیرهسازی را توصیف میکند. فضای ذخیرهسازی بلوکی از فراداده محدود استفاده میکند، اما برای عملیات خواندن/نوشتن به شناسه های منحصر به فرد اختصاص داده شده به هر بلوک متکی است. این امر سربار انتقال داده را کاهش میدهد و به سرور اجازه میدهد تا به طور کارآمد به دادههای موجود در فضای ذخیرهسازی بلوکی دسترسی داشته و آنها را بازیابی کند. از آنجا که فراداده فضای ذخیرهسازی بلوکی محدود است، فضای ذخیرهسازی بلوکی تأخیر بسیار کمی را برای حجمهای کاری با عملکرد بالا ارائه میدهد. این امر برای برنامههای حساس به تأخیر مانند پایگاههای داده مورد نیاز است. به عنوان مثال، Viasat از Amazon Elastic Block Store (Amazon EBS) برای ثبت دادههای توان عملیاتی بالا (تراکنش بالا) و بهینهسازی هزینههای ذخیرهسازی استفاده میکند. سازمانها از Amazon EBS برای بهینهسازی عملکرد و هزینه، مقیاس و چابکی و برای محافظت از دادهها با EBS Snapshots استفاده میکنند.
معماری فضای ذخیرهسازی بلوکی مسیرهای متعددی را برای دسترسی به دادهها فراهم میکند، در حالی که فضای ذخیرهسازی فایل فقط یک مسیر را فراهم میکند، به همین دلیل فضای ذخیرهسازی بلوکی برای برنامههای با عملکرد بالا ترجیح داده میشود.
انعطافپذیری و مقیاسپذیری:
دستگاههای ذخیرهسازی بلوکی به محیطهای شبکه خاصی محدود نیستند. بلوکهای جداگانه را میتوان برای سیستمعاملهای مختلف، مانند ویندوز یا لینوکس پیکربندی کرد. توسعهدهندگان میتوانند دادهها را در محیطهای مختلف به اشتراک بگذارند تا از دسترسی بالا اطمینان حاصل کنند. معماری فضای ذخیرهسازی بلوکی نیز بسیار مقیاسپذیر است. توسعهدهندگان میتوانند بلوکهای جدید را به بلوکهای موجود اضافه کنند تا نیازهای رو به رشد ظرفیت را برآورده کنند.
اصلاح مکرر:
فضای ذخیرهسازی بلوکی از نوشتن مکرر دادهها بدون تأثیر بر عملکرد پشتیبانی میکند. به جای بازنویسی کل فایل، سیستم بلوک خاصی را که نیاز به اصلاح دارد، شناسایی میکند. سپس، بلوک انتخاب شده را با دادههای جدید بازنویسی میکند. این امر باعث میشود فضای ذخیرهسازی بلوکی برای مدیریت فایلهای بزرگ که نیاز به بهروزرسانی مکرر دارند، بسیار کارآمد باشد.
کنترل دانهای:
توسعهدهندگان درجه بالایی از کنترل را بر ذخیرهسازی دادهها در فضای ذخیرهسازی بلوکی به دست میآورند. به عنوان مثال، آنها میتوانند با گروهبندی دادههای سریعتغییر در بلوکهای خاص و ذخیره فایلهای ثابت در بلوکهای دیگر، عملکرد را بهینه کنند. این امر عملکرد سیستم را بهبود میبخشد، زیرا بهروزرسانیهای مداوم فقط تعداد کمی از بلوکهای داده را به جای کل فایل تحت تأثیر قرار میدهند. به عنوان مثال، فضای ذخیرهسازی بلوکی به شما این انعطافپذیری را میدهد که دادههای سریعتغییر را روی دیسک حالت جامد (SSD) برای بالاترین عملکرد قرار دهید و دادههای گرم یا سرد را روی هارد دیسکهای کمهزینهتر (HDD) ذخیره کنید.
موارد استفاده از فضای ذخیرهسازی بلوکی چیست؟
ویژگیهای منحصر به فرد فضای ذخیرهسازی بلوکی، آن را به گزینه ترجیحی برای برنامههای تراکنشی، حیاتی و ورودی/خروجی فشرده تبدیل میکند. فضای ذخیرهسازی بلوکی برای طیف گستردهای از برنامهها از جمله پایگاههای داده رابطهای یا تراکنشی، پایگاههای داده سری زمانی، کانتینرها، دیسکهای بوت و سیستمهای فایل هایپروایزر استفاده میشود.
شبکههای منطقه ذخیرهسازی:
توسعهدهندگان اغلب فضای ذخیرهسازی بلوکی را به عنوان یک شبکه منطقه ذخیرهسازی (SAN) مستقر میکنند. SAN یک فناوری شبکه پیچیده است که فضای ذخیرهسازی بلوکی را به چندین سیستم شبکهای ارائه میدهد، گویی که این بلوکها دستگاههای متصل محلی هستند. SANها معمولاً از اتصال فیبر کانال استفاده میکنند. در مقابل، یک فضای ذخیرهسازی متصل به شبکه (NAS) یک دستگاه واحد است که فایلها را از طریق اترنت ارائه میدهد.
معماری SAN از سه لایه تشکیل شده است:
- لایه میزبان شامل سرورهایی است که دسترسی به ذخیرهسازی را مدیریت میکنند.
- لایه ذخیرهسازی شامل دستگاههای ذخیرهسازی بلوکی فیزیکی مانند نوار مغناطیسی، درایوهای دیسک یا رسانههای نوری است.
- لایه Fabric سرورهای SAN و ذخیرهسازی SAN را با دستگاههایی مانند سوئیچهای SAN، پلهای پروتکل، روترها، کابلها و دستگاههای دروازه پل میکند.
مهم است که توجه داشته باشید که SANها با استفاده از تکثیر همزمان یا ناهمزمان در مسافتهای طولانی، افزونگی را به کار میبرند. این امر باعث کاهش زمان از کارافتادگی در صورت عدم دسترسی به یک مکان جغرافیایی میشود.
معماری SAN میتواند با چندین نوع ذخیرهسازی در یک محیط واحد، از جمله فضای ذخیرهسازی بلوکی، کار کند. فضای ذخیرهسازی بلوکی یک جایگزین بسیار کارآمد برای ذخیرهسازی فایل در SANها ارائه میدهد.
کانتینرها:
توسعهدهندگان از فضای ذخیرهسازی بلوکی برای ذخیره برنامههای کانتینری شده در فضای ابری استفاده میکنند. کانتینرها بستههای نرمافزاری هستند که شامل برنامه و فایلهای منبع آن برای استقرار در هر محیط محاسباتی هستند. مانند کانتینرها، فضای ذخیرهسازی بلوکی نیز به همان اندازه انعطافپذیر، مقیاسپذیر و کارآمد است. با فضای ذخیرهسازی بلوکی، توسعهدهندگان میتوانند کانتینرها را به طور یکپارچه بین سرورها، مکانها و محیطهای عملیاتی منتقل کنند.
حجمهای کاری تراکنشی:
حجمهای کاری تراکنشی توالی دادههای تولید شده در نقاط خاصی از فرآیندهای تجاری هستند. به عنوان مثال، سوابق فروش، گزارشهای عملیات و هشدارهای ورود به سیستم، حجمهای کاری تراکنشی هستند. سازمانهایی که تراکنشهای حساس به زمان و حیاتی را پردازش میکنند، چنین حجمهای کاری را در یک پایگاه داده با تأخیر کم، ظرفیت بالا و تحمل خطا ذخیره میکنند.فضای ذخیرهسازی بلوکی به توسعهدهندگان اجازه میدهد تا یک پایگاه داده تراکنشی قوی، مقیاسپذیر و بسیار کارآمد راهاندازی کنند. از آنجا که هر بلوک یک واحد مستقل است، پایگاه داده به طور بهینه عمل میکند، حتی زمانی که دادههای ذخیره شده رشد میکنند. علاوه بر این، بلوکهای ذخیرهسازی جداگانه را میتوان در سرورهای مختلف میزبانی کرد و از تنگناهای دسترسی جلوگیری کرد.در برنامههای حیاتی، فضای ذخیرهسازی بلوکی توسط یک آرایه افزونه از دیسکهای مستقل (RAID) برای اطمینان از افزونگی دادهها ایمن میشود. سیستم RAID از فایلهای داده در فضای ذخیرهسازی ثانویه پشتیبان تهیه میکند و در صورت خرابی دیسک اصلی، کپی را بازیابی میکند. این امر تضمین میکند که برنامه هنگام ذخیره و بازیابی حجمهای کاری تراکنشی در فضای ذخیرهسازی بلوکی بدون وقفه باقی میماند.
تجزیه و تحلیل و انبار داده:
فضای ذخیرهسازی بلوکی با معماری HDFS (سیستم فایل توزیع شده Hadoop) Hadoop برای ذخیره دادهها به عنوان واحدهای توزیع شده مستقل استفاده میشود که عملکرد را برای برنامههای تحلیلی Hadoop و Kafka فراهم میکند.
ماشینهای مجازی:
یک ماشین مجازی (VM) فناوری است که به یک کامپیوتر اجازه میدهد یک محیط عملیاتی جداگانه را با منابع محاسباتی تعریف شده توسط نرمافزار اجرا کند. به عنوان مثال، میتوانید یک سیستم عامل لینوکس را روی یک دسکتاپ ویندوز با یک VM اجرا کنید. یک هایپروایزر یک لایه انتزاعی است که مسئول تخصیص حافظه، درایو و خدمات محاسباتی مورد نیاز برای اجرای محیط عملیاتی ثانویه است.فضای ذخیرهسازی بلوکی از هایپروایزرهای VM محبوب پشتیبانی میکند. کاربران میتوانند سیستم عامل، سیستم فایل و سایر منابع محاسباتی را روی یک حجم ذخیرهسازی بلوکی نصب کنند. آنها این کار را با قالببندی حجم ذخیرهسازی بلوکی و تبدیل آن به یک سیستم فایل VM انجام میدهند. این امر به آنها اجازه میدهد تا به راحتی اندازه درایو مجازی را افزایش یا کاهش دهند و فضای ذخیرهسازی مجازی شده را از یک میزبان به میزبان دیگر منتقل کنند.
فضای ذخیرهسازی بلوکی چگونه کار میکند؟
در یک سیستم ذخیرهسازی بلوکی، میتوانید دادهها را به بلوکها یا قطعات مستقل با اندازه ثابت تقسیم کنید. هر بلوک یک قطعه جداگانه از ذخیرهسازی داده است. یک قطعه کامل از اطلاعات، مانند یک فایل داده، در چندین بلوک غیر متوالی ذخیره میشود.
سیستم ذخیرهسازی بلوکی فراداده سطح بالا، مانند نوع فایل، مالکیت و مهر زمانی را حفظ نمیکند. توسعهدهندگان باید یک جدول جستجوی داده در سیستم برنامه طراحی کنند تا ذخیرهسازی دادهها در بلوکهای مربوطه را مدیریت کنند. برنامه ممکن است دادهها را در محیطهای عملیاتی مختلف برای افزایش کارایی خواندن/نوشتن ذخیره کند.
نوشتن داده:
در طول یک توالی نوشتن، برنامه دادهها را به چندین بخش با اندازه بلوک تقسیم میکند. دادهها را در چندین بلوک مینویسد و شناسه بلوک را در یک جدول جستجوی داده ثبت میکند. جدول جستجو به سرور اجازه میدهد تا آدرس نسبی دادههای ذخیره شده در بلوک را محاسبه کند.
خواندن داده:
هنگامی که کاربران یک فایل خاص را از سیستم ذخیرهسازی بلوکی درخواست میکنند، سرور از جدول جستجوی داده برای تعیین محل ذخیره قطعات داده استفاده میکند. سپس، برنامه دادهها را از چندین بلوک بازیابی میکند و آنها را به ترتیب اصلی ادغام میکند.
چه انواع دیگری از ذخیرهسازی در دسترس است؟
علاوه بر فضای ذخیرهسازی بلوکی، گزینههای ذخیرهسازی شی و فایل نیز وجود دارد. هر نوع مزایای منحصر به فرد خود را ارائه میدهد.
ذخیرهسازی شی:
ذخیرهسازی شی یک فناوری است که دادهها را به صورت بدون ساختار به نام اشیا ذخیره و مدیریت میکند. هر شی با یک شناسه منحصر به فرد برچسب گذاری شده است و حاوی فرادادهای است که محتوای زیربنایی را توصیف میکند. به عنوان مثال، ذخیرهسازی شی برای عکسها حاوی فرادادهای در مورد عکاس، وضوح، قالب و زمان ایجاد است.
توسعهدهندگان از ذخیرهسازی شی برای ذخیره دادههای بدون ساختار، مانند متن، ویدئو و تصاویر استفاده میکنند.
مقایسه فضای ذخیرهسازی بلوکی با ذخیرهسازی شی:
هر دو راه حل ذخیرهسازی بسته به مورد استفاده مفید هستند. فضای ذخیرهسازی بلوکی مقادیر تأخیر کم و عملکرد بالا را در موارد مختلف ارائه میدهد. ویژگیهای آن عمدتاً برای ذخیرهسازی پایگاه داده ساختاریافته، حجمهای سیستم فایل VM و حجمهای بالای بارهای خواندن و نوشتن مفید است.
ذخیرهسازی شی برای مقادیر زیادی از دادههای بدون ساختار بهترین استفاده میشود، به ویژه هنگامی که دوام، ذخیرهسازی نامحدود، مقیاسپذیری و مدیریت فراداده پیچیده عوامل مرتبط با عملکرد کلی هستند.
ذخیرهسازی فایل:
ذخیرهسازی فایل دادهها را در یک ساختار سلسله مراتبی از فایلها و پوشهها ذخیره میکند. در محیطهای شبکه، ذخیرهسازی مبتنی بر فایل اغلب از فناوری ذخیرهسازی متصل به شبکه (NAS) استفاده میکند. NAS به کاربران اجازه میدهد تا به روشهای مشابه یک هارد دیسک محلی به دادههای ذخیرهسازی شبکه دسترسی داشته باشند. ذخیرهسازی فایل کاربرپسند است و به کاربران اجازه میدهد کنترل اشتراک فایل را مدیریت کنند.
مقایسه فضای ذخیرهسازی بلوکی با ذخیرهسازی فایل:
سیستم ذخیرهسازی فایل دادهها را در یک محیط خاص ذخیره میکند، در حالی که سیستمهای ذخیرهسازی بلوکی میتوانند با سیستمعاملهای مختلف ادغام شوند. ذخیرهسازی فایل یک رابط بصری برای محاسبات کاربر نهایی فراهم میکند. در همین حال، میتوانید بلوکهای داده جدید را بدون افزایش تأخیر عملیاتی به سیستم ذخیرهسازی بلوکی اضافه کنید.
ذخیرهسازی نمونه:
یک ذخیرهسازی نمونه، فضای ذخیرهسازی موقت سطح بلوک را برای نمونه شما فراهم میکند. این ذخیرهسازی روی دیسکهایی قرار دارد که به طور فیزیکی به کامپیوتر میزبان متصل هستند.ذخیرهسازی نمونه برای ذخیرهسازی موقت اطلاعاتی که اغلب تغییر میکنند، مانند بافرها، حافظههای پنهان، دادههای scratch و سایر محتوای موقت ایدهآل است. همچنین برای دادههایی که در ناوگانی از نمونهها تکثیر میشوند، مانند یک استخر متعادل کننده بار از سرورهای وب، مفید است.یک ذخیرهسازی نمونه از یک یا چند حجم ذخیرهسازی نمونه تشکیل شده است که به عنوان دستگاههای بلوکی در معرض دید قرار میگیرند. اندازه یک ذخیرهسازی نمونه و همچنین تعداد دستگاههای موجود بسته به نوع نمونه متفاوت است.