Erasure Coding یا EC یک روش حفاظت از داده است که در آن دادهها به بخش (fragment)های کوچکتر تقسیم شده، گسترش یافته و با دیتاهای redundant کدگذاری میشوند. گفتنی است که این دادهها در پایان در مکانها یا رسانههای ذخیرهسازی مختلف ذخیره میشوند. از آنجایی که دادهها میتوانند از بخشهای دیگر بازسازی شوند، حتی اگر بخشی از دادهها آسیب دیده یا گم شود، این روش کمک شایانی به بازیابی دادهها کمک میکند.
اگر یک درایو خراب شود یا دادهها آسیب ببینند، دادهها میتوانند از سگمنتهایی که در درایوهای دیگر ذخیره شدهاند بازسازی شوند. به این ترتیب، EC میتواند به افزایش افزونگی دادهها کمک کند بدون اینکه نیاز به بار اضافی یا محدودیتهای موجود در انواع مختلف RAID باشد. در این مقاله قصد داریم تا با این مفهوم بیشتر آشنا شویم، با ما همراه باشید.
Erasure Coding چگونه کار میکند؟
EC دادهها را به بخشهای کوچکتر تقسیم میکند و سپس فرگمنتهای اضافی یا بلوکهای توازن (Parity) برای بازسازی دادهها ایجاد میکند. این بلوکهای توازن از روی دادههای اصلی محاسبه و در درایوهای مختلف ذخیره میشوند تا در صورت خرابی یک درایو یا آسیب دیدن دادهها، امکان بازسازی آنها بدون از دست رفتن اطلاعات فراهم شود. این روش برای محافظت از دادهها در برابر خرابیها و تضمین بازیابی اطلاعات استفاده میشود.
برای مثال، یک سیستم ذخیرهسازی ممکن است از پیکربندی کدنویسی 2+5 برای توزیع دادهها در درایوهای فیزیکی مختلف استفاده کند. دراین پیکربندی، الگوریتم EC هر واحد داده را به پنج fragment تقسیم میکند و سپس دو parity fragment را که از دادههای اصلی محاسبه میشود، اضافه میکند. هر fragment در یک درایو فیزیکی جداگانه ذخیره میشود. از این رو، سیستم ذخیرهسازی باید حداقل هفت درایو داشته باشد.
در پیکربندی 2+5، دادههای توازن 29٪ از ظرفیت را مصرف میکنند. این پیکربندی میتواند خرابی حداکثر 2 درایو را تحمل کند، چه درایوها حاوی fragment داده باشند یا parity fragment (توازن). EC به قدری انعطافپذیر است که میتواند پیکربندیهای متنوعی را پشتیبانی کند. برای مثال، پیکربندی 3+17 دادهها را به 17 سگمنت تقسیم کرده و سپس سه parity segment اضافه میکند که قادر به تحمل خرابی 3 درایو به طور همزمان است، در حالی که مصرف ظرفیت دادههای توازن به کمتر از 18٪ کاهش مییابد. لازم به ذکر است که این پیکربندی به حداقل 20 درایو فیزیکی نیاز دارد.
Erasure Coding این امکان را فراهم میکند که دادهها بدون نیاز به تکثیر کامل آنها، محافظت شوند، زیرا دادهها میتوانند از بخش Parity Fragments بازسازی شوند. به عنوان مثال، در یک پیکربندی ساده 1+2، یک واحد داده به دو سگمنت تقسیم شده که یک parity fragment برای محافظت به آن اضافه میشود. اگر یک برنامه بخواهد دادهها را از هر یک از سگمنتهای داده بازیابی کند و آن سگمنتها در دسترس باشند، عملیات به طور عادی ادامه پیدا میکند، حتی اگر parity segment در دسترس نباشد.
با این حال، اگر اولین فرگمنت داده در دسترس باشد اما دومی در دسترس نباشد، یا بالعکس، دادهها از اولین فرگمنت داده و parity fragment خوانده میشوند. این دو بخش با هم استفاده میشوند تا دادههایی که در فرگمنت دوم بودند، بازسازی شوند، که این امکان را میدهد تا عملیات دادهها حتی زمانی که دیسک در حال بازسازی است، ادامه یابد.
RAID چیست؟
RAID از دو مکانیزم اصلی Mirroring و تقسیم دادهها با Parity برای حفاظت از دادهها استفاده میکند. Mirroring یکی از ابتداییترین روشهای حفاظت از داده است که در RAID 1 به کار میرود. در این پیکربندی، کپیهای متعدد از دادهها روی دو یا چند درایو ذخیره میشود. اگر یک دیسک خراب شود، دادهها از دیسکهای دیگر بدون ایجاد وقفه در روند فرآیند، بازیابی میشوند. کار با Mirroring آسان است اما به دلیل ذخیره سازی دادههای تکراری، منابع ذخیرهسازی زیادی را مصرف میکند.
تقسیم دادهها با Parity که به آن RAID 5 گفته میشود، دادهها را بر روی چندین درایو تقسیم کرده و بلوکهای Parity برای حفاظت از دادهها به آنها اضافه میکند. اگر یکی از درایوها خراب شود، دادههای از دست رفته با استفاده از دادههای دیگر درایوها بازسازی میشوند. هرچند که RAID 5 فقط از یک خرابی درایو در هر بار پشتیبانی میکند. به همین دلیل برخی فروشندگان، سیستمهای RAID 6 را ارائه میدهند که میتوانند از دو خرابی درایو به طور همزمان پشتیبانی کنند. همچنین میتوان پیکربندیهای مختلف RAID را ترکیب کرد، مانند RAID 10 که از Mirroring درایو و تقسیم داده بدون Parity برای حفاظت از دادهها استفاده میکند.
مقایسه Erasure Coding و RAID
Erasure codeها، که به عنوان کدهای اصلاح خطای پیشرفته شناخته میشوند، بیش از 50 سال پیش برای شناسایی و اصلاح خطاها در انتقال دادهها توسعه یافتند. از آن زمان، این فناوری برای ذخیرهسازی دادهها بهمنظور حفاظت از دادهها استفاده شده است. اخیراً، EC به طور گستردهتری برای مجموعههای داده بزرگ مبتنی بر شیء، بهویژه در فضای ابری، محبوب شدهاند و بهعنوان یک جایگزین عملی برای RAID شناخته میشوند.
مزایا و معایب Erasure Coding و تکنولوژی RAID
- Erasure Coding میتواند از RAID 6 پیشی بگیرد و تعداد درایوهای خراب بیشتر را تحمل کند، پس سطح تحمل خطا بالا میرود. به عنوان مثال، در یک پیکربندی 6+10، 16 سگمنت داده و Parity بین 16 درایو توزیع میشود و امکان مدیریت حداکثر 6 درایو خراب را به طور همزمان فراهم میکند.
- EC بسیار انعطافپذیرتر از RAID است، زیرا پیکربندیهای RAID معمولاً ثابت و محدود هستند. با استفاده از EC، سازمانها میتوانند یک سیستم ذخیرهسازی طراحی کنند که نیازهای خاص حفاظت از دادههای آنها را برآورده کند. علاوه بر این، Erasure Coding میتواند زمان لازم برای بازسازی درایو خراب شده را کاهش دهد، بسته به پیکربندی و تعداد درایوها.
- EC معایبی نیز دارد، از جمله نیاز به پردازش زیاد. الگوریتم EC باید روی تمامی دادههایی که روی استوریج نوشته میشوند اجرا شود و سگمنتهای داده و Parity باید روی تمامی درایوهای مشارکت کننده نوشته شوند. اگر یک درایو خراب شود، به دلیل بازسازی فوری دادهها عملیات بازسازی فشار بیشتری به منابع پردازشی وارد میآورد.
- RAID یک تکنولوژی شناخته شده و دارای سطوح ثابت از افزونگی و Parity است، که این امر سبب پیادهسازی نسبتاً ساده آن میشود.
- پیکربندیهای RAID، چه به صورت Mirroring و چه به صورت تقسیم بندی با Parity، تأثیر کمتری بر روی عملکرد دارند و اغلب میتوانند آن را بهبود بخشند.
- RAID میتواند نسبت به Erasure Coding فضای ذخیرهسازی بیشتری مصرف کند، زیرا تمام دادهها را تکرار میکند نه فقط کد Parity.
- پیکربندیهای مختلف RAID سالها نقش مهمی در عملیات مراکز داده ایفا کردهاند، اما با چالشهای قابل توجهی همراه هستند. بهعنوان مثال، Mirroring از نظر استفاده از منابع ناکارآمد است، و تقسیم بندی با Parity در بهترین حالت، تنها میتواند از دو خرابی همزمان دیسک محافظت کند.
- یکی دیگر از مشکلات RAID مربوط به ظرفیت است. با بزرگتر شدن درایوها، بازسازی یک درایو در صورت خرابی، زمان بسیار بیشتری میبرد. این امر نه تنها میتواند عملکرد برنامهها را تحت تأثیر قرار دهد، بلکه خطر از دست رفتن دادهها را نیز افزایش میدهد. به عنوان مثال، در یک پیکربندی RAID 5، اگر یک درایو خراب شود، ممکن است روزها طول بکشد تا بازسازی آن کامل شود، که در این مدت، آرایه ذخیرهسازی در وضعیت آسیبپذیری قرار میگیرد. خرابی درایو همچنین میتواند بر عملکرد برنامهها تأثیر منفی بگذارد.
سخن آخر
Erasure Coding (EC) و RAID هر دو روشهای مؤثری برای حفاظت از دادهها هستند که هر یک مزایا و معایب خاص خود را دارند. EC به دلیل انعطافپذیری بالا، توانایی تحمل خرابیهای متعدد، و مصرف بهینهتر فضای ذخیرهسازی نسبت به RAID، انتخاب مناسبی برای سیستمهای مدرن و محیطهای بزرگ مبتنی بر فضای ابری است. در مقابل، RAID بهدلیل سادگی در پیادهسازی، عملکرد بهتر در پردازش، و کاربرد گسترده در مراکز داده، همچنان بهعنوان یک فناوری رایج باقی مانده است.
با این حال، چالشهای مرتبط با RAID، از جمله ناکارآمدی در مصرف منابع در Mirroring و محدودیت در تحمل خرابی، باعث شده است EC بهویژه در محیطهایی با نیازهای پیچیده و حجم دادههای بسیار بزرگ به یک گزینه جذاب تبدیل شود. از سوی دیگر، EC به دلیل نیاز به پردازش زیاد و فشار بر منابع، ممکن است در برخی کاربردها هزینههای بیشتری ایجاد کند.
در نهایت، انتخاب بین این دو روش به نیازهای خاص سازمان، سطح تحمل خرابی، و منابع در دسترس بستگی دارد. EC با قابلیتهای پیشرفته، راهحلی مدرن برای چالشهای پیچیده ذخیرهسازی ارائه میدهد، در حالی که RAID همچنان بهعنوان یک گزینه ساده و پایدار برای بسیاری از کاربردهای سنتی مناسب است.
آداک فناوری مانیا با عرضه سرور و استوریج با قیمت و کیفیت مناسب در کنار شماست تا بهترین انتخاب را داشته باشید. با مشاورین فنی ما در تماس باشید تا بهترین پیشنهاد را به شما داشته باشند.
در مقاله بعد قصد داریم در خصوص این مفهوم بیشتر بدانیم و تفاوت آن با replication، موارد استفاده و مزایای Erasure Coding را بررسی کنیم. با ما بمانید…
ادامه دارد…