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 شده را از بین میبرد.اما خدمات شبکه آن یک کارایی چندان مفیدی برای فرآیند 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 جلوگیری کنند.