ماشین‌های مجازی نسل 1 و نسل 2

آشنایی با ماشین های مجازی نسل 1 و نسل 2 – Generation 1 ، Generation 2

برای راه اندازی VM شما باید ماشین های مجازی نسل 1 و نسل 2 را بشناسید.

زمانی که VM جدید درست میکنیم و نام آن را انتخاب میکنیم باید در مرحله ی بعد باید نوع Generation آن VM را مشخص کنیم. از Hyper-V ورژن 4 به بعد در زمان ایجاد کردن VM شما دو نوع Generation مختلف دارید:

  • Generation 1
  • Generation 2

هر VM ای یک Virtual Hardware Version دارد. حالا VM ئه Generation 1، Virtual Hardware Version اش یک  است. VM ئه Generation 2، Virtual Hardware Version اش دو است. طبیعتا در ورژن 2 شما قابلیت های بیشتری میتوانید داشته باشید . به لحاظ امنیتی و  Performance ای Generation 2 از Generation 1 جلو تر است (به گفته ی مایکروسافت حدود 30 درصد Performance بیشتر است).

1

تصور کنید شما میخواهید یک دیسک فیزیکی را به کامپیوتر خود وصل کنید تا سیستم از آن استفاده کند، حالا یا میخواهید در آن OS بریزید یا Data های دیگر . یک هارد دیسک برای اینکه به Motherboard وصل شود باید به Controller  وصل شود (کنترلر دیسک). همانطور که قبلا گفتیم ما چندین کنترلر دیسک داریم مانند SATA، SCSI، IDE، SAS. که تفاوت آن ها بیشتر در پهنای باند یا Bus ارتباطی بین هارد دیسک و ماردبورد و بقیه اجزای سیستم وجود دارد. به یک IDE Controller دوتا Device وصل میشود. کنترلر SCSI پهنای باند بیشتری را به ما میدهد (حدود 1.2 Gbps). بعد ورژن جدید اسکازی آمد و شد SAS که 6.4 Gbps پهنای باند میدهد. ورژن جدید IDE که آمد  SATA شد.

 VM Generation 2

در VM ئه Generation 2 دیسکی که قرار است روی آن OS نصب شود (دیسک های دیگر نه، دیسکی که قرار است روی آن OS نصب شود) میتواند به کنترلر SCSI وصل شود. این یعنی در VM ئه Generation 1 دیسکی که قرار است روی آن OS نصب شود نمیتواند به کنترلر SCSI وصل شود. طبیعی  هست که کنترلر اسکازی سرعت بیشتری دارد و این یکی از تفاوت های Performance ای است.

VM ئه Generation 2 از UEFI پشتیبانی میکند ولی VM ئه Generation 1 از Bios پشتیبانی میکند.

نکته ای که وجود دارد این است که اگر میخواهید VM ئه Generation 2 درست کنید باید Guest OS ای که میخواهید نصب کنید UEFI را پشتیبانی کند. اگر UEFI را پشتیبانی نکند guest os نصب نمیشود. ویندوز 8 ئه 64 بیتی به بعد از UEFI پشتیبانی میکند.

نکته ی بعدی این است که ما در VM ئه Generation 2 ، میتوانیم Secure boot داشته باشیم. اما VM ئه Generation 1 ، Secure boot را پشتیبانی نمیکند.

Secure boot هم قابلیت جدیدی است که از ویندوز 8 به بعد آمده است و داستان آن هم این است که شما کامپیوتر را روشن میکنید و ابتدا عمل POST انجام میشود و وارد مرحله ی Loader میشود. وارد مرحله ی Loader که میشویم زمانی است که Bios میخواهد سخت افزار را به سیستم عامل بدهد و سیستم عامل boot up شود و  بالا  آید و سخت افزار را در کنترل خودش بگیرد. یک سری ویروس ها هستند که وقتی سیستم میخواهد Bootup شود (یعنی وارد مرحله ی Loader شود) میتوانند فرآیند بوت OS را تحت شعاع قرار دهند یا آنها هم همراه با ویندوز Load شوند یا مثلا فایل های بوت اولیه را آلوده به یک سری کارهای خاص کنند. Secure boot قابلیتی است که در بایوس فعال میشود و OS هم باید secure boot را داشته باشد و به واسطه ی این قابلیت که فعال میشود بایوس فقط در زمانی که OS در حال بوت شدن است فایل های OS فقط میتوانند بوت شوند و بالا بیایند و هیچ عامل سومی نمیتواند فرایند بوت شدن را تحت تاثیر قرار دهد. در نتیجه یک بوت Safe انجام میشود.

نتیجه میگیریم که ما معمولا به دنبال این هستیم که Generation 2 را راه اندازی کنیم مگر اینکه امکانات ما قابلیت های آن را پشتیبانی نکند.

در بعضی  کارت شبکه ها یک چیپ الکترونیکی  به نام Boot ROM وجود دارد. به وسیله ی Boot ROM شما وقتی کامپیوتر خود را روشن میکنید به جای اینکه Boot from Hard Disk شود  Boot from NIC میشود.

VM ئه Generation 2 کارت شبکه ی 10G ی Boot ROM دار دارد. VM ئه Generation 1 کارت شبکه ی 100Mb ئه Boot ROM دار دارد. در مجموع نتیجه میشود که Generation 2 بهتر از Generation 1 است اگر OS شما پشتیبانی کند.

نکته ی آخر این است که در ویندوز 2012 ، Generation 2  فقط ویندوز را پشتیبانی میکرده است اما در ویندوز 2016 لینوکس هم پشتیبانی میکند و ویندوز های قبل از 8 هم در Generation 2 همانطور که گفته شد کار نمیکنند.

 ماشین های مجازی نسل 1 و نسل 2 و تفاوت بین آن را دیدید حال به بررسی یک مثال می‌پردازیم.

راه اندازی VM نسل 1

برای مثال ما یک VM ئه Gen 1 میخواهیم درست کنیم و روی آن ویندوز 7 نصب کنیم.

2

3

4

بدیهی است که باید برای هر VM یک مقدار RAM مشخص کنیم. نکته ای که وجود دارد این است که المان های مختلف سخت افزاری شیوه های Virtualization شان با هم فرق میکند. برای مثال برای یک دیسک مجازی یک فایل VHD و یا VHDX داریم که به عنوان Disk به VM ، present میشود و هرچیزی که VM در این فایل بنویسد انگار در هاردش مینویسد و این فایل هم روی دیسک های فیزیکی Host قرار دارد. این نحوه ی Virtual شدن دیسک است. اما نحوه ی Virtual شدن Memory چگونه است؟ برای مثال در تصویر بالا گفتیم که 1GB ، RAM میخواهیم. در اینجا میاد یک گیگ RAM از سیستم فیزیکی جدا میکند و میدهد به این VM. ما یک اصطلاحی داریم به نام Memory Over Commitment. بدین معنی که شما میتوانید یک مقدار بیشتر از سطح RAM فیزیکی تان به VM هاتون اختصاص دهید و این نمیتواند یک عدد بزرگ باشد (حدود 20 تا 30 درصد ماکزیمم) که خوب نیست. زیرا تیکه ی اضافه رو داره از HARD استفاده میکند و افت Performance ای سنگینی پیدا میکند. پس شیوه ی Virtualize شدن مموری هم به این صورت است. مجازی سازی در زمینه ی مموری و هارد روشن است اما در زمینه ی CPU اینطور  نیست. Time Base Sharing است. برای مثال شما به یک VM میگویید که یک Core ، CPU داشته باشد و به یک VM دیگر میگویید دوتا Core ، CPU داشته باشد. در اینجا برای مثال یک ثانیه وقت CPU را میدهد به اون VM ای که یک Core ، CPU دارد و دوثانیه وقت CPU را میدهد به آن VM ای که دو Core ، CPU دارد (به هر حال نمیتواند یک تیکه از CPU را به یکی بدهد و یک تیکه دیگر را به دیگری). یعنی فرآیند Time Base است. در زمینه ی RAM هم به این صورت شد که اگر مثلا دهیم 1GB  واقعا 1 گیگ RAM از سیستم جدا میکند و به VM اختصاص میدهد. نکته ای که باید به یاد داشته باشید این است که حدود 70 تا 90 مگ از RAM سیستم به صورت کلی Per VM ای که روشن میشود برای خود Host لازم میشود. یعنی خود Host لازم دارد حدود 70 تا 90 مگ RAM برای Handling یک VM .

در تصویر بالا باز سوال میپرسد که Dynamic Memory را میخوای RUN کنم یا نه؟

5

در مرحله ی بعدی:

در اینجا مشخص میکنیم که این سوییچ به کدام سوییچ مجازی وصل شود.

6

سپس Next میزنیم:

7

اینجا گفته میشود که برای این VM دیسک ساخته شود که برای مثال در اینجا 127 GB به صورت Dynamic درست میشود. گزینه های دیگر نیز کاملا مشخص است. Next میکنیم و به مرحله ی بعد میرویم.

8

این مرحله Image ویندوز را میدهیم و Next میکنیم و در نهایت Finish میزنیم و VM ساخته میشود.

فایلی که به عنوان Virtual Disk داریم در آدرس مربوطه به صورت زیر است:

9

مشاهده میشود که ابتدا حدود 4 مگ حجم دارد و هرچقدر Data داریم را تا سقف 127 گیگ پر میکند.

حالا همین مراحل را دوباره تکرار میکنیم ولی اینبار نوع VM را Gen 2 انتخاب میکنیم. یک تفاوتی که مشاهده خواهید کرد این است که به صورت پیش فرض نصب از طریق CD را نخواهیم داشت ولی بعدا میتوانیم آن را اضافه کنیم:

10

برای اینکه خودمان CD-ROM برایش اضافه کنیم روی VM کلیک راست میکنیم و Setting را میزنیم (درب کیس را باز میکنیم):

11

در پنجره ی باز شده روی Add Hardware کلیک کرده، کنترلر IDE که نداریم چون Gen 2 است بنابراین از کنترلر Scsi ، DVD Drive را انتخاب کرده و Add میزنیم. در ادامه اضافه میشود اما مشاهده میکنید که به دیوار خوردیم!! و باز هم باید Image بدهیم!

پسوند دیسک مجازی در VMware میدانیم که VMDK است و در Hyper-V هم VHDX است. یک Tools ای است به نام Starwind که کارش این است که vmdk را به vhdx و بالعکس تبدیل میکند.

12

امیدواریم با این مقاله تفاوت نوع و کارکرد ماشین های مجازی نسل 1 و نسل 2 را درک کنید.

نویسنده:مهندس محمد آجورلو

admin

    دیدگاه‌ها