در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

کاربرد 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 قرار ندهد. ITPRO باشید

نویسنده : محمد نصیری

منبع : جزیره راهکارهای مجازی سازی وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد

#affinity_rule_چیست #drs_چیست #کاربرد_vapp_در_vmware #انواع_مختلف_affinity_rule #کاربرد_resource_pool_در_vmware #معرفی_قابلیت_storage_drs_در_vmware #anti-affinity_rule_چیست #چرا_affinity_rule_ایجاد_می_کنیم #کاربرد_affinity_rule_در_vcenter #vapp_در_vcenter_چیست
8 نظر
green apple

بسیار ممنون از مقاله خوبتون

فقط خواستم یک نکته رو اشاره کنم شاید برای دوستانی که این مقاله رو مطالعه کردن مفید باشه

Affinity و Anti-Affinity به جز اینکه می تواند در سه حالت فوق که در مقاله اشاره شد عمل کند، می تواند بصورت Disk Affinity نیز مطرح باشد. برای VMهایی که بیش از یک دیسگ دارند، دو حالت ممکن داریم:

1. VMDK Affinity: که در این حالت دیسک های یک VM بهم وابستگی شدیدی دارند و می بایست همه بر روی یک Datastore قرار داشته باشند و در صورتیکه یکی از آنها دچار کمبود فضای دیسک شود، درصورتیکه از قبل Datastore Cluster تعریف کرده باشیم و بر روی آنهم SDRS راه اندازی کرده باشیم، SDRS این کمبود را بر روی دیسک مورد نظر تشخیص داده و علاوه بر اینکه بصورت خودکار (اگر بصورت خودکار تنظیم کرده باشیم) دیسک مدنظر را به Datastoreی که در مجموعه Datastore Cluster بهترین وضعیت ممکن را دارد با svMotion انتقال می دهد، مجبور خواهد بود بقیه دیسک های آن VM را نیز به همان Datastore مقصد جابه جا نماید.

2. VMDK Anti-Affinity: در این حالت برخلاف حالت قبلی دیسک های یک VM بهم وابستگی ندارند و درصورتیکه SDRS کمبود فضای دیسک را بر روی Datastore مبدا تشخیص دهد در صورتیکه آن را بصورت Automatic تنظیم کرده باشیم، SDRS بصورت خودکار توسط svMotion دست بکار شده و تنها دیسکی از VM مد نظر را که دچار کمبود فضا شده است را به Datastore دیگری که بهترین وضعیت ممکن را در بین Datastoreهای داخل Datastore Cluster داشته باشد، انتقال می دهد.

محمد نصیری

خیلی ممنون مهندس ناظمی عزیز ، من خودم این موضوع رو به این شکل نمیدونستم و برام جالب بود

رضا احسانی

ممنون از استاد و دوست عزیز که به نکات ریزی اشاره کردند.

استاد اگر دو سرور داشته باشیم که بر اساس سیاست یک VM حتما بر روی هاست یک باید باشد و اگر هاست یک به هر دلیلی از مدار کاری خارج شود آیا HA این VM را بر روی هاست دو انتقال میدهد یا خیر؟

محمد نصیری

طبیعتا اگر Affinity تعریف کرده باشید باید هردو رو انتقال بده ، مشکلی در انتقال وجود نداره ولی باید هر دو منتقل بشه.

رضا احسانی

استاد من منظورم Vm To Host میباشد؟

فقط برای یک VM تعریف شده است که حتما بر روی هاست اول باشد

محمد نصیری

یعنی شما storage policy گذاشتیت یا affinity رو به گونه ای تنظیم کردید که روی فقط یک هاست مشخص باشه ؟ اگر اینجور هست فکر نمی کنم HA شما عمل بکنه ، چون این منطق رو شما دستی تعریف کردید و VMware هم اولویت رو به تنظیمات دستی قرار میده و متوجه نمیشه که شما میخاین هم Host یک دونه باشه و هم اگر از بین رفت روی یکی دیگه HA بشه ... ( البته در چنین شرایطی خودم نبودم ، تئوری دارم میگم این منطق رو )

سید محمدرضا سجادی

شرمنده یک سوال دارم

من متوجه نشدم منظورتون از HA چیه؟

مخفف چه کلمه ای هست؟

محمد نصیری

سلام : HA مخفف High Availability هست

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

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