ماشین مجازی هم یک کامپیوتر است! منتهی نسخهای نرمافزاری از یک کامپیوتر که منابعش را از یک ماشین (کامپیوتر) فیزیکی وام میگیرد؛ در کل که این مقاله را مینویسیم تا پاسخ کاملی به پرسش ماشین مجازی چیست بدهیم.
تمام جوانب مرتبط با ماشینهای مجازی را بررسی خواهیم کرد؛ از چیستی آن گرفته تا تاریخچه، نحوۀ عمکلرد، انواع، کاربردها، مزایا، معایب و حتی ارتباط بین آنها و محیطهای ابری.
اول از همه، باید با تعریف این مفهوم آشنا شویم.
ماشین مجازی چیست؟
ماشین مجازی یا Virtual Machine (که به آن VM هم میگویند)، یک نسخۀ دیجیتالی از کامپیوتر یا سروری فیزیکی است؛ به بیان بهتر، ماشینهای مجازی در واقع نرمافزارهایی هستند که در نقش یک کامپیوتر فیزیکی ظاهر میشوند و تمام کاربردهای آنها را از خود نشان میدهند.
ماشینهای مجازی هم به سیستمعامل نیاز دارند و میتوانند برنامههای مختلف را اجرا کنند. ضمن اینکه امکان ذخیرهسازی دادهها، اتصال به شبکه و کلاً انواع کارهایی که از یک کامپیوتر انتظار میروند را انجام میدهند.
برای اینکه راحتتر بفهمید ماشین مجازی چیست، فرض کنید یک کامپیوتر درون کامپیوتری دیگر قرار گرفته است. منتهی بهجای استفاده از قطعات فیزیکی مثل CPU و Memory، ماشینهای مجازی از منابع مجازی بهره میبرند!
نکتۀ مهم این است که منابع مجازی مورد بحث، از همان قطعات فیزیکی قرار گرفته روی کامپیوتر اصلی تغذیه میشوند.
احتمالاً میپرسید خب این ماشینهای مجازی به چه دردی میخورند؟
جلوتر نگاهی کامل و موشکافانه به کاربردهای این ماشینها میاندازیم، ولی بهطور کلی و مختصر، کسبوکارها میتوانند با ساخت VMها روی یک سرور قدرتمند، چندین فضای ایزوله در اختیار داشته باشند و هرکدام را به منظوری ویژه اختصاص دهند.
تکنولوژیهای مثل رایانش ابری، سرورهای مجازی و حتی هوش مصنوعی مدیون وجود ماشینهای مجازی هستند. اگر میخواهید راجعبه این دو موضوع خاص اطلاعات بیشتری به دست آورید، پیشنهاد ما مطالعۀ مقالات زیر است:
- رایانش ابری (Cloud Computing) چیست؟ بررسی کاربردها برای کسبوکارها
- هوش مصنوعی چیست؟ آشنایی با AI به زبان ساده
- سرور مجازی چیست؟ آشنایی با کاربردهای VPS
نکته: کامپیوتری که ماشینهای مجازی روی آن قرار میگیرد با یکی از عناوین Host Machine ،Host Computer ،Host Operating System یا Host شناخته میشود.
خب تا اینجا فهمیدیم با کامپیوترهای نرمافزاری طرفیم که روی یک کامپیوتر فیزیکی (معمولاً سرورها که قدرت بالایی دارند) قرار میگیرند و تمام کاربردهای مورد انتظار از یک کامپیوتر را نشان میهند.
اجازه دهید بهصورت مختصر و مفید معنای مجازیسازی را هم توضیح دهیم.
پیشنهاد خواندنی: سرویس ابری saas چیست و چه کاربردهایی دارد؟ |
منظور از مجازیسازی چیست؟
مجازیسازی تکنولوژیای است که امکان ساخت ماشینهای مجازی یا همان VMها را به وجود میآورد!
نرمافزارهایی که هایپروایزور نام دارند، وارد عمل میشوند و ساخت نسخههای مجازی از قطعات فیزیکی یک کامپیوتر را ممکن میکنند؛ به این ترتیب، ماشینهای مجازی که گفتیم در واقع کامپیوترهای نرمافزاری درون یک کامپیوتر فیزیکی هستند، ساخته میشوند.
اگر دوست دارید اطلاعات بیشتری در این رابطه کسب کنید، مقالۀ “تکنولوژی مجازی سازی چیست و چه انواعی دارد؟” را بخوانید.
نگاهی اجمالی به پیشینه ماشینهای مجازی
فهمیدیم ماشین مجازی چیست و معنای خود مفهوم مجازیسازی را هم یاد گرفتیم. بد نیست بررسی مختصری روی تاریخچۀ این ماشینها هم داشته باشیم.
با اینکه شاید خیلیها فکر کنند از یک تکنولوژی جدید و نوظهور صحبت میکنیم، باید بگوییم که اینطور نیست! نخستین جرقههای مربوط به تولد این مفهوم، حوالی ۶۰ سال پیش شکل گرفتند؛ یعنی سال ۱۹۶۴ میلادی؛ ۱۵ سال قبل از اینکه در ایران انقلاب شود!
در آن سال، IBM نامدار و شناختهشده، CP-40 را ساخت و عرضه کرد. CP-40 بعدها به CP-67 و بعدتر از آن به Unix ارتقا یافت. Unix هستۀ مرکزی اغلب سیستمعاملهای امروزی است که به سختافزارهای کامپیوترها اجازه میدهد بهطور همزمان از چندین کاربر پشتیبانی کنند و به آنها خدمات دهند.
در نتیجه، زیرساخت اولیۀ لازم برای تکنولوژی مجازیسازی بنا نهاده شد.
چند سال بعد، در سال ۱۹۷۲ میلادی، کمپانی مذکور VM/370 را عرضه کرد که بهقول بسیاری از متخصصان امر، اولین ماشین مجازی تاریخ بود!
پیشرفت در این حوزه سرعت بسیار کندی داشت تا اینکه بیشتر از ۲۰ سال بعد، VMware (یکی از شرکتهای وابسته به IBM) سیستمعامل x86 را توسعه داد. به این ترتیب، امکان تقسیم یک ماشین فیزیکی به چندین ماشین مجازی ایجاد شد؛ ماشینهای مجازی که میدانیم هرکدام از سیستمعامل جداگانۀ خود بهره میبرند.
تنها ۱ سال بعد، یعنی در سال ۱۹۹۹، اولین محصول تجاری در این رابطه معرفی و به بازار عرضه شد؛ یعنی VM Workstation 1.۰ که کاربران میتوانستند با استفاده از آن، چندین سیستمعامل را بهعنوان ماشینهای مجازی روی تنها یک PC داشته باشند.
گذشت و گذشت تا کار به جایی رسید که امروزه، مجازیسازی یک راهکار استاندارد برای بسیاری از زیرساختهای حوزۀ IT در زمینۀ سازمانی محسوب میشود. راهکاری که باعث دستیابی به تکنولوژیهای جدیدتر مثل رایانش ابری شده است و بهطور کلی، این امکان را در اختیار سازمانها قرار میدهد که با هزینۀ کمتر، نهایت بهره را از منابعی که دارند ببرند.
میزبانی روی ابرها
توجه داشته باشید که همۀ زیرساختهای حوزۀ IT میتوانند مجازیسازی شوند! از دسکتاپ گرفته تا سیستمعاملها و دیتاسنترها.
اگر موافق باشید، کمی جلوتر برویم و نحوۀ عملکرد ماشینهای مجازی را کندوکاو کنیم.
پیشنهاد خواندنی: سرور ابری چیست؟ کاربرد و مزایای Cloud Server |
ماشینهای مجازی چگونه کار میکنند؟
همانطور که گفتیم، تکنولوژی مجازیسازی نیروی پیشران و عامل موجودیت VMها هستند.
هایپروایزورها که لازمۀ مجازیسازی هستند، یک لایۀ نرمافزاری روی سختافزارهای سیستم اصلی یا همان Host Machine قرار میدهند که امکان جداسازی سیستمعامل و اپلیکیشنها از سختافزار را فراهم میکند.
در نتیجه، ماشینهای مجازی ساخته میشوند که گفتیم میتوانند سیستمعاملهای جداگانه داشته باشند و از سایتها و اپلیکیشنهای متفاوت، بهصورت مستقل میزبانی کنند؛ آن هم درحالیکه منابع مورد نیاز خود را بهصورت مشترک همراه با دیگر ماشینهای مجازی، از سرور فیزیکی میگیرند.
بد نیست اینجا هم به این نکته اشاره کنیم که دو نوع هایپروایزور داریم:
- Type 1 Hypervisor: بهصورت مستقیم روی سیستمعامل قرار میگیرند؛
- Type 2 Hypervisor: در نقش یک اپلیکیشن کنار باقی نرمافزارهای نصبشده روی سیستمعامل ظاهر میشوند.
حالا علاوهبر اینکه میدانید ماشین مجازی چیست و چه مسیری را از زمان پیدایش پشتسر گذاشته تا به جایگاه امروزی برسد، چگونگی طرز کار آن را هم یاد گرفتید.
در بخش بعدی، راجعبه کاربرد های ماشین مجازی صحبت خواهیم کرد.
پیشنهاد خواندنی: VPC چیست؟ همه چیز درباره ابر خصوصی مجازی! |
ماشینهای مجازی چه کاربردی دارند؟
هم کاربران معمولی و هم ارگانهای بزرگ، میتوانند برای کارهای مختلفی سراغ این نوع ماشینها بروند. کاربردهایی مثل:
بهرهگیری از رایانش ابری
بالاتر هم گفتیم که ماشینهای مجازی زیربنای لازم برای دستیابی به رایانش ابری را فراهم آوردند. تکنولوژیای که با کمک آن میتوان به مقیاسپذیری خارقالعادهای دست پیدا کرد. (جلوتر نگاه دقیقتری به رابطۀ میان ابرها و ماشینهای مجازی خواهیم انداخت)
فضای تست و توسعه
ماشینهای مجازی کاملاً ایزوله هستند و به همین خاطر، فضایی مناسب برای تست و توسعۀ انواع نرمافزارها و اپلکیشنها محسوب میشوند.
تسهیل همکاری بین برنامهنویسها و تیمهای اجرایی حوزۀ IT
ماشینهای مجازی از خصوصیاتی مثل امکان روشن و خاموش کردن بسیار آسان، انتقال راحت و البته انطباقپذیری خارقالعاده برخوردار هستند؛ بهخاطر دارا بودن این خصوصیات، نهایت انعطاف برای توسعه و ساخت برنامههای جدید را فراهم میکنند.
تست یک سیستمعامل جدید
با ماشینهای مجازی میتوانید چگونگی عملکرد یک سیستمعامل را روی دستگاه خود تست کنید، بدون اینکه لازم باشد سیستمعامل اصلی دستگاه خود را تحت تأثیر قرار دهید.
پیشنهاد خواندنی: تفاوت VPN و VPS در چیست و هر کدام چه کابردهایی دارند؟ |
تحقیق و تفحص بدافزارها
آن دسته از متخصصان امنیت که زمان خود را صرف تحقیق و شناسایی انواع بدافزارها میکنند، ماشینهای مجازی را بسیار کاربردی میبینند.
تسریع انتقال گردش کار و فرایند امور
از آنجایی که VMها قابلحمل (Portable) هستند، فرایند جابهجایی گردش کار از سرورهای درون محلی مشخص به سازوکار ابری را سرعت میبخشند.
تست برنامههای ناشناخته
همانطور که میتوان سیستمعاملهای جدید و بدافزارها را روی ماشینهای مجازی تست کرد، امتحان کردن انواع نرمافزارهای ناشناخته با آنها، بدون در معرض خطر قرار دادن سیستم اصلی هم ممکن است.
برخورداری همزمان از برنامههایی که سیستمعاملهای مختلف نیاز دارند
ممکن است در عین اینکه به برنامههای ویندوزی وابسته هستید، نیازمند نرمافزاری باشید که تنها روی توزیعهای گوناگون لینوکس کار میکند! با استفاده از ماشین مجازی، میتوانید دو سیستمعامل داشته باشید و بدون مشکل، همۀ انواع برنامهها را اجرا کنید.
گشتوگذار ایمن در اینترنت
وقتی با ماشین مجازی در اینترنت گشتوگذار میکنید، خیالتان راحت است که اگر احیاناً آلودگی یا ویروسی در کار باشد، مشکلی برای سیستم اصلی و اطلاعات آن پیش نمیآید.
بازیابی مطمئن اطلاعات پس از وقوع فاجعه (Disaster Recovery)
تکثیر ماشینهای مجازی مشابه در محیط ابری، باعث به وجود آمدن یک لایۀ امنیت تکمیلی خواهد شد. ماشینهای تکثیرشده را میتوان دائماً آپدیت کرد و به این ترتیب، اگر احیاناً مشکلی برای ماشین اصلی ایجاد شود، اطلاعات از بین نخواهند رفت.
پیشنهاد خواندنی: تفاوت سرور ابری و مجازی چیست؟ |
ساخت محیط ابری هیبریدی
ماشینهای مجازی زیربنای لازم برای ساخت ابرهای هیبریدی را فراهم میکنند؛ یعنی محیطی که حاصل ترکیب ابرهای خصوصی، ابرهای عمومی و حتی بعضاً سرورهای قرارگرفته در محلی مشخص است.
اینها اصلیترین کاربردهایی هستند که میتوانید از ماشینهای مجازی انتظار داشته باشید. در بخش بعدی، انواع ماشین مجازی را زیر ذرهبین خواهیم برد.
انواع ماشینهای مجازی را بشناسید
انواع مختلف ماشینهای مجازی عبارتند از:
ماشین مجازی VMware
ماشین مجازی vmware چیست؟ این سؤال بسیار رایج است و در این قسمت پاسخ آن را دریافت خواهید کرد.
بالاتر، وقتی دربارۀ تاریخچۀ VMها صحبت میکردیم، گفتیم اولین مجموعهای که نسخهای تجاری برای مجازیسازی عرضه کرد، همین VMware بود که یکی از زیرشاخههای IBM به حساب میآید.
VMware هایپروایزورهای Type 1 و Type 2 را همراه با نرمافزار VM به مشتریهای سازمانی خود ارائه میکند.
ماشین مجازی ویندوز
اغلب هایپروایزورهای موجود در بازار، به ماشینهای مجازی اجازه میدهند که ویندوز را بهعنوان سیستمعامل روی خود نصب کنند. همچنین، لازم به ذکر است که هایپروایزور موسوم به Hyper-V که مایکروسافت آن را عرضه میکند، همراه با انواع نسخههای ویندوز ارائه میشود.
ماشین مجازی اندروید
این ماشینهایی مجازی، امکان اجرای نرمافزارهای اندرویدی در محیط ویندوز را به وجود میآورند. توجه داشته باشید که در حالت عادی، انجام چنین کاری بهخاطر تفاوتهای اساسی در ساختار دو سیستمعامل ممکن نیست!
ماشینهای مجازی اندروید، زیرساخت لازم برای برنامههای اندرویدی را بهصورت مجازی روی سیستمعامل ویندوز میسازند و به این ترتیب، میتوان بازیها و انواع اپلیکیشنهای اندرویدی روی این سیستمعامل مشهور اجرا کرد.
ماشین مجازی مک
سیاستهای اپل بهقدری سفتوسخت هستند که امکان بهرهگیری از سیستمعامل macOS روی هیچ دستگاهی بهجز کامپیوترهای اپل وجود ندارد. حتی نمیتوان آن را بهکمک یک ماشین مجازی روی سیستمهای دیگر اجرا کرد!
هرچند، میتوانید از هایپروایزورهای Type 2 استفاده کنید و با ساخت VM داخل این سیستمعامل، از یک سیستمعامل macOS جداگانه با محیطی کاملاً ایزوله و مستقل برخوردار شوید.
پیشنهاد خواندنی: iaas چیست؟ (مزایا، معایب و مثال به زبان ساده) |
ماشین مجازی iOS
باز هم اپل و باز هم سیاستهای سختگیرانه و انحصاری! بهجز دستگاههای ساخت این کمپانی، هیچ دستگاه دیگری نمیتواند از iOS بهره ببرد و ماشینهای مجازی هم در این راستا هچ کمکی نمیکنند.
البته هستند برنامههایی که بهعنوان شبیهساز آیفون شناخته میشوند و با انتقال برخی ملزومات، تمام سیستم یک آیفون را در نرمافزار شبیهسازی میکنند.
ماشین مجازی جاوا
JVM یا Java Virtual Machine، ماشینهای مجازیای هستند که امکان اجرای کدهای نوشتهشده با زبان برنامهنویسی جاوا را در هرجایی به وجود میآورند.
نکتۀ جالب اینکه JVM سازوکار متفاوتی دارد و مثل باقی ماشینهای مجازی از هایپروایزور استفاده نمیکند. در عوض، این نوع از انواع ماشین مجازی، کدهای برنامه را طوری ترجمه میکند که اجرای آنها روی سختافزارهای بهخصوص ممکن شود.
ماشین مجازی پایتون
ماشین مجازی پایتون هم مثل JVM نیازی به هایپروایزور ندارد! در واقع، این ماشین مجازی به برنامههای نوشتهشده با زبان پایتون اجازه میدهد بدون مشکل، روی پردازشگرهای مختلف اجرا شوند. کلیت سازوکار این نوع ماشینهای مجازی هم مثل سازوکار JVM است.
پیشنهاد خواندنی: زبان برنامه نویسی پایتون چیست؟ زبان Python چه کاربردهایی دارد؟ |
ماشین مجازی لینوکس
رایجترین سیستمعامل مهمان در انواع ماشینهای مجازی، همین لینوکس است. این سیستمعامل حتی بهعنوان Host Operating System هم رواج زیادی دارد و در ساخت ماشینهای مجازی گوناگون به کار گرفته میشود.
پیشنهاد خواندنی: سیستم عامل لینوکس چیست و چه کاربردهایی دارد؟ |
ماشین مجازی اوبونتو
یکی از مرسومترین توزیعهای لینوکس اوبونتو نام دارد. اگر دوست دارید اطلاعات کاملی راجعبه توزیعهای مختلف این سیستمعامل متنباز به دست بیاورید، مقالۀ “آشنایی با توزیع های لینوکس و مقایسهی کارکرد آنها” را بخوانید.
کاربران میتوانند از اوبونتو بهعنوان سیستمعامل مهمان روی Hyper-V مایکروسافت بهره ببرند.
بعد از آشنایی با انواع ماشین مجازی، وقت آن است که نگاهی بیندازیم به ارتباط بین ماشینهای مجازی و دنیای ابرها.
ماشین مجازی چه ارتباطی به فضای ابری دارد؟
همانطور که بالاتر هم گفتیم، ماشین مجازی یکی از اصلیترین تکنولوژیهایی است که دستیابی به دستاوردهای ابرها و کلاً خلق آنها را ممکن کرد.
ابرهای خصوصی و عمومی، منابع را بهشکل مجازی در استخرهای اشتراکی جمعآوری میکنند؛ سپس لایهای کنترلی روی آنها قرار میدهند تا بتوانند بهصورتی که میخواهند آنها را بین کاربران مختلف قسمت کنند.
مجازیسازی، مدیریت فرایندها و اتوماسیون، همگی روی سیستمعامل قرار میگیرند که وظیفۀ اتصال تمام این ادوات به یکدیگر را دارد؛ به بیان بهتر، سیستمعامل ارتباط بین منابع فیزیکی، استخرهای دادههای مجازی، نرمافزارهای مدیریتی، سازوکارهای خودکارسازی و البته مشتریها را برقرار میکند.
بنابراین، کلاً ماهیت عملکردی ابرها و رایانش ابری کاملاً وابسته به تکنولوژی مجازیسازی است؛ یعنی بدون ماشینهای مجازی، خبری از ابرها و مزایای آنها هم نخواهد بود!
برویم سراغ بررسی مزیتهای حاصل از انواع ماشینهای مجازی.
پیشنهاد خواندنی: paas چیست و چه کاربردی دارد؟ (+ مزایا و انواع paas) |
ماشینهای مجازی چه مزایایی دارند؟
قابلپیشبینی است که ماشینهای مجازی بهخاطر سازوکار ویژهای که ارائه میکنند، مزایای بسیاری را هم همراه خود بیاورند. مزایایی مثل:
مقیاسپذیری
VMهای مبتنیبر ابرها، امکان ارتقاء منابع و بزرگ کردن اپلیکیشنها را به راحتترین شکل ممکن فراهم میآورند. بسته به نیازی که دارید و برایتان پیش میآید، میتوانید منابع را کاهش یا افزایش دهید؛ بدون اینکه لازم باشد برای تهیۀ سختافزارهای فیزیکی هزینههای سنگین بپردازید.
قابل حمل بودن
انتقال ماشینهای مجازی از سروری به سرور دیگر و حتی انتقال به فضای ابری، خیلی راحت و بیدردسر انجام میگیرد.
عدم نیاز به سرورهای بیشتر و کاهش هزینهها
ماشینهای مجازی اجازه میدهند چندین کامپیوتر روی یک دستگاه فیزیکی بسازید. در نتیجه، دیگر لازم نیست برای کارهای مختلف سرورهای متعدد بخرید و اسیر مخارج سرسامآور شوید؛ ضمن اینکه با کاهش هزینههای مربوط به نگهداری و مدیریت چندین سرور، صرفهجویی قابل توجهی در هزینهها خواهید کرد.
تأمین سریع منابع
میتوان ماشینهای مجازی را کپی کرد و این یعنی وقتی نیاز به VM جدید ایجاد شود، قرار نیست از صفر شروع کنید و برای ساخت آن کلی وقت بگذارید.
قابل اطمینان بودن
ماشینهای مجازی و اجزای تشکیلدهندۀ آنها کاملاً ایزوله هستند و قرار نیست تحت تأثیر دیگر ماشینهای مجازی قرار بگیرند.
بنابراین، وقتی یکی از VMها با مشکل مواجه شود، باقی آنها میتوانند بدون مشکل کار خود را ادامه دهند. ضمن اینکه host اصلی هم با این خرابی به مشکلی برنمیخورد.
امنیت بیشتر
وقتی میتوانید چندین سیستمعامل را بدون درگیر کردن سیستمعامل host اصلی اجرا کنید، یعنی کلی فضای ایمن در اختیار خواهید داشت که برای تست انواع اپلیکیشنها و حتی بررسی دقیقتر ویروسها و خطرات سایبری کاربرد دارند. بهخاطر ایزوله بودن ماشینهای مجازی، سیستمعامل اصلی و فضای host با هیچ خطری مواجه نخواهد بود.
البته برخی ایرادات هم وجود دارند که باید از آنها هم مطلع باشید.
پیشنهاد خواندنی: رایانش مرزی (Edge Computing) چیست؟ |
چالشها و معایب ماشین مجازی چیست؟
طبیعتاً اینطور نیست که VMها سراسر خوبی باشند و همانطور که انتظار میرود، برخی نقصها هم در رابطه با آنها وجود دارد. نقصهایی که در این بخش به آنها میپردازیم.
مشکلات عملکردی
ماشینهای مجازی کاملاً وابسته به منابعی هستند که توسط ماشین فیزیکی در اختیار آنها قرار میگیرد؛ منابع محدود به ضعف در عمکلرد منجر میشوند.
پیچیدگیهای بیشازحد
فرایند پیکربندی و مدیریت آنها نیازمند افراد و تیمهایی است که دانش و تخصص کافی در این زمینه را داشته باشند.
وابستگی کامل به منابع سختافزاری یک ماشین فیزیکی
از آنجایی که همۀ ماشینهای مجازی کاملاً وابسته به منابع سختافزاری یک کامپیوتر فیزیکی هستند، اگر مشکلی برای منابع سختافزاری ایجاد شود، تمام ماشینهای مجازی با مشکل مواجه خواهند شد.
این هم از ایرادات و معایب. برویم که جمعبندی مقاله برسیم.
ماشین مجازی، دستاوردی که دنیای IT به آن مدیون است!
بعد از خواندن این مقاله، میدانید ماشین مجازی چیست. اغراق نیست اگر بگوییم وجود این ماشینها، نقش بسیار پررنگی در پیشرفتهای امروزۀ دنیا دارند.
سعی کردیم همۀ جوانب این موضوع را زیر ذرهبین ببریم تا مقالهای کامل تقدیمتان کنیم. از تاریخچۀ ماشینهای مجازی یا VMها گرفته تا انواع آنها، کاربردهایشان و حتی مزایا و معایبی که دارند.
اگر همچنان پرسشی در این رابطه دارید، در قسمت کامنتها آن را با ما در میان بگذارید.
دیدگاه ها
اولین نفری باشید که دیدگاه خود را ثبت می کنید