یادداشت ویراستار: اصل این مطلب در خرداد ۹۸ نوشته شده بود و در آبان ۹۹ دوباره بررسی و توسط کارشناسان سرور و شبکه فالنیک، بررسی و تایید شده است.
قیمت استوریج با توجه به امکانات و ویژگیهای آن تعیین میشود؛ یکی از این ویژگیها قابلیتی است به نام snapshot. در این مقاله میخوانیم که napshot چیست؟ چه تفاوتی با بکاپ و Versioning و Clone دارد؟ ابتدا با مفاهیمی چون Volume و Clone و Versioning آشنا میشویم سپس به تعریف اسنپ شات و تفاوت و ویژگیهای آن میپردازیم. با توسعه شبکه آداکهمراه باشید.
- Volume چیست؟
- Clone چیست؟
- Versioning چیست؟
- Snapshot چیست؟
- تفاوت بکاپ و اسنپ شات
- مزایا و معایب اسنپ شات در برابر بکاپ
- تفاوت Snapshot و Clone در استوریج
- ۶ نکته مهم در گرفتن Snapshot
- انواع روشهای گرفتن اسنپ شات و مزایا و معایب آنها
- ری استور کردن snapshot
Volume چیست؟
Volume یا درایو منطقی، یک فضای ذخیره سازی واحد و در دسترس است که یک فایل سیستم واحد دارد و معمولا روی یک پارتیشن واحد از یک هارد دیسک قرار میگیرد.
Clone چیست؟
Clone، کپی یکسان و همانند از چیزی است و اولین بار در علم بیولوژی بیان شد. شرکتهایی مانند Compaq و Dell از کامپیوترهای IBM تقلید کردند تا سیستمهایی مشابه آن را با قیمت مناسبتر و ارزانتر ارایه دهند. در این زمان بود که برای اولین بار در صنعت کامپیوتر و سرور از این اصطلاح استفاده شد.
Versioning چیست؟
ورژنینگ یعنی ایجاد و مدیریت چندین نسخه از یک محصول که همگی آنها یک عملکرد دارند اما یا بهبود یافتهاند یا آپگرید شدهاند یا کاستومایز شدهاند. این اصطلاح اصولا برای سیستم عاملها، نرم افزارها و وب سرویسها استفاده میشود.
Snapshot چیست؟
Snapshot مجموعهای از اشارهگرها است که به دیتای ذخیره شده روی هارد، Tape و یا استوریج NAS و SAN اشاره دارد و چیزی شبیه به جدول محتواست اما کامپیوتر و سرور به آن مانند یک بکاپ کامل از دیتا نگاه میکند. اگر به طور خلاصه بخواهیم تعریفی از Snapshot ارایه دهیم، میتوانیم بگوییم که Snapshot در واقع Versioning است.
در ادامه تعریف آن اضافه میکنم که Snapshot یعنی توانایی غیرفعال کردن یک تغییر (Undo A Change). بیایید مثالی بزنیم: اگر هر ساعت یک Snapshot بگیرید، تمام فایلها و فولدرها میتوانند به وضعیتی برگردند که در هر یک از Snapshot های گرفته شده داشتهاند. پس اگر ویروسی شده باشید میتوانید فایلها و فولدرها و همه Volume ها را به وضعیتی برگردانید که قبل از درگیر شدن با ویروس داشتهاید.
تفاوت بکاپ و اسنپ شات
بکاپ، کپی کاملی از دیتاست. اگر ۵ ترابایت داده داشته باشید، هر کپی، ۵ ترابایت دیگر فضا اشغال میکند. اگر ساعتی یک بکاپ بگیرید بعد از ۱۰ ساعت، ۵۰ ترابایت فضا لازم دارید. پس دقیقا به همین دلیل، ذخیره چندین نسخه بکاپ چندان رایج نیست و بکاپگیری برای Versioning مناسب نیست.
Snapshot برای ورژنینگ کردن عالی است چون از جنس بکاپ نیست و میتوانید نسخههای بسیاری داشته باشید بدون اینکه فضای زیادی اشغال کنند. یک Snapshot تنها نیاز به ذخیره اطلاعاتِ لازم برای Undo A Change کردن دارد که باعث میشود فضای کمتری نسبت به بکاپ لازم داشته باشد.
مزایا و معایب اسنپ شات در برابر بکاپ
اما برویم سراغ دیگر تفاوت های بکاپ و اسنپ شات.
- Snapshot، مخصوص همان سیستمی است که از آن اسنپ شات گرفته میشود اما از بکاپ میتوان در سیستمهایی غیر از سیستمی که از آن بکاپ تهیه شده، برای بازگرداندن استفاده کرد.
- هنگام بازگرداندن، فقط نیاز به انتخاب اسنپ شات است اما از آنجایی که Backup، کپی کاملی از اطلاعات است، به تنظیمات بیشتری نیاز دارد.
- از Snapshot برای بازگرداندن سیستم به همان وضعیت قبلی استفاده میشود اما از بکاپ برای بازیابی اطلاعات میتوان استفاده کرد.
- در صورت بروز مشکل سخت افزاری در سیستم، دیگر نمیتوانید با اسنپ شات، سیستم را بازگردانید بلکه باید با بکاپ این کار انجام شود.
اسنپ شات بهتر است یا بکاپ؟
همه چیز بستگی به مورد استفاده شما دارد. به عنوان مثال برای راهاندازی نرم افزار و سرویس، Snapshot بهتر است و در مبحث امنیت و حفاظت از اطلاعات، بکاپگیری توصیه میشود.
در این تصویر مشاهده میکنید که چگونه مزایای روش های اسنپ شات و بکاپ در کنار هم میتواند سیاست کاملی در زمینه حفاظت و امنیت اطلاعات باشد.
تفاوت Snapshot و Clone در استوریج
Clone و Snapshot هر دو روشهای خوبی برای Disaster Recovery هستند. فقط باید بدانیم هر کدام برای چه محیطهایی مناسب هستند.
کلون در واقع ایجاد کپی کامل از چیزی است در حالی که Snapshot یک کپی Initial تهیه میکند تا با آن بتوان تغییرات متوالی را ایجاد کرد. یعنی یک کپی از وضعیت کنونی سیستم تهیه میکند تا بتوان از آن هم در ساخت Clone و هم بازگرداندن سیستم به وضعیت مورد نظر استفاده کرد. وقتی از یک لحظه خاص Snapshot تهیه میشود میتوان از آن برای بازگرداندن وضعیت استفاده کرد و سپس یک کپی جدید و کامل از چیزی تهیه کرد. کاربرد آن در ایجاد پایگاه داده، فایل سیستم و ماشین مجازی است. به عنوان مثال در بسیاری از محیطها مانند پایگاه داده، تنها بخش کوچکی از دیتا تغییر میکند بنابراین با استفاده از یک Snapshot، میتوان یک کپی یا Clone جدید تهیه کرد بدون آن که کل پایگاه داده را کپی کنیم.
میتوان از Storage Snapshot برای ایجاد کلون استفاده کرد. مثلا در محصولاتی که EMC و NetApp و دیگر تولیدکنندگان تولید میکنند، هم از Full Clone هم از Snapshot پشتیبانی میشود پس این این امکان برای شما فراهم است که انواع مختلفی کلون از آن Snapshot ها ایجاد کنید. ممکن از به کلون خاصی در یک زمان خاص نیاز داشته باشید تا دیتابیس، فایل سیستم یا ماشین مجازی ایجاد کنید.
در بسیاری محیطها مانند دیتابیس، باید ورژنهای مختلفی داشته باشید اما فقط بخش کوچکی از دادهها تغییر میکند. با Snapshot در فضای ذخیره سازی صرفهجویی میشود و با کلون های انعطاف پذیر که را دارید میتوانید کپیهایی از کپی تهیه کنید تا محصولات، تستها، توسعه و کنترل کیفیت را انجام دهید. پس میتوانید کپیهای بسیاری بدون Overhead تهیه کنید.
کلون، کپی کامل است و Snapshot تصویری از ورژنی در زمان خاص.
Snapshot برای ایجاد کپی های Point-in-Time از Volume های منتخب استفاده میشود و تمامی اینها در یک Pool جداگانه روی Appliance ذخیره میشوند. مدل پایه MAS شامل ۶۴ Snapshot License است که میتواند حداکثر تا ۵۱۲ نیز آپگرید شود.
کاربران میتوانند Snapshot ها را به صورت دستی یا برنامهریزی شده در فواصل زمانی مشخص، ایجاد کنند. تعداد حروف نام این Snapshot ها نیز محدود به ۲۰ حرف است. با استفاده از Snapshot مورد نظر، به سادگی میتوان وضعیت Volume را به حالت مورد نظر برگرداند. میتوانید به راحتی Volume Cloning را انجام دهید: انتخاب Volume، انتخاب گزینه کپی از منوی دراپ دان و اجرای آن (میتوانید برای زمان مشخصی نیز انجام این کار را زمانبندی کنید). هم Snapshot ها و هم Clone ها میتوانند برای پورتهای FC استفاده شوند.
۶ نکته مهم در گرفتن snapshot
- حداقل ۲۰ تا ۳۰ درصد فضای ذخیره سازی بیشتری برای Snapshot در نظر بگیرید.
- اسنپ شات های قدیمی را طی برنامه مشخصی پاک کنید. هر بار که اسنپ شات جدیدی میگیرید، اسنپ شات های قبلی به صورت Read only در میآیند.
- پاک کردن اسنپ شات ها منابع سیستمی را درگیر میکند پس این کار را زمانی که بار کاری کم است انجام دهید.
- هنگام انجام کارهای ریسکی مانند آپگرید دیتابیس اصلی حتما قبل از شروع، بکاپ کاملی تهیه کنید و سپس اسنپ شات بگیرید. در این مواقع (نصب و آپگیرید و تغییرات اساسی) فقط به گرفتن اسنپ شات اکتفا نکنید.
- هنگام defragmenting از اسنپ شات فعال استفاده نکنید چون تمام تغییراتی که هنگام defragmenting روی دیسک ایجاد میشود، روی فایل اسنپ شات کپی میشود.
- داکیومنت اسنپ شات گیری خود را برای تیم ادمین آماده کنید. این داکیومنت باید شامل مواردی چون کدام VM باید از اسنپ شات استفاده کند، کدام اپلیکیشن ریسک بالاتر یا پایینتری دارد باشد.
انواع روشهای گرفتن اسنپ شات و مزایا و معایب آنها
انواع روش های گرفتن Snapshot عبارتند از:
- Copy-on-write
- Redirect-on-write
- Clone or split-mirror
- Copy-on-write (COW) with background copy
- Incremental
- Continuous data protection – CDP
هر یک از این روش ها دارای مزایا و معایب خاص خود هستند:
- همگی این روش ها در حفاظت از اطلاعات در برابر خطاهای منطقی کاربرد دارند.
- همه روشها به جز روش اول و دوم در برابر خطاهای فیزیکی از دیتا حفاظت میکنند و منابع سیستمی کمی (مانند مصرف CPU) استفاده میکنند.
- صرفه جویی در فضا در روش اول و دوم و ششم از همه بیشتر است.
- در روش دوم و سوم نوشتن overhead روی نسخه کپی اصلی دیتا انجام نمیشود و در بقیه بسیار زیاد انجام میشود.
ری استور کردن snapshot
در تکنولوژی copy-on-write با دو روش میتوانید اسنپ شات خود را روی base volume خود Restore کنید: (base volume همان ظرفیت فیزیکی دیسک است)
Snapshot volume: اگر میخواهید فایل های پاک شده تان را بازیابی کنید با ایجاد Snapshot volume از یک snapshot image و سپس اختصاص دادن آن به هاست این کار را انجام دهید.
snapshot image: اگر میخواهید base volume تان را به زمان خاصی ری استور کنید از snapshot image قبلی استفاده کنید تا دیتا به base volume برگردد.