مجازی سازی فرایند اجرای یک نمونه مجازی از یک سیستم کامپیوتری در یک لایه انتزاعی از سختافزار مادر است. این فرایند معمولاً به اجرای چندین سیستمعامل بطور همزمان بر روی یک سیستم رایانهای اشاره دارد. برای برنامههایی که در ماشین مجازی سازی شده اجرا میشوند، به نظر میرسد که روی یک سیستم اختصاصی هستند، جایی که سیستمعامل و سایر برنامهها منحصر به سیستم مجازی شده هستند و به سیستمعامل میزبان متصل نیستند.
دلایل زیادی برای استفاده افراد از مجازی سازی وجود دارد. برای کاربران دسکتاپ، رایجترین کاربرد آن این است که بتوانند برنامههایی را که برای یک سیستمعامل متفاوت طراحی شدهاند، بدون نیاز به تعویض رایانه یا راهاندازی مجدد به سیستم دیگری اجرا کنند. شاید مهمترین کاربرد این فرایند، راهی برای تقسیمبندی یک سیستم بزرگ به بخشهای کوچکتر که به سرور اجازه میدهد تا با کارایی بیشتری استفاده شده یا برنامههایی با نیازهای مختلف توسط کاربران بیشتری استفاده شود، باشد.
علاوه بر این، اجازه میدهد تا برنامههای در حال اجرا در یک ماشین مجازی از فرایندهایی که در ماشین مجازی دیگر بر روی همان میزبان انجام میشوند، جدا نگه داشته شوند.
انواع مجازیسازی
مجازی سازی سرور یا Server Virtualization
مجازی سازی سرور فرآیند ایجاد چندین نمونه سرور مجازی از یک سرور فیزیکی است. هر نمونه سرور یک محیط مجازی مجزا را ارائه میدهد. در هر محیط مجازی، میتوانید یک سیستمعامل مجزا را اجرا کنید.
قبل از مجازی سازی، یک سیستمعامل روی سختافزار نصب میشد و هر سرور میبایست سختافزار جداگانه خود را داشته باشد. بطور متوسط، سرور اختصاصی تنها از 15 درصد منابع خود در طول عملیات عادی استفاده میکنند.
اگرچه اجرای برنامه شما بر روی سرورهای فیزیکی از مزایایی نسبت به مجازی سازی برخوردار است، اما در بسیاری از موارد باعث اتلاف منابع میشود. علاوه بر این، خرابیهای نرمافزاری یا سختافزاری اغلب نیاز به تعمیر عملی روی همه سرورها دارند.
بنابراین، نیاز به تقویت استفاده از منابع و حفظ جدایی و isolation بین سیستمعاملهای مشتریان برای اهداف امنیتی وجود داشت.
مجازی سازی سرور به عنوان راهحلی برای مشکلات ذکر شده در بالا معرفی شد. یک نرمافزار مجازی سازی به شما این امکان را میدهد تا سرور فیزیکی خود را به چندین سرور مجازی تقسیم کنید. با انجام این کار، میتوانید بدون سرمایهگذاری روی سختافزار بیشتر، از منابع فیزیکی خود نهایت استفاده را ببرید.
مجازی سازی دسکتاپ یا Desktop Virtualization
مجازی سازی دسکتاپ روشی برای شبیهسازی یک Workstation کاربری است تا بتوان از طریق یک دستگاه و با اتصال از راهدور به آن دسترسی داشت. با تفکیک دسکتاپ کاربر به این روش، سازمانها میتوانند به کاربران اجازه دهند تقریباً از هر نقطهای با اتصال شبکه و با استفاده از هر لپتاپ، تبلت یا گوشی هوشمندی برای دسترسی به منابع سازمانی بدون توجه به دستگاه یا سیستمعاملی که توسط کاربر راهدور استفاده میشود، کار کنند.
مجازیسازی دسکتاپ از راهدور جزء مفاهیم کلیدی فضاهای کاری دیجیتال است. Workload یا بارهای کاری دسکتاپ بر روی VM یا ماشینهای مجازی که معمولاً روی ماشینهای مجازی (VM) یا در دیتاسنترهای داخلی یا در فضای ابری عمومی یا Public Cloud ها اجرا میشوند،به اجرا در میآیند.
با توجه به این که دستگاههای کاربران اساساً شامل نمایشگر، صفحه کلید و ماوس هستند، دستگاه گم شده یا دزدیده شده خطر بسیار کمتری را برای سازمان ایجاد میکند. چرا که همه دادهها و برنامههای کاربر در سرور مجازی سازی شده دسکتاپ وجود دارد، نه در دستگاههای مشتری.
مجازی سازی دسکتاپ از راه دور معمولاً مبتنی بر مدل کلاینت/سروری است، جایی که سیستمعامل و برنامههای کاربردی انتخابی سازمان بر روی سروری که در فضای ابری یا در مرکز داده قرار دارد اجرا میشود. در این مدل، تمام تعاملات با کاربران در دستگاه محلی به انتخاب کاربر رخ میدهد، که یادآور ترمینالهایی به نام (dumb) است که در رایانههای اصلی و سیستمهای یونیکس اولیه رایج بود.
در مجازی سازی سرور، یک سیستمعامل سرور و برنامههای کاربردی آن توسط یک Hypervisor به یک ماشین مجازی VM از سختافزار زیرین تفکیک میشود. چندین ماشین مجازی میتوانند روی یک سرور واحد اجرا شوند، هر کدام دارای سیستمعامل سرور، برنامههای کاربردی و تمام وابستگیهای برنامه مورد نیاز برای اجرا بهگونهای که گویی روی Bare Metal اجرا میشوند، هستند.
مجازیسازی دسکتاپ، نرمافزار کلاینت (سیستمعامل و برنامههای کاربردی) را از یک کلاینت فیزیکی که معمولاً از طریق اینترنت به برنامهها و دادهها از راهدور متصل میشود، تفکیک میکند. این تفکیک کاربران را قادر میسازد تا از هر تعداد دستگاه برای دسترسی به دسکتاپ مجازی خود استفاده کنند. مجازی سازی دسکتاپ یا Desktop Virtualization میتواند بسته به تعداد کاربران همزمان در زمان اوج کاری، نیاز سازمان به پهنای باند را تا حد زیادی افزایش دهد.
مجازی سازی فضای ذخیره سازی یا Storage Virtualization
Storage Virtualization فرایند ارائه یک نمای منطقی از منابع ذخیرهسازی فیزیکی به یک سیستم رایانه میزبان، با در نظر گرفتن تمام رسانههای ذخیرهسازی (هارد دیسک، دیسک نوری و غیره) در enterprise به عنوان یک pool ذخیرهسازی است.
یک سیستم ذخیره سازی یا storage system به عنوان storage array، disk array یا filer نیز شناخته می شود. سیستمهای ذخیرهسازی معمولاً از سختافزار و نرمافزار ویژه همراه با دیسک درایوها استفاده میکنند تا ذخیرهسازی بسیار سریع و قابل اعتمادی را برای محاسبات و پردازش دادهها فراهم کنند.
سیستمهای ذخیرهسازی پیچیده هستند و ممکن است به عنوان یک کامپیوتر با هدف خاص در نظر گرفته شوند که برای ارائه ظرفیت ذخیرهسازی همراه با ویژگی های پیشرفته حفاظت از دادهها طراحی شده است. دیسک درایوها تنها یک عنصر در یک سیستم ذخیرهسازی هستند و همراه آنان سختافزار و نرمافزار تعبیهشده ویژه در سیستم نیز وجود دارد.
سیستمهای ذخیرهسازی میتوانند ذخیرهسازی دسترسی بلوک یا ذخیرهسازی دسترسی به فایل را فراهم کنند. دسترسی بلوک معمولاً از طریق کانال فیبر، iSCSI، SAS، FICON یا پروتکلهای دیگر ارائه میشود. دسترسی به فایل اغلب با استفاده از پروتکلهای NFS یا SMB ارائه می شود.
مجازیسازی بلاک مورد استفاده در این زمینه به جداسازی ذخیرهسازی منطقی (پارتیشن) از ذخیرهسازی فیزیکی اشاره دارد به طوری که بدون توجه به فضای ذخیرهسازی فیزیکی یا ساختار heterogeneous میتوان به آن دسترسی داشت. این جداسازی به مدیران ذخیرهسازی (administrators) اجازه انعطاف بیشتری در نحوه مدیریت ذخیره سازی برای کلاینتها می دهد.
مجازی سازی فایل، چالشهای NAS را با حذف وابستگیهای بین دادههای قابل دسترسی در سطح فایل و مکانی که فایلها بصورت فیزیکی ذخیره میشوند، برطرف میکند. این موضوع فرصتهایی را برای بهینهسازی استفاده از فضای ذخیرهسازی و یکپارچهسازی سرور و انتقال فایلهای بدون اختلال فراهم میکند.
مجازی سازی شبکه یا Network virtualization
مجازیسازی شبکه یا Network Virtualization به نوعی از جداسازی منابع شبکه اشاره دارد که بطور سنتی از سختافزار به نرمافزار تحویل داده میشدند. مجازی سازی شبکه میتواند چند شبکهی فیزیکی را در یک شبکه مجازی مبتنی بر نرمافزار ترکیب کند و یا میتواند یک شبکه فیزیکی را به شبکههای مجازی جداگانه و مستقل تقسیم کند.
نرمافزار مجازی سازی شبکه به مدیران شبکه این امکان را میدهد تا ماشینهای مجازی را در دامنههای مختلف بدون پیکربندی مجدد شبکه جابجا کنند. این نرمافزار یک Network Overlay ایجاد میکند که میتواند لایههای شبکه مجازی مجزا را بر روی همان بافت فیزیکی شبکه اجرا کند.
مجازی سازی شبکه، خدمات شبکه را از سختافزار اصلی جدا میکند و امکان ارائه مجازی شبکه را فراهم میکند. این موضوع امکان ایجاد، تهیه و مدیریت شبکهها را بصورت برنامهنویسی در نرمافزار فراهم میکند، در حالیکه همچنان به استفاده از شبکه فیزیکی زیربنایی به عنوان backplane ارسال بسته(packet)ها ادامه میدهد.
منابع فیزیکی شبکه، مانند: Switching، Routing، Firewalling، load balancing، Virtual Private Networks (VPNs) و موارد دیگر در یک pool قرار گرفته، به نرمافزار تحویل داده میشوند و فقط به پروتکل اینترنت یا IP از شبکه زیربنای فیزیکی نیاز دارند.
خدمات شبکه و امنیت در نرمافزار به یک لایه مجازی (hypervisors، در مرکز داده یا دیتا سنترها) توزیع شده و به ماشینهای مجازی (VM) یا کانتینرها، مطابق با قوانین امنیتی و policyهای شبکه تعریف شده برای هر اتصال، متصل میشود. وقتی بار کاری به میزبان دیگری منتقل میشود، خدمات شبکه و سیاستهای امنیتی هم با آن انتقال مییابند و زمانیکه بارهای کاری جدید برای مقیاسبندی یک برنامه کاربردی ایجاد میشوند، policyهای لازم به صورت پویا برای آنان اعمال میشوند که ثبات امنیت و سرعت شبکه را بیشتر میکند.
مجازی سازی اپلیکیشن یا Application virtualization
Application Virtualization یک فناوری نرمافزاری است که برنامههای کامپیوتری را از سیستمعاملی که بر روی آن اجرا میشوند، مستقل میکند. یک برنامه کاملاً مجازی سازی شده به شکل سنتی نصب نمیشود، اگرچه هنوز به همان شکل قبل اجرا میشود. برنامه در زمان اجرا طوری رفتار میکند که بطور مستقیم با سیستمعامل اصلی و تمام منابع مدیریت شده توسط آن ارتباط برقرار می کند، اما می تواند به درجات مختلف، ایزوله یا sandbox شود.
مجازی سازی کامل برنامه نیاز به یک لایه مجازی سازی دارد. لایههای مجازی شده برنامه جایگزین بخشی از محیط زمان اجرا میشود که معمولاً توسط سیستمعامل ارائه میشود. این لایه تمام عملیات دیسک برنامههای مجازی سازی شده را رهگیری میکند و بطور شفاف آنها را به یک مکان مجازی (اغلب یک فایل منفرد) هدایت میکند.
برنامه از اینکه به جای یک منبع فیزیکی به یک منبع مجازی دسترسی دارد، بی اطلاع است. از آنجاییکه برنامه اکنون با یک فایل به جای بسیاری از فایلهای پخش شده در سیستم کار میکند، اجرای برنامه در رایانه دیگری آسان میشود و برنامههای ناسازگار قبلی میتوانند کنار هم اجرا شوند.
مجازی سازی مرکز داده یا Data Center Virtualization
Data Center Virtualization انتقال دیتاسنترهای فیزیکی به دیتاسنترهای دیجیتال با استفاده از یک پلتفرم نرمافزار ابری است، بطوریکه شرکتها میتوانند از راهدور به اطلاعات و برنامهها دسترسی داشته باشند.
در یک دیتاسنتر مجازی، یک سرور مجازی، که به آن مرکز دادههای نرمافزاری تعریف شده (SDDC) نیز میگویند، از سرورهای سنتی و فیزیکی ایجاد میشود. این فرآیند، سختافزار فیزیکی را با تقلید از پردازندهها، سیستمعامل و سایر منابع آن با کمک یک Hypervisor مجازی سازی میکند.
Hypervisor (یا مانیتور ماشین مجازی، VMM، مجازیساز) نرمافزاری است که یک ماشین مجازی را ایجاد و مدیریت میکند. با منابعی مانند CPU، حافظه و ذخیرهسازی به عنوان یک Pool رفتار میکند که میتواند به راحتی بین ماشینهای مجازی موجود یا به ماشینهای جدید تخصیص مجدد یابد.
مزایای مجازی سازی دیتاسنتر یا Data Center Virtualization
مجازی سازی مرکز داده طیف وسیعی از مزایای استراتژیک و فناوری را برای کسبوکارهایی که به دنبال افزایش سودآوری یا مقیاسپذیری بیشتر هستند ارائه میدهد.
- مقیاسپذیری
در مقایسه با سرورهای فیزیکی که نیاز به منابع و مدیریت زمان گسترده و گاهی گران قیمت دارند، راهاندازی مراکز داده مجازی نسبتاً سادهتر، سریعتر و مقرون به صرفهتر است. هر شرکتی که سطوح بالایی از رشد را تجربه میکند ممکن است بخواهد یک مرکز داده مجازی را پیادهسازی کند.
همچنین برای شرکتهایی که افزایش فصلی در فعالیتهای تجاری را تجربه میکنند، مناسب است. در زمان اوج مصرف، حافظه مجازی، قدرت پردازش و ذخیرهسازی را میتوان با هزینه کمتر و در بازه زمانی سریعتر نسبت به خرید و نصب اجزا بر روی یک ماشین فیزیکی اضافه کرد.
به همین ترتیب، هنگامی که تقاضا کاهش مییابد، منابع مجازی را میتوان برای حذف هزینههای غیر ضروری کاهش داد. همه این موارد با سرورهای فیزیکی امکانپذیر نیست.
- انعطاف دادهها
قبل از مجازی سازی، همه چیز، از وظایف رایج و تعاملات روزانه گرفته تا تجزیه و تحلیل عمیق و ذخیرهسازی دادهها در سطح سرور اتفاق میافتاد، به این معنی که فقط از یک مکان امکان دسترسی به آنها وجود داشت.
با اتصال به اینترنت، منابع مجازی شده را میتوان در زمان و مکان مورد نیاز در دسترس قرار داد. برای مثال، کارمندان میتوانند از مکانهای دوردست به دادهها، برنامهها و خدمات دسترسی داشته باشند که بهرهوری در خارج از دفتر را تا حد زیادی بهبود میبخشد.
علاوه بر این، سرورهای مجازی با کمک برنامههای مبتنی بر Cloud مانند کنفرانس ویدیویی، پردازش کلمه و سایر ابزارهای ایجاد محتوا، همکاری همه جانبه را ممکن میسازند و فرصتهای اشتراک بیشتری را ایجاد میکنند.
- صرفهجویی در هزینه
سرورهای فیزیکی که معمولاً به ارائه دهندگان شخص ثالث (Third Party) برون سپاری میشوند، همیشه با مدیریت و نگهداری بالا همراه هستند. اما در یک مرکز داده مجازی چنین مشکلی نخواهند داشت. برخلاف همتایان فیزیکی خود، سرورهای مجازی اغلب به عنوان اشتراکهای پرداختی ارائه میشوند، به این معنی که شرکتها فقط برای آنچه استفاده میکنند پرداخت میکنند. در مقابل، چه از سرورهای فیزیکی استفاده شود یا نه، شرکتها همچنان باید هزینههای مدیریت و نگهداری آنها را متقبل شوند. به عنوان یک مزیت، عملکرد اضافی که مراکز داده مجازی ارائه میدهند میتواند سایر هزینههای تجاری مانند هزینههای حمل و نقل را کاهش دهد.
Hypervisor چیست؟
Hypervisor نرم افزاری است که ماشینهای مجازی (VM) را ایجاد و اجرا می کند. یک Hypervisor، که گاهی اوقات مانیتور ماشین مجازی (VMM) نیز نامیده میشود، سیستمعامل و منابع را از ماشینهای مجازی جدا میکند و ایجاد و مدیریت آن ماشین مجازی را امکانپذیر میکند.
سخت افزار فیزیکی، زمانی که به عنوان Hypervisor استفاده می شود، میزبان نامیده می شود، در حالی که بسیاری از ماشینهای مجازی که از منابع آن استفاده میکنند مهمان هستند.
Hypervisor با منابعی مانند CPU، حافظه و فضای ذخیرهسازی به عنوان مجموعهای برخورد میکند که میتواند به راحتی بین مهمانهای موجود یا به ماشینهای مجازی جدید تخصیص داده شود.
همه Hypervisorها برای اجرای ماشینهای مجازی به برخی از اجزای سطح سیستمعامل مانند memory manager، device drivers، security manager، input/output (I/O) stack، process scheduler، network stack و موارد دیگر نیاز دارند.
Hypervisor به هر ماشین مجازی، منابعی تخصیص داده شده میدهد و منابع ماشین مجازی را در مقابل منابع فیزیکی مدیریت میکند. سختافزار فیزیکی همچنان وظیفه اجرا را بر عهده دارد. برای مثال، CPU همچنان دستورالعملهای خود را همانطور که ماشینهای مجازی درخواست میکنند، اجرا میکند، در حالیکه Hypervisor زمانبندی را مدیریت میکند.
با یک Hypervisor چندین سیستمعامل مختلف میتوانند در کنار یکدیگر اجرا شوند و منابع سختافزار مجازی شده یکسانی را به اشتراک بگذارند. این یکی از مزایای کلیدی مجازی سازی است. بدون مجازی سازی، فقط میتوانید 1 سیستمعامل را روی سختافزار اجرا کنید.
VMware ESXi
مجازی ساز VMware ESXi یک Hypervisor مستقل از سیستمعامل مبتنی بر کرنل ماشین مجازی یا VMkernel است که با عواملی که در بالای آن اجرا میشوند، ارتباط برقرار می کند. ESXi مخفف Elastic Sky X Integrated است.
ESXi یک Hypervisor Type-1 است. Hypervisorهای نوع 1 مستقیماً بر روی سختافزار سیستم و بدون نیاز به سیستمعامل (OS) اجرا میشود. Hypervisorهای نوع 1 به عنوان Hypervisorهای Bare-metal نیز شناخته میشوند زیرا مستقیماً روی سختافزار کار میکنند.
ESXi سازمانهای Enterprise را هدف قرار داده است. VMware یک سیستم ESXi را شبیه به یک node محاسباتی بدون حالت توصیف میکند. مدیران مجازیسازی میتوانند «state information» را از یک فایل پیکربندی ذخیره شده آپلود کنند.
VMkernel ESXi مستقیماً با عوامل VMware و ماژولهای شخص ثالث یا Third Party مورد تایید قرار میگیرد. ادمینها میتوانند VMware ESXi را با استفاده از کنسول یا کلاینت مجازی ساز vSphere پیکربندی کنند. آنها همچنین میتوانند لیست سازگاری سختافزار VMware را برای سختافزار مورد تایید و پشتیبانی شده برای نصب ESXi بررسی کنند.
VMware ESXi از ویژگیهای کلیدی از جمله traffic shaping، memory ballooning، role-based security access و logging and auditing رابط کاربری گرافیکی و vSphere PowerCLI پشتیبانی میکند.
مزایا و معایب ESXi
نصب ESXi در یک دیتاسنتر سریع و ساده است. همچنین، به دلیل فرمت سبک ESXi، ادمینها به Patchهای کمتری نیاز دارند. به دلیل اندازه کوچکتر، ESXi ایمنتر به نظر میرسد. علاوه بر این، مدیریت امنیت آن در VMkernel تعبیه شده است. ESXi همچنین یک رابط کاربری گرافیکی ساده را ارائه میدهد.
VMware ESXi و vSphere
VMware vSphere به عنوان مجموعهای از محصولات مجازی سازی سرور VMware عمل میکند که شامل ESXi میشود. ESXi Hypervisor منحصرا برای مجوزهای VMware vSphere 5.x است. ادمینها میتوانند از میزبان vSphere به عنوان پایهای برای یک محیط ابری خصوصی استفاده کنند.
محصولات VMware موجود در vSphere شامل نرمافزارهایی مانند VMware vCenter Server، vSphere Web Client، vSphere Client، vSphere Distributed Switch، VMware High Availability و VMware Virtual Symmetric Multi-Processing میباشد.
Citrix XenServer
یکی از محصولات بسیار محبوب متن باز در حوزه هاستینگ و مراکز داده که طرفداران خاص خودش را دارد، XenServer یا به اختصار Xen است. این محصول در واقع یک پلتفرم مدیریت شده Full Virtualization یا مجازی سازی کامل بر مبنای Xen Hypervisor میباشد. تکنولوژی Xen به عنوان پرسرعتترین مجازیساز سرور با درصد اطمینان بسیار بالا در صنعت IT مورد تایید همگان قرار گرفته است. XenServer جهت مدیریت بهتر سرورهای مجازی لینوکس و ویندوز طراحی شده است و نتیجه آن جمعکردن سرورها با هزینه کمتر و تداوم تجارت میباشد.
در واقع نرمافزارهای مجازی سازی سرور از تکنولوژیهای مجازیسازی متفاوتی از همدیگر استفاده میکنند. بنابراین زمانی که قرار بر این باشد که یکی از این مجازیسازها را برای کار خودتان انتخاب کنید، علاوه بر اینکه بحث لینوکسی یا ویندوزی بودن سرور مهم است، بحث نوع نرمافزاری که بر روی آنها قرار است قرار بگیرد هم در تعیین کردن نوع مجازیساز مهم است.
اگر بحث یک نرمافزار قابل اعتماد برای مجازی سازی باشد، شک نکنید که Xen یک نرمافزار بسیار عالی و قابل اطمینان برای مجازیسازی سرورها است.
با استفاده از Xen شما میتوانید سرورهای مجازی یا VPSهای خودتان را در یک بستر کاملاً ParaVirtual شده ایجاد نموه و تقریباً یک سرور مجازی با ویژگیهای یک سرور اختصاصی راهاندازی کنید. Xen میتواند امکان این را داشته باشد که VPS را تا حدود زیادی به سرور اختصاصی نزدیک کند. یک VPS در مجازیسازی Xen برای خودش یک کرنل ایزوله شده دارد و برای خود، ماژولهای کرنل خاص دارد که در زمان مورد نیاز آنها را Load میکند. Xen میتواند یک حافظه مجازی کاملاً اختصاصی و حتی فرآیند ورودی/خروجی و زمانبندیهای اختصاصی برای سرور مجازی ایجاد نماید.
Xen یک محصول کاملاً قابل شخصی سازی و به نوعی امکان ایجاد یک سرور اختصاصی یا dedicated server مجازی را به ما میدهد. در زمان استفاده از Xen برای سرویسهای معمولی میتوان گفت تقریباً هیچگاه تصور نمیکنید که از یک سرور مجازی استفاده میکنید بلکه احساس شما استفاده از یک سرور کاملاً اختصاصی است.
Microsoft Hyper-V
میتوان Microsoft Hyper-V را به عنوان یک هدیه از طرف شرکت مایکروسافت به تمامی کاربران آن در نظر گرفت. شرکت مایکروسافت از سال ۲۰۰۵ با نرمافزار Microsoft Virtual Server روند مجازیسازی خود را آغاز و در نهایت با ارائه نسخه ۳ از نرمافزار Hyper-V در سال ۲۰۱۲ این روند را به نقطه تکامل خود رسانده است.
Hyper-V نیز مانند تمامی محصولات مایکروسافت دارای ویژگیهای مشترکی با محصولات دیگر، مانند رابط گرافیکی زیبا و همچنین سادگی در کاربرد میباشد. مایکروسافت در ابتدای معرفی سرویس Hyper-V ادعا کرد که میخواهد در صنعت مجازی سازی نیز به عنوان شماره یک دنیا مطرح شود.
Hyper-V را میتوان بعد از نصب ویندوز سرور ۲۰۱۲ به راحتی در قالب یکی از نقش یا roleهای قابل اضافه کردن در این سیستمعامل محبوب نصب کرد. با نصب Hyper-V توانایی نصب، اجرا و مدیریت انواع ماشینهای مجازی مبتنی بر سیستمعاملهای مختلف برروی یک سختافزار مشخص محیا میشود.
از مزایای برجسته این بستر مجازیساز میتوان به انتقال آسان یک سرور، همسانسازی سرورهای میزبان و همچنین مجازی سازی سنگینترین کارها با حجم بار کاری بسیار زیاد را نام برد و به جرات میتوان گفت که هیچ یک از محصولات حال حاضر بازار سرعت و توانایی Hyper-V را در مجازی سازی واقعی یک ویندوز عرضه نکرده است.
امکانات Hyper-V:
- Live Migration
- رم پویا (Dynamic RAM)، پینگ هوشمند (Smart Pinging)
- محیط کاربری ساده (User Interface)
- خط فرمان PowerShell
در ساختار جدید ماشینهای مجازی Hyper-V میتوانید ورژن آنها را از میان نسل اول و یا نسل دوم انتخاب کنید. VMهای نسل اول در واقع همان ماشینهای مجازی هستند که در نسخههای ویندوز سرور قبلی استفاده میشدند. اما ماشینهای مجازی نسل دوم با جدیدترین نسخه ویندوز سرور معرفی شدهاند. ماشینهای مجازی نسل دوم بر اساس UEFI کار میکنند، اما ماشینهای مجازی نسل اول بر پابه BIOS کار میکنند.
فقط در نسخههای ویندوز 2012 R2 و ویندوز 8.1 میتوانید از Hyper-V نسل دوم استفاده کنید. در استفاده از ماشینهای مجازی نسل دوم از Secure Boot نیز پشتیبانی میشود که باعث میشود سختافزارهای کمتری نیاز به شبیه سازی داشته باشد.
با یک نگاه به Device Manager در هر دو نسخه میتوانید این کمتر بودن سختافزارها را مشاهده کنید. مثلاً در تمام ماشینهای مجازی امروزی پورتهای PS/2، پورتهای سریال و یا قابلیتهای سختافزاری که عمدتاً استفادهای ندارند، پشتیبانی میشود.
در نسل اول باید این شبیهسازی صورت گیرد به دلیل اینکه سیستمعامل نمیداند که در حال استفاده از محیطی مجازی است و سرور میزبان باید نهایت شرایط سختافزاری را برای او فراهم کند تا بتواند سروری را در محیط مجازی اجرا کند.
در حقیقت برای اینکه به ماشین مجازی بفهمانیم که محیط سختافزاری است نیاز به شبیهسازی سختافزارها میباشد. این مشکل در نسخه جدید ویندوز حل شده است و زمانی که یک Windows 2012 R2/ 8.1 را برای ماشین مجازی استفاده میکنید ، به خوبی میداند که در حال استفاده از محیطی مجازی است و نیازی به شبیهسازی بسیاری از سختافزارها ندارد.
به همین خاطر این سیستمها سازگاری بسیار بیشتری با محیطهای مجازی دارند. در نسل دوم ماشینهای مجازی تغییری در کارایی ایجاد نشده است اما در این نسل به شما اجازه داده میشود تا از طریق SCSI VHD X سیستم را boot کنید. پس دیگر به IDE نیازی ندارید،به همین خاطر فرآیند نصب سیستمعامل تا ۵۰ درصد سریعتر و فرآیند بوت سیستمعامل نیز تا ۲۰ درصد سریعتر انجام میشود.
KVM
Kernel-based Virtual Machine یا (KVM) یک فناوری مجازی سازی متن باز Open source است که در لینوکس ساخته شده است. بطور خاص،مجازی ساز KVM به شما این امکان را میدهد تا لینوکس را به یک hypervisor تبدیل کنید.این موضوع به یک host machine امکان میدهد چندین محیط مجازی جدا شده و مجزا به نام guest یا virtual machines را اجرا کند.
KVM بخشی از لینوکس است. اگر لینوکس ۲٫۶٫۲۰ یا جدیدتر دارید ، به طور خودکار از KVM برخوردار هستید. KVM اولین بار در سال ۲۰۰۶ معرفی شد و یک سال بعد در نسخه اصلی هسته لینوکس ادغام شد. از آنجا که KVM بخشی از کدهای موجود در لینوکس است، بلافاصله از هر ویژگی جدید لینوکس، رفع مشکلات و پیشرفتهای آن بدون مهندسی اضافی سود میبرد.
KVM لینوکس را به یک hypervisor نوع ۱ (bare-metal) تبدیل میکند. کلیه نمایندگان Hypervisors برای اجرای ماشینهای مجازی به بعضی از مؤلفههای سطح سیستمعامل مانند مدیر حافظه، برنامهریز پردازش، پشته ورودی/خروجی یا I/O، درایور دستگاه، مدیر امنیت، پشته شبکه و موارد دیگر نیاز دارند. KVM از تمام این مؤلفهها برخوردار است، زیرا بخشی از هسته لینوکس است.
هر ماشین مجازی به عنوان یک فرآیند معمولی لینوکس، برنامهریزی شده توسط برنامهریز استاندارد لینوکس، با سختافزار مجازی اختصاصی مانند کارت شبکه، آداپتور گرافیکی، CPU (ها)، حافظه و دیسکها اجرا میشود.
انواع Hypervisor
Hypervisor نوع 1 (Bare Metal)
در Hypervisor نوع 1، نرمافزار Hypervisor مستقیماً بر روی سختافزار فیزیکی نصب میشود و اصطلاحا به آن bare-metal گفته میشود. در این شرایط برای نصب Hypervisor نیاز به نصب هیچ گونه سیستمعاملی نمیباشد. برای استفادههای Enterprise مانند دیتاسنتر و مجازی سازی سرور بهترین گزینه استفاده از Hypervisor نوع 1 میباشد. از Hypervisor نوع 1 میتوان به VMware ESXi و Microsoft Hyper-V Server اشاره کرد.
از آنجایی که Hypervisor نوع 1 مستقیماً بر روی سختافزار نصب میشود از نظر امنیتی بسیار قوی است. بسیاری از نقصها و آسیبپذیریها اغلب متوجه سیستمعامل هستند، در اینجا چون سیستمعامل وجود ندارد سطح حمله کاهش پیدا میکند.
مزایا Hypervisor Type 1
- عملکرد عالی
از آنجایی که سیستمعامل این نوع hypervisor مستقیم روی سرور نصب میشود، عملکرد آنها بسیار بالاست و تعامل بسیار بهتر و عالیتری با سختافزارها و منابع سیستم دارند. پس بیدلیل نیست که این نوع hypervisor بیشتر در سازمانها و شرکتها مورد استفاده قرار میگیرد.
- امنیت بالا
از آنجایی که آنها مستقیماً روی سختافزار فیزیکی و بدون هیچ سیستمعامل واسطی کار میکنند، آسیبپذیری آنها بسیار کم میشود. بدین ترتیب اگر یک ماشین مجازی با مشکل مواجه شود، این مشکل فقط متوجه آن سیستم بوده و سایر سیستمها و ماشینها را درگیر نمیکند.
Hypervisor Type 2 (Hosted)
این Hypervisor معمولاً بر روی سیستمعامل نصب میشود. این نوع Hypervisor را hosted hypervisor نیز مینامند چرا که وجود آن وابسته به نصب شدن سیستمعامل میباشد. از این نوع Hypervisor میتوان به VMware Fusion ، Virtual Box، VMware Workstation اشاره کرد.
از این نوع Hypervisor به هیچ عنوان برای دیتاسنتر و موارد Enterprise استفاده نمیشود. گاهاً به این Hypervisor Client Hypervisor نیز گفته میشود. امنیت و بازدهی در این نوع Hypervisor نسبت به نوع 1 پایینتر است. بعنوان مثال میتوان گفت که از این نوع Hypervisor بیشتر برای ایجاد ماشینهای مجازی برای تست و محیط آزمایشگاهی و یا تست نرمافزار استفاده میشود.
مزایا Hypervisor Type 2
برای مدیریت ماشینهای مجازی روی Hypervisor نوع 2 نیازی به نصب هیچ برنامه واسطی نیست چون خودشان امکان مدیریت ماشینهای مجازی را فراهم میکنند.
مورد بعدی این است که این Hypervisorها برای محیطهای تست و یادگیری مناسب هستند. اگر نیاز باشد موردی را قبل از اعمال در محیط واقعی بررسی و تستهای لازم را روی آن انجام دهید، مجازی سازی با کمترین دردسر میتواند به شما در انجام این کار کمک کند. به راحتی میتوانید چندین سیستمعامل مختلف را بوت کرده و آنها را با هم شبکه کنید و در نهایت بررسیها و تستهای خود را انجام دهید. انگار که در محیط واقعی هستید.