مجازی سازی چیست

مجازی سازی چیست و چه کاربردی دارد


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

ایجاد مجازی سازی در حوزه زیرساخت شبکه ابعاد مختلفی دارد که ما در این متن میخواهیم در مورد مجازی سازی سرور یا به عبارتی ایجاد ماشین مجازی بپردازیم. اما در ابتدا باید تعریفی از اینکه مجازی سازی چیست یا همانطور که اشاره شد، ماشین مجازی چیست ارائه کنیم.

مجازی سازی مفهومی است که از سال های ابتدایی توسعه کامپیوتر و سیستم عامل در دهه 60 میلادی وجود داشته است ولی در انتهای دهه 90 میلادی و با ظهور شرکت هایی مثل VMware به صورت عملی وارد چرخه زیر ساخت شبکه وارد شد و به مرور جای خود را در بین تکنولوژی های پر کاربرد اضافه کرد. مجازی سازی یا Virtual Machine همانطور که از لغت Virtual به معنای مجازی (جسمی یا عنصری که مشابه نسخه واقعی خود است و تمامی ویژگی های آن را دارا می باشد اما حقیقتا همان موجود نیست) مشخص است، به ماشین (در اینجا کامپیوتر) یا ایستگاه کاری (wokstation) گفته می شود که به صورت مجازی ایجاد شده است یعنی تمامی ویژگی هایی که یک کامپیوتر می تواند ارائه کند را دارد، دارای منابع سخت افزاری مشخصی است، سیستم عامل مختص به خود را دارد که به طور کامل فایل سیستم خود را ایجاد میکند و به مدیریت منابع سخت افزاری می پردازد و می تواند در یک شبکه کار کند یا به صورت جداگانه به طور مستقل باشد و همانطور که اشاره شد به هیچ وجه از دید کاربر تفاوتی با یک سیستم واقعی ندارد. این تعریف مجازی سازی می باشد.

حال که به این سوال پاسخ دادیم که مجازی سازی چیست؟ باید به این نکته بپردازیم که راه اندازی چنین ساختاری چه مزیتی برای ما ایجاد میکند و به چه دلیل باید از سیستمی تحت عنوان ماشین مجازی یا ساختار مجازی سازی در زیر ساخت شبکه استفاده کنیم. همانطور که در مقاله تحت عنوان ” سرور چیست ” به ارائه ویژگی های کامپیوتری که باید نقش سرور را ایفا کند پرداختیم و اشاره کردیم که برای ایجاد ساختار کارآمد و استاندارد شبکه باید سرویس های موجود برروی شبکه را از یکدیگر جدا و برروی سرور های جداگانه راه اندازی کرد. با این اقدام هم وابستگی سرویس ها و سرور های ارائه کننده هر سرویس با سرور دیگر به حداقل می رسد و هم مدیریت هر کدام تسهیل می شود. اما این اقدام با توجه به هزینه تامین ، نگهداری و به روز رسانی هر سرور به صورت جداگانه تبدیل به امری می شود که به علت بالا بودن هزینه اجرای آن از سوی تمامی مجموعه ها مورد استفاده قرار نخواهد گرفت یا اگر هم اجرا بشود نگهداری آن برای مدیران شبکه بسیار پیچیده خواهد شد. به عنوان مثال شبکه ای را در نظر بگیرید که سرویس های مختلفی دارد از فایل مشترک و اشتراک اطلاعات برروی شبکه تا سرور مرکزی برای آنتی ویروس، نرم افزار حسابداری، نرم افزار اتوماسیون ، سرور ایمیل، نرم افزار مدیریت مشتریان ، فایروال و … در اینجا دو راه حل وجود دارد:

اول: تمامی سرویس ها برروی یک سرور و یک سیستم عامل واحد نصب بشود.

دوم: برای هر کدام از سرویس ها یک سرور جداگانه در نظر گرفت.

در سناریو اول: شما باید یک سرور قدرتمند داشته باشید تا بتواند منابع مورد نیاز تمامی سرویس ها مورد نیاز شما را به صورت یکجا تامین کند ولی در عوض تنها یک سرور وجود دارد که باید از آن نگهداری کرد.

اما از طرف دیگر در نظر داشته باشید که ممکن است سرور مورد نیاز نرم افزار حسابداری شما با سیستم عامل ویندوز سرور 2016 باشد در صورتی که نرم افزار اتوماسیون شما نیاز به سیستم عامل windows Server 2019 باشد. در چنین حالتی به هیچ عنوان نمی توانید این نرم افزار ها را با یکدیگر برروی یک سرور و یک سیستم عامل نصب کنید.

از طرف دیگر تصور کنید که هیچ مشکلی برای نصب این سرویس ها و نرم افزار های مورد نظر خود برروی یک سیستم عامل نداشتید و همه آنها در کنار یکدیگر به خوبی ارائه سرویس داشتند، اما نیاز دارید که نسخه یکی از نرم افزار های خود را به روز رسانی کنید که آن هم مستلزم ری استارت شدن سرور است. در چنین موقعیتی تمام زیر ساخت شبکه شما برای دقایقی به طور کامل از دسترس خارج می شود. و اگر در این بین مشکلی هم به وجود بیاید که باید میزان وقتی که جهت رفع عیب صرف می شود را به مجموع زمان از دسترس خارج شدن زیر ساخت شبکه خود اضافه کنید.

حال در نظر بگیرید که هیچ مشکلی وجود ندارد،بنابر نیاز مجموعه نرم افزار جدیدی را میخواهید برروی سرور نصب کنید با صرف نظر از این نکته که آیا نرم افزار جدید به سیستم عامل متفاوتی نیاز دارد یا خیر، اضافه شدن سرویس جدید به معنی این است که منابع سخت افزار شما شامل RAM و CPU بیشتر درگیر می شوند و ممکن است نیاز به افزودن سخت افزار جدید به سرور داشته باشید ، در اینجا هم باز مقداری زمان سربار خاموش کردن سرور، نصب قطعات جدید و مجددا بالا آمدن سرور و سیستم عامل و نرم افزار های مختلف خود دارید. این علاوه بر زمان مورد نیاز برای رفع مشکلات احتمالی در حین فرآیند می باشد.

تمامی این مشکلات نیز نباشد ممکن است شما برروی یکی از سرویس های خود دچار حمله هکر یا آلوده شدن سرور به ویروس یا باج افزار شوید، با این مدل پیاده سازی زیر ساخت، عملا تمامی سرویس ها و ساختار شبکه شما با آلودگی پیش آمده با خطر از بین رفتن مواجه میشود و در کمترین حالت آلوده شدن سرور تا زمان رفع آلودگی تمامی سرویس ها و نرم افزار ها را از دسترس خارج میکند.

پس عملا اجرای چنین سناریویی عملا با مشکلات زیاد و در نظر گرفتن پارامتر های گوناگون رو به رو می شود ضمن آنکه نگهداری آن چنانچه ذکر شد بسیار سخت و وقت گیر می باشد.

در طرف مقابل و در سناریو دوم:

طبق تعریفی که در مقاله سرور چیست ؟ برای سرور خدمت شما ارائه کردیم، سرور یک کامپیوتر قدتمند می باشد که برروی آن یک سرویس منحصر به فرد در شبکه ارائه می شود. پس شما باید سرویس های مختلف را برروی سرور های جداگانه راه اندازی نمایید تا مشکلات احتمالی که در بالا ذکر شد و مشکلات دیگری که احتمال دارند به وجود بیایند گریبان شما را نگیرید.

اما این سناریو هم مشکلات خود را دارد. وقتی یک سرور دارید ، منبع برق یکسان است و ممکن است نیاز به تجهیزات خنک کننده هم در اولویت شما قرار نگیرد بنابراین هزینه های شما به شدت کاهش پیدا می کند، اما وقتی برای هر سرویس یک سرور جداگانه راه اندازی کنید، باید یک اتاق سرور استاندارد برای این تعداد سرور در نظر بگیرید، که پارامتر های گوناگون در طراحی آن لحاظ شده باشد که خود سربار مالی فراوانی برای مجموعه ایجاد میکند ، ضمن اینکه مراقبت از آنها نیز وظیفه سنگینی می شود که نیاز به حداقل یه مدیر شبکه حرفه ای دارد تا تمام وقت پیگیر رفع مشکلات و در نظر گرفتن راه حل هایی برای کاهش بروز مشکلات و تامین امنیت و … باشد. ضمن اینکه در این سناریو نیز تهیه نسخه پشتیبان از سرور ها امری سخت تر و بازیابی اطلاعات موجود در صورت لزوم، به مراتب زمان و انرژی بیشتر طلب میکند. ضمن اینکه مشکل اصلی میزان هزینه برای خرید هر کدام از این سرور ها به صورت سخت افزار جداگانه می باشد و فرض کنید در این بین اگر یک سرویس به شبکه خود بخواهید اضافه کنید، نیاز به تامین یک سرور دیگر می شود !

اما راه حل چیست؟ چه کاری باید انجام داد تا هزینه ها سر به فلک نکشند و سرویس ها نیز با عملکرد خوب در دسترس کاربران تحت شبکه قرار بگیرند؟

در اینجا است که با توجه به تعاریف اولیه مقاله که برای ماشین مجازی خدمت شما ارائه کردیم ، سناریو سوم به وجود می آید.

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

در این حالت کاربران شبکه و سیستم عامل مورد استفاده روی هر ماشین مجازی از این حقیقت که سرور مورد نظر یک سرور فیزیکی واقعی نیست مطلع نمی شوند و برروی سرور مجازی که تهیه شده است سرویس مورد نظر شما به کاربران ارائه می شود.

باید در نظر داشته باشید که در این سناریو تعداد سرور فیزیکی شما کمتر خواهد بود، ولی همچنان که اشاره شد این سرور باید قدرتی بیشتری نزدیک به مجموع قدرت تمامی سرور های سناریو دوم را در خود داشته باشد. به عنوان نمونه اگر در سناریو دوم 5 عدد سرور در اختیار دارید که هر کدام 8 گیگ رم و 4 هسته پردازنده در اختیار دارند، در سناریو سوم باید یک سرور با حداقل 40 گیگ رم (یا بیشتر) و حداقل 30 هسته پردازنده (یا بیشتر) در اختیار شما قرار دهد. که این مسئله نیز نیازمند صرف هزینه می باشد اما به مراتب و به وضح هزینه کمتری در زمان خرید طلب میکند ، ضمن اینکه سایر هزینه های جانبی اجرا آن نیز به همان نسبت کاهش پیدا خواهند کرد.

اما این تعاریفی که ارائه شد چگونه پیاده سازی می شوند – راه اندازی مجازی سازی.

از بعد تجهیزات سرور و سخت افزار سرور مورد نیاز که در قسمت قبل اشاره شد، اما برای اجرای این سناریو نیاز به یک سیستم عامل دارید که همانگونه که مطرح شد، سیستم عاملی که قابلیت مجازی سازی یا به عبارت دیگر توان ایجاد و مدیریت ماشین مجازی را داشته باشد.(در مقالات دیگر به طور کامل به تعریف ویژگی های این سیستم عامل می پردازیم).

با فرض اینکه این سیستم عامل برروی سرور شما نصب باشد، راه اندازی مجازی سازی و تعریف سرور مجازی نیاز به در نظر گرفتن این مفهوم است که ، تمامی سخت افزار موجود برروی سرور فیزیکی شما از دید سیستم عامل مورد اشاره، به صورت منابعی در نظر گرفته می شود که میتوان آنها را بخش بخش کرده و به هر ماشین مجازی (یا سرور مجازی) بخشی از این منابع را تخصیص داد. به عنوان مثال:

می توان از مجموعه 40 گیگا بایت رم موجود برروی سرور 4 گیگ را در اختیار یک ماشین مجازی قرار داد که منحصرا در اختیار آن ماشین مجازی قرار دارد و مابقی را برای سایر ماشین های مجازی در نظر گرفت و برای سایر منابع سخت افزاری نیز به همین ترتیب، از تعداد 30 هسته پردازنده موجود می توان تعداد مورد نیاز خود را برای یک ماشین منحصر به فرد تخصیص داد و با همین رویکرد میزان فضای هارد دیسک را نیز می توان تفکیک کرد، با این اقدام هر ماشین مجازی که ایجاد می شود منابع سخت افزاری مخصوص به خود را دارد که می توان برروی آن سیستم عامل منحصر به فرد خود آن سرور را نصب کرد و از دید این سیستم عامل تمامی سخت افزار موجود همان چیزی است که در هنگام تعریف ماشین مجازی جدا شده و تخصیص داده شده است ، یعنی عملا سیستم عامل ماشین مجازی دسترسی به سایر منابع برروی سرور فیزیکی که میزبان آن است ندارد.

با این فرآیند است که شما می توانید به تعداد مورد نیاز و با توجه به منابع سخت افزاری که در اختیار دارید اقدام به تعریف ماشین مجازی کرده و برای هر کدام سیستم عامل مورد نیاز را نصب و نرم افزار مطلوب خود را نصب نموده تا سرویس های شبکه شما از یکدیگر جداسازی بشوند. با این اقدام ضمن کاهش هزینه سخت افزاری ، امنیت و دسترسی پذیری و پایداری بالاتری برای ساختار شبکه خود به ارمغان می آورید.

حال که به تعریف مفهوم مجازی سازی پرداختیم، در سایر مقالات به مفاهیم دیگر این حوزه خواهیم پرداخت .

امکان ارسال دیدگاه وجود ندارد!