مجازیسازی یکی از جدیدترین اصطلاحات صنعت فناوری اطلاعات است که در سالهای اخیر بسیاری از افراد و کسبوکارها با کاربردهای مختلف آن سروکار دارند. یکی از ابتداییترین و کلیترین تعاریفی که ممکن است از این عبارت شنیده باشید، اجرای یک یا چند سیستم عامل مهمان بر روی یک هاست است.
با این حال، خدمات، سختافزارها و نرمافزارهای متعددی وجود دارند که میتوان آنها را مجازی کرد و در محدوده وسیعتری از مزایای مجازی سازی بهره گرفت.
در این مقاله به معرفی مجازیسازی، تاریخچه و انواع آن و مزایایی که برای کسبوکارها به همراه دارد، میپردازیم. با توجه به اهمیت و کاربرد بالای انواع مجازی سازی پیشنهاد میکنیم خواندن این مقاله را از دست ندهید.
مجازیسازی چیست؟
به زبان ساده، مجازی سازی را میتوان ایجاد یک نسخه مجازی از هر چیزی تعریف کرد. مجازیسازی، ایده و راهکاری خلاقانه و بسیار کاربردی برای ایجاد یک نسخه مجازی از دستگاههای ذخیرهسازی، سرورها، شبکهها و سایر منابعی است که زمانی تنها به شکل فیزیکی در دسترس کاربران قرار داشتند.
این فناوری از نرمافزارهایی برای شبیهسازی عملکرد سختافزار و ایجاد یک سیستم مجازی بهره میگیرد. به این ترتیب، ماهیت و ویژگیهای فیزیکی منابع محاسباتی از دید کاربران پنهان شده و ضمن ایجاد یک یا چند منبع مجازی، امکان استفاده کارآمدتر از منابع سختافزاری فراهم میشود.
اصطلاحات کاربردی در مجازی سازی
- هایپروایزرها (Hypervisor)
عنصر اصلی در پیادهسازی مجازی سازی، هایپروایزر است. هایپروایزر (Hypervisor) یک لایه نرمافزاری است که با نصب روی سختافزار، امکان راهاندازی ماشینهای مجازی را فراهم میکند. در واقع این نرمافزار، بهعنوان رابطی میان ماشین مجازی (VM) و سختافزار فیزیکی زیرساختی عمل کرده و اشتراک منابع فیزیکی را مدیریت میکند. همچنین هایپروایزر تضمین میکند که عملکرد ماشینهای مجازی، با تأثیر گذاشتن بر حافظه یا چرخههای محاسباتی، با یکدیگر تداخل نداشته باشند.
به طور کلی، دو نوع هایپروایزر وجود دارد:
- هایپروایزر نوع 1 که با عنوان «Bare-metal» شناخته میشود. این نوع hypervisor با منابع فیزیکی زیرساختی مانند سرور، حافظه، فضای ذخیرهسازی و… در تعامل است و میتواند مانند سیستم عاملهای (OS) سنتی رفتار کند. استفاده از این هایپروایزر بیشتر در مجازیسازی سرور مشاهده میشود.
- هایپروایزرهای نوع 2 را میتوان یک برنامه کاربردی برای اجرا در سیستمعاملهای موجود و دستگاههای endpoint دانست. این نوع از هایپروایزر، سیستمعاملهای جایگزین را روی سیستم کاربر نهایی اجرا کرده و از OS میزبان برای دسترسی به منابع زیرساختی سختافزاری و هماهنگ کردن عملکرد آنها بهره میگیرد؛ بنابراین کارایی بالا و عملکرد بهینهای دارد.
- ماشین مجازی یا VM
ماشین مجازی (Virtual Machine)، یک محیط مجازی است که به شبیهسازی یک سیستم فیزیکی، در قالب نرمافزار میپردازد. بنابراین، VM را میتوان برنامهای معرفی کرد که روی یک سیستمعامل اجرا میشود و از این طریق، یک کامپیوتر مجازی را در اختیار کاربران قرار میدهد. این ماشین مجازی ماهیت فیزیکی خود را پنهان میکند اما تمام منابع مورد نیاز برای یک کامپیوتر کامل را به کاربران خود ارائه میدهد. به این ترتیب، سیستمعامل میزبان به دریچهای برای استفاده از منابع فیزیکی یک سختافزار بزرگتر تبدیل میشود.
- ماشین میزبان (Host Machine):
ماشین میزبانیک دستگاه فیزیکی است که مجازیسازی در آن اتفاق میافتد. در واقع این ماشین، میزبان یک یا چند ماشین مجازی است و اجزای فیزیکی آن مانند حافظه و اجزای ذخیرهسازی و پردازش، در نهایت وظیفه برطرف ساختن نیازهای ماشینهای مجازی را بر عهده دارند؛ این منابع عمدتا از دید ماشینهای مجازی پنهان هستند. بنابراین نرمافزارهای مجازی سازی مانند هایپروایزرها روی این دستگاه نصب و راهاندازی میشوند.
تاریخچه مجازیسازی
تاریخچه مجازی سازی دربرگیرنده فناوریهای نوظهوری مانند معماری x86، مینفریمها (Mainframe)، هایپر وایزرها (hypervisor)، رایانههای شخصی و سوئیچهای مجازی بوده است. مدیران فناوری اطلاعات با درک بهتر تاریخچه این فناوری، میتوانند به پیادهسازی هر چه بهتر این فناوری در مراکز داده خود کمک کنند.
ریشههای مجازیسازی به دوران کامپیوترهای بزرگ در دهه 1960 برمیگردد؛ زمانی که هر یک از این قطعات عظیم سختافزاری، در لحظه تنها میتوانستند روی یک فرآیند کار کنند. در واقع داستان virtualization زمانی شروع شد که تقاضای پشتیبانی منابع فیزیکی از بیشتر از یک کاربر یا فرآیند، شکل گرفت.
در سال 1964، IBM اولین سیستم مینفریم خود با نام CP-40 را که مبتنی بر فناوری اشتراک زمانی (Time sharing) بود، طراحی و به بازار معرفی کرد. CP-40 سختافزار یک رایانه را به پشتیبانی همزمان بیش از یک کاربر قادر میساخت. اندکی بعد، SIMMON، یک ابزار تست نرمافزار و CP-40 وارد مرحله تولید شده و اولین هایپروایزر ((Hypervisor را برای مجازیسازی ارائه کردند.
در سال 1974، جرالد پوپک و رابرت گلدبرگ، هایپروایزرها را در دو نوع 1 و 2 دستهبندی کردند تا تمایز میان آنها را بهتر مشخص کنند؛ روش اول bare metal و روش دوم hosted. هایپروایزرهای نوع 1 به دلیل قرار گرفتن در سختافزار فیزیکی، امنیت بیشتری را ارائه میدهند و اغلب امکان حمله در سطح سیستم عامل را از بین میبرند. هایپروایزرهای نوع 2 ارتباط نزدیکی با آغاز معماری x86 دارند و از آنجا که بالای سیستمعامل قرار میگیرند، عموماً برای سیستمهای کلاینت یا کاربر نهایی استفاده میشوند.
در دهه 1990، بسیاری از سازمانها برای همگام شدن با پیشرفتهای فناوری اطلاعات و اپلیکیشنهای کاربردی با چالش مواجه شدند و به این ترتیب، نیاز به استفاده بهتر از منابع را درک کردند. با استفاده از مجازیسازی، شرکتها نهتنها میتوانستند زیرساخت سرور خود را بهطور مؤثرتر پارتیشنبندی (Partition) کنند، بلکه قادر به اجرای برنامههای قدیمی خود روی انواع و نسخههای مختلف سیستمعامل نیز بودند. به این ترتیب تقاضا برای مجازی سازی افزایش پیدا کرد.
اوایل دهه 1990، چند شرکت مجازیسازی، سرویسها و خدماتی را برای مجازیسازی بهتر جریان کاری و افزایش کارایی مراکز داده (Data centers) معرفی کردند. Red Hat Software در سال 1995، اولین نسخه عمومی Red Hat Commercial Linux را منتشر کرد که سیستمعاملی مبتنی بر لینوکس را ارائه میکرد.
در سال 1998، سرمایهگذاری روی کمپانی VMware آغاز و یک سال بعد، اولین محصول آن رونمایی شد: VMware Workstation. این محصول یک هایپروایزر نوع 2 ارائه میکرد که روی نسخههای x86 سیستمعاملهای ویندوز و لینوکس اجرا میشد و امکان راهاندازی ماشین مجازی (VM) روی یک دستگاه را برای مدیران فراهم میکرد. به این ترتیب هر ماشین مجازی میتوانست سیستم عامل خاص خود را اجرا کند؛ بعداً VMware از نسخههای x64 نیز پشتیبانی کرد.
با وجود همه اقدامات انجام شده، آغاز مجازی سازی را میتوان از دهه 2000 و با تاسیس شرکتهایی مانند VMware، Red Hat، IBM و Citrix Systems، درنظر گرفت.
با مرور زمان، این شرکتها نسخههای بهروزتر و کاملتری از مجازیسازی را در اختیار سازمانها قرار داده و به این ترتیب، مدیران آی تی سرویسها و نرمافزارهای مختلفی برای مجازیسازی مراکز داده و اجزای سختافزاری خود، مانند پردازندههای مجازی، حافظه، ابزارهای ذخیرهسازی و اجزای شبکه در اختیار داشتند. در نهایت، توسعه هرچه بیشتر مجازیسازی، بهعنوان پایهای برای توسعه رایانش ابری عمل کرد.
نحوه کار مجازی سازی چگونه است؟
مجازیسازی یک فناوری است که در آن امکان مدیریت و بهرهگیری از منابع سختافزاری به شکل مشترک و از طریق نرمافزار فراهم میشود. یکی از کاربردهای اصلی فناوری مجازی سازی، در مجازی سازی سرور است که از یک لایه نرم افزاری به نام هایپروایزر برای شبیهسازی سختافزار مورد نیاز استفاده میکند. سختافزار مورد نیاز اغلب شامل حافظه CPU، ورودی/ خروجی (I/O) و ترافیک شبکه است که به شکل پویا میان تعدادی ماشین مجازی تخصیص داده میشود.
هایپروایزرها منابع فیزیکی را دریافت کرده و آنها را تفکیک میکنند تا در محیط مجازی قابل استفاده باشند. آنها میتوانند روی سیستم عامل قرار گرفته یا مستقیماً روی سختافزار نصب شوند که اکثر شرکتها از روش دوم برای مجازی سازی سیستمهای خود بهره میگیرند.
با کمک هایپروایزر، سیستمعامل ماشین مجازی، که در حالت عادی باید با سختافزار مورد نیازش تعامل داشته باشد، با نرمافزار شبیهسازی شده آن سختافزار در تعامل خواهد بود. اگرچه عملکرد این سیستمهای مجازی با عملکرد سیستمهای عادی برابر نیست، اما مفهوم مجازیسازی همچنان به رشد خود ادامه میدهد، زیرا اکثر سیستمهای عامل و برنامهها، از ظرفیت کامل سختافزاری خود استفاده نمیکنند.
مجازیسازی با حذف وابستگی به یک پلتفرم سختافزاری، منجر به ایجاد انعطافپذیری، کنترل و مدیریت بهتر منابع میشود.
اگرچه در ابتدا مجازی سازی برای سرورها در نظر گرفته شده بود، امروزه این مفهوم به برنامهها، شبکه، داده و دسکتاپ (VDI) نیز توسعه یافته است.
مراحل مجازی سازی را میتوان به شکل زیر تعریف کرد:
- هایپروایزرها منابع فیزیکی مورد نیاز را از منابع در دسترس خود جدا میکنند.
- منابع دریافت شده بر حسب نیاز، به ماشینهای مجازی مختلف تخصیص داده میشوند.
- کاربران با ماشین مجازی ایجاد شده کار کرده و به انجام محاسبه و پردازشهای خود میپردازند.
- در زمان اجرای ماشین مجازی، یک کاربر یا برنامه میتواند در صورت نیاز، درخواست خود برای منابع بیشتر را ارائه کند. هایپروایزر در پاسخ به این درخواست، به منابع فیزیکی درخواست داده و تغییرات ایجاد شده را ذخیره میکند. تمامی این فرایندها با سرعتی عادی و بدون متوجه شدن کاربر انجام میشوند.
انواع روشهای مجازی سازی
اکنونکه میدانید virtualization چیست، بهتر است با انواع مجازی سازی نیز آشنا شوید. همانطور که فناوری مجازیسازی به تکامل خود ادامه میدهد، روشهای مختلفی نیز برای استفاده از آن ایجاد میشود. در واقع شناخت راهکارهایی مانند مجازیسازی سرور و شبکه، به بسیاری از سازمانها کمک کرده تا از منابع خود به شکل بهینه بهره بگیرند. به طور کلی، مجازیسازی به انواع زیر تقسیم میشود:
- مجازی سازی سرور
مجازی سازی سرور را میتوان رایجترین نوع virtualization در بازار جهانی امروز دانست که شرکتهای معتبر و شناختهشدهای مانند Microsoft، VMware و Citrix بهترین نرمافزارها را برای اجرای آن در اختیار کاربران قرار میدهند. سرورها برای پردازش حجم بالایی از فعالیتها طراحی شدهاند و برای افزایش کارایی، پارتیشنبندی آنها باید بهگونهای باشد که اجزای سرور، به شکل بهینه، برای عملکردهای مختلف در سراسر سیستم مورد استفاده قرار بگیرند.
مجازیسازی سرور به معنای پنهان کردن منابع سرور (مانند تعداد و هویت سرورهای فیزیکی)، پردازندهها و سیستمهای عامل، از کاربران آن است. هدف از این کار، دور نگه داشتن کاربر از درک و مدیریت جزئیات پیچیده منابع سرور و در عین حال، سهولت اشتراکگذاری و استفاده از منابع و افزایش ظرفیت آن است.
- مجازی سازی شبکه
با مجازیسازی شبکه، شبکههای مجازی از سختافزار زیرین آن جدا میشوند. در واقع مجازیسازی شبکه، روشی برای ترکیب منابع موجود در یک شبکه، با استفاده از تقسیم پهنای باند به کانالهایی است که از یکدیگر مستقل هستند و میتوانند به سرور یا دستگاهی خاص، تخصیص داده شوند.
مجازیسازی شبکهها، پیچیدگی واقعی شبکه را در بخشهای کوچکتر قابل مدیریت پنهان کرده و در نهایت عملکرد بهتر و پایدارتری را ایجاد میکند. همچنین با تخصیص و توزیع هرچه بهتر منابع، تعداد مؤلفههای فیزیکی مورد نیاز مانند سوئیچ، روتر، سرور، کابل و هاب را کاهش میدهد.
مجازیسازی را میتوان به انواع مختلفی تقسیم کرد. از جمله انواع مجازی سازی میتوان به مجازیسازی سرور، دسکتاپ، داده، سیستم عامل، شبکه و سیستم عامل اشاره کرد.
- مجازی سازی ذخیرهسازی (Storage Virtualization)
علاوه بر مجازیسازی سرور و شبکه، نوع دیگری از Virtualization نیز وجود دارد که با عنوانهای مجازیسازی استوریج، مجازیسازی ذخیرهسازی و مجازیسازی I/O شناخته میشود. مجازیسازی ذخیره سازی شامل گروهی از سرورها است که توسط یک سیستم ذخیرهسازی مجازی مدیریت میشود.
در واقع این سیستم، ذخیرهسازی را از منابع متعدد مدیریت کرده و آن را بدون توجه به تفاوت سختافزاری میان سیستمهای هاست، به عنوان یک منبع ذخیرهسازی واحد در نظر میگیرد. این شیوه مجازیسازی، انجام کارهای پشتیبانی، بایگانی و بازیابی را آسانتر میکند.
- مجازی سازی برنامه
مجازیسازی برنامه (Application Virtualization)، یکی دیگر از انواع مجازی سازی در سالهای اخیر است که اپلیکیشن را از سیستمعامل و سختافزاری که روی آن اجرا میشود، جدا میکند. در این حالت، کاربر نهایی معمولاً به برنامههای مجازیسازی شده روی یک تین کلاینت (Thin client) دسترسی دارد؛ درحالیکه برنامه روی یک سرور دیتاسنتر متصل به اینترنت اجرا میشود. به این ترتیب، اجرای برنامههایی که نیازمند نسخههای قدیمیتر سیستمعامل هستند یا ممکن است سایر منابع سیستم را تحت تاثیر قرار دهند، آسانتر میشود.
- مجازی سازی دسکتاپ (VDI)
در کنار همه مواردی که مطرح شد، مجازیسازی دسکتاپ نوآوری دیگری است که بهعنوان زیرساخت دسکتاپ مجازی (VDI) نیز شناخته میشود. این نوع مجازیسازی، به جای سرور، محیط دسکتاپ کاربر را در یک سیستم مبتنی بر نرمافزار منعکس میکند که میتوان از راه دور و از طریق اینترنت به آن دسترسی داشت.
در این روش، تمام عناصر فضای کاری فیزیکی در سرور ذخیره میشوند و کاربران نهایی صرفنظر از دستگاهی که استفاده میکنند، تجربه مشابهی دارند. به عبارت دیگر، همه دادهها و برنامههای کاربر در سرور میزبان وجود دارند، نه در دستگاه کاربر نهایی.
- مجازی سازی داده
شرکتهای مدرن، دادهها را از چندین برنامه و با فرمتهای متعدد، در مکانهای مختلف (از سیستم های ابری تا سیستمهای سختافزاری و نرمافزاری داخلی) ذخیره میکنند. مجازیسازی دادهها به هر برنامه اجازه میدهد تا صرفنظر از منبع، فرمت یا محل ذخیرهسازی، به همه آن دادهها دسترسی داشته باشد.
در مجازیسازی دادهها، بین برنامههای کاربردی که به دادهها دسترسی دارند و سیستمهای ذخیره کننده آنها، یک لایه نرمافزاری ایجاد میشود. این لایه نرمافزاری، درخواست دادههای یک برنامه کاربردی را ترجمه کرده و نتایجی را برمیگرداند که میتوانند چندین سیستم را در برگیرند.
- مجازی سازی سیستمعامل
مجازیسازی سیستمعامل را میتوان نوعی VIRTUALIZATION سرور دانست که امکان اجرای چند سیستمعامل مجازی در کنار یکدیگر را فراهم میکند. در واقع این اتفاق در هسته یا کرنل (Kernel) سیستمعامل اصلی اتفاق میافتد. اما مزیت این روش چیست؟
مجازیسازی سیستمعامل راهی برای کاهش هزینههای سختافزاری است. با استفاده از مجازیسازی، تمام نمونههای مجازی به شکل ایزوله و قابل نظارت هستند و به این ترتیب، امنیت اطلاعات و دادهها بهطور قابلی توجهی افزایش پیدا میکند. همچنین استفاده از مجازیسازی OS، زمان صرف شده برای خدمات فناوری اطلاعات مانند بهروزرسانی نرمافزار را کاهش میدهد.
مجازیسازی چه مزایایی دارد؟
مجازیسازی برای کسبوکارها در هر اندازهای که باشند (از شرکتهای کوچک تا بزرگ)، مزایای متعددی دارد. اگرچه ممکن است شروع مجازیسازی منابع پیچیده به نظر برسد، اما مزایای طولانیمدت آن تحمل دشواری و تلاش برای مجازی سازی را ارزشمند میکند.
کاهش هزینهها، بهبود امنیت دادهها، پشتیبانگیری و تهیه نسخه پشتیبان از دادهها، بهبود بهرهوری و حفظ محیط زیست از مزایای مجازی سازی به شمار میآیند.
از مهمترین مزایای مجازی سازی میتوان به موارد زیر اشاره کرد:
- کاهش هزینهها: مجازیسازی کسبوکارها را قادر میکند تا از زیرساختهای فناوری اطلاعات بهطور موثرتری استفاده کنند. با استفاده از چندین VM یا VDI ، میتوان در تعداد سختافزارها و سرورهای مورد نیاز صرفهجویی کرده و علاوه بر کاهش این هزینهها، هزینههای انرژی و خنککنندهها را نیز کاهش داد؛ وجود سختافزار کمتر، نگهداری و مدیریت چرخه عمر داراییها را بسیار آسان میکند.
همپنین مجازیسازی هزینههای مربوط به توسعه نرمافزار یا اپلیکیشنها را نیز کاهش میدهد و دسترسی به منابع جدید را برای تیمهای توسعه، تسهیل میکند.
- پشتیبانگیری و بازیابی سریع اطلاعات: نسخههای پشتیبان میتوانند هم از سرورها و هم از ماشینهای مجازی گرفته شوند. نسخههای پشتیبان که Snapshot Backup نامیده میشوند، درطول روز به طور منظم گرفته میشوند تا دادهها همیشه بهروز باشند.
بازیابی اطلاعات نیز در سیستمهای مجازی بسیار ساده است. پشتیبانگیری منظم و بهروز در سیستمهای مجازی، امکان بازیابی سریع اطلاعات را فراهم میکند. در واقع حتی در مواقع اضطراری، یک ماشین مجازی میتواند در عرض چند دقیقه دادههای موجود را بازیابی کند.
- افزایش بهرهوری: وجود منابع فیزیکی کمتر، منجر به صرف هزینه و زمان کمتر برای مدیریت و نگهداری سرورها میشود و کارمندان میتوانند زمان بیشتری را برای اقدامات موثرتر، مانند افزایش درآمد سازمان یا بهبود نوآوریهای تجاری، صرف کنند. علاوه بر این، استفاده از فناوری مجازی سازی برای سازمانهایی با فضای دورکاری یا ترکیبی، به ایجاد دسترسی مطمئن، سریع و ساده به دادههای مورد نیاز و درنتیجه افزایش بهرهوری نیروها کمک میکند.
- امنیت: مزایای امنیتی ماشینهای مجازی فراتر از کاربردهای توسعه و آزمایش آنها است. در صورتی که احتمال دسترسی مشکوک به فایلها یا دادهها احساس شود، میتوان برنامهها را در یک محیط قرنطینه یا «sandbox» اجرا کرد که از حداقل منابع و فضای ذخیرهسازی استفاده میکند. در واقع جداسازی نرمافزارها و برنامهها از یکدیگر، باعث ایجاد مقاومت در برابر انتشار بدافزار یا سایر تهدیدها به سیستم میشود.
- انتقال سادهتر به فضای ابری: استفاده ازمجازی سازی، سازمانها را به تجربه یک محیط کاملاً مبتنی بر ابر نزدیک میکند. در واقع استفاده از ماشینهای مجازی در سطح مرکز داده، سازمانها را در راستای ایجاد زیرساخت مبتنی بر ابر کمک میکند. با استفاده از مجازیسازی، پذیرش ذهنیت ابری برای سازمانها سادهتر میشود.
- حفظ محیط زیست: سازمانها و مراکز دادهای که از سختافزارهای زیادی استفاده میکنند، ردپای کربن قابل توجهی از خود به جای میگذارند. استفاده از مجازیسازی منجر به کاهش قابل توجه انرژی برای خنک کردن این دستگاهها و در نتیجه پاکسازی هوا و محیط زیست میشود. در نتیجه، سازمانهایی که از مجازیسازی استفاده میکنند، مسئولیت خود در قبال محیط زیست را پذیرفته و کیفیت روابط خود با مشتریان و طبیعت را بهبود میبخشند.
سخن پایانی
مجازیسازی را میتوان به عنوان بخشی از یک روش استاندارد در فناوری اطلاعات سازمانی دانست که به شکل مستمر در حال تکامل است. هدف معمول مجازی سازی، متمرکز ساختن وظایف اداری در کنار بهبود مقیاسپذیری و حجم کاری است که اقتصاد رایانش ابری را نیز هدایت میکند.
مجازیسازی، ارائهدهندگان زیرساختهای ابری را قادر میسازد تا با استفاده از سختافزار رایانه فیزیکی خود، به ارائه خدمات برای کاربرانشان بپردازند. مجازی سازی به کاربران ابری این امکان را میدهد که تنها منابع محاسباتی مورد نیاز خود را خریداری کرده و با افزایش حجم کاری، این منابع را به شکلی مقرونبهصرفه، افزایش دهند.
منابع:
- infoq.com
- ibm.com
- techtarget.com
- www.techtarget.com