یکی از تکنولوژی هایی که از اوایل دوران مجازی سازی با این فن آوری درگیر بوده است Snapshot می باشد. این تکنولوژی کارایی های بسیار زیادی دارد که در این مقاله با بسیاری از آنها آشنا خواهیم شد.
به صورت کلی از Snapshot برای ذخیره کردن حالت یا State سیستم ها استفاده می شود اما این تکنولوژی در بسیاری از موارد با کاربردهای اشتباهی مواجه می شود. یکی از بزرگترین نکته هایی که در هنگام استفاده از این تکنولوژی باید در نظر گرفته شود جمله زیر می باشد:
“Snapshot به هیچ وجه Backup نیست”
توضیح این جمله نیاز به آن دارد که به طور کامل ساختار Snapshot را بدانیم. اگر بخواهیم به صورت بسیار ساده این تکنولوژی را توضیح دهیم، Snapshot عکسی است از State دیسک های ماشین مجازی یعنی از نحوه قرار گرفتن تمامی بیت ها و بایت ها. به عکس زیر دقت کنید.
Base Disk همان دیسک اولیه ما می باشد که تمامی اطلاعات در داخل آن ذخیره شده است. زمانی که Snapshot گرفته می شود مثل آن می ماند که از نحوه قرار گرفتن تمامی اطلاعات آن عکسی گرفته شده است، تا در صورت خراب شدن این قرار گیری یا پیدا شدن مشکلی برای اطلاعات ماشین مجازی بتوان نحوه قرار گیری اطلاعات را به حالت اول باز گرداند.
سوال: آیا می توان بدون داشتن Base Disk اطلاعات را از روی عکس Snapshot به حالت اول بازگرداند؟ جواب خیر است زیرا باید اول دیسک اصلی وجود داشته باشد تا بتوانیم نحوه قرار گرفتن اطلاعات آن را جابجا کنیم وگرنه عکس گرفته شده هیچ کارایی ندارد.
پس در نظر داشته باشید Snapshot به هیچ وجه Backup به حساب نمی آید.
ولی اگر بخواهیم به صورت علمی تر با Snapshot برخورد کنیم باید بدانید که مدل کارکرد آن به هیچ وجه مانند یک عکس نیست و دقیقا بر عکس آن کار می کند. زمانی که Snapshot از ماشین مجازی گرفته می شود دیسک مادر بسته شده و از این به بعد اطلاعات در دیسک جدیدی نوشته می شود. شکل بالا را یک بار دیگر ملاحظه کنید.
از زمان گرفتن Snapshot اطلاعات در دیسک دوم نوشته می شود. پس زمانی که شما گزینه بازگرداندن Snapshot را اجرا می کنید شما را تنها به دیسک اول منتقل می کند و کار خاص دیگری انجام نمی دهد. در دیسک جدید تنها تغییرات را یادداشت می کند، برای همین دیسک بوجود آمده Snapshot مانند دیسک Thin می ماند ولی در اصل باید بدانید که دیسک آن در اصل Sparse است. فقط در نظر داشته باشید که این دیسک می تواند به اندازه دیسک مادر بزرگ شود که در اینصورت سرعت ماشین مجازی بسیار پایین خواهد آمد.
کار سخت زمانی صورت می گیرد که شما می خواهید یک Snapshot را پاک کنید. در این زمان ESXi باید دو دیسک را تبدیل به یک دیسک کند و تمام تغییرات را بر روی دیسک مادر اعمال کند که اصطلاحا به این اتفاق Consolidation می گویند. این عملیات بسته به اندازه دیسک Snapshot متغییر است ولی می تواند از چند ثانیه تا چندین روز طول بکشد و در برخی از موارد این عملیات با خطا مواجه می شود که در اینصورت اطلاعاتی که در دیسک دوم (دیسک Snapshot) ذخیره شده اند از بین خواهند رفت.
باید در نظر داشته باشید که به هیچ وجه یک Snapshot را بیشتر از 72 ساعت نباید نگه داشت و در صورت استفاده شدن از آن، به سرعت از ماشین مجازی پاک شود.
موارد استفاده از Snapshot به شرح زیر می باشد:
- قبل از اعمال تغییر بر روی نرم افزار های ماشین مجازی
- قبل از آپدیت کردن سیستم عامل و یا نرم افزار های داخل آن
- هنگام گرفتن Backup (تمامی سیستم های Backup گیری برای ارائه یک نسخه بی نقص از Snapshot استفاده می کنند که این Snapshot در داخل سیستم عامل به وسیله VSS Virtual Shadow Copy Service نرم افزار ها را لحظه ای Pause می کند تا بتواند از سلامت نرم افزار ها در هنگام Backup گرفتن اطمینان حاصل کند.
- ایجاد کردن Linked Clone هم برای VDI و هم برای رایانش ابری توسط vCloud Director.
اما نحوه گرفتن Snapshot چگونه است:
مراحل زیر را به ترتیب انجام دهید:
بر روی ماشین مجازی خود کلیک کنید. دکمه سمت راست ماوس را بزنید و داخل منوی Snapshot شوید.
در قسمت بالا نام Snapshot را یادداشت کنید و در قسمت Description اطلاعاتی که در مورد State ماشین مجازی لازم است را یادداشت کنید (سعی کنید در تمامی مراحل استفاده از مجازی سازی Description را پر کنید زیرا در آینده با بزرگتر شدن بستر مجازی خیلی کارآمد خواهند بود).
اگر از اطلاعات مموری هم بخواهید می توانید کپی بگیرید. فقط باید بدانید چه نفعی خواهد داشت.
تفاوت یک ماشین خاموش و یک ماشین روشن اطلاعات در داخل مموری آن ماشین می باشد پس اگر این تیک را بزنید زمانی که از این Snapshot استفاده می کنید ماشین مجازی شما پس از بازگرداندن Snapshot روشن می باشد و اگر این تیک را نزنید ماشین مجازی شما پس از بازگرداندن Snapshot خاموش خواهد بود.
زمانی که از ماشین مجازی Snapshot می گیرید تنها سیستم عامل آن مهم نمی باشد بلکه نرم افزار های داخل آن نیز مهم هستند. حال تصور کنید که داخل ماشین مجازی شما یا دیتا بیس است و یا نرم افزار های تراکنشی وجود داشته باشند و زمانی که شما Snapshot می گیرید این دیتابیس یا نرم افزار در حال پردازش یک تراکنش باشد، اگر در همین حال Snapshot بگیرید بعد از بازگرداندن Snapshot اطلاعات دیتا بیس شما به احتمال بسیار زیاد خراب خواهد بود، چون وسط کار دیتا بیس آن را قطع کرده اید. برای جلوگیری از این اتفاق قابلیت Quiesce کردن وجود دارد.
این قابلیت برای یک لحظه نرم افزار های مورد نظر را Pause می کند تا بتواند یک Snapshot ای بگیرد که Application Consistent هم باشند و در هنگام باز گرداندن Snapshot نگران خرابی ماشین مجازی و نرم افزار ها یا دیتابیس های داخل آن نباشیم.
منبع: aminpourmirza
سلام عالی بود
درود
باتشکر از زحمات شما در این سایت
سپاس
مثل همیشه عالی بود