مجازی سازی سرورمیتواند به مقابله با پراکندگی سرور ، استفاده بهتر از توان محاسباتی سیستم ، کاهش هزینهٔ انرژی وافزایش چابکی و انعطاف پذیری data-center کمک کند .
مجازی سازی سرور یکی از آن تکنولوژیهایی است که در عین سادگی ، تأثیر قابل توجهی بر data-centerهای یک موسسه بر جای میگذارد .
اگر به جای آنکه بر روی هر سرور تنها یک نمونهٔ سیستم عامل و یک اپلیکیشن را اجرا کنید، بتوانید یک لایهٔ نرم افزاری به نامهایپرویزور را به سیستم اضافه کنید که شما را قادر میسازد که چندین نمونهٔ سیستم عامل و کارهای مربوط به آنها را بر روی یک سرور مجازیواحد اجرا کنید، چه اتفاقی میافتد؟
سرور ایران, خرید سرور ایران, سرور مجازی ایران
تاریخچه مجازی سازی
مجازی سازی سرور با این منظور انجام شده است و این ایده به کامپیوترهای IBM mainframes در دههٔ ۱۹۶۰ برمیگردد و با VMware که در اوایل دههٔ ۲۰۰۰ مجازی سازی سرور را برای سرورهای x86 مطرح کرد، مورد توجه قرار گرفت . پس از آن دیگر عرضه کنندگان پلتفرمهای مخصوص به خود را برای مجازی سازی سرور ساخته اند و بطور کلی این صنعت ابزارهای پیشرفتهای برای مدیریت، اتوماسیون و مدیریت ماشین مجازی ایجاد کرده است که نصب ، جابجایی و مدیریت ماشینهای مجازی را آسان تر میکند.
قبل از مجازی سازی سرور شرکتها با پراکندگی سرور ، با قدرت محاسباتی استفاده نشده ، افزایش هزینهٔ انرژی ، با انجام فرآیندها به صورت دستی و ناکارآمدی و انعطاف پذیری عمومیدر محیطهای data center خود روبرو بودند. مجازی سازی سرور مجازی تمام این موارد را تغییر داد و به شکل گستردهای مورد پذیرش کاربران و موسسات قرار گرفت . در حقیقت امروزه به سختی میتوان شرکت و موسسهای را یافت که برای انجام کارهای خود از ماشین مجازی استفاده نکند.
تا جایی که میدانیم هیچ تکنولوژیی وجود ندارد که از هجوم جایگزین بعدی خود در امان باشد ، این جایگزین بعدی برای مجازی سازی سرور، «کوچک شدن» است .
مجازی سازی سرور یک دستگاه واقعی را انتخاب کرده و آن را به بخشهای کوچک تر تقسیم میکند و با این کار امکان اجرای چندین سیستم عامل و چندین اپلیکیشن تمام عیار را با استفاده از قدرت محاسبهای و رایانشی پایهای سیستم فراهم میکند.
در موج بعدی و مراحل بعدی رایانش ، سازندگان اپلیکیشنها را به میکروسرویسهای کوچکتری که در کانتینرهای کم حجم و سبک اجرا میشوند، تقسیم میکنند و آنها را با رایانش serverless ( که به نام FaaS هم شناخته میشوند ) آزمایش میکنند. در هر دوی این حالات ماشین مجازی بطور کلی کنار گذاشته میشود و فرمانها بر روی bare metal اجرا میشوند.
مزایای مجازی سازی سرور
مجازی سازی سرور مزایای متعددی دارد که نخستین آنها کاهش تعداد سرورهای اختصاصی است . شما میتوانید چندین برنامه را بر روی یک قطعه سخت افزاری ترکیب کنید و در نتیجه تعداد کل سرورهای مورد نیاز در data center را کاهش دهید. تعداد کمتر سرور مجازی ، ردیفهای کمتر و تجهیزات شبکهای کمتر همه و همه به معنای صرفه جویی هزینههای همه چیز از فضای فیزیکی گرفته تا هزینههای نگهداری و تا هزینههای مربوط به انجام تهویهٔ محیط هستند.
مجازی سازی سرور نیاز به سرمایه گذاری برای تهیهٔ سخت افزار جدید را کاهش میدهد و شما را از تعویض و جدیدکردن دورهای سخت افزارها خلاص میکند . شا میتوانید سرورهایی را که به علت کاهش تعداد سرورهای اختصاصی ، بدون استفاده شده اند ، مجددا نصب کنید و مود استفاده قرار دهید.
آیا زمانی را که مسئولین data center مجبور بودند نیازهای خود را به صورت دستی تأمین کنند، به خاطر میآورید ؟ با استفاده از پیشرفتهای حاصل از به کارگیری مجازی سازی سرور میتوان ظرف چند ثانیه یک ماشین مجازی را در سیستم فعال کرد و در صورت تغییر خواستهها و نیازهای شرکت، تنها با لمس یک دکمه چند فایل را با یکدیگر از محیطی به محیط دیگر منتقل کرد .
همچنین مجازی سازی سرور قادر است ویژگیهایی همچون قابلیت دسترسی، امکان جایگزینی، سرعت ، قابلیت توسعه، چابکی و انعطاف پذیری را که امروزه شرکتها و موسسات تجاری مبتنی بر وب نیاز فراوانی به آنها دارند، تأمین نماید.
و مجازی سازی سرور تکنولوژی اساسی و محوری است که عرضه کنندگان رایانش ابری را قادر میسازد تا خدمات خود را به کاربرانشان ارائه دهند. زمانی که یک مشتری سرویس IaaS را به فروشندهٔ سرویسهای ابری سفارش میدهد ، شرکت عرضه کنندهٔ این سرویسها کار را با یک ماشین مجازی آغاز میکند و سپس ویژگیهای ذخیره سازی ، مدیریتی و امنیتی مورد نیاز را به کار انتخاب شده اضافه میکند.
انواع مختلف مجازی سازی سرور
در دنیای مجازی سازی سرور ، سرور مجازی در حقیقت نقشهاست را بر عهده دارد و سیستم عاملهاست ( اصلی ) بر روی آن اجرا میشود . هر یک از ماشینهای مجازی یک سرور مهمان محسوب میشوند و سیستم عاملهای مهمان بر روی آنها اجرا میشوند . این سرورهای مهمان مجزا از یکدیگرند.
- در مجازی سازی استاندارد مبتنی برهایپرویزور،هایپرویزور یا ناظر ماشین مجازی (VMM) مابین سیستم عاملهاست و لایهٔ سخت افزاری زیرین قرار میگیرد و منابع لازم برای سیستم عاملهای مهمان را فراهم میکند.
- مجازی سازی کامل و Para virtualization سیستم عامل مهمان را قبل از نصب بر روی ماشین مجازی تعدیل و اصلاح میکنند . این کار سبب افزایش عملکرد میشود زیرا سیستم عامل اصلاح شده بطور مستقیم باهایپرویزور ارتباط برقرار میکند و در نتیجه میزان رقابت احتمالی این دو سیستم به حداقل میرسد .
- مجازی سازی به کمک سخت افزار نیز سعی بر کاهش بار کاریهایپرویزور دارد، اما این کار را از طریق ضمائم سخت افزاری و نه به وسیلهٔ اصلاحات نرم افزاری انجام میدهد.
- در مجازی سازی در سطح کرنل به جای استفاده ازهایپرویزور ، نسخهٔ جداگانهای از کرنل لینوکس اجرا میشود . این کار با استفاده از یکدستگاه driver که برای برقراری ارتباط میان کرنل لینوکس اصلی و ماشینهای مجازی به کار میرود سبب تسهیل اجرای چند ماشین مجازی بر روی یکهاست واحد میشود.
- سرانجام در مجازی سازی سیستم عامل یا مجازی سازی دز سطح سیستم میتوان چند محیط متفاوت را که از نظر منطقی جدا از یکدیگرند بر روی یک کرنل سیستم عامل واحد اجرا کرد . در مجازی سازی در سطح سیستم تمام ماشینهای مجازی باید بطور شریکی از یک نسخه از سیستم عامل استفاده کنند ، اما در مجازی سازی سرور این امکان وجود دارد که ماشینهای مجازی متفاوت سیستم عاملهای متفاوتی داشته باشند.
ماشینهای مجازی و کانتینرها
Docker و کوبرنتیز گوگل دو عامل اصلی فعال کنندهٔ اقدامات کانتینری کردن سیستم هستند . Docker یک ابزار محبوب برای راه اندازی و فعال کردن کانتینر است و کوبرنتیز به مدیریت چند کانتینر در کنار یکدیگر در سیستم کمک میکند. کانتینرها محیطهای مستقل اجرای کدها و فرمانها هستند که به صورت اشتراکی از کرنل سیستم عاملهاست استفاده میکنند.
کانتینرها از ماشینهای مجازی روان تر و سبک تر هستند ، زیرا آنها به نوعی با ایجاد یک راه میان بر سیستم عاملهای مهمان تکراری و اضافی و بار اضافی مربوط به راه اندازی سیستم را دور میزنند . برنامه نویسان میتوانند به اندازهٔ شش تا هشت برابر ظرفیت یک ماشین مجازی از کانتینرها بر روی یک سخت افزار استفاده کنند.
کانتینرها هم نقاط ضعف و ایرادات مربوط به خود را دارند . با توجه به اینکه کانتینرها تکنولوژی نسبتا جدیدی هستند، هنوز آنگونه که باید و شاید ابزارهای مدیریتی کامل و جامعی برای آنها وجود ندارد و بنابراین لازم است که اقدامات مدیریتی و نگهداری بسیاری برای آنها انجام شود . علاوه بر این هنوز نگرانیهایی در خصوص امنیت کانتینرها وجود دارد.
در ماشینهای مجازی میتوان به راحتی با استفاده از imageهای مهمان فایلهای کاری را از یکهاست بههاست دیگر منتقل کرد ، اما در ماشینهای bare metal ارتقاء سیستم و یا جابجایی فایلها مشکل تر است.
ماشینهای مجازی و رایانش serverless
در محیط سنتی سرور ابری IaaS ، مشتریان ابتدا ماشین مجازی ، ابزار ذخیره سازی ، پایگاه دادهها و ابزارهای امنیتی و مدیریتی مربوطه را تهیه میکنند ، سپس برنامهها را بر روی ماشینهای مجازی بارگذاری میکنند.
در رایانش serverless برنامه نویسان تنها کدها و فرمانها را مینویسند و باقی کارها بر عهدهٔ عرضه کنندگان سرویسهای سرور ابری است . برنامه نویس و سازنده هیچ اجباری ندارد که به فکر سرور مجازی ، سیستم عامل ، تهیهٔ منابع و یا مدیریت سیستم باشد . البته یک سرور مجازی وجود دارد که کدها را اجرا میکند اما مسئولیت آن بر عهدهٔ عرضه کنندهٔ سرویسهای سرور ابری است.
کدها به جای اجرای یک اپلیکیشن یکپارچه، به عملکردهای اختصاصی و جزئی تر تقسیم میشوند . وقتی اتفاقی سبب فعال شدن آن عملکرد خاص میشود سرویس serverless ـ مثلا Amazon’s Lambda ـ کد مربوط به آن عملکرد را اجرا میکند . ارائه دهندگان سرویسهای serverless بر مبنای عملکرد از مشتریان خود هزینه دریافت میکنند.
وقتی از شیوهٔ کانتینر / میکروسرویس استفاده میکنید ، رایانش serverless لایهٔ ماشنهای مجازی را دور میزند و عملکرد خود را بر روی bare metal اجرا میکند . البته رایانش serverless در این جایگاه هنوز یک تکنولوژی نسبتا نوپا محسوب میشود و کاربردهای محدودی دارد.
آینده مجازی سازی سرور مجازی
با اینکه کانتینرها فعال هستند و علاقه به رایانش serverless در حال افزایش است ، واقعیت این است که مجازی سازی سرور یک تکنولوژی قدرتمند است که اکثریت قریب به اتفاق برنامههای سازمانی را تقویت میکند - برخی تخمین میزنند که حدود ۹۰٪ ظرفیت ماشینهای مجازی تکمیل شده است .
تصور اینکه شرکتی اپلیکیشنهایی را که بدون مشکل و به راحتی بر روی ماشینهای مجازی اجرا میشوند به کانتینرها یا پلتفرمهای serverless منتقل کند ، کار چندان راحتی نیست. کاربرانی که از محیطهای مختلف و غیرهمگن استفاده میکنند احتمالا هنوز از ماشینهای مجازی استفاده خواهند کرد زیرا کانتینرها باید از یک سیستم عامل واحد استفاده کنند و نمیتوانند هم زمان از ویندوز و لینوکس استفاده نمایند.
اما در حال حاضر برنامه سازان برای برنامههای جدید که با جدیدترین روشهای DevOps وشیوههای چالاک نوین ساخته میشوند ، گزینههایی در اختیار دارند. با پیشرفتهای جدید، برنامه سازان بر حسب مورد تصمیم میگیرند که فایلهای خود را در یک ماشین مجازی سنتی، در یک کانتینر و یا در یک محیط serverless اجرا کنند.