مجازیسازی فرآیندی است که امکان استفاده کارآمدتر از سختافزار فیزیکی کامپیوتر را فراهم میکند و پایه و اساس محاسبات ابری است.
مجازی سازی چیست؟
مجازیسازی از یک نرمافزار برای ایجاد یک لایه انتزاعی روی سختافزار کامپیوتر استفاده میکند و به عناصر سختافزاری (پردازندهها، حافظه، ذخیرهسازی و غیره) اجازه میدهد تا به چندین سیستم مجازی، که معمولاً ماشینهای مجازی (VM) نامیده میشوند، تقسیم شوند. هر ماشین مجازی سیستم عامل خود را اجرا کرده و مانند یک کامپیوتر مستقل رفتار میکند. (حتی اگر فقط روی بخشی از سختافزار واقعی سیستم اجرا شود)
نتیجه اینکه مجازیسازی استفاده کارآمدتر از سختافزار فیزیکی کامپیوتر را امکانپذیر کرده و امکان بهرهوری بیشتر سرمایهگذاری سختافزاری در سازمان را فراهم میآورد.
امروزه مجازی سازی یک روش استاندارد در معماری IT سازمانی محسوب میشود و فناوری است که اقتصاد رایانش ابری را هدایت میکند. مجازیسازی ارائهدهندگان ابر را قادر میسازد تا با سختافزار کامپیوتر فیزیکی موجود به کاربران خدمات ارائه دهند. همچنین به کاربران ابری این امکان را میدهد که منابع محاسباتی خود را تنها در صورت نیاز خریداری کرده و با افزایش حجم کاری، این منابع را مقرونبهصرفه کنند.
مزایای مجازی سازی
مجازی سازی چندین مزیت را برای اپراتورهای مرکز داده و ارائه دهندگان خدمات به ارمغان میآورد. از جمله:
- بهرهوری منابع: قبل از مجازی سازی، هر سرور برنامه کاربردی به CPU فیزیکی اختصاصی خود نیاز داشت و مسئولان IT برای هر برنامهای که میخواستند اجرا کنند، یک سرور جداگانه خریداری و پیکربندی میکردند. (IT به دلیل قابلیت اطمینان، یک برنامه کاربردی و یک سیستم عامل را برای هر کامپیوتر ترجیح میدهد.)
مجازیسازی سرور به شما امکان میدهد چندین برنامه را اجرا کنید ( هر کدام روی ماشین مجازی خود با سیستمعامل خاص خود روی یک کامپیوتر فیزیکی (معمولاً یک سرور x86) و بدون از دست دادن قابلیت اطمینان). این قابلیت حداکثر استفاده از ظرفیت محاسباتی سخت افزار فیزیکی را فراهم میکند.
- مدیریت آسانتر: جایگزینی کامپیوترهای فیزیکی با ماشینهای مجازی تعریف شده توسط نرم افزار، استفاده و مدیریت خطمشیهای موجود در نرم افزار را آسانتر کرده و اجازه میدهد تا جریان کار مدیریت سرویس IT خودکار ایجاد کنید. برای مثال، ابزارهای پیادهسازی و پیکربندی خودکار، مدیران را قادر میسازد تا مجموعهای از ماشینهای مجازی و برنامههای کاربردی را به عنوان سرویس، در قالبهای نرمافزاری تعریف کنند.
این بدان معنی است که آنها میتوانند این سرویسها را به طور مکرر و مداوم به راحتی و بدون صرف وقت و بروز خطا نصب کنند. مدیران میتوانند از سیاستهای امنیتی مجازیسازی استفاده کنند تا پیکربندیهای امنیتی خاصی را براساس نقش ماشین مجازی اعمال کنند. این سیاستها حتی میتوانند با از رده خارج کردن ماشینهای مجازی بلااستفاده کارایی منابع را افزایش دهند تا در فضا و قدرت محاسبات صرفهجویی شود.
- حداقل زمان خرابی: خرابی سیستم عامل و برنامه میتواند باعث خرابی و اختلال در بهرهوری کاربر شود. مدیران میتوانند چندین ماشین مجازی دیگر را در کنار یکدیگر اجرا کنند و در صورت بروز مشکل بین آنها سوئیچ کنند. اجرای چندین سرور فیزیکی اضافی گرانتر خواهد بود.
- آمادهسازی سریعتر: خرید، نصب و پیکربندی سخت افزار برای هر برنامه زمانبر است. در صورتی که سختافزار از قبل آماده شده باشد، آمادهسازی ماشینهای مجازی برای اجرای همه برنامهها بسیار سریعتر است. حتی میتوانید با استفاده از نرمافزار مدیریت آن را خودکار کرده و آن را در جریانهای کاری موجود بسازید.
راهحلهای مجازی سازی
چندین شرکت راهحلهای مجازی سازی را ارائه میدهند که وظایف خاص مرکز داده یا فرآیندهای مجازی سازی دسکتاپ متمرکز بر کاربر نهایی را پوشش میدهد. نمونههای شناخته شدهتر عبارتند از:
VMware که در مجازی سازی سرور، دسکتاپ، شبکه و ذخیره سازی تخصص دارد. Citrix که در مجازی سازی برنامههای کاربردی مطرح است اما راهحلهای مجازی سازی سرور و دسکتاپ مجازی را نیز ارائه میدهد. و مایکروسافت که راهحل مجازی سازی Hyper-V با ویندوز را ارائه میدهد و بر نسخههای مجازی کامپیوترهای سرور و دسکتاپ تمرکز دارد.
-
ماشینهای مجازی (VM)
ماشینهای مجازی (VMs) محیطهای مجازی هستند که محاسبات فیزیکی را در قالب نرم افزار شبیهسازی می کنند. آنها معمولاً شامل چندین فایل حاوی پیکربندی ماشین مجازی، فضای ذخیره سازی برای هارد درایو مجازی و برخی snapshot های ماشین مجازیاند که وضعیت خود را در یک زمان خاص حفظ میکنند.
-
Hypervisor ها
Hypervisor یک لایه نرم افزاری است که ماشینهای مجازی را هماهنگ میکند. این لایه به عنوان یک رابط بین VM و سخت افزار فیزیکی زیربنایی عمل میکند و تضمین میکند که هر کدام به منابع فیزیکی مورد نیاز برای اجرا دسترسی دارند. همچنین اطمینان میدهد که ماشینهای مجازی از نظر تجاوز به فضای حافظه یا چرخههای محاسباتی با یکدیگر تداخلی نداشته باشند.
دو نوع Hypervisor وجود دارد:
-
- Hypervisor های نوع 1 یا ” bare-metal” با منابع فیزیکی زیربنایی تعامل دارند و به طور کلی جایگزین سیستم عامل سنتی میشوند. آنها بیشتر در سناریوهای سرور مجازی به کار برده میشوند.
- Hypervisor های نوع 2 به عنوان یک برنامه کاربردی (application) در یک سیستم عامل موجود اجرا شده و معمولاً در دستگاههای نقطه پایانی برای اجرای سیستمعاملهای جایگزین مورد استفاده قرار میگیرند. آنها دارای سربار عملکرد هستند زیرا باید از سیستم عامل میزبان برای دسترسی و هماهنگ کردن منابع سختافزاری زیربنایی استفاده کنند.
انواع مجازی سازی
در این بخش مجازیسازی سرور را مورد بحث قرار دادهایم، اما بسیاری از عناصر زیرساخت IT دیگر را نیز میتوان مجازیسازی کرد تا مزایای قابلتوجهی را برای مدیران IT و شرکت بهعنوان یک مجموعه ارائه دهد. در این بخش انواع مجازی سازی زیر را مورد بررسی قرار خواهیم داد:
- مجازی سازی دسکتاپ
- مجازی سازی شبکه
- مجازی سازی ذخیره سازی
- مجازی سازی دادهها
- مجازی سازی برنامه
- مجازی سازی مرکز داده
- مجازی سازی CPU
- مجازی سازی GPU
- مجازی سازی لینوکس
- مجازی سازی ابری
1) مجازی سازی دسکتاپ
مجازی سازی دسکتاپ به شما امکان میدهد چندین سیستم عامل دسکتاپ که هر کدام در VM خاص خود در یک کامپیوتر مشابه هستد را اجرا کنید.
دو نوع مجازی سازی دسکتاپ وجود دارد:
- زیرساخت دسکتاپ مجازی (VDI) چندین دسکتاپ را در ماشینهای مجازی روی یک سرور مرکزی اجرا میکند و آنها را برای کاربرانی که با دستگاههای کلاینت ضعیف وارد میشوند اجرا میکند. به این ترتیب، VDI سازمان را قادر میسازد تا امکان دسترسی کاربران خود به انواع سیستم عاملها از هر دستگاهی، بدون نصب سیستم عامل روی آن را فراهم کند.
- مجازی سازی دسکتاپ محلی یک Hypervisor را روی یک کامپیوتر محلی اجرا میکند که به کاربر امکان میدهد یک یا چند سیستم عامل دیگر را روی آن کامپیوتر اجرا کند و در صورت نیاز بدون ایجاد هیچگونه تغییری در سیستم عامل اصلی از یک سیستم عامل به سیستم عامل دیگر سوئیچ کند.
2) مجازی سازی شبکه
مجازیسازی شبکه از یک نرمافزار برای ایجاد یک «view» از شبکه استفاده میکند که مدیر میتواند از آن برای مدیریت شبکه از طریق یک کنسول استفاده نماید. مجازی سازی شبکه عناصر و اجزای سخت افزاری (به عنوان مثال، اتصالات، سوئیچها، روترها، و غیره) را جدا کرده و آنها را در نرم افزاری که روی یک Hypervisor اجرا میشود، انتزاع میکند. مدیر شبکه میتواند این عناصر را بدون دست زدن به اجزای فیزیکی زیربنایی اصلاح و کنترل کند، که این امر مدیریت شبکه را به طور چشمگیری ساده میکند.
انواع مجازی سازی شبکه عبارتند از:
- شبکه تعریف شده با نرم افزار (SDN) که سخت افزاری که مسیریابی ترافیک شبکه را کنترل میکند (به نام “control plane”) را مجازی سازی میکند.
- مجازی سازی تابع شبکه (NFV) که یک یا چند ابزار سخت افزاری ارائه دهنده یک شبکه خاص را مجازی میکند. تابع (به عنوان مثال، فایروال، متعادل کننده بار، یا تحلیلگر ترافیک)، پیکربندی، تهیه و مدیریت آن تجهیزات را آسانتر میکند.
3) مجازی سازی فضای ذخیره سازی
مجازیسازی فضای ذخیرهسازی همه دستگاههای ذخیرهسازی موجود در شبکه (چه روی سرورهای مجزا یا واحدهای ذخیرهسازی مستقل نصب شده باشند) را قادر میسازد تا به عنوان یک دستگاه ذخیرهسازی واحد دسترسی و مدیریت شوند.
به طور خاص، مجازیسازی ذخیرهسازی، تمام بلوکهای ذخیرهسازی را در یک منبع مشترک واحد جمع میکند که در صورت نیاز از آنجا میتوان آنها را به هر VM در شبکه اختصاص داد. مجازیسازی فضای ذخیرهسازی، ایجاد فضای ذخیرهسازی برای ماشینهای مجازی را آسانتر کرده و از تمام فضای ذخیرهسازی موجود در شبکه حداکثر استفاده را میکند.
4) مجازی سازی دادهها
شرکتهای مدرن ، با استفاده از فرمتهای فایل متعدد، در مکانهای مختلف، از ابر گرفته تا سیستمهای سختافزاری و نرمافزاری داخلی، دادهها را از چندین برنامه ذخیره میکنند. مجازیسازی دادهها به هر برنامهای اجازه میدهد به همه آن دادهها دسترسی داشته باشد (صرف نظر از منبع، قالب یا مکان).
ابزار مجازی سازی دادهها یک لایه نرم افزاری بین برنامههای کاربردی که به دادهها دسترسی دارند و سیستمهای ذخیره کننده آن ایجاد میکنند. لایه درخواست داده یا پرسوجوی یک برنامه را در صورت نیاز ترجمه میکند و نتایجی که میتواند شامل چند سیستم باشد را برمیگرداند در شرایطی که سایر انواع یکپارچهسازی امکانپذیر، مطلوب یا مقرون به صرفه نیستند، مجازیسازی دادهها میتواند به تجزیه silo های داده کمک کند.
5) مجازی سازی برنامه (application)
مجازی سازی برنامه، برنامه را بدون نصب مستقیم روی سیستم عامل کاربر اجرا میکند. این فرآیند با مجازی سازی کامل دسکتاپ متفاوت است زیرا فقط برنامه در یک محیط مجازی اجرا میشود (سیستم عامل روی دستگاه کاربر نهایی طبق معمول اجرا میشود). سه نوع مجازی سازی برنامه وجود دارد:
- مجازی سازی برنامههای محلی: تمام برنامه روی دستگاه مورد نظر اجرا میشود اما جای سخت افزار بومی در محیط runtime اجرا میشود.
- جریان برنامه: برنامه روی سروری قرار دارد که اجزای کوچک نرم افزار را ارسال میکند تا در صورت نیاز روی دستگاه کاربر نهایی اجرا شود.
- مجازی سازی برنامه مبتنی بر سرور: برنامه به طور کامل روی سروری اجرا میشود که تنها رابط کاربری خود را به دستگاه سرویس گیرنده ارسال میکند.
6) مجازی سازی مرکز داده
مجازیسازی مرکز داده، بیشتر سختافزار مرکز داده را به نرمافزار انتزاع میکند و مدیر را قادر میسازد تا یک مرکز داده فیزیکی را برای مشتریان مختلف به چندین مرکز داده مجازی تقسیم کند.
هر مشتری میتواند به زیرساخت خود به عنوان یک سرویس (IaaS) دسترسی داشته باشد که روی همان سخت افزار فیزیکی زیربنایی اجرا میشود. مراکز داده مجازی، راهاندازی آسانی را برای محاسبات مبتنی بر ابر ارائه میدهند و شرکت را قادر می سازند بدون خرید سختافزار زیرساختی، به سرعت یک مرکز داده کامل را راهاندازی کنند.
7) مجازی سازی CPU
مجازی سازی CPU (واحد پردازش مرکزی) یک فناوری پایهای است که hypervisor، ماشینهای مجازی و سیستم عاملها را قابل انجام میسازد و اجازه میدهد تا یک CPU واحد برای استفاده توسط چندین VM به چند CPU مجازی تقسیم شود.
در ابتدا، مجازیسازی CPU کاملاً نرمافزاری تعریف شده بود، اما بسیاری از پردازندههای امروزی شامل مجموعه دستورالعملهای گستردهای هستند که از مجازیسازی CPU پشتیبانی میکنند که عملکرد VM را بهبود میبخشد.
8) مجازی سازی GPU
GPU (واحد پردازش گرافیکی) یک پردازنده چند هستهای ویژه است که عملکرد کلی محاسبات را با در اختیار گرفتن پردازشهای گرافیکی یا ریاضی سنگین بهبود میبخشد. مجازیسازی GPU به چندین VM اجازه میدهد از تمام یا بخشی از قدرت پردازش یک GPU برای ویدیوهای سریعتر، هوش مصنوعی (AI) و سایر برنامههای گرافیکی یا ریاضی فشردهتر استفاده کنند.
- GPU های عبوری، کل GPU را در اختیار یک سیستم عامل مهمان قرار میدهند.
- vGPU های مشترک، هستههای فیزیکی GPU را برای استفاده توسط VM های مبتنی بر سرور بین چند GPU مجازی (vGPU) تقسیم میکنند.
9) مجازی سازی لینوکس
لینوکس دارای hypervisor خود به نام ماشین مجازی مبتنی بر کرنل (KVM) است که از افزونههای پردازنده مجازی سازی اینتل و AMD پشتیبانی میکند تا بتوان VM های مبتنی بر x86 را از داخل یک سیستم عامل میزبان لینوکس ایجاد کرد.
لینوکس به عنوان یک سیستم عامل منبع باز، بسیار انعطافپذیر است. میتوانید نسخه های در حال اجرای VMهای لینوکس را که برای بارهای کاری خاص طراحی شدهاند یا نسخههای تنظیم شده امنیتی برای برنامههای حساستر را ایجاد کنید.
10) مجازی سازی ابری
همانطور که در بالا ذکر شد، مدل محاسبات ابری به مجازی سازی بستگی دارد. با مجازی سازی سرورها، ذخیره سازی و سایر منابع فیزیکی مرکز داده، ارائه دهندگان رایانش ابری میتوانند طیف وسیعی از خدمات را به مشتریان ارائه دهند، از جمله:
- زیرساخت به عنوان یک سرویس (IaaS): سرور، منابع ذخیره سازی و شبکه مجازی سازی شده که میتوانید براساس نیاز آنها را پیکربندی کنید.
- پلتفرم به عنوان یک سرویس (PaaS): ابزارهای توسعه، پایگاههای داده و سایر سرویسهای مبتنی بر ابر مجازی سازی شده که میتوانید از آنها برای ایجاد برنامهها و راهحلهای مبتنی بر ابر خود استفاده کنید.
- نرم افزار به عنوان سرویس (SaaS): برنامههای نرم افزاری که در فضای ابری استفاده میکنید. SaaS سرویس مبتنی بر ابر است که بیشتر از سخت افزار انتزاع شده است.
اگر میخواهید درباره مدلهای سرویس ابری بیشتر بدانید، به این راهنما مراجعه کنید: «مقایسه IaaS ، PaaS و SaaS»
مجازی سازی و containerization
مجازی سازی سرور یک کامپیوتر کامل را در سخت افزار بازتولید میکند و سپس کل سیستم عامل را اجرا و سیستم عامل یک برنامه را اجرا میکند. این کار کارآمدتر از عدم مجازی سازی است، اما همچنان برای هر برنامهای که اجرا میشود کد و سرویسهای غیر ضروری را کپی می کند.
Container ها یک رویکرد جایگزین دارند. آنها یک کرنل سیستمعامل زیرین را به اشتراک میگذارند و فقط برنامه و موارد وابسته به آن را، مانند کتابخانههای نرمافزار و متغیرهای محیطی اجرا میکنند. این باعث میشود Container ها کوچکتر و سریعتر به کار گرفته شوند.
VMware
VMware نرم افزار مجازی سازی ایجاد میکند. VMware تنها با ارائه مجازی سازی سرور شروع به کار کرد. ESX hypervisor (اکنون ESXi) آن یکی از اولین محصولات مجازی سازی موفق تجاری بود. امروزه VMware راهحلهایی برای مجازی سازی شبکه، ذخیره سازی و دسکتاپ را نیز ارائه میدهد.
امنیت
مجازی سازی دارای برخی مزایای امنیتی نیز میباشد. برای مثال، ماشینهای مجازی آلوده به بدافزار را میتوان به نقطهای از زمان (به نام snapshot) که ماشین مجازی آلوده و پایدار بود، برگرداند. آنها همچنین میتوانند به راحتی حذف و دوباره ایجاد شوند. همیشه نمیتوان یک سیستمعامل غیرمجازیشده را پاکسازی کرد، زیرا بدافزار اغلب در عمق اجزای اصلی سیستمعامل ادغام میشود و حتی پس از بازگرداندن سیستم در آن باقی میماند.
مجازی سازی برخی از چالشهای امنیتی را نیز به همراه دارد. اگر مهاجمی یک hypervisor را به خطر بیاندازد، به طور بالقوه مالک تمام ماشینهای مجازی و سیستم عاملهای مهمان خواهد شد. از آنجا که hypervisorها میتوانند به ماشینهای مجازی اجازه دهند تا بدون دست زدن به شبکه فیزیکی بین خود ارتباط برقرار کنند، مشاهده ترافیک آنها و در نتیجه شناسایی فعالیتهای مشکوک دشوار است.
hypervisor نوع 2 در سیستم عامل میزبان نیز مستعد به خطر افتادن سیستم عامل میزبان است.
طیف وسیعی از محصولات امنیتی مجازی سازی در بازار وجود دارند که میتوانند ماشین های مجازی را برای بدافزار اسکن و patch کنند، کل دیسکهای مجازی VM را رمزگذاری کنند و دسترسی VM را کنترل و بازرسی کنند.
مجازی سازی و IBM
IBM Cloud مکمل جامعی از راهحلهای مجازیسازی مبتنی بر ابر را ارائه میدهد که از خدمات ابر عمومی تا ارائههای ابری خصوصی و ترکیبی را دربرمیگیرد. میتوانید از آن برای ایجاد و اجرای زیرساختهای مجازی استفاده کنید و از سرویس هوش مصنوعی مبتنی بر ابر تا انتقال بار کاری VMware با ابر IBM برای راه حلهای VMware بهره ببرید.