نگاهي به فناوري و ابزارهاي مجازي سازي لينوکس

نگاهي به فناوري و ابزارهاي مجازي سازي لينوکس
نگاهي به فناوري و ابزارهاي مجازي سازي لينوکس


 





 
مجازي سازي ( Virtualization) يکي از فناوري هايي است که در چند سال اخير به شدت مورد توجه بوده و سرمايه گذاري هاي مادي و تحقيقاتي زيادي از سوي شرکت هاي بزرگ روي آن صورت گرفته است. دليل اين اتفاق نيز روشن است: کاهش هزينه ها، برپاسازي سرورهاي اختصاصي و قدرتمند، افزايش قدرت محاسبات و پردازش اطلاعات، استفاده از سيستم عامل هاي مختلف و انعطاف پذيري سيستم.
در اين مقاله نخست نگاهي به فناوري مجازي سازي و کاربردهاي آن خواهيم انداخت و سپس ابزارهاي مجازي سازي در لينوکس را مورد بررسي قرار مي دهيم.

بررسي و مقايسه عملي چهار سيستم عامل روي نت بوک

مجازي سازي چيست؟
 

با چند مثال شروع کنيم تا تصوير درستي از مجازي سازي در ذهن ايجاد شود و سپس به سراغ تعريف و چگونگي آن مي رويم. فرض کنيد شما يک شبکه مبتني بر ويندوز داريد. بنا به دلايلي به برپاسازي سرور لينوکسي روي اين شبکه نياز پيدا مي کنيد. اگر بخواهيد به صورت سخت افزاري اين سرور را راه اندازي کنيد، بايد هزينه خريد سرور، هزينه تبديل اطلاعات، هزينه سوييچ کردن شبکه، هزينه سازگاري سيستم و کلي هزينه ديگر را پرداخت کنيد که نه براي شما صرفه اقتصادي دارد و نه امکان پذير است . به اين صورت که شما به صورت نرم افزاري يک سرور لينوکسي را روي همان شبکه ويندوزي به صورت مجازي ايجاد و استفاده مي کنيد.
مثال ديگر استفاده از چندين سيستم عامل مختلف روي يک سيستم است. مسئله اي که اين روزها حتي کاربران خانگي نيز با آن درگير شده اند. با مجازي سازي مي توان چندين سيستم عامل را روي يک سخت افزار نصب کرد؛ به طوري که هر سيستم عامل سخت افزار را به صورت اختصاصي در اختيار داشته باشد، انگار که فقط اين سيستم عامل روي اين سخت افزار نصب است. همان طور که در تصوير 1 نمايش داده شده است، مي توان چندين سيستم عامل با پلتفرم هاي مختلف را روي يک سخت افزار راه اندازي کرد.
کاربرد ديگر مجازي سازي براي بالا بردن سرعت پردازش اطلاعات و محاسبات در شبکه ها است. فرض کنيد يک شبکه با ده ها کامپيوتر کلاينت وجود دارد. اگر تمام اين کامپيوترها بخواهند به طور همزمان به يک سرور در شبکه متصل شده و تبادل اطلاعات کنند، ترافيک روي اين سرور به شدت افزايش مي يابد و در عمل سرعت شبکه کاهش يافته و دچار مشکل مي شود. راه کار منطقي اين است که چندين سرور در شبکه راه اندازي کنيد تا کامپيوترها ميان اين سرورها تقسيم شده و بار ترافيکي شبکه در اصطلاح شکسته شود. مجازي سازي کمک مي کند که شما در شبکه يک سرور فيزيکي و چندين سرور نرم افزاري به صورت مجازي داشته باشيد.
فکر کنم اکنون بدانيد مجازي سازي چيست. اگر يک تعريف کلاسيک از مجازي سازي بخواهيم، تعريف هاي زير را مي توان ارائه کرد:« مجازي سازي يعني ايجاد سخت افزار انتزاعي براي نرم افزارها» يا « مجازي سازي انتزاعي کردن منابع سيستم است.»
تعريف هاي بالا به اين معني است که شما منابع سيستم را به صورت اختصاصي و مجزا شده، به طوري که بتوان به صورت واحد ديد، در آوريد. منابع مي توانند سيستم عامل، نرم افزار، سخت افزار، تجهيزات شبکه يا منابع اطلاعاتي مانند هارد ديسک باشند، در تصوير 2 اين مفهوم مشاهده مي شود. با استفاده از مجازي سازي روي يک سخت افزار شامل پردازنده، حافظه، کارت شبکه و هارد ديسک دو سيستم عامل و مجموعه نرم افزارها نصب شده است.
اگر شما يک دسکتاپ را نيز براي يک سيستم عامل شبيه سازي کنيد، از مجازي سازي استفاده کرده ايد. تقسيم بندي سکتورهاي يک هارد ديسک براي دسترسي هاي مختلف نيز به نوعي مجازي سازي است. به اين دليل که هر کاربر فکر مي کند در حال کار با يک هارد ديسک مجزا و اختصاصي است. لايه بندي سيستم عامل و سخت افزار رويکرد ديگر مجازي سازي است. يکي از بزرگ ترين کاربردهاي اين فناوري در اينترنت و تحت مفاهيمي مانند « کلاسترينگ» و « گريد» صورت مي گيرد. گريد يعني ايجاد يک شبکه از کامپيوترهاي مجزا براي پردازش اطلاعات.

بررسي و مقايسه عملي چهار سيستم عامل روي نت بوک

بررسي و مقايسه عملي چهار سيستم عامل روي نت بوک

فناوري مجازي سازي
 

سيستمي که روي آن مجازي سازي صورت گرفته باشد، ماشين مجازي يا VM ( Virtual Machine) ناميده مي شود. هر ماشين مجازي مي تواند شامل سيستم عامل، سخت افزار و نرم افزار اختصاصي خود باشد. ماشين هاي مجازي جدا از پلتفرم يا سيستم عامل در مجازي سازي شرکت مي کنند. در غالب مجازي سازي ها يک لايه جدا سازي به نام Hypervisor ميان سيستم عامل و نرم افزارها با سخت افزار يا منابع موجود قرار مي گيرد. کار Hypervisor ايجاد يک ديد مستقل از سخت افزار يا منابع است. Hypervisor باعث مي شود ماشين هاي مجازي از ديد يکديگر پنهان باشند و هر ماشين مجازي تصور کند تمام سخت افزار يا منابع در اختيار خودش است( تصوير 3).
کار مجازي سازي را اغلب يک نرم افزار انجام مي دهد. اين نرم افزار لايه Hypervisor را ساخته و ارتباط ميان سخت افزار با اين لايه و هريک از ماشين هاي مجازي را فراهم مي کند. دستگاه هاي سخت افزاري مجازي سازي نيز وجود دارند که امکان راه اندازي سيستم عامل و نرم افزار را روي سخت افزارهاي متفاوتي که وجود فيزيکي ندارند، فراهم مي کنند.

انواع مجازي سازي
 

سه نوع مجازي سازي رايج است:
Full Virtual: تمام سخت افزار و منابع سيستم در مجازي سازي شرکت کرده و در اختيار ماشين هاي مجازي قرار مي گيرند. به طور معمول براي سيستم عامل ها از اين نوع مجازي سازي استفاده مي کنند. مزيت اين روش ايجاد يک سيستم کامل مجازي است و عيب آن کند شدن سيستم است، زيرا به طور همزمان چندين سيستم عامل از يک سخت افزار واحد استفاده مي کنند.
Para Virtual : بخشي از سخت افزار يا منابع سيستم در اختيار ماشين هاي مجازي قرار گرفته و ماشين هاي مجازي در مود Para اجرا مي شوند. بقيه سخت افزار ميان ماشين ها به اشتراک گذاشته مي شود. به عنوان مثال، ممکن است يک ماشين مجازي نيازي به کارت گرافيک نداشته باشد. در اين حالت کارت گرافيک براي اين ماشين تعريف نمي شود. مزيت اين روش کاهش سر بار سخت افزار است.
Virtual Private Servers: مجازي سازي در سطح محيط( نرم افزارهاي کاربردي و سيستم عامل) صورت مي گيرد و از مجازي سازي سخت افزاري خبري نيست. اين روش VE( Virtual Environment) نيز ناميده مي شود. نصب چندين توزيع لينوکس روي يک سخت افزار نمونه اي از VE است. اجراي نرم افزارهاي لينوکس روي ويندوز نيز نمونه ديگري از اين نوع مجازي سازي است. VE در مقايسه با دو روش ديگر ساده تر و از سرعت و انعطاف پذيري بالاتري برخوردار است.

بررسي و مقايسه عملي چهار سيستم عامل روي نت بوک

ابزارهاي مجازي سازي لينوکس
 

مجازي سازي نيز در دنياي اپن سورس مانند فناوري هاي ديگر به بلوغ و تکامل خود دست يافته و چندين ابزار معروف و کاربردي در سطح کاربران خانگي تا شرکت هاي گسترده ارائه شده است که در ادامه نگاهي اجمالي به آن ها خواهيم داشت:
Xen
Xen VMM( Xen Virtual Machine Monitor) يک پروژه اپن سورس است که در آزمايشگاه هاي کامپيوتر دانشگاه کمبريج انگليس توسعه داده مي شود. خروجي اين پروژه يک برنامه مجازي سازي قدرتمند به نام Xen است که امکان ساخت و برپاسازي چندين ماشين مجازي با قابليت اجرا توسط سيستم عامل هاي مختلف را روي يک سخت افزار واحد فراهم مي کند. با اين ابزار، سيستم عامل هاي ميهمان به هسته لينوکس متصل مي شوند و امکان يکپارچه سازي آن ها براي هسته سيستم عامل هاي NetBSD/FreeBSD نيز وجود دارد. در نتيجه کاربران قادر خواهند بود با برنامه Xen چندين سيستم عامل ميهمان را روي سيستم عامل هاي خانواده يونيکس بدون نياز به تغيير و اصلاح کد و ساختار هسته سيستم عامل اصلي، راه اندازي کنند. برنامه Xen از روش هاي Full Virtual و Para Virtual براي پياده سازي سيستم عامل هاي ميهمان بهره مي گيرد. Para Virtual علاوه بر کاري که به آن اشاره شد، سيستم عامل و سخت افزار فيزيکي را در يک سطح و ماشين هاي مجازي را در سطوح ديگر پياده سازي مي کند. مزيت اين روش، عدم تداخل فرآيندهاي اجرايي سيستم عامل و امکان افزودن پروسه هاي جديد به هسته سيستم عامل بدون کامپايل يا دستکاري هسته است. اين مفاهيم در تصوير 4 به خوبي قابل درک هستند. همان طور که مي بينيد، سخت افزار و توزيع لينوکس سوزه در يک سطح و مجزا از ماشين هاي مجازي هستند. بسياري از توزيع هاي لينوکس مانند سوزه، ردهت، دبيان و شرکت هاي بزرگي مانند سان، Xen را به عنوان اولين ابزار مجازي سازي اپن سورس شناخته و همراه با توزيع خود ارائه مي کنند. بيشتر کاربران اين ابزار، شرکت هاي بزرگ و شبکه هاي شامل چند ده کامپيوتر يا شبکه هاي محاسباتي و گريد هستند. Xen روي مين فريم هاي IBM، HP و شرکت هاي سرويس دهنده خدمات اينترنتي مانند AOL نصب است. کاربران خانگي با Xen به دليل عدم سادگي آن ميانه خوبي ندارند.

بررسي و مقايسه عملي چهار سيستم عامل روي نت بوک

OpenVZ
 

برخلاف Xen، اين ابزار براي مجازي سازي VE و VPS يا همان مجازي سازي محيطي طراحي شده است و يک ابزار مجازي سازي لايه اي سيستم عامل به شمار مي رود. با کمک اين ابزار مي توان به راحتي روي يک سخت افزار واحد چندين سيستم عامل ايزوله شده يا اختصاصي را اجرا کرد. فناوري OpenVZ مبتني بر سيستم عامل ها و هسته لينوکس است. در تصوير 5 نمايي از چگونگي کارکرد اين ابزار نشان داده شده است. ماشين هاي مجازي يا VPSها از يک سخت افزار و شبکه اشتراکي بهره مي برند و در عوض در سيستم فايل، هسته سيستم عامل، نرم افزارها و دسکتاپ با يکديگر متفاوتند. در OpenVZ سيستم عامل اصلي و سيستم عامل هاي ميهمان در يک فضاي کاربري کار مي کنند و از يکديگر مجزا نشده اند، اما منابع نرم افزاري و سيستم عاملي مجزايي دارند.
در مقايسه با ابزارهايي مانند VMware و Xen انعطاف پذيري بيشتري در انتخاب سيستم عامل هاي ميهمان و اصلي دارد و از قابليت هايي مانند اطمينان، حساسيت، رمزنگاري و محافظت از ماشين هاي مجازي، مديريت پوياي منابع سيستم و مديريت آسان برخوردار است.
بهترين کاربرد OpenVZ براي نصب چندين سيستم عامل يا توزيع لينوکس روي يک سخت افزار يا ساخت چندين محيط کاربري روي يک سيستم عامل است. استفاده از اين ابزار مجازي سازي در ميان کاربران خانگي محبوبيت بيشتري دارد.

بررسي و مقايسه عملي چهار سيستم عامل روي نت بوک

VirtualBox
 

اين ابزار ساخت شرکت سان بيشتر يک نرم افزار است تا فناوري و کاربرد اصلي آن اجراي چندين سيستم عامل در يک سيستم عامل به طور ساده و سريع است. به همين دليل اين ابزار بيشتر به عنوان ابزار مجازي سازي دسکتاپ شناخته مي شود و در ميان کاربران خانگي و شرکت هاي کوچک طرفداران زيادي دارد. اين ابزار غالب معماري ها و سيستم عامل ها را پشتيباني کرده و نسخه رايگان و اپن سورس آن نيز قابل دسترس است. پردازنده هاي اينتل و اي ام دي با اين ابزار قابل مجازي سازي هستند و مي توان دستگاه هايي مانند هارد ديسک و حافظه را به صورت اختصاصي براي هريک از ماشين هاي مجازي تعريف کرد. براي اطلاع بيشتر درباره چگونگي کارکرد اين نرم افزار مي توانيد به نشاني www.virtualbox.org/wiki/VirtualBox_architecture مراجعه کنيد.

VMware
 

معروف ترين و کاربردي ترين ابزار مجازي سازي است که از پلتفرم هاي مختلفي پشتيباني کرده و با معماري هاي سخت افزاري مختلفي هماهنگي و سازگاري خيلي خوبي برقرار مي کند( تصوير 6). اين ابزار که در سال 1998 طراحي شده، مي تواند سه روش مجازي سازي را پياده سازي کند و انعطاف پذيري بسيار خوبي براي استفاده هاي خاص و سفارشي سازي دارد. VMware علاوه بر ساخت يک لايه مجازي براي ارتباط ماشين هاي مجازي با سخت افزار، بخش هايي ديگر نيز در سيستم ايجاد مي کند که هريک مي توانند کار خاصي انجام دهند. به عنوان مثال، مديريت مجازي سازي، اشتراک اطلاعات و پشتيبان گيري را مي توان به VMware سيستم افزود. اين نرم افزار به دليل برخورداري از پشتيباني تجاري و ارائه راه کارهاي پيشرفته براي شرکت هاي گسترده مورد استقبال بسيار خوبي قرار گرفته و به ابزار اول شرکت ها تبديل شده است.

بررسي و مقايسه عملي چهار سيستم عامل روي نت بوک

بررسي و مقايسه عملي چهار سيستم عامل روي نت بوک

KVM
 

مخفف Kernel-based Virtual Machine و يک ابزار اختصاصي مجازي سازي در لينوکس است. اين ابزار متولد سال 2006 از روش مجازي سازي Para Virtual استفاده مي کند و مي تواند يک کارت شبکه ، پردازنده، هارد ديسک يا بخشي از دسکتاپ و ابزارهايش يا سيستم عامل را به صورت اختصاصي براي سيستم عامل ميهمان تعريف و در اختيار آن قرار دهد. سيستم عامل هاي اصلي روي اين ابزار، لينوکس و ويندوز هستند، اما سيستم عامل هاي ميهمان طيف وسيعي شامل نسخه هاي مختلف ويندوز، نسخه هاي مختلف لينوکس، بي اس دي، سولاريس،مک و برخي از سيستم عامل هاي سرور تجاري هستند.
در تصوير 7 کارکرد اين ابزار نمايش داده شده است. KVM از يک هسته اصلي لينوکس استفاده مي کند و براي سيستم عامل هاي ميهمان يک ارتباط ميان آن ها و هسته برقرار مي کند؛ به طوري که به نظر مي رسد هرکدام از آن ها در حال استفاده از يک هسته اختصاصي اما کوچک و مشخص شده هستند. KVM بيشتر براي مجازي سازي پروسه هاي خاص طراحي شده و با توجه به اپن سورس بودن و امکان کامپايل روي هسته لينوکس، بهترين ابزار براي توسعه دهندگان و برنامه نويسان است.
منبع: عصر شبکه، شماره 103.



 

نسخه چاپی