مجازی سازی سرور | Server Virtualization

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

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

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

در ساختار مجازی سازی لایه ای بنام هایپروایزر  (hypervisor) مابین ماشین های مجازی و سرور فیزیکی قرار گرفته و نحوه تخصیص منابع پردازشی ( سی پی یو ، رم ، شبکه، فضای ذخیره سازی دیسک ) به ماشین های مجازی را مدیریت میکند و به عنوان واسط و کنترلر لایه میانی  عمل کرده و وظیفه به اشتراک گذاری منابع سخت افزاری میزبان با ماشین های مجازی را بعهده دارد. در  vmware این هایپروایزر ESXi نام دارد که آخرین ورژن آن در حال حاضر  ESXi8 می باشد. در شکل زیر سرورهای فیزیکی مشاهده میشود که روی هر کدام از سرورها یک لایه واسط مدیریتی به نام VMware ESXi نصب شده است و روی این لایه که هایپروایزر نام دارد تعدادی virtual machine  یا ماشین مجازی وجود دارد.  هر ماشین مجازی یک سیستم عامل دلخواه ( ویندوز ، لینوکس ، مکینتاش و ... ) به همراه برنامه ها و تنظیمات مختلف میباشد که منابع پردازشی خود را از سرور فیزکی که همان هاست ESXi میباشد دریافت میکنند.

 

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

 

اجرای چندین سرور مختلف با سیستم عامل های مختلف روی یک سرور فیزیکی

 


 

انواع نرم افزارهای مجازی سازی

در دنیای مجازی سازی مدعیان زیادی اقدام به طراحی و تولید نرم افزار و راهکارهای مجازی سازی نموده اند که بدون شک محبوبترین آنها شرکت VMware میباشد. شرکت vmware در تولید و ارائه راهکارهای مربوط به مجازی سازی و کلود یا رایانش ابری همیشه پیشرو بوده است و محصولات آن در اکثر مراکز داده و شرکتها و سازمانها نصب و درحال استفاده است. لیست زیر محصولات شرکتهای مختلف که راهکارهای خود را در زمینه  تکنولوژی های مربوط به مجازی سازی تولید و ارائه کرده اند را نشان میدهد :

  • مایکروسافت Hyper-V
  • KVM  یا Kernel-based Virtual Machine راهکار اپن سورس بوده که روی نسخه های مختلف لینوکس نصب شده و سرور فیزیکی را به هایپروایزر تبدیل میکند.
  • RHV یا یا Red Hat Virtualization محصول مجازی سازی پیشرفته شرکت ردهت بوده که بر پایه لینوکس و هایپروایزر KVM بنا شده است.
  • Proxmox VE :  راهکار اپن سورس مجازی سازی بر پایه QEMU/KVM و پشتیبانی از کانتینرهای LXC با قابلیت های کلاسترینگ، انتقال ماشین مجازی روشن و پشتیبانی از متد ذخیره سازی Ceph
  • محصول شرکت سیتریکس XenServer 
  • محصول مجازی سازی شرکت VMware  بنام vSphere

انواع محصولات مجازی سازی

 


 

مجازی سازی سرور با Citrix

یکی دیگر از محصولات پرقدرت مجازی سازی سرور ، XenServer بوده که محصول شرکت سیتریکس میباشد و بر پایه هایپروایزر Xen  کار میکند. XenServer  یا به اختصار Xen  یک محصول اپن سورس و رایگان بوده و بسیار قابل اعتماد و پایدار میباشد.این محصول قابلیتهای پیشرفته مجازی سازی برای دیتاسنترهای امروزی را دارا بوده ولی همچنان از vmware که لیدر صنعت مجازی سازی بوده عقب میباشد.از قابلیتهای هایپروایزر سیتریکس میتوان به موارد زیر اشاره کرد : 

  • XenMotion که برای جابجایی ماشین مجازی بصورت live به سرور دیگر بکار میرود.
  • قابلیت Live Storage Migration برای جابجایی دیسک ماشین مجازی به یک دیتااستور دیگر
  • قابلیت high availability مشابه HA در vmware
  • قابلیت  memory overcommit برای استفاده اشتراکی از حافظه رم بین ماشین های مجازی
  • قابلیت site-to-site disaster recovery مشابه SRM  در vmware که برای ریکاورکردن ماشین های مجازی در مواقع بحران استفاده میشود.
  • قابلیت استفاده از vGPU برای ماشین های مجازی
  • قابلیت USB Pass-Through برای اتصال فلش usb به ماشین های مجازی

 


 

مجازی سازی سرور با VMware 

محصول VMware vSphere نرم افزار و راهکار مجازی سازی سرور شرکت vmware محسوب میشود. هسته اصلی این محصول VMware ESXi میباشد که روی سرورهای فیزیکی موجود در دیتاسنتر نصب شده و ماشین های مجازی روی این hypervisor نصب شده و بالا می آیند. این هایپروایزر از نوع bare-metal بوده به این معنا که مانند vmware workstation وابستگی به سیستم عامل میزبان برای نصب ندارد و ESXi مستقیما روی سرور نصب میگردد. انواع سیستم عامل ها و پلتفرم ها ( ویندوز ، مکینتاش ، لینوکس ، یونیکس و ... ) میتواند بصورت ماشین مجازی یا به اصطلاح vm روی سرور ESXi  نصب و راه اندازی گردند بدون اینکه اختلالی در کار یکدیگر ایجاد کنند. ایجاد کلاسترینگ در شبکه بوسیله هایپروایزر ESXi بوسیله مجموعه ابزارهای موجود در نرم افزار VMware vSphere بسادگی ایجاد میشود و در صورت بروز مشکل در سرورهای فیزیکی دیتاسنتر، سرویس ها و ماشین ها مجازی بدون قطعی و down time و یا با حداقل قطعی بکار خود ادامه خواهند داد. آخرین ورژن ESXi در حال حاضر 8 بوده و نسبت به نسخه قبلی خود یعنی 7 بهبودها و پیشرفتهای خوبی داشته است. نکته ای که باید ذکر شود نصب  ESXi به تنهایی بستر مجازی سازی را تکمیل نکرده و لازم است از دیگر ابزارهای موجود در محصول vSphere استفاده نمود. نرم افزار VMware vCenter دیگر کامپوننت کاربردی و مدیریتی در مجموعه نرم افزاری vSphere بوده که خیلی از قابلیتهای پیشرفته یک دیتاسنتر واقعی با نصب و تنظیم این محصول میسر شده و قابلیتهای قدرتمندی را به بستر مجازی ما اضافه میکند. از جدیدترین قابلیتهای محصول vSphere  نسخه 8 به موارد زیر میتوان اشاره نمود:

  • پشتیبانی از DPU یا vSphere Distributed Services Engine برای افزایش کارایی سرور
  • پشتیبانی از Tanzu Kubernetes
  • پشتیبانی از DRS پیشرفته      
  • پشتیبانی از Session time out و حذف پشتیبانی از  TLS1.0 و TLS1.1
  • پشتیبانی از هشت vGPU به ازای هر ماشین مجازی
  • توانایی مدیریت 10000 ماشین مجازی در هر کلاستر
  • قابلیت های بیشتر در Lifecycle Management جهت آپدیت و بروزرسانی زیرساخت vSphere
  • قابلیت Enhanced Recovery of vCenter
  • پشتیبانی از سخت افزارهای جدید با معرفی Virtual Hardware ورژن 20

 


 

مجازی سازی با مایکروسافت Hyper-V

مایکروسافت هایپروی (Microsoft Hyper-V) محصول مجازی سازی سرور شرکت مایکروسافت برای اولین بار در ویندوز سرور 2008 نسخه R2 معرفی شد. در نسخه های ابتدایی کمی این نرم افزار ضعیف بود ولی با معرفی قابلیتهای پیشرفته تر در آن مانند Live Migration وارد رقابت با دیگر محصولات مجازی سازی گردید. قابلیت Live Migration امکان انتقال و مهاجرت یک ماشین مجازی از یک سرور به سرور دیگر بدون خاموش شدن یا قطع شدن ماشین مربوطه را میدهد.  Hyper-V از طریق نصب رل مربوطه در ویندوز سرور نصب میگردد و از دو طریق پاورشل مایکروسافت و کنسول گرافیکی Hyper-V Manager قابل مدیریت و پیکره بندی میباشد. از دیگر قابلیتهای هایپروی میتوان به توانایی ایجاد snapshot از ماشین های مجازی، اختصاص حافظه رم بصورت پویا به ماشین مجازی، وجود نسخه مشابه از Hyper-V در ویندوز 8 به بعد، محیط کاربری آسان، مدیریت بستر مجازی سازی با Powershell و معرفی فرمت ذخیره سازی جدید VHDX اشاره کرد. جدیدترین ورژن مجازی سازی هایپروی، Hyper-V 2022  بوده که قابلیتهای بیشتری به نسخه های قبلی خود بهمراه دارد مانند:

  • قابلیت Nested Vvirtualization یا مجازی سازی تودرتو برای پردازنده های AMD
  • بهینه سازی Virtual Switch درکاهش بار روی پردازنده و افزایش بازدهی سرور
  • معرفی Task Scheduler در اتوماتیک سازی فرایندهای تعریف شده توسط مدیر شبکه
  • معرفی Hyper-V Manager در نسخه Core از ویندوز سرور برای مدیریت ماشین های مجازی
  • توسعه دستور Sconfig در پاورشل و توانایی استفاده از اسکریپتها
  • پشتیبانی از VXLAN

مجازی سازی با هایپروی

خلاصه قابلیت های هایپروی مایکروسافت

 


 

مجازی سازی در لینوکس ( KVM )

KVM یا Kernel-Based Virtual Machine (مجازی ساز سطح کرنل ) پیاده سازی مجازی سازی با سیستم عامل لینوکس را ممکن میکند و در حقیقت هسته لینوکس را تبدیل به یک نوع هایپروایزر به نام KVM  میکند. KVM توسط شرکت Redhat توسعه پیدا کرده است. نکته ای که در خصوص مجازی سازی با KVM  وجود دارد این است که در این محصول تمام منابع پردازشی که در اختیار کاربر داده میشود بصورت اختصاصی بوده و به کاربر دیگری اختصاص داده نخواهد شد به همین دلیل در KVM  فروش Overselling یا فروش افراطی را شاهد نخواهیم بود. مجازی ساز KVM یک محصول اپن سورس بوده و اولین بار در سال 2006 معرفی گردید. در مجازی سازی با KVM فرایند نصب و پیکره بندی پیچیده تر از مجازی سازهای دیگر بوده و تسلط به سیستم عامل لینوکس از پیشنیازهای آن میباشد. از معایب KVM نبود محیط گرافیکی برای مدیریت سرورهای مجازی است که با آمدن پنلهای مدیریتی مانند virtualizor مشکل حل شده است.

از قابلتیهای نرم افزار مجازی سازی KVM میتوان به موارد زیر اشاره کرد :

  • بهره گیری از SELinux و sVirt برای بالابردن امنیت و بحث isolation بین ماشین های مجازی
  • پشتیبانی از live migration یا انتقال ماشین مجازی از یک هاست یه یک هاست دیگر
  • پشتیبانی از استفاده از منابع پردازشی سیستم بصورت Overcommitting
  • پشتیبانی از KSM یا Kernel Same-page Merging برای حذف صفحات حافظه تکراری و کاهش حافظه مصرفی

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

خدمات مجازی سازی سرور با VMware  را با سیسکو پردازش تجربه کنید

    

مقالات مجازی سازی سرور
داکر Docker چیست
مهدی

داکر Docker چیست

مفهوم داکر و کانتینر

قبلا سرویس­ها و اپلیکیشن­ها به دلیل Monolithic بودن روی یک سرور قرار می­گرفتند، ولی در دیدگاه جدید و با استفاده از مفهومی به نام Runtime که در داکر مطرح می­شود برنامه­ ها و اپلیکیشن­های مختلف را میتوان در کانتینرهای مختلف از هم ایزوله کرد تا روی یک سیستم عامل کنار هم بدون تداخل بالا بیایند. کانتینر برنامه ها با تمام نیازمندی­های خود مثل فایل­های DLL  توابع  تنظیمات رجیستری و ... را درون خود دارد. داکر یک پراسس است که اجرا می­شود و   منابع پردازشی لازم Runtimeرا برای اجرای کانتینرها در اختیار او قرار می­دهد و زمانی که کانتینر terminate شود این پراسس از بین می­رود. کانتینرها سبک هستند، OS ندارند، به راحتی Deploy می­شو و بین زیرساخت­های مختلف به راحتی جابه ­جا می­شوند.

داکر یا Docker ابزاری ست اوپن سورس که برای ایجاد، توسعه و اجرای برنامه های کاربردی توسط کانتینرها (Container) بکار میروند. کانتینرها شبیه sandbox عمل میکنند. با این تعریف شاید سوال برایتان پیش بیاید حال کانتینر چیست و چه کاربردی دارد ؟ کانتینر (Container) این اجازه را به برنامه نویسان و توسعه دهندگان Application ها میدهد تا یک برنامه را با تمام ماژول ها و کامپوننتهای وابسته آن ( مانند کتابخانه ها ، توابع و ... ) یکی کرده و بصورت یک پکیج درآورده تا آن برنامه تولید شده در پلتفرمها و سیستمهای مختلف بدون مشکل اجرا شود. در حقیقت بدون نگرانی از تنظیمات و وابستگیهای یک application  خاص در پلتفرمهای دیگر، آن برنامه در هر محیطی اجرا شود. داکر که در بالا به آن اشاره شد وظیفه مدیریت کانتینرها را به عهده دارد و بیشتر شبیه یک ماشین مجازی در بستر مجازی سازی عمل میکند

تفاوت کانتینر و مجازی سازی سرور

در vm یا ماشین مجازی برای اجرای اپلیکیشن  و برنامه های مختلف که بخواهیم بصورت ایزوله از هم کار کنند باید vm  های مختلف ساخته شود که همین موضوع بارپردازشی و هدررفت منابع سیستمی را روی سرور به همراه دارد. ولی در Docker  روی یک vm  خاص که میتواند ویندوز 2016 باشد یا لینوکس، ما ماژول داکر را نصب میکنیم و سپس روی سرویس داکر، کانتینرهای مختلف حاوی برنامه ها و اپلیکیشن های مختلف نصب و اجرا میشوند بدون اینکه کانتینرها به هم دسترسی داشته باشند. در حقیقت کانتینرها از هم ایزوله هستند و نیاز ما برای ایجاد چندین vm را مرتفع میسازند. به این نوع تکنولوژی داکر، مجازی سازی در سطح سیستم عامل یا operating-system virtualization  گفته میشود. در مجازی سازی ایراداتی مانند موارد زیر وجود دارد:

  • اختصاص منابع زیاد به vm ها
  • هر vm باید یک os اختصاصی داشته باشد.
  • بحث مانیتورینگ و patch  نمودن vmها

  • مشکلات انتقال ماشین های مجازی به کلاد

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

 

داکر و کانتینر

 

همان طور که در تصویر مشخص میباشد در ماشین مجازی یا vm ما به ازای هر application  که نیاز به محیط isolated  دارد یک vm  جدا میسازیم ولی در کانتینر،  application های مختلف روی یک سرور یا یک ماشین مجازی در قالب پکیج های مختلف در حال اجرا میباشند و از منابع سیستم عامل میزبان یا Guest OS  بصورت اشتراکی استفاده میکنند. با توجه به اینکه کانتینرها در user space  های جدا در حال اجرا میباشند در صورت ایجاد مشکل در یک کانتینر ، برای سایر کانتینرها یا کرنل ماشین مجازی مشکلی پیش نمی آید. ذکر این نکته مهم میباشد که برای کار با داکر تسلط به مفهیم سیستم عامل لینوکس اهمیت زیادی دارد و بایستی با لینوکس و کامندهای آن آشنا بود.

بخشهای مختلف داکر

  • داکر هاست یا Docker Host   سرور و سیستمی که داکر روی آن نصب و راه اندازی میشود را هاست داکر میگویند که هم میتواند سرور فیزیکی باشد و هم ماشین مجازی
  • داکر انجین یا Docker Engine :  با نصب docker engine  که کرنل و هسته مرکزی داکر به حساب می آید مدیریت کانتینرها ممکن میگردد. ران تایم زیرساخت موردنظر را برای بررسی اجرای اپلیکیشن در کانتینر در اختیار ما می­گذارد، مثل Docker
  • خط فرمان داکر یا Docker CLI :  یک رابط خط فرمان یا cli  در اختیار ما قرار میدهد تا بتوانیم به داکر متصل شده و بصورت command  و خط فرمان داکر را مدیریت کنیم.
  • الگوها یا Image ها :  image ها در ساختار داکر شبیه template ها در ساختار مجازی سازی میباشد که از روی آن میتوان کانیتینر یا چندین کانتینر را deploy  یا ایجاد نماییم. image ها در حقیقت یک فایل چند لایه ای بوده که مجموعه ای از کدها و توابع و دستورالعمل ها بوده که داخل کانتینر اجرا میشود. کانتینرها از روی image ایجاد می­شوند که یا توسط  ادمین ایجاد شده­ اند و یا از قبل ایجاد شده و قابل استفاده هستند.
  • کانتینر یا Container :  کانتینر همان طور که در بالا به آن اشاره شد واحد اجرایی تولید شده از روی image ها میباشد که روی کرنل داکر اجرا میگردد و از بقیه کانتینرها ایزوله میباشد.
  • رجیستری داکر یا Docker Registry :  رجیستری  یک فضای ذخیره سازی ست که برای نگهداری image ها بکار میرود.

 

نصب داکر در ویندوز

قبل از این برای نصب داکر لازم میبود که یک لینوکس مجازی روی ویندوز نصب نمود و سپس داکر روی آن لینوکس مجازی نصب نمود. ولی مایکروسافت در ویندوز 10 و ویندوز سرور 2016 کاری کرده تا با دانلود و نصب پکیج مربوط به docker از مزایای داشتن داکر روی ویندوز بدون نصب لینوکس مجازی بهره برد.

برای نصب docker در ویندوز سرور 2016 مراحل زیر را طی کنید : 

  • ابتدا سیستم عامل ویندوز سرور 2016 را روی یک سرور یا ماشین مجازی نصب و راه اندازی مینماییم.
  • سپس بایستی مطمئن شویم که ویندوز به روز رسانی شده و از طریق پنل update & security در کنترل پنل این مهم را چک میکنیم .
  • پاورشل ویندوز را اجرا کرده و با استفاده از دستور Install-Module -Name DockerMsftProvider -Repository PSGallery –Force ماژول Nuget PowerShel را نصب میکنیم.بایستی منتظر باشیم تا این پکیج نصب گردد.
  • حال با استفاده ار دستور Install-Package -Name docker -ProviderName DockerMsftProvider -verbose در پاورشل ، سرویس داکر را نصب میکنیم.در صورت پرسش از ما که آیا به این پکیج trust یا اعتماد دارید پاسخ yes میدهیم.بعد از اجرا کردن این دستور قابلیت windows container و سرویس داکر در سیستم عامل نصب و فعال میگردد.
  • سیستم را ریستارت میکنیم تا نصب docker در مرحله قبل تکمیل گردد.
  • با استفاده از دستور get-service docker وضعیت سرویس داکر را بررسی میکنیم و در صورت stop بودن سرویس دستور start-service docker را وارد میکنیم.
  • برای اطمینان از صحت نصب سرویس به مسیر C:\Program Files میرویم بایستی فولدر داکر و فایل های docker.exe ، dockerd.exe ، metadata.json داخل فولدر docker موجود باشند.
  • با استفاده از دستور docker version ورژن داکر را بررسی میکنیم که در خروجی این دستور ورژن کلاینت و سرور داکر نصب شده قابل مشاهده میباشد.

 

مطلب قبلی مجازی سازی سرور با VMware vSphere 6.7
مطلب بعدی قابلیتهای نرم افزار ویسنتر
Print
17610 رتبه بندی این مطلب:
4.6

نوشتن یک نظر

افزودن نظر

x