فهرست مطالب
ToggleSnapshot نوعی راهکار برای بازگردانی دادهها و اطلاعات است. به عبارتی میتوان آن را یک تصویر فوری از وضعیت سیستم کامپیوتری در نقطه زمانی خاصی تعریف کرد. یک Snapshot مانند یک جدول دقیق از محتوا عمل میکند و کپیهای قابل دسترسی از دادهها را در اختیار کاربر قرار میدهد که میتوانند به آنها برگردند. در واقع قابلیت برگشت از حالت فعلی به وضعیتهای قبل با این راهکار فراهم میشود. در این مقاله، به معرفی Snapshot ، طرز کار آن و ارتباطی که با پشتیبانگیری دارد، می پردازیم.
Snapshot ذخیرهسازی چگونه کار میکند؟
Snapshotهای ذخیرهسازی اغلب مبتنی بر دیسک متمایز (differencing disk) هستند. دیسک متمایز نوع خاصی از هارد دیسک مجازی است که به هارد دیسک مجازی مادر متصل است. هنگامی که ادمین یک Snapshot ذخیرهسازی ایجاد میکند، سیستم یک دیسک متمایز ایجاد میکند که بههارد دیسک مجازی اصلی متصل است. تمام عملیات نوشتن دادهها در آینده به دیسک متمایز هدایت میشود و هارد دیسک مجازی اصلی را بدون تغییر باقی میگذارد. سیستم فایل کاملا از وجود دیسک متمایز بی اطلاع است. سیستمهای فایل همچنان به عملکرد خود در یک ماشین فیزیکی ادامه میدهند.
Snapshotها روابط والد و فرزندی دارند و شمایل یک درخت را تشکیل میدهند. هر Snapshot گرفته شده شاخه دیگری از درخت را ایجاد میکند. Snapshotها عموما برای حفاظت از دادهها ایجاد میشوند، اما میتوانند برای تست نرمافزارهای کاربردی و داده کاوی نیز استفاده شوند. هنگامی که اطلاعات به دلیل خطای انسانی از بین میروند، میتوان از یک Snapshot ذخیرهسازی برای بازیابی فاجعه (DR) استفاده کرد. اگر یک وصله نرمافزاری (Patch) بد نصب شده باشد، باز هم Snapshotها میتوانند برای بازگرداندن سیستم به حالت قبلی مفید باشند.
انواع فناوریهای Snapshot
همه Snapshotها بر اساس دیسکهای متمایز نیستند. چند نوع دیگر از Snapshotهای ذخیرهسازی وجود دارد که عبارتند از:
Snapshotهای Copy-on-write فرادادههای (metadata) مربوط به مکان دادههای اصلی را بدون کپی کردن آنها هنگام ایجاد Snapshot ذخیره میکنند. این Snapshotها تقریبا به صورت فوری ایجاد میشوند و تاثیر ناچیزی بر عملکرد سیستمی که در حال ایجاد Snapshotها است، میگذارند. این حالت امکان بازیابی سریع سیستم را در صورت خرابی برنامه فراهم میکند.
دادههای موجود در یکSnapshot از نوع copy-on-write با زمان دقیق ایجاد Snapshot مطابقت دارد، از این رو نام آن را copy-on-write گذاشتهاند. با این حال، در صورتی که نیاز به بایگانی یا بازیابی کامل همه دادهها در یک شبکه یا رسانه ذخیرهسازی باشد، تمام Snapshotها قبلی باید در دسترس باشند. هر فرآیند copy-on-write نیاز به یک عملیات خواندن و دو نوشتن دارد. دادهها باید قبل از بازنویسی خوانده و در مکان دیگری نوشته شوند.
Snapshotهای clone یا split-mirror به همه دادههای مجموعهای از درایوهای mirror شده ارجاع میدهند. هر بار که برنامه اجرا میشود، یک Snapshot از کل حجم، نه فقط دادههای جدید یا به روز شده، ایجاد میشود. این امکان دسترسی آفلاین به دادهها را فراهم میکند و فرآیند بازیابی، کپی کردن یا بایگانی تمام دادههای درایو را ساده میکند. این فرآیند کندتر است و هر Snapshot ذخیرهسازی به اندازه دادههای اصلی به فضای ذخیرهسازی نیاز دارد.
Copy-on-write با کپی پسزمینه، دادههای Snapshot را از عملیات copy-on-write میگیرد و از فرآیند پسزمینه برای کپی کردن دادهها در محل ذخیرهسازی Snapshot استفاده میکند. این فرآیند یک Mirror از دادههای اصلی ایجاد میکند و ترکیبی بین copy-on-write و clone در نظر گرفته میشود.
Snapshotهای ذخیرهسازی Redirect-on-write شبیه به copy-on-write هستند، اما عملیات نوشتن به فضای ذخیرهسازی که برای Snapshotها تدارک دیده شده است هدایت میشود و نیاز به دو بار نوشتن را از بین میبرند. Snapshotهای Redirect-on-write فقط دادههای تغییر یافته را به جای کپی از دادههای اصلی مینویسند. هنگامی که یک Snapshot حذف میشود، آن داده باید کپی شده و با دادههای اصلی مطابقت داشته باشد. ایجاد Snapshotهای ذخیرهسازی اضافی، دسترسی به دادههای اصلی همراه با دادههای Snapshot را پیچیده میکند.
Snapshotهای Incremental استمپ زمانی (timestamp) ایجاد میکنند که به کاربر اجازه میدهد به هر نقطهای از زمان برگردد. Snapshotهای incremental را میتوان سریعتر و بیشتر از سایر انواع Snapshotهای ذخیرهسازی تولید کرد. از آنجایی که آنها نیاز به فضای ذخیرهسازی خیلی بیشتری نسبت به دادههای اصلی ندارند، میتوان آنها را برای مدت طولانیتری نگهداری کرد. هر بار که یک Incremental Snapshot ایجاد میشود، Snapshot اصلی به روز میشود.
Snapshotهای VMware یک disk file ماشین مجازی را کپی میکنند و در صورت بروز مشکل میتوانند ماشین مجازی (VM) را به یک نقطه زمانی خاص بازگردانند. فناوری VMware Snapshot در محیطهای مجازی VMware استفاده میشود و اغلب پس از گذشت یک ساعت حذف میشود. ادمین میتواند چندین Snapshot از یک ماشین مجازی بگیرد و چندین نقطه زمانی بازیابی ایجاد کند. هنگامی که یک Snapshot ایجاد میشود، هر داده قابل نوشتن به صورت صرفا قابل خواندن (read-only) تغییر میکند.
حافظت مداوم از دادهها
حفاظت مداوم از دادهها (CDP) از ردیابی بلوکهای تغییر یافته و Snapshotها برای پشتیبان گیری از یک سیستم استفاده میکند. این روش به کاربران امکان میدهد به روزترین نمونه دادهها را بازیابی کنند. CDP با نظارت بر یک دستگاه ذخیرهسازی در سطح بلوک کار میکند. هر زمان که یک بلوک ذخیرهسازی ایجاد یا اصلاح شود، آن بلوک ذخیرهسازی به طور خودکار پشتیبان گیری میشود. این قابلیت به کاربر اجازه میدهد تا دادهها را با آخرین تغییرات ایجاد شده بازیابی کند، در حالی که اگر یک Snapshot ذخیرهسازی معمولی قبل از خرابی سیستم گرفته نشده باشد، این بهروزرسانیها میتوانند از بین بروند. CDP یک رکورد از هر تغییری که رخ میدهد هم نگه میدارد، بنابراین همیشه امکان بازیابی جدیدترین کپی سالم دادهها وجود دارد.
Snapshot ذخیرهسازی و Backup
در حالی که Snapshotهای ذخیرهسازی قابلیتهای شبه Backup ارائه میدهند، تفاوتهایی با هم دارند. Snapshotها برای جایگزینی پشتیبان گیری طراحی نشدهاند. با این حال بسیاری از سیستمهای مدرن پشتیبان گیری از Snapshotها در فرایند ایجاد Backup از دادهها استفاده میکنند.
Snapshotها در مقابل Backupها
استفاده از Snapshotهای ذخیرهسازی به عنوان بخشی از استراتژی کلی پشتیبان گیری، مزایای متعددی دارد. Snapshotها نوعی بازیابی سریع و آسان در زمان هستند و میتوانند توسط برنامههای Backup برای فعال کردن ویژگیهایی مانند بازیابی فوری استفاده شوند. اگرچه فناوری Snapshot Storage مکمل مفیدی برای Backup گیری است، اما به عنوان جایگزین کاملی برای یک نسخه Backup سنتی در نظر گرفته نمیشود.
دلایل متعددی وجود دارد که چرا Snapshotها نباید به عنوان جایگزینی برای پشتیبان گیری استفاده شوند. دلیل اول این است که Snapshotها میتوانند بر عملکرد سیستم تأثیر منفی بگذارند. این مسئله به ویژه در مورد Snapshotهای دیسک متمایز صادق است. هر بار که یک Snapshot ایجاد میشود، یک دیسک متمایز اضافی ایجاد میشود. عملکرد سیستم در هنگام خواندن دادهها با ایجاد هر دیسک متمایز اضافی کاهش مییابد.
دلیل دیگری که چرا Snapshotها جایگزین مناسبی برای Backup نیستند این است که Snapshotها به دادههای منبع وابسته هستند. اگر داده منبع از بین برود، Snapshot نیز از بین میرود. برخلاف یک نسخه Backup، یک Snapshot حاوی یک کپی از دادههای محافظت شده نیست و هیچ کاری برای محافظت از دادههای منبع در برابر از دست رفتن به دلیل خرابی سخت افزاری در ذخیرهسازی انجام نمیدهد. در جدول زیر تفاوتهای این دو تشریح شده است.
| Backup | Snapshot |
حفاظت از دادهها | یک نسخه Backup حاوی یک نسخه قابل بازیابی از دادههای محافظت شده است. | یک Snapshot تضمین میکند که دادههای قبلی قابل تغییر نیستند اما هیچ کاری برای محافظت در برابر از دست رفتن به دلیل خرابی سخت افزار یا عوامل دیگر انجام نمیدهد. |
بازیابی | · عملیات بازیابی شامل کپی کردن دادهها از Backup به حافظه اصلی است. · مدت زمان مورد نیاز بستگی به مقدار دادههای بازیابی شده دارد. | · از Snapshotها میتوان برای بازگرداندن فوری سیستم به حالت قبلی استفاده کرد. · بازیابی Snapshot به سرعت انجام میشود زیرا برخلاف یک نسخه Backup، هیچ دادهای کپی نمیشود. |
عملکرد | · عملکرد خواندن یک سیستم میتواند در حین انجام پشتیبان گیری کاهش یابد، اما پس از تکمیل پشتیبان گیری به حالت عادی باز میگردد. · پشتیبان گیری CDP میتواند عملکرد سیستم را در طول پشتیبان گیری اولیه تحت تاثیر قرار دهد، اما پشتیبان گیریهای بعدی معمولا تأثیر ناچیزی بر عملکرد خواهند داشت. | · Snapshotهای دیسک متمایز تا زمانی که Snapshotها وجود دارند، بر عملکرد خواندن تأثیر منفی میگذارد. · میزان تأثیرگذاری بر عملکرد به تعداد Snapshotها بستگی دارد. · ایجاد هر Snapshot بعدی در درخت Snapshot عملکرد را بیشتر کاهش میدهد. |
Snapshot ذخیرهسازی و تعامل آن با پشتیبان
سیستمهای پشتیبانگیری مدرن که در محیط تولید استفاده میشوند، اغلب از Snapshotها به عنوان بخشی از فرآیند پشتیبانگیری استفاده میکنند. این امر به ویژه در هنگام پشتیبان گیری از یک پایگاه داده فعال صدق میکند. اگر یک پایگاه داده فعال به سادگی در نسخه Backup کپی شود، دادههای پایگاه داده احتمالا قبل از تکمیل نسخه پشتیبان تغییر میکند. به همین خاطر احتمال دارد Backup حاصل غیرقابل استفاده باشد.
سیستمهای پشتیبانگیری مدرن، قبل از شروع یک نسخه Backup، یک Snapshot از پایگاه داده میگیرند. بعد از آن سیستم پشتیبان گیری از پایگاه داده همانطور که تا زمان ایجاد Snapshot وجود داشته است، نسخه Backup تهیه میکند. هنگامی که فرآیند پشتیبان گیری کامل شد، Snapshot حذف میشود و دادههایی که در Snapshot ذخیره شده بودند در پایگاه داده ادغام میشوند.
جمع بندی
سیستم Snapshot ذخیرهسازی به عنوان یک مکمل برای سیستمهای پشتیبان گیری استفاده میشوند. گرچه فرایند Snapshot شبیه تهیه نسخه Backup است اما تفاوتهایی عملکردی و کاربردی دارد. این تفاوتها باعث میشوند تا این دو سیستم نتوانند جایگزین یکدیگر شوند.