امیرحسین کریم پور
مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

تکنولوژی Data Deduplication چیست؟ معرفی به همراه مفاهیم مربوطه

Data Deduplication اغلب به نام های Intelligent Compression(فشرده سازی هوشمند) و یا Single-Instance storage(اینو واقعا نمیتونم معادل فارسیشو پیدا کنم!) نیز مشهور است. Data deduplication فرآیندی است که از افزونگی ناشی از کپی شدن اطلاعات تکراری و در نهایت از overhead شدن دستگاه های ذخیره سازی اطلاعات جلوگیری به عمل می آورد. تکنیک Data deduplication از این اطمینان حاصل میکند که تنها یک نمونه از داده یا همان Data در دستگاه ذخیره سازی اطلاعات یا مدیا ( دیسک ، فلش مموری ، tape و ... ) نگهداری شده است. بلوک های اطلاعاتی redundant شده جایگزین یک نمونه اصلی و اولیه ی ساخته شده اطلاعات میشوند. تصویر زیر بخوبی مفهوم آنچه که گفتم را بیان میکند :

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
وب سایت توسینسو

اگر با روش بکاپ گیری به طریق Incremental یا افزایشی آشنایی دارید مکانیزم کاری data Deduplication به طور تنگاتنگی با Incremental Backup مطابقت دارد، که تنها داده هایی که تغییر یافته جایگزین backup قبلی میشود و کل اطلاعات بکاپ تحت تاثیر قرار نمی گیرد.برای مثال یک سیستم email به طور معمول ممکن است شامل 100 نمونه از فایل هایی باشد که هر کدام مانند هم 1 مگابایت حجم دارند و عینا مانند هم هستند و هیچ تفاوتی در محتوای آنها وجود ندارد.

در حین اگر از email هایمان بکاپ یا آرشیو گرفته شود کل 100 نمونه باید ذخیره شود که نیازمند 100 مگابایت فضای ذخیره سازی میباشد.با بکارگیری Data Deduplication تنها یک نمونه از آن همه فایل های یکسان ذخیره می شود با یک حساب سرانگشتی ما 99 مگابایت در فضای ذخیره سازی مان صرفه جویی کردیم.حال این تنها یک مثال کوچک بود اما اگر در محیط های Enterprise که از فضاهای ذخیره سازی بسیار کلان استفاه میکنند این شرایط پیش بیاید بدون شک هزینه های یک سازمان را برای فراهم سازی فضای ذخیره سازی افزایش میدهد.

بررسی Target Deduplication و Source Deduplication

فرآیند Data Deduplication میتواند در دو سطح Source-based dedupe و Target-based dedupe اتفاق بیفتد که به توضیح هر یک میپردازیم ...

  • Source-based Dedupe بلوک های داده افزونه شده را قبل از اینکه به backup target انتقال داده شود حذف میکند چه کلاینت باشد چه سرور. فرآیند Source-based Dedupe به هیچ سخت افزار اضافه ای نیاز ندارد. از ویژگی های فرآیند Deduplicating در سطح source کاهش پهنای باند و storage می باشد.
  • در Target-based Dedupe که نسبت به Source-based Dedupe برتری دارد Backup ها در بستر شبکه به Disk-based Hardware مانند دستگاه های ذخیره سازی SAN انتقال داده میشوند. استفاده از این نوع فرآیند درست است که نیازمند متحمل شدن هزینه های نسبتا زیادی است اما در عوض آن نسبت به Source-based Dedupe عملکرد مطلوبی را به همراه دارد.

تکنیک های Deduplicate کردن داده

دو متد اصلی برای Deduplicate کردن برای داده های Redundant شده وجود دارد که عبارتند از Inline Deduplication و Post-processing Deduplication

در محیط های عملیاتی Backup گیری از اطلاعات به شما به طور وضوح مشخص میکند که از کدام یک از این دو نوع تکنیک استفاده کنید.

  • Inline Deduplication داده ها را درون سیستم Backup آنالیز میکند.داده های زائد یا تکراری که در سیستم ذخیره سازی Backup ذخیره شده اند حذف می شوند. تکنیک Inline dedupe کمتر به ذخیره سازی Backup نیاز دارد اما در جای خود میتواند سبب bottleneck شود. کارخانه های سازنده Storage Array مانند شرکت HP توصیه می کنند که ابزار Inline data Deduplication بهتر است Turn off شوند تا عملکرد primary storage بالا برود.حال به توضیح Post-processing dedupe میپردازیم ...
  • Post-processing dedupe فرآیند Backup نامتقارن است که بعد از اینکه داده ها در Storage نوشته شد اقدام به حذف redundant data ها میکند. در این فرآیند داده های Duplicate شده در محل اصلی بلوک داده ها که قرار گرفته اند حذف و جایگزین میشوند. این نوع تکنیک به کاربران یک مزیت بسیار خوب را نوید میدهد که می توانند به طور انعطاف پذیری workload ها را dedupe کنند و سریعا بکاپ های اخیر را بازیابی کنند بدون اینکه زحمت زیادی را متحمل شوند.

منظور از File-level data Deduplication و Block-level data Deduplication

Data deduplication میتواند در دو سطح Block Level و File Level عمل کند :

  • File deduplication همانطور که از نامش مشخص است فایل های Duplicate شده را از بین می برد اما File-level data Deduplication کارایی چندان مفیدی برای فرآیند Deduplication ندارد . File-level data Deduplication فایل مورد نظر را که Backup گرفته شده اند و یا آرشیو شده اند با فایل هایی که کپی آنها ذخیره شده است مقایسه می کند. این کار با چک کردن attribute های آن فایل انجام میدهد بر خلاف چک کردن index شده هایشان، اگر فایل Unique بود ذخیره میشود و index اش برزورسانی می شود در غیر این صورت ، pointer ای که به فایل موجود ایندکس شده اشاره دارد ذخیره می شود و از ذخیره شدن دوباره آن فایل در کنار فایل مشابهش جلوگیری میکند. نتیجه این میشود که فقط یک نمونه از فایل ذخیره میشود و کپی های مکرر جایگزین فایل اصلی میشود .
  • Block-level deduplication درون یک فایل را نگاه کرده و از هر بلوک داده که مقدارش با بلوک داده های دیگر که تنها در قسمتی تغییر در آن وجود دارد و بقیه عین هم هستند را ذخیره میکند.همه Block ها به chunk(تکه یا فرگمنت هایی با طول مساوی) هایی با طول یکسان شکسته میشوند.هر chunk از داده ها از الگوریتم Hash نظیر MD5 و یا SHA1. استفاده میکنند و مورد پردازش قرار میگیرند.این فرآیند یک شماره منحصر بفرد که نتیجه الگوریتم هش است برای هر تکه یا chunk تولید میشود و سپس در index ذخیره میشود.وقتی یک فایلی برزورسانی شد تنها تغییرات داده آن فایل ذخیره میشود حتی اگر اندازه اش یک بایت باشد.این روش Block Deduplication را کاراتر و موثرتر می کند. اما در هر حال Block deduplication کندتر انجام می شود و قدرت پردازش بیشتری را می طلبد و از index های بزرگتری برای مسیریابی هر chunk استفاده می کند.

Hash collisions یک مشکل اساسی در فرآیند deduplication است. وقتی تکه ای از یک داده یک شماره Hash منحصر بفرد را بخود اختصاص میدهد آن hash با hash ]ای دیگر در داخل index مقایسه میشود،اگر آن شماره hash در index موجود بود آن تکه از داده duplicate در نظر گرفته شده و نیاز به ذخیره سازی مجدد آن نمیباشد.بر خلاف این قضیه،hash نامبر جدید در index اضافه میشود و داده جدید ذخیره میشود. در موارد نادر Hash نامبر تولید شده برای دو chunk از داده یکسان ایجاد میشود در این حین اگر فرآیندHash Collision رخ دهد سیستم داده جدید را ذخیره نمیکند

زیرا سیستم اینگونه در نظر میگیرد که دو Hash نامبر هم اکنون در index وجود دارد و نیاز به ذخیره سازی داده جدید نیست. این اتفاق بد data loss را برایمان به وجود می آورد.تعدای از Vendor ها از الگوریتم های Hash ترکیبی استفاده میکنند تا از فرآیند hash collision تا حد مناسبی جلوگیری به عمل آورند. این کار باعث بالارفتن امنیت در ذخیره سازی داده ها هم میشود . همچنین تعدای از Vendor ها metadata ها را بررسی می کنند تا داده ها را تمیز دهند و از وقوع collisions جلوگیری کنند.


امیرحسین کریم پور
امیرحسین کریم پور

مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

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

نظرات