راهنمای چگونگی مدیریت Snapshot VMware ها

راهنمای چگونگی مدیریت Snapshot VMware ها

 قابلیت Snapshot یکی از بهترین ویژگی­­های محیط VMware vSphere است و در عین حال می­تواند یکی از بدترین ویژگی­های این محیط نیز باشد. بهترین یا بدترین ویژگی بودن کاملا بستگی به نحوه مدیریت Snapshotها و درک هدف آن­ها دارد. این قابلیت عملکرد و قابلیت بسیار خوبی را برای مدیران vSphere فراهم می­نماید تا State یک Virtual Machine خاص را مدیریت کند. درحالی که Snapshot  مفهومی است که اکثر ما با آن آشنا هستیم، بیایید چگونگی نحوه مدیریت آن­ها و بهترین روش­ها، مفاهیم، ویژگی­ها و راه­هایی را که می­توان از این ویژگی به­طور موثر استفاده کرد را بررسی نماییم.

قابلیت VMware Snapshot چیست؟

بدیهی است که وقتی به اصطلاح Snapshot فکر می­کنیم به دوربین یا عکسی فکر می­کنیم که لحظه­ای در زمان را ثبت می­کند و وضعیتی که چگونه همه­چی در عکس دقیقا همانطور که در لحظه عکسبرداری ظاهر می­شد، وجود دارد. ما می­نوانیم VMware snapshot را دقیقا به همین شکل در نظر بگیریم. این قابلیت این امکان را فراهم می­نماید که وضعیت یک Virtual Machine در حال اجرا را،  دقیقا همانطور که در لحظه گرفتن Snapshot وجود داشت، ثبت نماییم.  حتی می­تواند شامل memory footprint یک virtual machine باشد. همچنین وضعیت virtual hardware و تنظیمات آن را نیز ثبت کند.

مزایای VMware snapshot چیست؟

همانطور که احتمالا می­توانید تصور کنید، VMware snapshot قابلیت­های بسیار خوبی را در زمینه development و سایر موارد مورد استفاده ارائه می­دهد. در حقیقت snapshotها از کجا وارد عمل می­شود؟ این قابلیت در واقع برای اهداف توسعه(development) و محیط ­های non-production در نظر گرفته شده است. آن­ها مخصوصا زمانی که نیاز به deploy کردن code و یا سایر تغییرات را دارید و می­خواهید سریعا از تغییرات ایجاد شده rollback نمایید، بسیار مفید هستند. موارد زیر نمونه­ های بسیار عالی از مواردی هستند که snapshotها می­توانند به ما کمک کنند:

  • Code change: deploy کردن کد جدید در سرور development
  • Operating system updates: نصب آپدیت­های ویندوز و ….
  • Driver installs: تغییر و یا upgrade یک درایور
  • Upgrading software: upgrade به ورژن جدید نرم­افزار نصب شده
  • Adding new software: اضافه کردن نرم­افزار جدید به یک سرور
  • Forensics: گرفتن یک وضعیت خاص از یک سرور یا کلاینت virtual machine پس از یک attack مخرب مشکوک و یا فعالیت­های دیگر
  • Power state: گرفتن یک snapshot، power state (وضعیت روشن یا خاموش بود) یک vm را حفظ می­کند.
  • Capturing VM settings and hardware: اگر تنظیمات زیادی را تغییر می­دهید و احتیاج دارید که در صورت نیاز به محیط قبل از تغییرات بازگردید، می­توانید از snapshot برای گرفتن تنظیمات VM و virtual hardware استفاده کنید.

لازم به ذکر است که snapshotها برای هر یک از موارد استفاده فوق بسیار عالی هستند. سازمان شما ممکن است نیازهای بیشتری داشته باشد که snapshotهای متناسب با موارد نیازتان باید تهیه و استفاده شود. بازگرداندن Snapshot بسیار ساده ­تر از بازیابی یک نسخه full backup از یک VM به منظور بازیابی نرم ­ا­­فزار، درایورها و یا سایر تغییرات ایجاد شده می­باشد.

 

معماری VMware snapshot

در واقع معماری VMware snapshot چیست و چه چیزی باعث می­شود آن­ها کارکنند و توانایی بازگرداندن تغییرات را داشته باشند؟  snapshot شامل فایل­های زیر که معماری آن را تشکیل می­دهد، می­باشد:

  • -.vmdk و -delta.vmdk : vmdk  و  vmdk در قلب snapshot وجود دارد و توانایی rollback تغییرات data را دارد. Snapshotها را می­توان برروی snapshotهای دیگر ایجاد کرد که موجب به وجود آمدن یک زنجیره از snapshotها می­شود که به تمامی دیسک­های دیگر در زنجیره وابسته هستند.
  • .vmsd : فایل vmsd نوعی “ mini database” است که حاوی اطلاعات مربوط به VMware snapshot می­باشد. که شامل اطلاعاتی است که ارتباط بین snapshotها و child diskهای موجود در snapshot را تعریف می­کند.
  • vmsn : فایل vmsn به شما امکان می­دهد memory state فعال یک VM را ذخیره کنید. ذخیره memory state ماشین مجازی به شما این امکان را میدهد که از یک vm در حالت روشن  snapshot بگیرید که ایجاد آن در این حالت، بیشتر از ایجاد یک snapshot بدون memory state (در حالت خاموش) زمان می­برد.

 

شکل 1

 

چگونگی تشخیص snapshot برروی یک virtual machine

درحالی که snapshotها ویژگی­ها و قابلیت­های بسیار خوبی را در یک development، تست و یا محیط­های دیگر برای نیازهای مختلف ارائه می­دهند، شما میخواهید از VMهایی که دارای snapshotهستند مطلع باشید. ما طبق best practiceها این موضوع را بررسی خواهیم کرد. با این حال چگونه می­توانید تشخیص دهید یک VM در حال اجرا دارای snapshot است ؟

وقتی شما به سادگی به یک VM در فهرست vSphere نگاه می­کنید، نمی­توانید متوجه شوید که آن ماشین در حال اجرا، دارای snapshot است یا خیر. در عوض باید در مسیر Snapshots- > Manage Snapshot نگاه کنید تا snapshotهارا بتوانید ببینید و فهرست کنید.

شکل 2

 

بررسی محیط مجازی VMware vSphere به صورت دستی و با استفاده از محیط GUI یا گرافیکی  ممکن است ایده آل نباشد به خصوص اگر VMهای زیادی در حال اجرا دارید. استفاده از command-line یا automated برای مدیریت و بررسی snapshotها در محیط VMware روشی بسیار بهتر از محیط GUI در این مورد است.  با استفاده از PowerCLI می­توانید تمامی snapshotهای یک یا چندین VMدر حال اجرا را پیدا کنید.

get-vm <vm name> | get-snapshot

اگر می­خواهید تمامی snapshotها برروی چندین VM موجود در یک folder را پیدا کنید می­توانید از دستور زیر استفاده نمایید:

get-vm -location <folder name> | get-snapshot | fl

 

بهترین روش ­های گرفتن Snapshot

از آنجایی که snapshotها قدرتمند هستند و ویژگی­های بسیار خوبی را ارائه می­دهند، آیا می­توانید از آن­ها هرجا و برای هر نوع کاربری استفاده کرد؟ همینطور best practiceهایی که باید در مورد snapshot بدانید چیست؟ موارد زیادی وجود دارد که باید در رابطه با استفاده از snapshot ها بدانید . این موارد شامل:

  • آن­ها را به عنوان backup در نظر نگیرید و از آن­ها استفاده نکنید: snapshotها یک کپی مستقل از دیتاهای شما نیستند. آن­ها به base disk یک VM وابسته هستند. بدون base disk ، snapshotها بی­فایده هستند و مجموعه کاملی از  دیتای شما نیستند زیرا snapshotها delta disk هستند.
  • حداکثر 32 snapshot در هر VM در یک تغییر snapshot پشتیبانی می­شود. بهتر است حداکثر بیشتر از 2 یا 3 استفاده نشود. بیش از این تعداد performance را به طور جدی کاهش می­دهد.
  • همچنین Snapshotها همانطور که در یک VM وجود دارند به رشد خود ادامه می­دهند. آن­ها را نباید بیش­تر از 72 ساعت نگه­داری کنید. اگر بدون مراقبت رها شوند snapshotها می­توانند به رشد خود ادامه دهند و به طور بالقوه فضای یک LUN را پر کنند.
  • راه حل­ های data protection : راه ­حل­های حفاظت از داده­ ها که در snapshotها استفاده می­کنید باید فقط تا زمانی که backup کامل می­شود، از آن­ها استفاده شود. این نکته حائز اهمیت است که پس از اتمام عملیات backup، آن­ها به درستی از روی VM پاک شده باشند.
  • آن­ها از هرگونه تغییر در دیسک­ های یک VM جلوگیری می­کنند. این مورد شامل افزایش اندازه یک virtual disk می­شود.

 

 

گرفتن snapshot با استفاده از vSphere client

برای ایجاد snapshot می­توان به راحتی از محیط  GUI( گرافیکی) و یا PowerCLI استفاده کرد.

 

شکل 3

 

 

با زدن گزینه Take snapshot پنجره زیر پدیدار می­شود. در اینجا باید برای snapshot اسم انتخاب نمایید و به صورت کاملا اختیاری توضیحی وارد نمایید. دو گزینه زیر در پایین کادر دیده می­شود:

  • Include virtual machine’s memory: این گزینه memory footprint را نگه­داری می­کند.
  • Quiesce guest file system (requires VM tools): این گزینه فرآیندی ست که dataهایی که برروی دیسک یک ماشین مجازی یا فیزیکی قرار دارد را به وضعیت مناسب برای پشتیبان­ گیری درمی ­آورد.
شکل 4

 

استفاده از PowerCLI برای ایجاد Snapshot

ایجاد یک snapshot  با استفاده از محیط GUI برای یک VM در شکل بالا نشان داده شده است. با این حال اگر بخواهید snapshot در تعداد زیاد مدیریت نمایید، چگونه انجام می­دهید؟ اگر بخواهید همزمان از چندین VM ، Snapshot بگیرید چطور انجام می­دهید؟ شما نمی­توانید این­کار را با استفاده از محیط GUI انجام دهید.محیط Power CLI ارتباط با vSphere و مدیریت snapshotها را بسیار آسان کرده است. برای ایجاد یک snapshot با استفاده از PowerCLI می­توانید از دستور زیر استفاده نمایید:

Get-vm <vm name> | new-snapshot -Memory -quiesce -name “testmulticlone”

اگر می­خواهید براساس نام folder برروی چندین VM ، snapshot بگیرید، می­توانید با استفاده از دستور زیر این­کار را انجام دهید:

get-vm -location “testclone” | new-snapshot -Memory -quiesce -name “testmulticlone”

با استفاده از این دستور، می­توانید برروی چندین vm پشت سرهم، snapshot ایجاد نمایید.  این یک راه عالی برای ایجاد یک roll back برای چندین ماشین است که ممکن است شامل این عملیات شده باشند.

 

قابلیت های Managing(مدیریت)، برگرداندن(Reverting) و پاک کردن snapshotهای گرفته شده

سایر optionهای snapshot که مورد استفاده قرار خواهد گرفت شامل manage snapshot، revert، delete می­باشد. وقتی بر روی گزینه manage snapshot کلیک می­کنید، نمایی از تمامی snapshotهای گرفته شده را مشاهده خواهید کردکه در آن­جا می­توان snapshot مورد نظرتان را که می­خواهید حذف یا revert نمایید را، انتخاب نمایید.همچنین می­توانید از quick revert برای بازگشت به آخرین snapshot که برروی یک VM در حال اجرا است، استفاده نمایید. همچنین میتوانید از گزینه delete all snapshot برای حذف تمامی snapshotهای موجود در یک VM استفاده نمایید.

همانطور که در شکل زیر میبینید، vSphere GUI یک رابط گرافیکی ارائه می­دهد که امکان مدیریت آسان snapshotهای موجود در یک VM را فراهم می­نماید.

 

شکل 5

 

چگونه می­توانید یک snapshot خاص را که ممکن است در چندین VM وجود داشته باشد حذف کنید؟ در اسکریپ PowerCLI زیر، می­توانید به راحتی یک snapshot را بااستفاده از  اسم آن در یک folder و برروی تمامی vmهای موجود آن جست­ و­جو و حذف نمایید.

 

عملیات حذف snapshot

قابل ذکر می­باشد هنگامی که در VMware vSphere ، snapshotهای یک virtual machine را حذف می­کنید، نمی­توانید هیچ عمل دیگری را برروی آن ماشین انجام دهید. به خصوص اگر یک snapshot با حجم زیاد در یک virtual machine دارید، فرآیند حذف آن تا زمانی که delta disk در base disk ادغام شود، ادامه خواهد داشت. این مورد را در نظر داشته باشید  که حذف یک snapshot به این معنی است که عملیات backup در این مدت انجام نمی­شود و نمی­توانید سایر عملیات virtual machine را همانطور که ذکر شد، انجام دهید. یک virtual machine ممکن است برای مدت کوتاهی در حین حذف snapshot قادر به سرویس­دهی نباشد. به چه دلیل؟ به دلیل stun process که مربوط به فرآیند تجمیع (consolidation) می­باشد. به دلیل تغییراتی که از delta disk برروی base disk نوشته شده است، stun/freeze رخ می­دهد. یک virtual machine تحت load سنگین یا عملیات I/O ممکن است زمان ادغام( consolidation)  طولانی­ تری داشته باشد وtime stun می­تواند افزایش یابد. نوعی مکانیسم safety نیز وجود دارد. در ESXi از قبل تعیین می­کند که چه مدت زمانی stun طول می­کشد و اگر تشخیص دهد که بیش از 15 ثانیه طول می­کشد، منتظر Iteration دیگری می­ماند و این کار را 10 بار تکرار می­کند. در تکرار 10ام، virtual machine را برای مدت زمانی که نیاز دارد، stun می­کند. این فرایند تغییر کرده است و اگر فرآیند تشخیص دهد که بیش از 15 ثانیه طول می­کشد، پس از تکرار 9ام تلاش را متوقف می­کند و نمی­تواند snapshot را حذف کند.

 

در واقع Snapshot  جایگزین backup نیست

به این موضوع در مطالب قبل تر اشاره کرده بودیم. با این حال سزاوار است مجدد به این موضوع اشاره کنیم زیرا یک مفهوم مهم برای درک snapshot است. در حالی که snapshotها برخی از ویژگی­های” BACKUP-LIKE “را ارائه می­دهند. همچنین قابلیت Revert در snapshot نشان دهنده این است که snapshotها backup نیستند.

طبق تعریف یک backup باید یک کپی مستقل از دیتای شما باشد که اجازه دهد خارج از زیر ساخت(infrastructure) یا منبعی(resource) که محافظت می­شود ذخیره شود. از آنجایی که یک snapshot به زنجیره snapshot ها وابسته است، پس یک کپی مستقل و کامل از دیتای شما نیست. همچنین خارج از محیط infrastructure ذخیره نمی­شوند. این بدین معناست که اگر بخشی از تغییرات snapshot یا به عبارتی بخشی از زنجیره را از دست دهیم، بقیه دیتاها بی ارزش می­شوند.

همچنین با این واقعیت که راه­ حل­ های مدرن حفاظت از دیتاها از snapshot در فرآیند backupگیری استفاده می­کنند گیج نشوید. به چه دلیل؟ عملیات  backup از snapshotها استفاده می­کنند به این دلیل که عملیات write  VM ها از base disk به snapshot disk منتقل شود. با انجام این کار ، عملیات  backup می­تواند یک کپی از دیتاهای موجود در base disk بگیرد. دیتاهای جدید که در طول عملیات backup نوشته می­شوند در delta disk قرار می­گیرند و در اجرای عملیات backup بعدی به عنوان بخشی از base disk ذخیره می­شود. هنگامی که backup از روی دیتا در base disk کپی می­گیرد، snapshot برداشته می­شود و base disk با delta disk  ادغام می­شود. Solutionهای قوی backup مانند NAKIVA Backup & Replication ، پشتیبان­گیری در سطح enterprise را ارائه می­کنند که کپی­ های مستقلی از دیتای شما می­باشد. NAKIVO قابلیت­های مدرنی را ارئه می­دهد که امکان backup موثر و مفید از VMware vSphere را فراهم می­نماید. این شامل changed block tracking است که به NAKIVOاجازه می­دهد فقط تغییرات را از آخرین نسخه backup کپی کند که بسیار کارآمدتر از کپی کردن تمامی دیتاها می­باشد.

برای اطلاعات بیشتر در مورد NAKIVO و دانلود نسخه آزمایشی آن می­توانید از لینک زیر استفاده نمایید.

سخن آخر

قابلیت Snapshot یک ابزار بسیار قدرتمند برای مدیران vSphere می­باشد. مسلما Snapshot سریعترین rollback به وضعیت خوب شناخته شده­ای که در دسترس است، ارائه می­دهد. با این حال گرفتن  snapshot قبل از اعمال updateها، ایجاد تغییر در نرم ­افزارها، Update درایورها وانواع دیگر سناریوهایی که در آن rollback سریع موثر است، موثر و مفید هستند.  همانطور که قبل­تر ذکر شد، بسیاری از جنبه­ های VMware snapshot و نحوه استفاده، مدیریت، ایجاد، حذف و automate آن با استفاده از VMware PowerCLI را بررسی کردیم.  به خصوص بخاطر داشته باشید که snapshotها backup نیستند. استفاده از یک راه­ حل enterprise backup یک راه عالی برای محافظت از اطلاعات شما به روش صحیح برای جلوگیری از دست رفتن اطلاعات می­باشد.

نظرات

دیدگاه شما

مهسا محمودی راد 28 آذر 1401

بسیار عالی

نظرات

ارسال دیدگاه

پیام

مطالب مشابه