شاید با نگاه اولیه به تیتر این مقاله و عبارت «دواممندی دادهها» یا همان Data Durability بلافاصله چندین عدد ِ 9 که پشتسر هم چیده شدهاند را به یاد بیاورید و خدماتدهندگانی که در تبلیغهایشان درج کردهاند دواممندی دادهها در سیستمهای آنها برابر با 99.999999% و عددهایی شبیه به این است و هیچکس هم نپرسیده که این مقدار را چگونه حساب کردهاند! در حقیقت دواممندی دادهها یکی از پربحثترین موضوعات مرتبط با نگهداری دادههاست که کمتر در عمق مطلب به آن پرداختهاند. برای هر کسی که در کسبوکاری مرتبط با دادهها فعالیت میکند؛ دواممندی و قابلیت اطمینان محل ذخیرهسازی و نگهداری دادهها موضوعی حیاتی است.
به طور مثال شرکت معتبر Backblaze ادعای یازده 9 دارد. یعنی معتقد است که دواممندی دادهها در دیتاسنترهای آنها برابر با 99.999999999% است. آنها در تبلیغات خود نوشتهاند که اگر شما یک میلیون فایل در سرورهای ما به مدت 10 میلیون سال ذخیرهسازی کنید؛ میتوانید انتظار داشته باشید که پس از این مدت تنها یک فایل را از دست بدهید. حالا در نظر داشته باشید که احتمال برخورد یک شهابسنگ به زمین و نابودی زمین عدد بالاتری نسبت به از دست دادن فایل در سرورهای Backblaze است. به همین نحو شرکت معظم آمازون نیز ادعای دواممندی با یازده 9 یا 99.999999999% دارد؛ در حالیکه شرکت مایکروسافت برای خدمت Azure خود ادعای دواممندی با دوازده 9 یا 99.9999999999% دارد.
چرا ادعای دواممندی 99.999999% دادههای یک دیتاسنتر هیچ اهمیتی ندارد؟
به طور معمول شرکتهای ارائه دهندهی خدمات دیتاسنتر در بیشتر مواقع از تکنیک مشابهی برای حفظ اطلاعات مشتریانشان استفاده میکنند. آنها فایلهای مشتریان را به چندین قطعه تقسیم میکنند و از هر قطعه چندین کپی تهیه کرده و این کپیها را در هارد دیسکهای مختلف و در مکانهای گوناگونی ذخیره میکنند. بدین صورت وقتی که یک هارد دیسک و یا یک سرور خاص دچار مشکل میشود و آسیب میبیند؛ امکان بازسازی فایلها از هارد دیسکها و سرورهای دیگر وجود خواهد داشت.
اما بیایید در جهان واقعی [و نه در محاسبات نظری] ببینیم که دواممندی حقیقی دادهها چقدر است؟ بیایید یک سناریو را بررسی کنیم: بسیاری از فروشندگان خدمات دیتاسنتر وابسته به پرداخت فاکتورهای مشتریانشان هستند و در صورتی که فاکتوری پرداخت نشود و مهلت تحت قرارداد برای حفظ دادهها (که به طور معمول یک ماه است) به پایان برسد؛ این شرکتها اقدام به پاک کردن اطلاعات مشتری مذکور از سرورهایشان میکنند. بیایید یک سناریو را بررسی کنیم:
- شما از طریق پرداخت موبایلی سعی میکنید فاکتور دیتاسنتر خود را پرداخت کنید؛ پرداخت انجام میشود و شما هم فکر میکنید کار انجام شده ولی چند ساعت بعد پول به حسابتان بازمیگردد و نوتیفیکیشن پرداخت ناموفق به دلیل مشغلهی زیاد به چشمتان نمیآید.
- پرداخت انجام نشده و شرکت ارائه دهندهی دیتاسنتر از طریق ایمیل به شما اخطار میدهد که اگر تا 30 روز پرداختی انجام ندهید اکانت شما و اطلاعات شما همه پاک خواهند شد. اما ایمیل مذکور به پوشهی Spam رفته و شما آن را نمیبینید.
- شرکت ارائهکنندهی خدمات دیتاسنتر سعی میکند از طریق پیامک و تماس تلفنی نیز با شما ارتباط برقرار کند و هشدارهای لازم را بدهد. اما شما شمارهای را به آنها دادهاید که خیلی وقت است استفاده نمیکنید و آن سیم کارت فعال نیست.
- در نهایت با تمام اتفاقات شرح داده شده در بالا؛ مهلت 30 روزه به پایان رسیده و اکانت و تمام محتویات شما از سرورهای شرکت پاک میشود. دادههایی که هیج کپی دیگری از آن ندارید و تمام کسب و کار شما به آن دادهها وابسته است.
در سناریویی که ترسیم کردیم، مشاهده نمودید که امکان دارد بر اثر چند اشتباه و سهلانگاری و عدم پرداخت فاکتور؛ اطلاعات مهم شما از روی سرورهای شرکت ارائه دهنده خدمات دیتا سنتر توسط خود نرمافزار به علت گذشتن مهلت پرداخت فاکتور پاک شود؛ حالا اینکه دواممندی دادههای این شرکت به لطف سختافزارهای بهروز و نرم افزارهای خوب شان و طراحی دقیق برابر با 99.999999999% باشد فرقی به حال شما در سناریوی مذکور نمیکند. یعنی دواممندی دادهها هر چقدر هم بالا باشد؛ اشتباه انسانی و سهلانگاری میتواند به راحتی منجر به از دست رفتن اطلاعات اساسی بشود.
هر شرکت فعال در زمینهی دادهها که میخواهد متعهدانه دادههای مشتریانش را حفظ کند، باید از الگوی طراحی برای خرابی یا designing for failure استفاده کند. در چنین رویکردی با در نظر داشتن شانس بالا برای خرابی؛ هنگام طراحی دیتاسنترها؛ نرمافزارها و سرویسها، تحمل خطا و خرابی سیستم را بالا برده و اثرگذاری سناریوهای خرابی را کاهش میدهند. تمام هارد دیسکها بالاخره خراب میشوند. این یک حقیقت است. مسئله اینجاست که شما چگونه سیستمتان را طراحی میکنید تا اثرگذاری این خرابیها را کاهش داده و به حداقل برسانید؟ این مسئلهی اساسیست.
پس باید برایتان ثابت شده باشد که هیچوقت عباراتی همانند دواممندی 99.999999999% حتا اگر به لحاظ عملی نیز ثابت شده باشند؛ نمیتوانند از فرآیند از دست رفتن اطلاعات پیشگیری کنند؛ چرا که دو سوم تمام سناریوهای از دسترفتن اطلاعات هیچ ارتباطی با ایرادهای سختافزاری و سیستمی ندارند. مقصر دو سوم موارد از دست رفتن اطلاعات، دلایلی چون خطای انسانی، ویروسها؛ باگهای نرمافزاری؛ بدافزارها و هکرها هستند. به طور قطع و یقین هر شخصی حداقل یک بار فایلی را به اشتباه پاک یا overwrite کرده. پس توجه داشته باشید که دواممندی 99.999999999% نمیتواند جلوی چنین اشتباهات انسانیای را بگیرد.
آیا در سناریوی بالا اطلاعات قابل بازیابی است؟
به طور معمول شرکتها طوری سیستمهایشان را طراحی میکنند که امکان از دست رفتن اطلاعات به حداقل برسد. پیشتر توضیح دادیم که آنها با تقسیم فایلهای مشتریان به چندین قطعه و تهیه چند کپی از آنها؛ کپی هر قطعه را در چندین هارد مختلف در چند سرور گوناگون ذخیره میکنند؛ نمیخواهیم وارد بحثهای فنی شویم ولی به گفتن این مقدار بسنده میکنیم که در چنین آرایهی پیچیدهای باید حداقل چهار دیسک مرتبط از دست بروند تا امکان بازیابی اطلاعات به حداقل برسد. به این دلیلست که شرکتها از دواممندی 99.999999999% سرویسهایشان میگویند. در هر حال اگر با اشتباهات انسانی فایلی از روی چنین آرایهای پاک شود؛ در صورت جدا کردن به موقع هارد دیسکهای مرتبط با آن فایل میتوان امیدوار بود که با استفاده از تکنیکهای بازیابی اطلاعات بتوان اطلاعات مورد نظر را بازگرداند. ولی این نکتهی مهم را در نظر داشته باشید که به علت ترافیک بسیار بالای نوشتن روی هارد سرورها؛ اگر به موقع هارد دیسکها از سرور جدا نشوند؛ با Overwriting دادهها شانس بازیابی اطلاعات را به طور کامل از دست میدهید.
برخی از مشتریان کلینیک هارد ایران