در این مقاله قصد داریم، مجازی سازی را به زبانی ساده و قابل فهم بیان کنیم و از اهمیت و کاربردهای آن در حوزه فناوری اطلاعات سخن بگوییم.
شکلگیری پیشرفتهای گوناگون در عرصه فناوری اطلاعات، زمینه را برای حضور فناوریهای مختلفی فراهم آورد که تا پیش از این تصور آن برای بشر ممکن نبود. زمانی کسی فکر نمیکرد، روزی برسد، که تنها با یک کلیک، یک داده یا محتوای یک پیام از یک سوی دنیا به سوی دیگر آن در یک چشم بههم زدن، ارسال شود.
در حال حاضر مجازی سازی یکی از مهمترین دستآوردهای فناوری اطلاعات است که بسیاری از افراد، از یک کاربر معمولی گرفته تا یک متخصص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) گفته میشود، با محیط پردازشی تعامل داشته باشند. در این روش کاربران قادرند وظایف متعدد رایانشی و کامپیوتری را از طریق این محیط مجازی انجام دهند.
ماشین مجازی
ماشین مجازی مانند یک فایل داده منحصربهفرد عمل میکند و مانند هر فایل دیجیتالی دیگر قادر است، از یک کامپیوتر به کامپیوتری دیگر منتقل شود، در یکی از آنها باز شود و در عین حال در هر دو دستگاه عملکرد مشابهی داشته باشد.
زمانی که محیط مجازی در حال اجرا باشد و یک کاربر یا یک برنامه، دستوری را به سیستم صادر کند که نیازمند استفاده از منابع اضافی محیط فیزیکی باشد، هایپروایزر درخواست کاربر را به سیستم یا منبع فیزیکی منتقل میکند و تمام تغییرات را ذخیره میکند. این فرآیند با سرعت بالا انجام میگیرد، به ویژه اگر درخواست کاربر یا برنامه از طریق یک هایپروایزر منبع باز(open source) در ماشین مجازی مبتنی بر هسته لینوکس یا KVM (Kernel-based Virtual Machine) داده شود.
انواع مجازی سازی
بهطور کلی مجازی سازی درچند بخش انجام میشود، از جمله: مجازی سازی داده، مجازی سازی دسکتاپ، مجازی سازی سرور، مجازی سازی سیستم عامل و مجازی سازی عملکرد شبکه. در ادامه به توضیح انواع مختلف مجازی سازی میپردازیم.
مجازی سازی داده(Data virtualization)
در این شیوه، دادهها و اطلاعاتی که در سیستمهای مختلف وجود دارند، در یک منبع واحد جمعآوری و ادغام میشوند. این روش، شرکتها را قادر میسازد که دادهها را به عنوان اطلاعات ذخیره شده پویا مدیریت کنند.
در مجازی سازی داده، اطلاعات با استفاده از ظرفیتهای پردازشی ماشینهای مجازی از منابع مختلف جمعآوری میشوند و منابع اطلاعاتی جدید متناسب با با نیاز کاربر آماده و به او منتقل میشود.
ابزارهای مجازی سازی داده منابع مختلف داده را در قالب یک منبع واحد درمیآورند و اطلاعات خواسته شده را متناسب با نیاز کاربر یا هر درخواستکننده در همان لحظه به او منتقل میکنند.
مجازی سازی دسکتاپ(Desktop virtualization)
این شیوه را نباید با مجازی سازی سیستم عامل اشتباه گرفت. در مجازی سازی سیستم عامل، کاربر قادر است همزمان از چند سیستمعامل روی یک دستگاه استفاده کند. در مجازی سازی دسکتاپ، کاربری که دسترسی مدیریتی (administrator) و کامل به سیستم دارد و همچنین ابزارهایی که در چنین سطح دسترسیای قرار دارند، قادرند محیط شبیهسازی شده دسکتاپ را همزمان به صدها دستگاه فیزیکی دیگر منتقل کنند.
مجازی سازی دسکتاپ
در محیطهای سنتی دسکتاپ، فرآیند نصب، پیکربندی و بهروزرسانی بهصورت فیزیکی روی هر محیط به صورت جداگانه انجام میگرفت. با مجازی سازی دسکتاپ، ادمینها قادرند، بهطور همزمان روی تمام دسکتاپهای مجازی پیکربندیهای گسترده، بهروز رسانی و همچنین بررسیهای امنیتی، در ابعاد وسیع انجام دهند.
مجازی سازی سرور(Server virtualization)
سرورها در اصل سختافزار یا کامپیوترهایی هستند که برای پردازش وظایف بهخصوص در سطح پیچیده طراحی میشوند. (درست مانند لپتاپها و دسکتاپها که میتوانند همزمان چند وظیفه مختلف را پردازش کنند.)
مجازی سازی سرور، فضا و ظرفیت سرور را به گونهای مدیریت میکند که بتواند عملکردهای بیشتری را پردازش کند. همچنین با پارتیشنبندی سرور، این امکان را فراهم میآورد که اجزا و بخشهای مختلف سرور بتوانند، وظایف مختلفی را انجام دهند.
مجازی سازی سیستم عامل(Operating system virtualization)
مجازی سازی سیستم عامل در کرنل(kernel) یا هسته مرکزی سیستمعامل صورت میگیرد؛ در قسمت مدیریت وظیفه اصلی سیستمعاملها. این روش، یک شیوه کارآمد برای اجرای محیط ویندوز و لینوکس بهطور همزمان در کنار یکدیگر است.
مجازی سازی سیستم عامل
استفاده از این نوع مجازی سازی در سطوح سازمانی و شرکتی مزایای قابل توجهی دارد. سازمانها میتوانند، سیستمعاملها را به کامپیوترهایی تبدیل کنند که موجب میشود:
- هزینه استفاده از سختافزارهای بزرگ و حجیم کاهش یابد
- امنیت سیستمها افزایش یابد، زیرا تمام مراحل و گامها در این محیط مجازی رصد و جداسازی میشوند.
- زمان کمتری صرف انجام انواع فعالیتها در سرویسهای فناوری اطلاعات شود. بنابراین کارهایی نظیر بهروز رسانی نرمافزارها در زمان کمتری انجام میگیرد.
مجازی سازی توابع شبکه (Network functions virtualization)
مجازی سازی توابع شبکه یا به اختصار NFV،توابع کلیدی یک شبکه را (نظیر سرویسهای دایرکتوری، ارسال فایل و پیکربندی IP) جداسازی و میان تمام محیطها توزیع میکند. چنانچه توابع نرمافزاری، مستقل از ماشینهای فیزیکی باشند، توابع بهخصوص در کنار یکدیگر مجموعاً در یک شبکه جدید قرار میگیرند و در یک محیط پیادهسازی میشوند.
اجزا فیزیکی ابزارهای شبکه مثل روتر(router)، کابل، سرور، سوییچ(switch) و هاب(hub) برای ساخت شبکههای مستقل مورد استفاده قرار میگیرند. با مجازی سازی شبکه میتوان تعداد این اجزای فیزیکی را کاهش داد.
مجازی سازی چه مزایایی دارد؟
مجازی سازی منابع، این امکان را برای مدیران شبکه فراهم آورد که سختافزارهای خود را یکپارچه کنند و در نتیجه استفاده از این سختافزارها بهینه شود.
نتیجه این امر آن بود که زیرساختهای نسخه قدیمی که باید با هزینه بالایی حفظ و نگهداری میشدند و در عین حال از اطلاعات مهم برنامههای نسخه قدیمی پشتیبانی میکردند، در یک محیط مجازیسازی شده قرار گرفتند.
مجازی سازی چقدر امن است؟
اصولاً در بستر فناوری اطلاعات، امنیت تمام سیستمها باید مستمر و یکپارچه باشد. مجازی سازی یک راه حل ویژه برای اغلب مشکلات امنیتی در این بستر است. در محیطهایی که براساس بایستههای امنیتی سیستمها با استفاده از فایروال از یکدیگر جدا میشوند، مجازی سازی این امکان را فراهم میسازد تا دو سیستم در یک محیط فیزیکی واحد، در کنار یکدیگر قرار بگیرند.
پایان سخن
توسعه زیرساختهای تکنولوژیک موجب انقلاب گسترده در حوزههای مختلف فناوری اطلاعات شد. پیشرفتهای تکنولوژیک تاکنون مراحل مختلفی را از سر گذرانده است.
زمانی کامپیوترها وسایل عظیمالجثهای بودند که حتی حمل آنها جز با وسایل مخصوص امکان پذیر نبود. امروز به مدد بهرهگیری از دانش و فناوری، کامپیوترهای عظیمالجثه جای خود را به کامپیوترهای شخصی و لپتاپها دادند. اگر در گذشته فرآیند انتقال دادهها و اطلاعات جز با تکثیر آن دادهها در سختافزارهای جانبی انجام نمیگرفت، امروزه با استفاده از سرورهای مختلف در پهنه اینترنت این اطلاعات در کسری از ثانیه به کاربران مختلف ارسال میشود.
فرآیند مجازی سازی این بستر را فراهم آورد که استفاده از ظرفیت ماشینهای فیزیکی بهینه شود و همین امر موجب کاهش هزینههای خرید و نگهداری از این سختافزارها شد.
اگر پیش از این لازم بود که هر سرور به طور مجزا، وظیفهای خاص را پردازش و اجرا کند، به مدد مجازی سازی هر سرور توانست به بیش از یک وظیفه اختصاص یابد. این امر با ادغام وظایف سرورها در یک منبع سختافزاری، موجب شد سرورهای دیگر نیز خالی شوند. این تکنولوژی کارآمد به تدریج راه را برای فناوریهای دیگری نظیر رایانش ابری فراهم آورد.
استفاده از این فناوری به ویژه در سطوح سازمانی و شرکتی به گزینهای ضروری تبدیل شده است تا جایی که با استفاده از نرمافزارهای مدیریت مجازی سازی از ابعاد مختلف این فناوری بهره میجویند.
منابع:
- https://www.redhat.com/en/topics/virtualization/what-is-virtualization
- https://www.redhat.com/en/topics/virtualization