ساختار Virtual Machine چیست و چه فرقی با Physical Machine دارد؟

ساختار Virtual Machine چیست و چه فرقی با Physical Machine دارد؟

سوال :

ساختار Virtual Machine چیست و چه فرقی با Physical Machine دارد؟

 

در  بستر فیزیزکال باید درایور نصب کینم, سیستم عامل نصب کینم و patch  و غیره  اما 

در محیط virtual machine هیچگا ه درایور نصب نمیکنیم زیرا esxi این قسمت را بعهده می گیرد . 

در ضمن یک لیست  compatibility  دارد  که از قبل گفته که با چه سخت افزارهایی

مطابقت داره یا نداره   و این موضوع جز component های hypervisour انجام میشود . 

در اینجا هر virtual machine یک folder محسوب میشود که از یک تعداد فایل که حداکثر ۱۰  یا ۱۲  هست

تشکیل شده است . این مسئله بدون اهمیت دادن  به این موضوع  که روی چه سخت افزاری

پیاده شده است می باشد   و سیستم عامل وابسته به چند صد فایل نیست و معماری ما از چند صد

یا چند هزار فایل به یک folder  و چند فایل تبدیل میشود .

 این ساختار برای زمان cloning  باعث  میشود سرعت تکثیر افزایش یابد 

و میتوان محصولات دیگری را bind  کنیم و بتونیم از آنها استفاده کنیم مثل  قابلیت

HARDWARE AVAILABLITY  , FT  و بالاترین disaster recovery  را در سطح application

داریم  که ساختار folder base  این امکان را  برای ما تامین میکند .

 

قصه منابع ما به چه نحوی در این محیط جدید قراره مدیریت بشود ؟

و به چه نحوی reourece را به دست virtual machine بدهیم ؟ 

 

اگر mv  رویlocal hard بذارم قطعا فقط میتونم از آن server تقاضای

resource کنم و هر بلایی سرش بیاد این ماشین دیگر نمیتونه resource  بگیره و

اما اگر ماشین مجازی را روی    shared  disk  قرار دهم  ؛

بنابراین آن فضا ممکن است به hyervisor های مختلف present  شده باشد بنابراین میتوان

منابع را از hypervisorهای مختلف تقاضا کرد .

بریم سراغ resource های قابل بحث

اولا ما روی معماری X86 فوکوس میکنیم و در واقع تمام hypervisorها باید X86  باشد و

سیستم ۳۲ بیتی  و ۶۴ بیتی زیر مجموعه معماری x86  هستند .

حالا اگه سرویس من منابع خیلی زیادی لازم داره اصلا نمیتوانیم به سمت virtual machine بریم

مثلا بیشتر از ۲TB  RM  لازم دارم نمیتونم ببرم به سمت virtual machine .

یا مثلا اگر روی serverهای مختلف بخوام resource parallel   انجام بشه در virutaling 

این مبحث پشتیبانی نمیشه .

Resource  هایی که میتوانیم داشته باشیم چه هستند ؟

و جطوری در بستر محازی میتوانیم با اینها ارتباط برقرار کینم ؟

resource ها عبارتند از:

cpu و

resourece RAM  و

Resource card-pci  express و  

resource disk  

در فضای ذخیره سازی باید بدونیم  این منابع به چه نحوی تامین میشود .

این ۴  resource  را باید در این infrastructure ی که میسازم چطوری تامین کنم ؟

اولین rsource با نام CPU  یا پردازنده به ماشینها

این ویژگی  توسط socket cpu که روی Hypervisor نصب شده تامین میشود

حالا میخواهیم  ارتباطش را با virtual machine ببینیم چطوری است .

در virtual machine ها یک component بنام  virtual cpu درست میکنه برای در اختیار گرفتن

cpu از hypervisor

دو اصطلاح داریم

Virtual cpu , logical cpu

Virtual cpu میگه چکونگی تخصس منبع cpu ازدید virtual ماشین نگاه کنم

Logical cpu نحوه تخصیص cpu از دید hypervisor  را نگاه میکند .

 

طبیعتا هر virtual machine حداقل یک واحد vcpu و حداقل هر hypervisor باید یک

logical cpu داشته باشد 

ببینیم به چه نحوی این ارتباط لحاظ میشود .

فرمول  برای زمان طراحی

من باید بدونم روی هاستی که دارم چه تعداد logical cpu داریم

 

نحوه محاسبه Logincal cpu

  آیا  cpu فیزیکی که دارید استفاده میکنید از لحاظ hyper threading پشتیبانی میکند یا خیر

اگر پشتیبانی کند یه اتفاقی می افتد اگر نه اتفاقی دیگر .

Hyper thead این امکان رو میدهد که همزمان بصورت موازی چند thread  را پشتیبانی کند .

اما محاسبه logical cpu در سطح هاست

  • با hyper thread

محاسبه تعداد L cpu

تعداد cpu socket  *  تعداد core  * ۲

۲ * ۴ *۲ =۱۶ logical processor

 

اگر hyper theread نداشته باشیم فرمول ما میشود :

تعداد cpu socket  * تعداد core   = تعداد Lcpu

مثال بالا میشود ۲*۴ = ۸

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

میکنه چقدر است .

Vcpu در سطح virtual machine صحبت میکند محاسبه همانند LCPU است

امامحاسبه ماکزیمم کانفیگ فرق میکند .

مثلا   میگه  ۶۴  تا  cpu را در سطح یک virtual machine پشتیبانی میکنم نه بیشتر

قطعا این virtual machine زوی Hypervisorی قرار میکیرد که باید ۶۴ lcpu داشته باشد که بتونه

به این  ماشین تخصیص بده . 

فرض میکنیم   روی Hypervisorم تعداد lcpu =4   دارم  با  سوکت ۱ core  یا  سوکت ۲core  .

این یعنی جی

یعنی اگر هر virtual machineتعریف کنم و آن virtual machine بخواد cpu رو از این هاست بگیره

نمیتونه بیشتراز ۴ تا  vcpu بگیره .

  مثال :

فرض کنید  ۴ تا lcpu داریم و سه تا virtual machine تعریف کردیم 

دو تا   ازماشین های مجازی هر کدام  ۱ عدد  vcpu   دارند و 

یکی   دیگر از ماشین ها ۲تا  vcpu  داره ؛

بنابراین تعداد ماکزیم vcpu به ماکس lcpu رسیده .

روی هرکدوم میتونم مقدار  vcpu را کمتر یا مساوی lcpu  قرار دهیم . 

اگر هر core ی ۲۷۰۰ باشه و ۴ تا core داشته باشیم در این حالت ۴*۲۷۰۰

 ای« مطلب این را میگوید که vmware machine    بهت نمیگه الان  نمیتونی بیشتر از ۴ تا بذاری 

یعنی ممکن هست که ۴ تا ماشین مجازی داری به یکی  ۴ تا vcpu بدی و به یکی دیگه

۲ تا vcpu بدی و به یکی دیگه ۱ عدد vcpu بدی

میشه جمعا ۷ تا vcpu  یا ۷*۲۷۰۰

یعنی ممکن هست که ما بریم و برای یک ماشین به اندازه کمتر  یا مساوی از مقدار lcpu

به آن vcpu تخصیص دهیم , در این حالت vmware  جلوی ما را نمیگیره .

فقط میگه هر ماشینم بیشتر از ۴ تا  که همان مقدار ماکزیمم lcpu هست ؛ نمیتونه بگیره

  و این یعنی یک زنگ خطر .

اینجا چون رفتار default  سیستم گیر نمیده و میذاره تعریف کنیم اما عملا به عنوان مصرف کننده

۷ یا ۸ تا vcpu تعریف کردم و سیستم نمیتونه بصورت فیزیکی این نیازمندی را تامین کند .

عدم مطابقت بین داشته های شما در سمت lcpu و آنچه که روی جمع کل vcpu داریم

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

الان باید جمع کل vcpu معادل lcpu بشود .

یعنی با اینکه virtual machine  به ما در تخصیص میزان vcpu گیر نمیده اما باید تناظر یک به یکی را رعایت کنیم .

 نه اینکه به یک ماشین  ۴ تا و به دیگری دو تا  و به بعدی یک دونه vcpu  تخصیص دهیم که میشه جمعا  ۷ تا

یعنی  وقتی منبع فیزیکی  ندارم نباید بیخودی به ماشینی منبعی تخصیص بدم .

و اگر میخوام منبع تخصیص بدم  باید cpu اضافه کنم .

 و اگر  این موضوع را رعایت نکنیم performace درست انجام نمیشود .

واگر resource management  را درست مدیریت نکنیم در فاز طراحی شرایطی ایجاد میشود

که بسیار بدتراز شرایطی که محیط فیزیکی داشتیم میشود .

بحث memory در مقاله بعدی به آن پرداخته شده است 

0 پاسخ

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

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

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

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