کاهش حجم هارد ماشین یا کاهش اندازه فایل VMDK در ESXi

سلام دوستان شاید بعضی وقت ها لازم بشه بنا به دلایلی فضای هارد یه ماشین را کم کنین مثلا کمبود فضا در سرور دارین یا فضایی که توسط ماشین اشغال شده زیاده براش و هارد ماشین هم از نوع Thick هست یعنی فضای اختصاص داده شده رزرو شده . خوب کاهش فضای هارد مثل افزایش هارد راحت نیست و نمیشه بدون خاموش کردن ماشین این کارو انجام داد.

برای انجام این کار من ۲ تا راه بلدم

  1. Shrink کردن هارد و کاهش حجم فایل vmdk با تغییر کانفیگ فایل
  2. استفاده از نرم افزار vCenter Converter Standalone

قبل از انجام این کار :

  1. Snapshotهای ماشین را پاک کنین
  2. جهت اطمینان خاطر یه backup یا clone از ماشین بگیرین.

روش اول:

۱- میزان فضایی را که می خواهین از ماشین بگیرین را مشخص کنین و از حالت پارتیشن بندی خارج کنین. اگه سیستم عامل ماشین ویندوز هست وارد disk managment بشین و disk مورد نظر را به همون اندازه shrink کنین. اگه این کارو نکنین بعد از کاهش حجم vmdk ماشین crash میکنه.

مثلا ما می خواهیم ۴۰GB از فضای ماشین را کم کنیم. روی درایو C کلیک راست و Shrink Volume می زنیم.

۲- در تصویر به ما نشون میده که با توجه به اطلاعات داخل درایو ما به اندازه ۶۱GB می تونیم کم کنیم ولی ما همون ۴۰GB را در ۱۰۲۴ ضرب می کنیم و مقدار را در به MB وارد می کنیم.

۳- بعد از زدن دکمه Shrink یه فضای unallocated  اضافه میشه.

۴- ماشین را خاموش کنین

۵- به هاست SSH بزنین

۶- برید به پوشه ی VMDK

cd /vmfs/volumes/datastore/test-VM

۷- با زدن دستور ls -la می تونین لیست فایل های داخل پوشه را ببینین

۸- با دستور cat test_vm_3.vmdk می تونین کانفیگ فایل vmdk را ببینین

۹- در قسمت#Extent description حجم vmdk را نشون میده .

۱۶۷۷۷۲۱۶۰ (۸۰ GB *1024*1024*1024 / 512);

حجم هارد۸۰GB هست و ما می خواهیم ۴۰GB ازش کم کنیم. پس طبق فرمول حجم باقیمانده vmdk را بدست می آوریم

۸۳۸۸۶۰۸۰ (40 GB*1024*1024*1024 / 512

این مقدار را باید در کانفیگ فایل جایگزین کنیم.

۱۰- با دستور vi یا nano فایل را باز کنین و سپس با زدن i آن را edit کنین. بعد با زدن دکمه ESC و بعد :wq تغییرات را ذخیره کنین.

۱۱- ماشین را باید به یک datastore دیگه migrate کنین یا ازش توی یک datastore دیگه clone بگیرین.

نکته:

اگه فقط یه datastore دارین نمی تونین گام شماره ۱۱ را انجام بدین برای همین باید از طریق ابزار OVFtool مشکل را حل کنین:
۱- ابتدا به روش زیر از فایل vmdk کلون بگیرین
vmkfstools -i test_vm_3.vmdk test_vm_3_newsize.vmdk
2- فایل اصلی vmdk را پاک کنین
rm test_vm_3.vmdk
rm test_vm_3-flat.vmdk
3- دوباره از فایل جدید یه clone بگیرین با نام اصلی فایل vmdk

۱۲- حجم هارد را می تونین چک کنین

۱۳- ماشین را روشن کنین و از disk Managment وضعیت هارد را چک کنین.

نکته: اگه از vmfktools استفاده کرده باشین امکان داره سایز جدید vmdk اعمال نشه پس از طریق edit setting دوباره vmdk را به ماشین بدین تا درست بشه

روش دوم:

استفاده از نرم افزار vCenter Converter Standalone که این روش مزایا و معایبی داره:

معایب:

۱- این روش کندتر از روش قبلیه

۲- فضای کافی برای ماشین جدید باید داشته باشین

۳- چون ماشین مجددا ایجاد میشه MAC Address ماشین عوض میشه

مزایا:

۱- استفاده از محیط گرافیکی.

۲- چون یک ماشین جدید ایجاد میشه ماشین اصلی آسیبی نمیبینه

انجام مراحل:

۱- ماشین را خاموش کنید.

۲- نرم افزار vCenter Converter Standalone را اجرا کنین و دسترسی به ESXi یا vCenter را بدید

۳- ماشین مورد نظر را انتخاب کنین.

۴- پارامترهای ماشین جدید را وارد نمایید

۵- وارد تنظیمات disk بشین.

۶- از قسمت Select the copy mode گزینه  Select volumes to copy را انتخاب کنین

۷- از گزینه های موجود شما می تونین حداقل یا حداکثر حجم مورد نیاز از نظر نرم افزار را ببینین و حتی می تونین حجم مورد نظر خودتون را به GB یا MB وارد کنین بشرطی که کمتر از حداقل تعیین شده نباشه

۸- مثلا ما ۶۰GB را وارد می کنیم.

۹- در گام بعد تنظیمات را تایید کنین تا عملیات ایجاد ماشین انجام شود. سپس ماشین جدید را روشن کنین و اگه مشکلی در هارد و سرور نبود می تونین ماشین اصلی را حذف کنین.

توجه: این مطلب از تجربیات و Research های خودمه و امکان داره توش اشکالاتی باشه یا بشه کاملترش کرد. خوشحال میشم اگه از من انتقاد کنین و اگه چیزی یاد دارین کامنت بزارین تا منم استفاده کنم.

متشکرم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *