کاربرد Affinity و Anti-Affinity در VMware VSphere چیست ؟

در مجموعه VSphere قابلیتی به نام Distributed Resource Scheduler وجود دارد که وظیفه مدیریت نحوه قرار گیری VM ها بر روی Host ها را بر عهده دارد و این فرآیند را بصورت خودکار انجام می دهد ، DRS وظیفه متعادل سازی نحوه استفاده از منابع را بر عهده دارد اما بسیاری از مواقع پیش می آید که DRS نمی تواند نیاز ما را برآورده کند ، برخی از فرآیند های کاری هستند که بایستی بصورت دستی انجام شوند و همچنین برخی اوقات برخی VM ها وجود دارند که یک سری وابستگی بین آنها و VM دیگر و یا Host دیگر وجود دارد و با استفاده کردن از DRS ممکن است این وابستگی ها دچار اختلال شوند. برای مثال ممکن است دو VM با هم تبادل اطلاعات بسیار زیادی داشته باشند و پیشنهاد می شود که این VM ها هر دو بر روی یک Host قرار بگیرند تا ترافیک شبکه ما دچار Load نشود ، در چنین مواردی است که ما می توانیم از مکانیزمی به نام Affinity در VSphere استفاده کنیم. در واقع Affinity یا Affinity Rule یک سری تنظیمات در VSphere است که رابطه بین دو یا چند VM را با سیستم Host که بر روی آن قرار گرفته است تعریف می کند. با ما تا انتهای مقاله در ITPRO باشید تا توضیحات بیشتری در این خصوص ارائه کنیم.

Affinity Rule و Anti-Affinity Rule ها در واقع قوانینی هستند که توسط VSphere Hypervisor تعریف می شوند تا موجودیت هایی مثل VM ها یا Host ها را به یکدیگر وصل کنیم یا از همدیگر جدا کنیم ، این قوانین بصورت Required یا الزامی و Preferred یا ترجیحی تعریف می شوند تا ترافیک شبکه شما را مدیریت کنند و از به وجود آمدن ترافیک زیاد در شبکه جلوگیری کنند و با اینکار یک تعادل بین ماشین های مجازی ایجاد می کنند ، برای مثال اگر دو ماشین مجازی با همدیگر ارتباط نزدیکی دارند و ترافیک زیادی بین انها رد و بدل می شود و بهتر است به جای اینکه در شبکه ترافیک را رد و بدل کنند ، آنها را با استفاده از یک Affinity Rule بصورت VM-VM بر روی یک Host همیشه نگهداری می کنیم و ترافیک بین این دو ماشین مجازی دیگر در شبکه رد و بدل نمی شود. برخلاف این ممکن است دو ماشین مجازی داشته باشیم که به شدت منابع CPU و RAM را استفاده می کنند و در اینجا می توانیم یک Anti-Affinity Rule ایجاد کنیم که این دو ماشین هیچگاه بر روی یک Host قرار نگیرند و همیشه از همدیگر جدا بر روی Host های مختلف باشند ، با این روش دیگر هیچ Host ای Overhead اضافه نخواهد داشت.

Affinity Rule و Anti-Affinity rule ها در سه لایه می توانند اعمال شوند ، در بین VM ها و Host ها ، در بین VM ها و VM ها و در نهایت بین VM ها و VM ها بصورت Anti-Affinity ، یکی از نکاتی که در هنگام طراحی Affinity و Anti-Affinity Rule ها بایستی به آن دقت کنید همپوشانی یا تداخل پیدا کردن بین Rule ها است ، برای مثال ممکن است شما یک Anti-Affinity Rule ممکن است برای دو VM ایجاد کنید در محیط VSphere و در همان لحظه ممکن است هر دوی این VM ها با یک VM دیگر Affinity Rule داشته باشند بر روی یک Host مشترک که در اینجا داخل یا همپوشانی ایجاد می شود. در چنین مواردی است که Alert ها و Alarm های رویدادهای VSphere مدیران را از بروز چنین مشکلاتی آگاه می کند. اما ممکن است برای ITPRO های عزیز کمی همچنان این موضوع مبهم باشد ، بهتر است هر کدام از این سه Rule را بصورت تفکیک شده برای شما تشریح کنیم ، به موارد زیر دقت کنید :

کاربرد Affinity Rule بصورت VM/VM


برخی اوقات ممکن است شما به عنوان یک ITPRO بخواهید که دو یا چند VM حتما بر روی یک Host میزبانی شوند و ترافیک آنها در شبکه ارسال نشود. در چنین مواردی که دو یا چند VM وابستگی های زیادی به هم دارند ، اگر بصورت اتفاقی یکی از آنها به یک Host دیگر vMotion شود بایستی VM دوم هم به همان Host ای که VM قبلی vMotion شده است vMotion شود تا کار به درستی انجام شود. این سناریو بسیار محتمل است ، فرض کنید که در یک سازمان شما یک سرور Database و یک سرور Application دارید که هر دوی آنها با هم ارتباط شدیدی دارند ، اگر آنها را بر روی یک Host نگهداری کنید طبیعتا باعث کاهش ترافیک شبکه خواهد شد و سرعت تبادل اطلاعات بین آنها نیز بسیار زیادتر از شبکه خواهد بود.در چنین مواقعی ما بین این دو VM یک Affinity Rule بصورت VM/VM ایجاد می کنیم که در صورت انتقال یکی از VM ها به Host دیگر ، VM دیگر هم به همان ترتیب منتقل شود.

کاربرد Affinity Rule بصورت Host/VM


برخی اوقات ارتباط بین چند VM اصلا مهم نیست اما شما باید مطمئن باشید که برخی از فرآیند های کاری و Workload ها حتما بر روی یک Host خاص انجام می شود . برخی از شرکت ها برایشان خیلی مهم است که بدانند سرور vCenter آنها بر روی کدام Host قرار دارد یا در سناریویی محتمل تر ممکن است شما Application هایی داشته باشید که دارای قفل های سخت افزاری باشند و در صورتیکه این سرور Application به سرور دیگری vMotion شود دیگر قادر به سرویس دهی نمی باشد. شما می توانید در چنین مواقعی Affinity Rule ای ایجاد کنید که VM یا VM های مربوطه همیشه بر روی یک Host مشخص قرار داشته باشند و هیچگاه به Host های دیگر شبکه Migrate نشوند. البته نقطه ضعف اینگونه موارد این است که در صورتیکه Host مربوطه دچار مشکل شود قطعا سرور مورد نظر شما نیز دچار مشکل خواهد شد و از مدار خارج می شود. دقت کنید که همیشه هم ممکن است قفل سخت افزاری در کار نباشد اما لایسنس نرم افزار بر اساس پارامترهای سخت افزاری Host تعریف شود.

کاربرد Anti-Affinity Rule بصورت VM/VM


برخی اوقات پیش می آید که ما نمی خواهیم به هیچ عنوان دو سرور VM بر روی یک Host در کنار هم قرار بگیرند. برای مثال شما در سازمان خودتان حداقل دو عدد Domain Controller نیاز دارید یا حداقل دو عدد DHCP سرور یا DNS سرور یا سرورهایی که با هم Replication دارند مثل SQL سرور ، در چنین مواردی شما برای ایجاد Redundancy این جداسازی را انجام داده اید و اگر بر روی یک Host قرار بگیرند با بروز مشکل برای این Host همه نقشه های شما بی فایده خواهد شد. یا از طرفی برخی اوقات سرورهایی وجود دارند که بار کاری و Load بسیار زیادی بر روی CPU ها دارند و قطعا در یک سازمان شما چند عدد از این سرورها را در اختیار خواهید داشت. در چنین مواردی با استفاده از یک Anti-Affinity Rule می توانید به vSphere بگویید که به هیچ عنوان این سرورها را بر روی یک Host قرار ندهد.

نویسنده : محمد نصیری
منبع : انجمن تخصصی فناوری اطلاعات ایران
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد

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

 نرم افزار Virtuozzo یک نرم افزار شرکتی یا به زبانی بهتر یک راهکار برای میزبانی سرویس های سرور مجازی یا VPS ها می باشد. اگر با کنترل پنل هایی مثل cPanel یا WHM کار کرده باشید باید بدانید که این دو مورد برای هاستینگ های اشتراکی و هاست های Reseller ای مورد استفاده قرار می گیرند و اما Virtuozzo زمانی به کمک شما می آید که شما می خواهید هاستینگ سرورهای مجازی را مدیریت و خدماتی از این قبیل را ارائه دهید. Virtuozzo یک سرویس نرم افزاری است که مالک آن شرکت Parallels می باشد ، شرکتی که شما آن را با محصولات دیگری مثل Plesk می شناسید و در حوزه مدیریت VPS ها و هاستینگ در دنیا معرفو است. Virtuozzo به شما خدمات مجازی سازی بر پایه و اساس سخت افزار را می دهد ، شما این نرم افزار را بر روی سیستم عامل خودتان نصب می کنید و از آن به بعد می توانید از سیستم عاملی که وجود دارد N سیستم عامل ایزوله ارائه دهید. در واقع Virtuozzo یک مکانیزم مجازی سازی با استفاده از Container است و برای سرویس دهندگان هاستینگ بسیار می تواند مقرون به صرفه باشد زیرا نیازی به داشتن چندین سرور برای ارائه خدمات نخواهند داشت و با یک سرور مجازی می توانند چند VPS در اختیار مشتریان قرار بدهند.

معرفی Virtuozzo



در مکانیزم Container-Based به جای اینکه برای هر کدام از VPS هایی که کاربران برای سرویس های هاستینگ نیاز دارند یک سیستم عامل جداگانه نصب و راه اندازی شود ، لایه هایپروایزور حذف می شود و نرم افزار Container Engine مدیریت منابع را بر عهده می گیرد ، در چنین مواقعی این Engine سیستم عامل اصلی را بصورت پارتیشن هایی جداگانه در نظر می گیرد و همه مواردی که شما به عنوان یک کاربر VPS نیاز دارید را بصورت ایزوله شده در قالب مفهومی به نام Container به کاربر ارائه می دهد ، در واقع Container برای کاربر نماد همان VPS را دارد و کاربر تفاوت را درک نمی کند در صورتیکه سیستم عامل اصلی همه این موارد را مدیریت می کند. VPS ای که با استفاده از Container Engine ایجاد می شود با هسته سیستم عامل اصلی که بر روی آن نصب شده است کار می کند و دستورات را از VPS دریافت و به سمت سخت افزار هدایت می کند. از مهمترین مزایای اینگونه مجازی سازی کاهش شدید هزینه های هاستینگ است ، زیرا در حالتی که شما از هایپروایزورهای معمولی مثل Hyper-V یا VMware استفاده می کنید بایستی برای همه افراد یک سیستم عامل جداگانه نصب کنید و همچنین خود نرم افزار Hypervisor نیز بر روی سیستم اصلی Load ایجاد می کند اما با وجود Virtuozzo شما دیگر لایه Hypervisor را حذف کرده اید و حتی روی یک ماشین مجازی که توسط Hypervisor های دیگر نصب شده است نیز می توانید مجددا VPS ایجاد کنید و این برای سرویس دهندگان هاستینگ بسیار مقرون به صرفه است.

نرم افزار Virtuozzo اعلام کرده است که می تواند تا سه برابر بیشتر از Hypervisor های دیگر بر روی سیستم های فیزیکی ماشین مجازی ایجاد کند ، با توجه به اینکه با استفاده از Virtuozzo تعداد سرورهای فیزیکی مورد استفاده در مرکز داده شما نیز کاهش پیدا می کند ، طبیعتا شرکت Parallels و محصول Virtuozzo باعث کاهش هزینه های سخت افزاری ، کاهش نیازهای نگهداری و همچنین کاهش انرزی بیشتر برای دردسرهای مجازی سازی خواهد شد. همچنین شرکت Parallels از Virtuozzo به عنوان یک محصول بسیار عالی برای استفاده در محیط های Cloud Computing نام برده است و مدعی است که حداکثراستفاده از ظرفیت ها ، حداکثر استفاده از هزینه های انجام شده و کاهش هزینه های اضافه و در نهایت بالا بردن کارایی را به مشتریان خود ارائه می دهد.شما به راحتی می توانید با استفاده از Virtuozzo سرورهای مجازی خودتان را مدیریت کنید ، کنترل پنل مدیریتی و گرافیکی قوی ای که این نرم افزار دارد ، این امکان را به شما می دهد که برای هر کسی که دوست داشته باشید کاربر مجزا تعریف کنید و سطوح دسترسی وی به VPS خودش را تعیین کنید. کاربران براحتی می توانند از طریق این کنترل پنل مدیریتی سرورهای خودشان را مدیریت کنند از جمله اینکه سرور خودشان را start ، stop ، reboot و .. کنند و اینکار هیچوقت سایر Container ها را تحت تاثیر قرار نمی دهد. به این کنترل پنل قوی در اصطلاح فنی Power Panel گفته می شود و Virtuozzo از آن برای مدیریت کردن VPS ها استفاده می کند ، حتی نصب کردن و حذف کردن نرم افزارها بر روی VPS نیز می تواند از همین روش انجام شود.

برخی از دوستان تصور می کنند که در صورتیکه از Virtuozzo استفاده کنند دیگر نیازی به استفاده از سایر پنل های مدیریتی مثل cPanel یا WHM برای مدیریت کردن سرویس های هاستینگ خودشان نیست !! این برداشت نادرست است زیرا دو نرم افزار ذکر شده برای مدیریت کردن حسابهای کاربری برای استفاده از دامین های جدیدی و فضاهای موجود و دیتابیس ها مورد استفاده قرار می گیرند در حالیکه Virtuozzo فقط برای مدیریت کردن خود Container یا VPS استفاده می شود ، در واقع مدیریت سیستم عامل با Virtuozzo است و مدیریت هاستینگ و خدمات هاستینگ با کنترل پنل هایی که ذکر کردیم انجام می شود. Virtuozzo یک Application یا نرم افزار مجازی سازی در لایه کلان برای سرورها است که به مدیران این امکان را می دهد که مجازی سازی در لایه سیستم عامل را در مرکز داده خودشان داشته باشند.

شما به جای اینکه بر روی ماشین فیزیکی خودتان چندین سیستم عامل را بصورت مجازی نصب کنید بصورت همزمان یا در واقع همان کاری که شرکت های VMware و Xen انجام می دهند ، می توانید یک سیستم عامل بر روی سرور با استفاده از Virtuozzo نصب کنید و با استفاده از Kernel همین سیستم عامل و ایجاد container های مختلف واقعا هزینه های خودتان را کاهش دهید. جالب اینجاست بدانید که Virtuozzo یک کرنل اختصاصی به نام Kernel Service Abstraction Layer یا KSAL در خودش دارد که می تواند دسترسی به کرنل سیستم عامل ها را مدیریت کند و از هر گونه دسترسی غیرمجاز به هسته سیستم عامل اصلی جلوگیری کند تا حملات احتمالی نتوانند سیستم فیزیکی اصلی را مختلف کنند. Virtuozzo برای خودش یک فایل سیستم اختصاصی نیز دارد که برای ایزوله کردن پارتیشن ها مورد استفاده قرار می گیرد ، این فایل سیستم باعث می شود هرگونه خطای نرم افزاری بلافاصله مدیریت شده و در فضای ایزوله ای که در پارتیشن وجود دارد باقی بماند و سایر سیستم را درگیر نکند.

معرفی نرم افزار Virtuozzo



هر سیستم عامل در Virtuozzo دارای آدرس IP اختصاصی ، نام کاربری و رمز عبور اختصاصی ، پردازش های CPU اختصاصی و حتی سرویس های اختصاصی بر روی سخت افزار است. با توجه به اینکه سیستم عامل اصلی لایه پایین همیشه در حال اجرا است ، هر کدام از VPS ها را می توان بصورت مجزا مدیریت و Reboot کرد و جالب اینجاست که می توانید بصورت Live این VPS ها را به سیستم دیگری منتقل کنید. مدیرانی که در مجموعه خودشان از Virtuozzo استفاده می کنند ، برای مدیریت کردن آن گزینه های مختلفی دارند که از آن جمله می توان به استفاده از Command Line برای مدیریت ، استفاده از رابط کاربری گرافیکی که به Visual Management Center معروف است و همچنین از طریق Virtual Control Center که یک رابط گرافیکی تحت وب است اشاره کرد. Virtuozzo ابتدا توسط شرکتی SWSoft طراحی و معرفی شد و تحت لیسانس GNU GPL با برداشتی از پروژه ای مشابه به نام OpenVZ شروع به کار کرد. آنها OpenVZ را با اضافه کردن قابلیت های بسیار زیاد از یک محصول رایگان تبدیل به یک محصول تجاری بسیار با کیفیت کردند اما همچنان هسته اصلی آن بر پایه OpenVZ بنا نهاده شده است. امیدوارم مورد توجه شما قرار گرفته باشد.

نویسنده : محمد نصیری
منبع : انجمن تخصصی فناوری اطلاعات ایران
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد