فهرست مطالب
اگر در صنعت نرم افزار یا اطراف آن کار می کنید، احتمالاً نام ماشین های مجازی را شنیده اید. اگر نه، ممکن است از خود بپرسید که آنها چه هستند و چه کاربردی دارند.
من به عنوان یک مهندس نرم افزار، روزانه از ماشین های مجازی استفاده می کنم. آنها ابزارهای قدرتمندی در توسعه نرم افزار هستند، اما کاربردهای دیگری نیز دارند. همچنین به عنوان ماشین های مجازی شناخته می شود، بسیاری از کسب و کارها به دلیل انعطاف پذیری، قابلیت اطمینان و مقرون به صرفه بودن از آنها استفاده می کنند. آنها همچنین از بلایای ناشی از آزمایش نرم افزار فراری جلوگیری می کنند.
بیایید نگاهی به ماشین های مجازی و چرایی استفاده از آنها بیندازیم.
ماشین مجازی چیست؟
ماشین مجازی نمونهای از یک سیستم عامل (OS) مانند Windows، Mac OS یا Linux است که در سیستم عامل اصلی رایانه اجرا میشود.
معمولاً در یک پنجره برنامه روی دسکتاپ شما اجرا می شود. یک ماشین مجازی دارای عملکرد کامل است و مانند یک کامپیوتر یا ماشین جداگانه عمل می کند. در اصل، ماشین مجازی یک کامپیوتر مجازی است که در داخل کامپیوتر دیگری به نام ماشین میزبان اجرا می شود.
تصویر 1: ماشین مجازی در حال اجرا بر روی لپ تاپ.
یک ماشین مجازی کار نمی کند. سخت افزار (حافظه، هارد دیسک، صفحه کلید یا مانیتور) داشته باشد. از سخت افزار شبیه سازی شده از دستگاه میزبان استفاده می کند. به همین دلیل، چندین ماشین مجازی، که به آنها "مهمان" نیز گفته می شود، می توانند بر روی یک ماشین میزبان اجرا شوند.
تصویر 2: ماشین میزبان چندین ماشین مجازی را اجرا می کند.
میزبان همچنین می تواند چندین VM را با عملکردهای مختلف اجرا کندسیستم هایی از جمله لینوکس، سیستم عامل مک و ویندوز. این قابلیت به نرم افزاری به نام Hypervisor بستگی دارد (تصویر 1 را در بالا ببینید). Hypervisor بر روی ماشین میزبان اجرا می شود و به شما امکان می دهد ماشین های مجازی را ایجاد، پیکربندی، اجرا و مدیریت کنید.
Hypervisor فضای دیسک را اختصاص می دهد، زمان پردازش را برنامه ریزی می کند و استفاده از حافظه را برای هر VM مدیریت می کند. این همان کاری است که برنامه هایی مانند Oracle VirtualBox، VMware، Parallels، Xen، Microsoft Hyper-V، و بسیاری دیگر انجام می دهند: آنها هایپروایزر هستند.
هیپروایزر می تواند روی لپ تاپ، رایانه شخصی یا سرور اجرا شود. ماشینهای مجازی را در اختیار کامپیوتر محلی یا کاربرانی که در سراسر شبکه توزیع شدهاند در دسترس قرار میدهد.
انواع ماشینها و محیطهای مجازی به انواع مختلفی از هایپروایزر نیاز دارند. بیایید نگاهی به برخی از آنها بیندازیم.
انواع ماشین های مجازی
ماشین های مجازی سیستم
ماشین های مجازی سیستم، که گاهی مجازی سازی کامل نامیده می شوند، توسط یک هایپروایزر اجرا می شوند و عملکرد یک سیستم کامپیوتری واقعی آنها از سیستم عامل بومی میزبان برای مدیریت و به اشتراک گذاری منابع سیستم استفاده می کنند.
ماشین های مجازی سیستم اغلب به یک میزبان قدرتمند با CPUهای سریع یا چندگانه، مقدار زیادی حافظه و فضای دیسک زیادی نیاز دارند. برخی از آنها که روی رایانه های شخصی یا لپ تاپ اجرا می شوند، ممکن است به قدرت محاسباتی مورد نیاز سرورهای مجازی شرکت های بزرگ نیاز نداشته باشند. با این حال، اگر سیستم میزبان مناسب نباشد، آنها کند کار می کنند.
فرآیند مجازیماشینها
ماشینهای مجازی فرآیندی کاملاً متفاوت از SVMها هستند—شما ممکن است آنها را روی دستگاه خود اجرا کنید و حتی آن را ندانید. آنها همچنین به عنوان ماشین های مجازی کاربردی یا محیط های زمان اجرا مدیریت شده (MRE) شناخته می شوند. این ماشین های مجازی در داخل یک سیستم عامل میزبان اجرا می شوند و از برنامه ها یا فرآیندهای سیستم پشتیبانی می کنند.
چرا از PVM استفاده کنیم؟ آنها خدمات را بدون وابستگی به سیستم عامل یا سخت افزار خاصی انجام می دهند. آنها سیستم عامل کوچک خود را با منابع مورد نیاز خود دارند. MRE در یک محیط جداگانه است. فرقی نمی کند که روی ویندوز، سیستم عامل مک، لینوکس یا هر دستگاه میزبان دیگری اجرا شود.
یکی از رایج ترین ماشین های مجازی فرآیندی، ماشینی است که احتمالاً نام آن را شنیده اید و ممکن است دیده باشید که روی آن اجرا می شود. کامپیوتر شما. برای اجرای برنامه های جاوا استفاده می شود و به اختصار ماشین مجازی جاوا یا JVM نامیده می شود.
انواع Hypervisor
بیشتر ماشین های مجازی که مورد توجه ما قرار می گیرد از Hypervisor استفاده می کنند زیرا آنها شبیه سازی می کنند. یک سیستم کامپیوتری کامل دو نوع مختلف Hypervisor وجود دارد: Bare Metal Hypervisor و Hosted Hypervisor. بیایید نگاهی گذرا به هر دوی آنها بیندازیم.
Bare Metal Hypervisor
BMH ها ممکن است هایپروایزر بومی نیز نامیده شوند و به جای اینکه در سیستم عامل میزبان اجرا شوند مستقیماً روی سخت افزار میزبان اجرا می شوند. در واقع آنها جای سیستم عامل هاست، زمان بندی ومدیریت استفاده از سختافزار توسط هر ماشین مجازی، بنابراین «مرد میانی» (سیستمعامل میزبان) را در فرآیند حذف میکند.
هیپروایزرهای بومی معمولاً برای ماشینهای مجازی سازمانی در مقیاس بزرگ استفاده میشوند، که شرکتها از آنها برای ارائه کارمندان استفاده میکنند. منابع سرور Microsoft Azure یا Amazon Web Services VMهایی هستند که بر روی این نوع معماری میزبانی می شوند. نمونههای دیگر KVM، Microsoft Hyper-V، و VMware vSphere هستند.
Hosted Hypervisor
Hosted Hypervisor
Hosted Hypervisor بر روی سیستمعاملهای استاندارد اجرا میشود - درست مانند هر برنامه دیگری که ما روی دستگاههای خود اجرا میکنیم. آنها از سیستم عامل میزبان برای مدیریت و توزیع منابع استفاده می کنند. این نوع هایپروایزر برای کاربران فردی که نیاز به اجرای چندین سیستم عامل بر روی ماشین های خود دارند، مناسب تر است.
اینها شامل برنامه هایی مانند Oracle VirtualBox، VMware Workstations، VMware Fusion، Parallels Desktop و بسیاری دیگر می شود. شما می توانید اطلاعات دقیق تری در مورد هایپروایزرهای میزبانی شده در مقاله ما، بهترین نرم افزار ماشین مجازی بیابید.
چرا از ماشین های مجازی استفاده می کنیم؟
اکنون که درک اولیه ای از ماشین مجازی دارید، احتمالاً می توانید به برنامه های عالی فکر کنید. در اینجا برخی از مهمترین دلایل استفاده مردم از ماشین های مجازی آورده شده است.
1. مقرون به صرفه
ماشین های مجازی در موقعیت های متعدد مقرون به صرفه هستند. یکی از برجسته ترین آنها در دنیای شرکت ها است. استفاده از سرورهای فیزیکی برای تامین منابع برای کارکنان می تواندبسیار گران باشد سخت افزار ارزان نیست و نگهداری از آن حتی پرهزینه تر است.
استفاده از ماشین های مجازی به عنوان سرورهای سازمانی اکنون به یک امر عادی تبدیل شده است. با ماشین های مجازی از ارائه دهنده ای مانند MS Azure، هیچ خرید اولیه سخت افزاری و هزینه تعمیر و نگهداری وجود ندارد. این ماشینهای مجازی را میتوان تنها با یک سکه در ساعت راهاندازی، پیکربندی و استفاده کرد. آنها همچنین می توانند در صورت عدم استفاده خاموش شوند و هزینه ای در بر نداشته باشند.
استفاده از VM در دستگاه شما نیز می تواند صرفه جویی زیادی در هزینه داشته باشد. اگر نیاز به انجام کار در چندین سیستم عامل یا پیکربندیهای سختافزاری مختلف دارید، میتوانید
از چندین ماشین مجازی در یک میزبان استفاده کنید—نیازی به بیرون رفتن و خرید یک رایانه جداگانه برای هر کار ندارید.
<0 2. مقیاس پذیر و انعطاف پذیرچه سرورهای سازمانی باشند و چه ماشین های مجازی که روی لپ تاپ شما اجرا می شوند، ماشین های مجازی مقیاس پذیر هستند. تنظیم منابع متناسب با نیازهای شما آسان است. اگر به حافظه یا فضای دیسک سخت بیشتری نیاز دارید، کافی است به Hypervisor رفته و VM را مجدداً پیکربندی کنید تا فضای بیشتری داشته باشد. نیازی به خرید سخت افزار جدید نیست و این فرآیند می تواند به سرعت تکمیل شود.
3. راه اندازی سریع
یک VM جدید را می توان به سرعت راه اندازی کرد. مواردی داشتهام که به یک راهاندازی VM جدید نیاز داشتم، با همکارم که آنها را مدیریت میکند تماس گرفتم و آنها را در کمتر از یک ساعت آماده کردم.
4. بازیابی فاجعه
اگر میخواهید از از دست رفتن دادهها جلوگیری کنید و برای بازیابی فاجعه آماده شوید، ماشینهای مجازی میتوانندابزار فوق العاده تهیه نسخه پشتیبان از آنها آسان است و در صورت نیاز می توان آنها را در مکان های مختلف توزیع کرد. اگر شخص ثالثی مانند مایکروسافت یا آمازون میزبان ماشینهای مجازی باشد، آنها خارج از سایت خواهند بود - به این معنی که در صورت سوختن دفتر شما، دادههای شما ایمن هستند.
5. بازتولید آسان
بیشتر هایپروایزرها به شما امکان می دهند یک کپی یا تصویر از یک ماشین مجازی تهیه کنید. تصویربرداری به شما این امکان را میدهد که بهراحتی بازتولیدات دقیق همان ماشین مجازی پایه را برای هر موقعیتی بچرخانید.
در محیطی که من در آن کار میکنم، ما به هر توسعهدهندهای یک ماشین مجازی برای توسعه و آزمایش میدهیم. این فرآیند به ما اجازه می دهد تا یک تصویر را با تمام ابزارها و نرم افزارهای مورد نیاز پیکربندی کنیم. وقتی یک توسعهدهنده جدید در حال نصب هستیم، تنها کاری که باید انجام دهیم این است که یک کپی از آن تصویر بسازیم، و آنها آنچه را که برای کار کردن نیاز دارند، دارند.
6. ایده آل برای Dev/Test
یکی از بهترین مزیت های استفاده از ماشین های مجازی این است که آنها ابزاری عالی برای توسعه و تست نرم افزار هستند. ماشینهای مجازی به توسعهدهندگان اجازه میدهند تا روی پلتفرمها و محیطهای متعدد روی یک ماشین توسعه دهند. اگر آن VM خراب یا از بین برود، میتوان به سرعت یک ماشین جدید ایجاد کرد.
آنها به یک آزمایشکننده اجازه میدهند تا برای هر چرخه آزمایشی یک محیط جدید تمیز داشته باشد. من روی پروژههایی کار کردهام که در آنها اسکریپتهای تست خودکار را تنظیم میکنیم که یک ماشین مجازی جدید ایجاد میکنند، آخرین نسخه نرمافزار را نصب میکنند، همه آزمایشهای مورد نیاز را اجرا میکنند، سپس ماشین مجازی را پس از اتمام آزمایشها حذف میکنیم.
VMها به خوبی برایتست و بررسی محصول مانند مواردی که در اینجا در SoftwareHow.com انجام می دهیم. من میتوانم برنامهها را در یک VM که روی دستگاهم اجرا میشود نصب کنم و آنها را بدون به هم ریختن محیط اصلی خود آزمایش کنم.
وقتی آزمایشم تمام شد، همیشه میتوانم ماشین مجازی را حذف کنم، سپس در صورت نیاز یک ماشین جدید ایجاد کنم. این فرآیند همچنین به من اجازه میدهد تا بر روی چندین پلتفرم تست کنم، حتی اگر فقط یک دستگاه ویندوز دارم.
کلمات پایانی
همانطور که میبینید، ماشینهای مجازی ابزاری مقرون به صرفه و همهکاره هستند که میتوانند برای بسیاری از برنامه ها استفاده شود. دیگر نیازی به خرید، راهاندازی و نگهداری سختافزار گرانقیمت برای ارائه دسترسی به سرور برای آزمایشکنندگان، توسعهدهندگان و دیگران نداریم. ماشینهای مجازی به ما این انعطافپذیری را میدهند تا به راحتی و به سرعت سیستمهای عامل، سختافزار و محیطهای مورد نیاز خود را در هر زمان ایجاد کنیم.