در این مقاله قصد داریم، مجازی سازی را به زبانی ساده و قابل فهم بیان کنیم و از اهمیت و کاربردهای آن در حوزه فناوری اطلاعات سخن بگوییم.
شکلگیری پیشرفتهای گوناگون در عرصه فناوری اطلاعات، زمینه را برای حضور فناوریهای مختلفی فراهم آورد که تا پیش از این تصور آن برای بشر ممکن نبود. زمانی کسی فکر نمیکرد، روزی برسد، که تنها با یک کلیک، یک داده یا محتوای یک پیام از یک سوی دنیا به سوی دیگر آن در یک چشم بههم زدن، ارسال شود.
در حال حاضر مجازی سازی یکی از مهمترین دستآوردهای فناوری اطلاعات است که بسیاری از افراد، از یک کاربر معمولی گرفته تا یک متخصصIT و یک توسعهدهنده، از آن بهرهمند میشوند.
مجازی سازی چیست
مجازی سازی(Virtualization ) نوعی تکنولوژی است که با استفاده از منابع سختافزاری، امکان ساخت انواع سرویسهای کاربردی فناوری اطلاعات(IT) فراهم میشود.
مجازی سازی و کاربردهای آن
در این تکنولوژی تمام ظرفیتهای فیزیکی یک دستگاه از طریق توزیع توانمندیها و ظرفیتهای آن میان کاربران یا محیط کاربر، مورد استفاده قرار میگیرد. در حقیقت با استفاده از این تکنولوژی کاربران متعدد قادرند که از ظرفیتهای یک دستگاه در محیط کاربری خود استفاده کنند.
مثالی از مجازی سازی
اجازه دهید با یک مثال تخصصیتر مفهوم دقیقتر این فناوری را بیان کنیم. فرض کنید سه سرور(server) فیزیکی مجزا در اختیار داریم که هر کدام برای مقاصد مختلفی درنظر گرفته شدهاند. یکی از آنها سرور ایمیل(Email server) است و برای جابهجا کردن، دریافت و ارسال و پردازش ایمیلها در سراسر محیط وب استفاده میشود.
سرور دوم یک وب سرور(web server) است و وظیفه آن پردازش دادهها و اطلاعات، صفحات وب و نمایش آن در قالب وب سایت به کاربران است. سرور سوم نیز به اجرای برنامههای داخلی نسخه قدیمی اختصاص دارد.
حال تصور کنید، هر کدام از این سه سرور تنها بخش کوچکی از کل ظرفیت خود (حدوداً 30 % ظرفیت کل) را برای پردازش و اجرای وظایف، مورد استفاده قرار میدهند. از آنجا که برنامههای نسخه قدیمی برای عملیات و پردازش داخلی دستگاه ضروری هستند، این برنامهها و سرور میزبان(host) آنها نیز باید حفظ شوند.
در مثال بالا که شیوه قدیمی استفاده از سرورهای فیزیکی است، هر سرور به اجرای وظیفهای خاص اختصاص دارد.
در این شیوه امکان استفاده همزمان از یک سرور برای انجام دو یا چند وظیفه مختلف کار دشواری است. از طرف دیگر با تخصیص بخش کوچکی از ظرفیت کل سرور به انجام و پردازش یک وظیفه، عملاً 70 % از ظرفیت باقیمانده نادیده گرفته میشود.
اینجاست که پیشرفت در زمینه فناوری اطلاعات و علوم کامپیوتر، روشی نوین برای استفاده از کل ظرفیت سرور، برای انجام چند وظیفه ابداع میکند. این روش جدید همان مجازی سازی است.
عملکرد
در مثال بالا، با استفاده از مجازی سازی میتوان سرور ایمیل را به دو سرور مجزا جدا تقسیم کرد، بهطوی که همزمان دو وظیفه مستقل را مدیریت کند. در این حالت یکی از بخشهای سرور به برنامههای نسخه قدیمی اختصاص دارد و دیگری ایمیل سرور است. در این مثال هر دو سرور از یک منبع سختافزاری استفاده میکنند، اما ظرفیت بیشتری از دستگاه بهطور موثر به کار گرفته میشود.
استفاده بهینه از ظرفیت منابع، با مجازی سازی
در این مثال 30 % از ظرفیت سرور مختص پردازش ایمیل و 30 % به برنامههای نسخه قدیمی اختصاص مییابد. مجموعاً 60 % از ظرفیت همان ایمیل سرور به انجام و پردازش دو وظیفه مستقل اختصاص یافته است. این یعنی استفاده بهینه از ظرفیت سختافزار. به این ترتیب با توزیع وظایف در یک منبع سختافزاری میتوان سرورهای دیگر را خالی کرد و آنها را برای انجام وظایف دیگر مورد استفاده قرار داد.
تاریخچه مجازی سازی
اگرچه، ظهور مجازی سازی را مربوط به دهه 60 میلادی میدانند، اما این فناوری عملاً در اوایل سال 2000 میلادی مورد استفاده قرار گرفت. یکی از تکنولوژیهایی که کاربرد مجازی سازی را ممکن کرد استفاده از هایپروایزر(hypervisor ) بود. در دهههای گذشته این تکنولوژی، امکان دسترسی همزمان کاربران متعدد را به کامپیوترهایی که به پردازش دستهای اختصاص داشتند، فراهم میکرد.
پردازش دستهای، شیوه رایانشی محبوب و رایج در بخشهای تجاری بود که قادر بود وظایف رایانهای روتین را با سرعت بسیار بالا به دفعات زیاد انجام دهد.
در حالیکه با گذشت زمان راهحلهایی برای حل مشکلات ماشینهای تککاربر و چندکاربر ارائه میشد، مجازی سازی همچنان در میان انتخاب کاربران قرار نداشت.
یکی از این راهحلها معرفی سیستمهای اشتراک زمانی(time sharing) بود که در نهایت منجر به ظهور سیستمعاملهایی نظیر یونیکس و لینوکس شد.
در دهه 1990 سازمانها مجهز به گونهای از سرورهای فیزیکی بودند که برای پردازش یک وظیفه مورد استفاده قرار میگرفتند. این مسئله مانع از اجرای برنامههای نسخه قدیمی در یک سختافزار متفاوت میشد.
همزمان که شرکتها و سازمانها محیطهای فناوریاطلاعات خود را با استفاده از سیستمعاملها، اپلیکیشنهای مختلف و سرورهای commodity ، ارزان قیمتتر به روزرسانی کردند، استفاده از سختافزارهای فیزیکی رو به افول گذاشت. در این سختافزارها هر سرور تنها به اجرا و پردازش یک وظیفه اختصاص داشت.
این شرایط بستری برای توسعه مجازی سازی فراهم آورد. این فناوری دو مشکل عمده را مرتفع ساخت:
- شرکتها میتوانستند، سرورهای خود را تقسیمبندی کنند و برنامههای نسخه قدیمی را در چند سیستمعامل مختلف با ورژنهای متفاوت اجرا کنند.
- از ظرفیت سرورها به شکل بهینه و مؤثری استفاده شد. حتی با انتقال و ترکیب وظیفههای مختلف در یک سرور، بعضی از سرورهای دیگر خالی میشدند. این امر، هزینههای مربوط به خرید، نصب و راهاندازی، خنک کردن و نگهداری از سرورها را کاهش داد.
قابلیت دسترسی گسترده به تکنولوژی مجازی سازی، موجب کمرنگ شدن استراتژی قفل مشتری یا گیرکردگی به فروشنده(Vendor lock-in) شد و زمینه را برای ظهور رایانش ابری(cloud computing) فراهم آورد.
مجازی سازی چگونه عمل میکند؟
نرمافزاری که در اصطلاح هایپروایزر(hypervisor) خوانده میشود، منابع فیزیکی را از محیط مجازی- یعنی هرچیزی که به آن منابع نیاز دارد- جدا میکند. هایپروایزرها میتوانند روی یک سیستم عامل (مثلا در یک لپتاپ) پیاده سازی یا بهطور مستقیم روی یک سختافزار نصب شوند(مانند سرور). مورد اخیر بیشترین شیوه مجازی سازی در سطح سازمانی یا اینترپرایز(Enterprise) است.
هایپروایزر
هایپروایزرها با تقسیم منابع فیزیکی، امکان استفاده محیطهای کاربری مجازی از آن بخشها را فراهم میآورد. در این حالت، منابع سختافزاری بسته به نیاز، از محیط فیزیکی به چندین محیط مجازی پارتیشنبندی میشوند.
این شیوه کاربران را قادر میسازد که از درون محیط مجازی، که در اصطلاح به آن ماشین مجازی یا ماشین میهمان(guest) گفته میشود، با محیط پردازشی تعامل داشته باشند. در این روش کاربران قادرند وظایف متعدد رایانشی و کامپیوتری را از طریق این محیط مجازی انجام دهند.