فرق بین Thin, Thick در ساخت ماشین مجازی

فرق بین Thin, Tick در ساخت ماشین مجازی

فرق بین Thin, Thick در ساخت ماشین مجازی

 

یکی از تنظیمات مهم در موقع نصب  ماشین های مجازی تحت vmware ؛

تعیین نوع vdisk   یا  دیسک های مجازی است که از نسخه ۵٫۱ به بعد ،  سه نوع vdisk  داریم

  • Thin

  •  Thick Egger zero

  • Thick lazy Zero

 حالا ببینیم فرق بین دیسک از نوع Thin, Thick چی هست ؟

این مدل از دیسک ها را هم در سمت storage داریم و هم در سمت vm و این دو هیچ ربطی به هم ندارند .

یعنی دیسکی که سمت storage است میتواند thick or thin  باشد اما در سمت  vm   میتواند فرق کند .

 

کجا از فرمت thick و کجا از فرمت thin استفده میکنیم ؟

 

در سمت storage  اصولا این روزها از فضای ذخیره سازی SAN STorage ; با مکانیزم Thin استفاده می شود .

در SAN Storage های قدیمی فقط Tick استفاده میشد . از سال ۲۰۰۹ به بعد فرق بین

Thick , Thin در نسخه storage ها بوجود آمد . در SAN Storage زمانیکه یک LUN ایجاد میکنیم

میگوییم که این LUN از نوع Thick هست یا از نوع Thin

 و اما فرق بین Tick, Thin چی هست ؟

بررسی مدل Thick

به منظور متوجه شدن این مکانیز با مثالی شروع میکنیم .

مثال :

اگر بخواهیم یک LUN با ظرفیت ۵۰۰ GB  را  بصورت Tick تعریف کنیم , یعنی در زمان ایجاد آن LUN

باید ۵۰۰ GB  فضا برای storage  وجود داشته  باشد تا سیستم به من اجازه دهد که  بتوانم LUN

با سایز ۵۰۰GB  ایجاد کنم پس  هنگام ایجاد LUN فضا  allocate می شود و سیستم کاری ندارد که

آیا میخواهیم فقط ۱ گیگابایت از آن استفاده کنیم یا ۵۰۰ گیگا بایت .

یعنی در همان زمان ایجاد ماشین مجازی فضای ۵۰۰ گیگابایت را از روی فضای ذخیره سازی

جدا میکنه و به دست ماشین میده

بررسی کنیم ببینیم در این مدل چه نکات مثبت و چه نکات منفی دیده میشود 

  نکته مثبت روش Thick

  در روش Tick چون از ابتدا من فضای مورد نظرم را از فضای ذخیره سازی بصورت پشت سر هم جدا کرده

و د راختیار گرفتم یعنی سیستم همان ابتدا ۵۰۰ گیگابایت از بلاک های پشت سر هم به ماشین من

اختصاص داده که این موضوع باعث میشود  با سرعت خواندن و نوشتن روی دیسک سریعتر انجام پذیرد .

یعنی در سیستمهایی که نیاز به سرعت بالا در خواندن و نوشتن داریم این مدل , خوبه

 

  نکته منفی Thick

نکته منفی در روش Thick این است که اگر شخصی که این ماشین را درخواست کرده ؛ برآورد خوبی از

میزان نیاز خود از فضای ذخیره سازی نداشته باشد ؛ لذا ممکن است که کاملا به تمام فضای ۵۰۰ گیگابایت

نیاز نداشته باشد مثلا فقط ۲۰۰ گیگابایت برایش کافی بوده و در این صورت منابع سیستم را بیخودی برای

خود اشتغال کرده است .

  روش Thin

 فرض کنید یک LUN با ظرفیت ۵۰۰ گیگابایت از نوع Thin برای ماشین خود لازم داریم .

در این صورت سیستم اصلا نگاه نمیکنه ببینه آیا واقعا ۵۰۰ گیگابایت فضای آزاد روی سیستم داره یا نه

در واقع سیستم میگه ممکن است که الان من فضای ۵۰۰ گیگابایت را نداشته باشم که یهویی allocate

کنم  یعنی هنگان ایجاد LUN فضا allocate نمیشه بلکه در زمان نوشتن این فضا تخصیص داده میشه .

 یعنی در مدل Thin اگر سه گیگابایت روی دیسک بنویسم به اندازه سه گیگابایت فضا

به ماشین من تخصیص میده و همینطوری به اندازه ای که میزان نوشتن روی دیسک افزایش

پیدا میکنه میزان فضای  اختصاصی به ماشین هم افزایش پیدا میکنه .یعنی اگر همان ابتدا

فضای ۵۰۰ گیگابایت را نداشتم سیستم به من اجازه میده که بعدا حتی دیسک بخرم یا اضافه کنم .

 نکته مثبت روش Thin

 به بهترین نحو میتونم فضای روی استوریج را مدیریت کنیم .

اما مشکل روش Thin  چیه ؟

اگر در حوزه بلاک صحبت کینم من یک LUN 500 گیگی دارم که از اول ۵۰۰ تا ایجاد نکردم مثلا

 اول ۵ گیگ میخوام بنویسم پس ۵ گیگ به ماشین من تخصیص داده

حالا یه نفر دیگه میاد یک  LUN    ۱۰۰GB     از سیستم درخواست میکنه حالا سیستم میاد از اولین

بلاک آزاد که داره فضای ۱۰۰ گیگ را به نفر بعدی تخصیص میده و حالا من دوباره فضای مثلا ۵۰ گیگ

میخوام ؛ دوباره سیستم از اولین بلاک آزاد به من فضا تخصیص میده . این مسئله باعث میشه که دیگه

ماشین من یک فضای پشت سر هم از بلاک ها را نداشته باشه بلکه هر تیکه از سیستم من روی یک

آدرسی از فضای ذخیره سازی قرار گرفته بعبارتی یکپارچگی در این مدل نداریم .

اطلاعات بصورت از هم گسیخته و تکه تکه روی فضای ذخیره سازی قرار داره .

بنابراین اگر برنامه ای قرار است روی این ماشین اجرا گردد که می خواهیم سرعت نوشتن

و خواندن آن بالا باشه و performance سیستم برای ما مهم باشه بهتر است از Tick

استفاده کنیم   اما اگر این موضوع ممهم نباشه از Thin  استفاده می کنیم .

این مسئله و تعیین نوع Thin , Thick ؛ در زمان ایجاد LUN  در سطح استوریج است

حالا من میخوام LUN  را present  کرده و روی آن vm  بسازم دوباره این اجاره رو دارم که آیا

  مدل Thin  انتخاب کنم یا Thick

 از نسخه ۵ به بعد  تعریف های جدید  آمد که نسخه Tick به دو نوع متفاوت  تقسیم شد:

Thich lazy zero و یا thick egger zero

این تعریفات در هنگام ایجاد vm  قابل مشاهده وانتخاب است

معنی egger zero , lazy zero

اینجا میخوام بدونم فضای  روی  data store ر ا چگونه مدپریت کنم

فرض کنید میخوام یک LUN با ظرفیت ۵۰۰ گیگ بسازیم از نوعThick

پس ۵۰۰ گیگ فضای خالی روی  data store  باید وجود داشته  باشه تا در اختیار این ماشین قرار دهد

یک بحثی اینجاپیش می آید که به آن صفر گذاری میگویند که آیا بصورت کامل روی این

  فضا انجام شدود یا خیر؟

یعنی آیا تمام این ۵۰۰ گیگ با مقدار صفر جایگزین بشه یا نه هر وقت که میخواهم روی دیسک بنویسم

آن موقع بیا و اول مقدار دیسک را صفر کن تا آماده نوشتن بشه .

پس صفر گذاری قبل از نوشتن روی کل فضای دیسک را داریم و صفرگذاری در زمان نوشتن و به اندازه ای که می نویسیم

lazy zero

Lazy zero میگه کل ۵۰۰ را صفر نمیکنم . بلکه فقط اون بخشی از فضا را که واقعا میخوای بنویسی را صفر میکنم .

و بعد عمل نوشتن انجام  میشود .

نتیجه : چون کل را صفر نیمکنم این ماشین سریع ساخته میشود

نکته منفی :

چون موقع درخواست نوشتن این عمل صفر گذاری انجام می شود ،  بخشی از IO  درگیر این عمل میشود

پس performance  بالا نیست .

Egger zero

در روش Egger Zero میگه اولا باید ۵۰۰ گیگ آزاد داشته باشم تا بتونم vm  را ایجاد کنم

همون اول ۵۰۰ تا رو صفر میکنم کار ندارم چقدرش رو الان میخواهی .

چون صفر گراری روی کل فضا انجام میشود performance  بالاترین مقدار است سیستم یک دفعه میره سراغ نوشتن

فقط دیرتر در اختیار ما قرار میگیرد جون همه فضارا بایداز ابتدا صفر گذاری کند

زمان آماده سازی ویرچوال دیسک بیشتر ایپست .

مقایسه  Thick Egger Zero, Thick Lazy Zero , Thin

از چهار حوزه مقایسه میکنیم :

زمان ایجاد این ماشین

بحث  allocate بوده یا نبودن فضا

Continues block یودن یا نبودن

صفر گذاری

 

Thin  سریع تر است

Thick Egger Zero   از همه کندتر   هست زیرا در همان ابتدا باید همه فضای تخصیص یافته به ماشین  را صفر کند

Thick فضا را allocate میکند اما Thin  نمی کند .

 Thin  فقط برای مقداریکه واقعا مینویسد صفرگذاز می کند .

 

برای مطالعه Resource  ها در ماشین مجازی به این مقاله مراجعه کنید 

به منظور مطالعه در مورد اینکه چرا دنیا به سمت مجازی سازی رفت به این مقاله مراجعه کنید 

به منظور مشاهده نحوه تحصیص cpu به ماشین مجازی به این مقاله مراجعه کنید 

2 پاسخ
  1. امیرحسین
    امیرحسین گفته:

    سلام.
    ممنون از آموزش های بینظیر شما.
    اشتباه تایپی که در جمله آخر هست رو لطفاََ اصلاح کنید : *Thin Egger Zero از همه کندتر است*
    در واقع Thick Egger Zero از همه کندتر هست.

    پاسخ
    • صوفیا علیخانی
      صوفیا علیخانی گفته:

      سلام عرض میکنم
      بسیار سپاسگزارم که دقت نظر داشتید و اشکال را به من متذکر شدید حتما اصلاح میکنم .

      پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

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

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