مطالب فصل
مجازی سازی (Virtualization) چیست و چرا ما به آن نیاز داریم؟
مجازی سازی (Virtualization) چیست و چرا ما به آن نیاز داریم؟
در این بخش قصد داریم که به یک سوال مهم جواب دهیم که مجازی سازی چیست و چرا ما به آن نیاز داریم؟ چرا همه دنیا به سمت مجازی سازی و انتزاعی شدن پیش میرود؟!!
همانطور که در عکس بالا مشاهده میکنید، در دهههای اخیر، ما مجبور بودیم ابتدا سیستم عامل خود را که شامل سیستم عاملهای ویندوز، لینوکس و یا هر سیستم عامل دیگری میباشد را نصب کنیم، سپس نرم افزارها و سرویسهای خود را با توجه به نیاز سازمان نصب و راه اندازی نماییم تا کاربران بتوانند از آن سرویس بگیرند. در این روش (روش سنتی یا Traditional) ما با مشکلاتی مواجه بودیم که شامل موارد زیر میباشد:
مشکلاتی که قبل از دنیای مجازی سازی وجود داشت
1- جابه جایی سخت و دشوار:
فرض کنید بنا به دلایلی مجبور شوید کل سرویس خود را از سرور اول به سرور دوم انتقال دهید؛ مثلاً سرور اول دارای مشکل سخت افزاری است و دیگر امکان استفاده از آن وجود ندارد، شما برای حل این سناریو بایستی سرویسی مانند سرویس موجود در سرور اول را در سرور دوم پیاده سازی نمایید و این کار بسیار دشواری است، چون ممکن است از قبل در سرور اول تنظیماتی بر روی نرم افزارها انجام گرفته باشد تا سرویس به درستی کار کند اما زمانی که در سرور جدید پیاده سازی میشود، عمل نکند. به طور مثال فرض کنید نرم افزار سازمان دارای یک سری فایلهای رجیستری شده است که در سرور قبلی پیاده سازی شده بود، در این صورت شما دیگر به آنها دسترسی ندارید و برای پیاده سازی آنها بایستی از سازنده نرم افزار یا پشتیبانی نرم افزار کمک بگیرید تا این جابجایی به درستی انجام شود. این جابجایی پروسه بلند و طولانی مدتی دارد که باعث میشود سرویس شما Down time زیادی داشته باشد و این برای سازمانهای بزرگ میتواند مشکلاتی به بار آورد.
2- وابستگی سرویس ها و نرم افزار ها به سخت افزار:
سیستم عامل، سرویسها و نرم افزارهای سازمان شما به سخت افزار وابسته هستند و تمامی این موارد با یکدیگر یک Bundle را تشکیل دادهاند و در حالت Traditional این امکان وجود ندارد که کل سرویسها و سخت افزار را جدا از هم در نظر بگیرید
3- معمولا عمر کوتاهی دارند
4- عدم استفاده بهینه از سخت افزار:
اکثر اوقات زمانی که از Task manager سیستم عامل سازمان استفاده میکنیم، به طور مثال در سیستم عامل لینوکس با دستور top، وضعیت سرویسها و نرم افزارها را بررسی میکنیم متوجه میشویم که مقدار زیادی از RAM یا CPU بلا استفاده باقی مانده است ولی با این حال امکان نصب سرویس دیگری در کنار سرویس مورد نظر وجود ندارد، البته اگر این امکان نیز وجود داشته باشد نباید تمامی سرویسها را در یک سیستم عامل داشته باشیم؛ ضرب المثل «تخممرغ هایت را در یک سبد نگذار» گویای این مطلب است. پس ما در حالت Traditional منابع اتلاف شده زیادی داریم.
مجازی سازی چیست؟
مجازی سازی یعنی اینکه بتوانیم از طریق یک نرم افزار یا سیستم عاملی همانند Hypervisor امکانی را به وجود آوریم تا بتوانیم از سخت افزار به صورت اشتراکی استفاده نماییم یا به عبارت دیگر سرویسهای خود را به سمت انتزاعی شدن یا Abstraction سوق دهیم و سیستم عامل و نرم افزارهای خود را به یک فایل نرم افزاری تبدیل کنیم.
همانطور که در عکس بالا مشاهده میکنید، لایه اول سخت افزار میباشد و بر روی آن یک نرم افزار یا یک سیستم عامل به نام Hypervisor قرار میگیرد. ( ESXI محصول شرکت VMware و Hyper-V محصول شرکت Microsoft از نمونههای Hypervisor میباشند). Hypervisor در ابتدا سخت افزار را شناسایی میکند سپس آن را در لایههای بالاتر (VM ها) به اشتراک میگذارد. در داخل VM، در لایه اول OS قرار دارد و در لایه بعدی سرویسها و نرم افزارها قرار میگیرند. تفاوتی که در این قسمت وجود دارد این است که در این سرور 2 عدد Virtual Machine (VM) داریم، که هرکدام یک سیستم عامل مستقل دارند اما هر دو آنها به وسیله Hypervisor میتوانند از یک سخت افزار مشترک استفاده نمایند.
نکته: تمام VMها از یکدیگر Isolate (مجزا) هستند، مگر اینکه از طریق شبکه با یکدیگر ارتباط داشته باشند.
مزایای مجازی سازی
مزایای مجازی سازی:
1- مهمترین دلیل حرکت به سوی مجازی سازی یا Virtualization استفاده بهینه از سخت افزار میباشد. در دهههای اخیر، ما مجبور بودیم برای سرویسهای مختلف، سرورهای مختلف فیزیکی را خریداری نماییم، درحالیکه پتانسیل سرورهای فیزیکی فراتر از چیزی بود که استفاده میکردیم؛ مثلا یک سرویس اتوماسیون یا حسابداری را روی یک سرور با 32 گیگ رم نصب و راهاندازی میکردیم، در طول مدتی که از حافظه استفاده میشد با بررسی وضعیت سرور متوجه میشدیم که در بدترین شرایط فقط 16 گیگ رم استفاده شده و 16 گیگ دیگر بلا استفاده باقی مانده است، درحالیکه میتوانستیم همزمان نرم افزار اتوماسیون و حسابداری را در یک سرور فیزیکی نصب کنیم ولی برای هرکدام از آنها یک سرور فیزیکی جدا در نظر میگرفتیم تا سرویسها با یکدیگر تداخل نداشته باشند.
حال در دنیای مجازی سازی این امکان برای ما فراهم شده است. با استفاده از Hypervisor منابع سخت افزاری را شناسایی سپس با VM ها به اشتراک میگذاریم؛ به زبان سادهتر سرویسهای ما در دنیای مجازی سازی تبدیل به یک فایل نرم افزاری شدهاند. در مرحله اول VM ها با مشخصات موردنیاز ساخته میشوند؛ مثلا چند گیگ RAM موردنیاز است؟ CPU چند هستهای باشد؟ و تمام موارد موردنیازی که برای سیستم عامل و سرویس مهم است. پس از نصب OS، سرویسهای موردنیاز بر روی OS، داخل VM نصب و راهاندازی میشوند.
حال اگر در VM سرویس Web نصب باشد، میتوانیم در همان سرور یک VM دیگر با سیستم عامل و Database مستقل نصب و راهاندازی نماییم.
2- با تبدیل سرویسها به فایلهای نرم افزاری (یا همان VM)، میتوان به راحتی آنها را جابجا کرد و انتقال داد.
3- VM ها به صورت پیش فرض هیچ نوع وابستگی به سخت افزار ندارند؛ چرا از کلمه پیش فرض استفاده میکنیم؟ زیرا سناریوهای خاصی وجود دارد، برای مثال ممکن است یک سخت افزار خاصی مانند کارت گرافیکی را به صورت اختصاصی (Dedicated) در اختیار Virtual Machine قرار دهید و این باعث میشود VM به آن سرور و سخت افزار وابسته شود.
4- در فضای مجازی سازی به راحتی و بدون هیچ Downtime ای میتوانید سخت افزار سرور خود را ارتقاء دهید.
5- امکان ارتقاء VM ها، در صورتی که روشن هستند، وجود دارد. مثلا میتوانیم تعداد هسته CPU را تغییر دهیم یا مقدار RAM را افزایش دهیم، درحالیکه قبلا این امکان به راحتی انجام نمیشد.
6- یکی دیگر از مشکلات در دنیای IT، بحث Update کردن سرویسها و انجام برخی تنظیمات بر روی سرویسهای حساس میباشد؛ زیرا ممکن است بروزرسانی و انجام برخی تنظیمات باعث شود سرویس به درستی کار نکند یا کلا از کار بیفتد. به همین دلیل نمیتوانیم بخاطر بروزرسانی یا انجام تنظیمات سرویس خود را به خطر بیندازیم، اما از طرفی ممکن است با بروزرسانی یا انجام تنظیمات بتوانیم برخی از مشکلات امنیتی در سیستم را حل کنیم تا سیستم امنتر شده و بهتر کار کند، پس نمیتوان هر Update یا هر تنظیمی را نادیده گرفت. شاید به این راهحل فکر کنید که میتوانیم از شرایط فعلی Backup بگیریم و سپس تنظیمات و بروزرسانی را انجام دهیم تا اگر مشکلی به وجود آمد بتوانیم به شرایط قبلی Recovery کنیم؛ این کار امکانپذیر است اما اگر سرویسی که از آن استفاده میکنید سنگین باشد و دادههای زیادی داشته باشد، زمان Backup و Recovery طولانی خواهد بود. اما در دنیای مجازی سازی میتوانید از قابلیتهای Snapshot (در VMware) و Checkpoint ( در Hyper-V) استفاده نمایید. با این قابلیتها قادر خواهید بود از شرایط فعلی سرویس حتی محتویات داخل RAM آن سرویس یک Snapshot تهیه نمایید، سپس بروزرسانی و تنظیمات را انجام دهید، در صورتی که مشکلی به وجود آمد می توانید در کسری از ثانیه به حالت قبلی برگردید.
نکته: در Snapshot با توجه به سرویس ممکن است بعضی اوقات پروسه Snapshot گرفتن یا Revert Snapshot کمی طولانی باشد که در ادامه آموزشها درباره این موارد صحبت خواهیم کرد.
نکته: به هیچ عنوان بحث Snapshot را با Backup مقایسه نخواهیم کرد.
فیلم آموزشی
فیلم آموزشی این فصل
برای ثبت نظر ابتدا وارد حساب کاربری خود شوید
ورود به حساب کاربریهیچ نظری ارسال نشده است! اولین نظر را شما ارسال کنید...