رضا اردانه
۱۵ خرداد ۱۳۹۹

بهینه سازی پالیسی RR در vSphere 6.7 U1

۰ دیدگاه
مقاله آموزشی
امتیاز دهید

در بخش مدیریت فضاهای ذخیره سازی، پالیسی RR که توسط پلاگین NMP مدیریت می شود، یکی از پالیسی های جذاب Multipathing می باشد. اما این پالیسی دارای نقطه ضعفی است که می خواهیم فرآیند بهینه سازی آن را بررسی نماییم.

اکثر شرکت های تولید کننده تجهیزات ذخیره سازی از الگوریتم Multipathing نوع Round Robin پشتیبانی می کنند و در رفتار آنها با این پالیسی یک رفتار مطلوب و بهینه است. این پالیسی با استفاده از فرآیند های خود، تمام مسیرهای منتهی به یک تجهیز ذخیره سازی را به صورت مساوی اشباع می کند که برای تجهیزات از نوع Active/Active می تواند نتیجه مطلوب تری داشته باشد. اما در این بین مشکلی وجود داشت که در نسخه های قبل از 6.7 با بروزرسانی U1 امکان رفع آن به این صورتیکه می خواهیم توضیح دهیم وجود نداشت.

همانطور که بیان شد، پالیسی RR به صورت مساوی تمام مسیرهای منتهی به یک ذخیره ساز را اشباع میکند. روند اشباع کردن نیز به این صورت است که میزان 1000 درخواست IO را در یک مسیر منتهی به فضای ذخیره سازی قرار میدهد و پس از آن سراغ مسیر بعدی رفته و 1000 درخواست را روی مسیر دوم قرار میدهد و بدین شکل تمام مسیرها را اشباع میکند. اما در صورتیکه مشکلی بر روی یکی از این مسیرها وجود داشته باشد، به طور مثال Latency در پاسخگویی به دلیل مشکلات مرتبط با ارتباطات فیزیکی و یا وجود Congestion در سوئیچ های قرارداده شده در مسیر، فرآیندی جهت ایزوله کردن آن مسیر توسط این پالیسی وجود نداشت. در این صورت، در بازه زمانی های مختلف یعنی در زمانیکه ترافیک بر روی مسیرهای مشکل دار قرار داده می شود، با مشکلاتی مانند Latency و افزایش Response Time در پاسخگویی مواجه خواهید شد.

راهکاری که در خصوص رفع این مشکل توسط شرکت VMware ارائه شده است بدین شکل عمل میکند که با درنظر گرفتن میزان Latency و IO هایی که به اصطلاح در انتظار Serve شدن قرار دارند، مسیر بهینه را انتخاب کرده و ترافیک را از آن مسیر عبور میدهد. جهت رسیدن به این حالت، می بایست یک Sub-Policy مرتبط با پالیسی RR را فعال نمایید تا روند مانیتور کردن مسیرها آغاز شده و تصمیمات مرتبط درخصوص انتخاب مسیرهای Optimal گرفته شود.

این Sub-Policy با درنظر گرفتن مدت زمان پاسخگویی به IO ها و همچنین صف تشکیل شده از IO ها در آن مسیر و در نهایت مقایسه آن با سایر مسیرها، متوجه خواهد شد که مسیر مدنظر یک مسیر بهینه است یا اینکه به عنوان یک مسیر دارای مشکل می بایست به حالت ایزوله تبدیل شود. این رفتار شناسی برای اولین بار با ارسال تعداد 16 درخواست IO به ازای هر مسیر و محاسبه Latency هر مسیر انجام می شود و بعد از آن سایر IO ها براساس نتایج به دست آمده بر روی مسیرهای بهینه قرار داده می شوند. برای شروع ابتدا باید بررسی نمایید که پالیسی مربوطه فعال است یا خیر که با دستور زیر می توانید این بررسی را انجام دهید:

esxcfg-advcfg -g /Misc/EnablePSPLatencyPolicy

اگر خروجی این دستور عدد 1 باشد، یعنی پالیسی مربوطه فعال است در غیر اینصورت دستور زیر را وارد نمایید:

esxcfg-advcfg -s 1 /Misc/EnablePSPLatencyPolicy

نتیجه این دستور را می توانید از طریق GUI نیز بررسی نمایید. برای اینکار در بخش Advanced Settings هاست ESXi خود عبارت Misc.EnablePSPLatency را جستجو نمایید و از وجود مقدار 1 برای این عبارت مطمئن شوید.

حال می بایست به ازای Device های مختلف خود اقدام به فعال کردن این Sub-Policy نمایید. در ابتدا وضعیت کنونی پالیسی های یک Device را می توانید از طریق دستور زیر بررسی نمایید:

esxcli storage nmp psp roundrobin deviceconfig get -d

در صورتیکه بخواهید Sub-Policy مدنظر را برای Device خود فعال کنید کافیست دستور زیر را وارد نمایید:

esxcli storage nmp psp roundrobin deviceconfig set -d –type=latency

در صورتیکه بخواهید مقادیر پیش فرض این Sub-Policy مانند میزان IO های ابتدایی یا مدت زمان ارزیابی را تغییر دهید، می توانید از دستورات زیر استفاده نمایید. اولین دستور برای تغییر مدت زمان ارزیابی و دومین دستور مربوط به تعداد IO های اولیه جهت نمونه گیری است:

esxcli storage nmp psp roundrobin deviceconfig set -d –type=latency –latency-eval-time=18000

esxcli storage nmp psp roundrobin deviceconfig set -d –type=latency –num-sampling-cycles=32

جهت درک بهتر این Sub-Policy می توانید دیاگرام زیر را مشاهده نمایید. در این دیاگرام، 3 مسیر مختلف در نظر گرفته شده است. زمان شروع ارسال درخواست با t مشخص شده است و به صورت مساوی مقداری IO که با m مشخص شده است روی هر مسیر قرار داده شده تا در نهایت میزان Round Trip Time به ازای هر مسیر مشخص شود. همانطور که مشاهده میکنید، مسیر P1 با توجه به خروجی زمان 10 میلی ثانیه بهینه ترین مسیر بوده و در ساختار پالیسی RR بیشترین میزان IO را Serve خواهد کرد.

RR Latency Policy 01

 

امتیاز دهید

دیدگاهتان را بنویسید

preloader