مفهوم Storage QoS در Windows Server 2016 – قسمت دوم (پایانی)

 

در بحث سرویس‌دهی، مقوله Storage از اهمیت بالایی برخوردار می‌باشد، بطوری که عملکرد نامناسب در این قسمت، کارایی کلی سیستم را به شدت تحت تاثیر قرار داده و نارضایتی کاربران را در پی خواهد داشت. شرکت مایکروسافت با ارائه‌ی Storage QoS در ویندوز سرور 2016، سعی در بهبود کارکرد سرورها در زمان استفاده از Storage را دارد. در قسمت اول از این سری مقالات به بررسی قابلیت‌ها و الزامات Storage QoS پرداختیم و در این مقاله که قسمت دوم (پایانی) می‌باشد، تغییرات ایجاد شده در این تکنولوژی و Policyهای آن را مورد بررسی قرار می‌دهیم.

انواع Policyهای Storage QoS

 

Storage QoS دارای دو نوع Policy می‌باشد:

  • Aggregated (که سابقا با نام SingleInstance شناخته می‌شد.)
  • Dedicated (که قبلا با نام MultiInstance معرفی شده بود.)

با استفاده از Aggregated Policyها، پارامترهای Max و Min برای مجموعه‌ی ترکیبی از فایل‌های VHD یا VHDx که در واقع فرمت هارددیسک‌های مجازی Hyper-V مایکروسافتی می‌باشند و همچنین ماشین‌های مجازی اعمال می‌گردد و در حقیقت در این حالت مجموعه‌ای ازIOPS  و پهنای باند به اشتراک گذاشته می‌شود؛ اما در صورت استفاده از Dedicated Policyها، پارامترهای Max و Min برای هر یک از فایل‌های VHD/VHDx به صورت جداگانه اعمال می‌گردد که این امر منجر به تسهیل ایجاد یک Policy واحد با محدودیت‌های مشابه برای فایل‌های VHD/VHDx می‌شود.

به عنوان مثال فرض کنید که یک Aggregated Policy با حداقل 300 IOPs و حداکثر 500 IOPs ایجاد نموده‌اید، اگر این Policy را بر روی 5 فایل مختلف VHD/VHDx اعمال کنید، اطمینان حاصل خواهید نمود که IOPs برای مجموعه‌ی این 5 فایل حداقل 300 است (البته در صورتیکه تقاضا وجودداشته باشد و سیستم ذخیره‌سازی بتواند Performance لازم را فراهم نماید) و حداکثر میزان آن نیز از 500 IOPs  تجاوز نخواهد کرد. در صورتی که حداکثر تقاضایIOPs  در فایل‌های VHD/VHDx یکسان باشد و سیستم Storage بتواند جوابگویِ آن باشد، هر فایل‌ VHD/VHDx حدوداً100 IOPs  دریافت خواهد نمود.

اما در صورتی که یک Dedicated Policy با محدودیت‌های یکسان ایجاد گردد و به فایل‌های VHD/VHDx بر روی 5 ماشین مجازی مختلف اعمال شود، هر ماشین مجازی حداقل 300 IOPs و حداکثر 500 IOPs در اختیار خواهد داشت. چنانچه حداکثر تقاضای ماشین‌های مجازی برای IOPs یکسان باشد و سیستم Storage نیز بتواند پاسخگوی آن باشد، هر ماشین مجازی حدوداً 500 IOPs دریافت خواهد نمود. اگر یکی از ماشین‌های مجازی، چندین فایل VHD/VHDx یکسان با یک Dedicated Policy مشابه داشته باشد، حداقل IOPs میان آن‌ها تقسیم خواهد شد؛ به‌طوریکه کل IO ماشین مجازی از فایل‌های تحت آن Policy، از مقدار مشخص شده برای آن‌ها تجاوز نخواهد کرد.

بنابراین اگر تعدادی فایل‌ VHD/VHDx داشته باشیم که بخواهیم ویژگی‌های عملکردی یکسان داشته باشند و در عین حال دغدغه ایجاد چندین Policy یکسان را نیز نداشته باشیم، می‌توانیم از یک Dedicated policy واحد استفاده کرده و آن را بر روی فایل‌های هر یک از ماشین‌های مجازی اعمال نماییم.

حفظ Storage QoS Policy اعمال شده به ماشین مجازی درصورت انتقال فایل‌های VHD/VHDx آن به یک Storage Cluster دیگر

تنظیمات فایل VHD/VHDx که Policy مربوط به آن را مشخص می‌نماید، در واقع GUID موجود در PolicyID می‌باشد. هنگامی‌ که یکPolicy  ایجاد می‌شود، GUID می‌تواند با استفاده از پارامتر PolicyID تعیین گردد و در صورتیکه پارامتر GUID مشخص نشده باشد، یک GUID بصورت تصادفی برای آن ایجاد می‌شود. بنابراین در صورت نیاز به انتقال فایل‌های VHD/VHDx ماشین مجازی به یک Storage Cluster جدید، ابتدا باید PolicyID مربوطه را در Storage Cluster قبلی بدست آورد، سپس یک Policy مشابه را در Storage Cluster مقصد و با همان GUID ایجاد نمود؛ در نتیجه زمانی که فایل‌های ماشین مجازی به یک Storage Cluster جدید انتقال می‌یابند، Policy با GUID مشابه بر روی آن‌ها اعمال خواهد گشت. لازم به ذکر است که در صورت استفاده از System Center Virtual Machine Manager یا به اختصار SCVMM که جهت اعمال Policyها بر روی چندین Storage Cluster مورد استفاده قرار می‌گیرد، فرایند انتقال بسیار ساده‌تر خواهد شد.

اعمال تغییرات در Storage QoS Policy

اگر یک جریان ترافیکی (Flow) وجود داشته باشد که به حداکثر میزان پارامترهای یک Policy رسیده باشد و برای تغییر آن پارامتر، نیاز به تغییر Policy باشد، امکان مشاهده سریع تغییرات انجام شده مانند Latency ،IOPS و یا Bandwidth با استفاده از دستورات PowerShell امکان‌پذیر نخواهد بود و ممکن است که تاثیر کامل تغییرات Policy برروی Flowها تا 5 دقیقه به طول انجامد. لازم به ذکر است که محدودیت‌های جدید، ظرف چند ثانیه اعمال خواهند شد اما دستور Get-StorgeQoSFlow در PowerShell ممکن است این تغییرات را تا بازه‌ی 5 دقیقه‌ای ذکر شده نشان ندهد. در صورتی که پس از اجرای دستور Get-StorageQoSFlow مقدار فعلی نشان داده شود و این دستور چندین مرتبه اجرا گردد، مقادیر بسیار متفاوتی قابل مشاهده خواهد بود زیرا مقادیر IOPS و Latency نوسان قابل ‌توجهی در هر ثانیه خواهند داشت.

قابلیت‌های اضافه شده به Storage QoS در ویندوز سرور 2016

شرکت مایکروسافت با ارائه نسخه جدید ویندوز سرور 2016، نام انواع Storage QoS Policy تغییر پیدا کرده است، بدین صورت که Multi-Instance Policy به Dedicated Policy و Single-instance به Aggregated تبدیل شده و در ضمن مدل مدیریتی Dedicated Policy نیز اصلاح گردیده است. لازم به ذکر است فایل‌های VHD/VHDX در ماشین‌های مجازیِ مشابه، که Dedicated Policy یکسانی به آن‌ها اعمال شده است، I/O اختصاص داده شده را به اشتراک نخواهند گذاشت.

Storage QoS در Windows Server 2016 دارای دو ویژگی جدید است:

  • حداکثر پهنای باند

Storage QoS در ویندوز سرور 2016، قابلیت مشخص نمودن حداکثر پهنای باندی را دارد که ممکن است توسط جریان‌های ترافیکی اختصاص داده شده به آن Policy مورد استفاده قرار گیرند. کامند MaximumIOBandwidth در دستورات StorageQosPolicy تعیین کننده‌ی این مورد بوده و خروجی آن با واحد بایت بر ثانیه بیان می‌گردد. اگر هر دو پارامتر MaximimIops و MaximumIOBandwidth در یک Policy تنظیم شوند، هر دوی آن‌ها اعمال خواهند شد و هر یک از این پارامترها که جریان ترافیک سریع‌تر به شرایط آن برسد، I/O جریان ترافیک را محدود می‌نماید.

  • نرمال‌سازی IOPS قابل پیکربندی

Storage QoS از نرمال‌سازی IOPS استفاده می‌نماید و اندازه نرمال‌سازی آن به صورت پیش فرض 8K است. علاوه بر آن Storage QoS در Windows Server 2016 قابلیت تعیین یک اندازه نرمال‌سازی متفاوت برای Storage Cluster را نیز معرفی می‌نماید. این اندازه نرمال‌سازی بر روی تمام جریان‌های ترافیکیِ Storage Cluster تاثیر گذاشته و به‌ محض تغییر، سریعا (ظرف چند ثانیه) تاثیر خود را ایجاد می‌نماید. این اندازه حداقل 1KB و حداکثر 4GB است. لازم به ذکر است در این قسمت تنظیمات بیشتر از 4 مگابایت توصیه نمی‌گردد زیرا IOs بیش از 4MB غیرمعمول است.

در ضمن، وقتی نرمال‌سازی IOPS به دلیل تغییر در محاسبه نرمال‌سازی تغییر می‌یابد، IO Pattern/Throughput یکسان در خروجی Storage QoS با اعدادIOPS  متفاوتی نشان داده ‌می‌شود. در صورت مقایسه IOPS میان Storage Clusterها، ممکن است لازم شود مقدار نرمال‌سازی هر یک از Storage Clusterها تایید گردد چراکه این مسئله بر روی IOPS نرمال‌شده که گزارش شده‌اند، تاثیر خواهد گذاشت.