آشنایی با مفهوم مجازی سازی (Virtualization)
بر اساس تعریف شرکت Vmware که یکی از مشهور ترین تولید کنندگان ابزار مجازی سازی است، مجازی سازی (Virtualization) به فرایندی اطلاق میشود که چیزی را در قالب نرم افزار و یا به صورت مجازی ایجاد کنیم. این چیز ها میتواند شامل برنامهها، Server ها، فضای ذخیره سازی و یا شبکه باشند. این روش منجر به کاهش هزینهها و افزایش کارایی در زمینههای مختلفی میشود.
ساده ترین و رایج ترین مثال مجازی سازی، پیاده سازی یک سیستم عامل بر روی سیستم عاملی دیگر است. برای مثال سیستم عامل فعلی ما ویندوز بوده و با استفاده از ابزار موجود، یک سیستم عامل لینوکس را به صورت مجازی روی آن نصب و اجرا میکنیم. در حقیقت بخشی از فضای RAM، پردازنده، فضای ذخیره سازی، پردازنده گرافیکی، شبکه و از این دست منابع به سیستم عامل مجازی اختصاص داده میشود؛ اما سیستم عامل اصلی ما تغییری نکرده و متوقف نخواهد شد.
برای درک بهتر موضوع، فرض کنید در سیستم عامل لینوکس هستیم و میخواهیم از نرم افزار Photoshop استفاده کنیم. بدین منظور میتوانیم یک ویندوز در کنار سیستم عامل لینوکس نصب کنیم و بعد از restart سیستم، به سیستم عامل ویندوز رفته و از Photoshop استفاده کنیم. اما تنها برای استفاده از یک نرم افزار، چنین عملی کمی پر هزینه است. اگر در این بین از برنامه دیگری نیز استفاده کنید، این جابجایی بسیار آزار دهنده خواهد بود. بنابراین بهترین راه این است که با استفاده از یک نرم افزار مجازی ساز (مانند Vmware یا VirtualBox) سیستم عامل ویندوز را به صورت مجازی نصب کرده پس از آن نرم افزار Photoshop را روی آن نصب کنیم.
همانطور که بیان شد، این مثال نمونهای بسیار ساده و رایج از مفهوم مجازی سازی است. در واقع مجازی سازی مفهومی بیش از این مثال را شامل میشود. امروزه شرکت های بسیار بزرگی از این مفهوم برای توسعه کسب و کار خود استفاده میکنند. اما هدف از بیان این مثال، ایجاد یک تصویر ابتدایی از مجازی سازی بود.
امروزه x86 Server ها دارای محدودیتهایی هستند. این محدودیت در مجرد بودن سیستم عاملی است که بر روی آنها اجرا میشود. هر Server یک سیستم عامل را شامل میشود. بنابراین Data center های نه چندان بزرگ باید برای هر برنامه ای، یک Server مخصوص در نظر بگیرند که بسیار پر هزینه است. Virtualization به این معناست که منابع مشترک را به چندین سیستم مجازی اختصاص دهیم. بنابراین این تکنولوژی به ما کمک میکند تا با استفاده از یک منبع، چندین سیستم و به تبع چندین سیستم عامل را پیاده سازی کنیم. با توجه به این که این سیستم ها مجازی هستند و منابع میان آنها به اشتراک گذاشته شده است، این روش میتواند باعث کاهش هزینهها تا حد مطلوبی شود.
البته Virtualization تنها به مجازی سازی سیستم عامل ها تلقی نمیشود. مجازی سازی میتواند در لایه سخت افزار و Server نیز انجام شود اما رایج ترین روش آن مجازی سازی سیستم عامل است.
مجازی سازی Server
مجازی سازی در Server به این معناست که منابع Server مانند تعداد فیزیکی Server ها، پردازنده ها و سیستم عامل را از کاربران مخفی نگه داریم. مدیر Server با استفاده از ابزار موجود، یک Server واقعی را به چندین محیط مجازی مجزا تقسیم میکند. این محیط های مجزا, شامل Server های خصوصی مجازی، Container و یا شبیه ساز ها میشوند. سه مفهوم Virtual Machine Model، ParaVirtual Machine Model و شبیه سازی در لایهی سیستم عامل میباشد. میتوانید برای درک بهتر Server Virtualization به این مفاهیم مراجعه کنید.
مجازی سازی سخت افزار
ابتدا نیاز است تا مفهوم Virtual Machine را بررسی کنیم. یک سیستم کامپیوتری مجازی به عنوان یک Virtual machine شناخته میشود. این سیستم شامل یک Software Container، سیستم عامل و برنامه های مرتبط با آن است. قرار دادن چندین Virtual Machine در کنار یکدگیر، چندین سیستم عامل را در اختیار ما قرار میدهد. مجازی سازی سخت افزار به این معناست که نرم افزار های Virtual machine را در سخت افزار Server تعبیه کنیم. بدین منظور نرم افزار های متعددی وجود دارد و نرم افزار Virtual machine monitor یکی از نرم افزار های رایج در این زمینه میباشد. این تکنولوژی در مجازی سازی Server ها در حال رشد است. هدف از این تکنولوژی قرار دادن چندین Server فیزیکی کوچک در یک Server بزرگ تر است. به این ترتیب پردازنده میتواند بسیار بهینه تر و موثر تر پردازشها را انجام دهد.
مجازی سازی سیستم عامل
مجازی سازی سیستم عامل یکی از تکنولوژی های بسیار پرکاربرد در مجازی سازی Server است. در این روش چندین سیستم عامل بر روی یک سیستم عامل اجرا میشوند و میتوان این سیستم عامل ها را به کاربران اختصاص داد. در این روش سیستم عامل ها با یکدیگر ارتباطی ندارند و از دید کاربر همانند اجرای دو سیستم عامل بر روی دو سیستم کامپیوتری مجزا است. هر محیط مجازی دستورات مربوط به خود را از کاربرانش دریافت کرده و پردازش میکند. هر یک از این کاربران مصارف و برنامه های متخص به خود را اجرا میکنند؛ اما تمام این پردازش ها بر روی یک سیستم واحد انجام میشود. با این حال تفکیک سیستم عامل ها نیز حفظ شده و تمام پردازشهای مرتبط با این برنامه ها، با لایه سیستم اصلی نیز قابل بررسی است.
در اینجا بهتر است به یک نکته مهم اشاره کنیم و آن هم تفاوت میان مجازی سازی (Virtualization) و رایانش ابری (Cloud Computing) است. مجازی سازی و رایانش ابری دو مفهوم یکسان نیستند؛ بلکه با استفاده از مجازی سازی میتوان رایانش ابری را ممکن نمود. رایانش ابری، داده های خروجی چندین منبع پردازشی به اشتراک گذاشته شده را از طریق اینترنت برمیگرداند. اما با تعاریف بیان شده، استفاده از مجازی سازی بسیار گسترده تر است. برای استفاده از مجازی سازی در رایانش ابری، میتوان یک Server را مجازی سازی کرده و سپس آن را به Cloud Computing تبدیل کنیم. در مقالات آینده با مفهوم رایانش ابری بیشتر آشنا خواهیم شد.
به طور کلی مجازی سازی منجر به کاهش هزینهها و افزایش کارایی در بسیاری از زمینهها میشود. مجازی سازی برای چندین دهه به عنوان چشم اندازی در حوزهی فناوری اطلاعات قرار گرفته بود و امروزه میتوان با توجه به نیاز خود، از آن در لایههای مختلفی از سیستم استفاده نمود.
مطالب زیر را حتما مطالعه کنید
حسگرها و فناوریهای پوشیدنی و کاربردهای آنها در پزشکی
درخت دودویی
نصب VMWare به همراه نصب سیستم عامل
WebHook چیست؟
مقایسه مهندسی نرم افزار و برنامه نویسی
آشنایی با Class در ++C
2 Comments
Join the discussion and tell us your opinion.
دیدگاهتان را بنویسید لغو پاسخ
برای نوشتن دیدگاه باید وارد بشوید.
سلام
روی Virtualization layer میشه چند سیستم عامل نصب کرد و بر روی هر سیستم عامل چند نرمافزار؟؟یا محدودیت داره
سلام دوست عزیز. ممنون از همراهیتون. محدودیت در اجرای تعداد سیستم عامل ها, به منابع موجود سیستم شما بستگی داره. یعنی طوری نمیتونید مجازی سازی کنید که اختصاص منابع بیشتر از منابع موجود سیستمتون باشه. نمونه کوچیکش همون مجازی سازی روی سیستم های شخصیه که اگر اختصاص دادن منابعتون درست نباشه طبیعتا روی تمام سیستم عامل ها مشکل بوجود مییاد. نرم افزار های قابل اجرا هم به منابع اختصاص داده شده به اون سیستم عامل مرتبط میشه. باید اختصاص منابع متناسب با هدف اجرای سیستم عامل باشه. ولی اینکه محدودیت خاص و مشخصی باشه, نه چنین محدودیتی وجود نداره. البته ممکنه گاهی ابزاری که برای مجازی سازی استفاده میکنید, licence هایی داشته باشن که محدودیت ایجاد کنه.