یکی از نیازمندیهای رایج پیش از پیادهسازی یا انتقال بار کاری به یک محیط، فهمیدن قابلیتهای محیط میباشد. پس از پیادهسازی و پیکربندی ابتدایی، نیاز به معیارهای سنجش مرجع میباشد تا مطمئن شویم تمام پیکربندی در شرایط سالمی قرار دارد. با توجه به آنکه امروزه استفاده از vSAN در سازمان ها از اقبال مناسبی برخوردار شده است، در ادامه به بررسی نحوه عملکرد این تکنولوژی می پردازیم.
بررسی نحوه عملکرد vSAN
هدف این مقاله این است که نشان دهد چگونه میتوان عملکرد یک کلاستر vSAN را بر حسب IOPS، توان عملیاتی و میزان تاخیر سنجید. این امر با استفاده از یک ابزار Benchmarking به نام HCIBench صورت میپذیرد. Benchmarking به طور کلی با استفاده از تست I/Oی ترکیبی (Synthetic I/O Testing) اجرا میگردد. تست ترکیبی به طور معمول نیاز به سفارشیسازی دارد تا یک محیط HCI را بسنجد که HCIBench این عمل را آسان میکند. یکپارچهسازی آن در پلتفرم، به ما امکان تستهای آگاه از محیط را بر اساس طراحی کلاستر میدهد. HCIBench، VMها را در سرتاسر Hostها توزیع و پیادهسازی مینماید و به طور همزمان I/O را آغاز میکند، به مانند یک سناریوی محیط واقعی عمل می کند. به علاوه، یک رابط کاری آسان و زیبا ارائه مینماید تا نتایج را به صورت گرافیکی ارزیابی کند و استاندارد را نیز برای ابزار HCI Benchmarking فراهم میکند.
علت Benchmarkنمودن کلاسترها
از جمله مهمترین دلایل این کار عبارت است از:
- فهمیدن قابلیتهای محیط و اطمینان حاصل نمودن از عدم وجود هرگونه اختلالی
- تایید این امر که نیازمندیهای این طرح یا User Acceptance Testing (UAT) برطرف میگردد
- ارجاع شمارههایی که در صورت مواجهه با یک مشکل عملکردی، جهت مقایسه قابل استفادهاند
- برای اثبات مفاهیم (PoC)
- ایجاد یک مبنای اصلی و قرار دادن انتظارات کاربر پس از اجرا
مشتقات دیگری نیز ممکن است از موارد فوق به دست آید، بنابراین شناخت قابلیت کلاستر چندین حسن دارد.
در انتهای روند تستها، انتظار داریم که به سوالات زیر در رابطه با سنجش vSAN پاسخ بدهیم :
- بیشترین میزان IOPS ترکیبی که میتوان به دست آورد چقدر است؟
- میزان تاخیر احتمالی در یک تعداد مشخص از IOPS چقدر است؟
- حداکثر توان عملیاتیای که میتوان به دست آورد چقدر است؟
به مثابه تمام راهکارهای Storage، فعال نمودن سرویسهای دادهای همچون حذف دادههای تکراری، فشردهسازی و رمزگذاری، سرباری را متحمل میشوند که بر عملکردشان تاثیر میگذارد. جهت ایجاد یک مبنای اصلی عملکرد، توصیه میگردد که تمام سرویسهای دادهای، غیر از Checksum، غیرفعال بمانند. همچنین، Policyهای Storage نیز با تنظیمات پیشفرض باقی میمانند. انتخاب RAID-1 Mirroring یا RAID-5 Erasure Coding ممکن است بر نتایج نیز اثر گذارد، از Mirroring برای عملکرد بهتر و Erasure Coding برای ظرفیت بیشتر مورد استفاده قرار میگیرد.
جهت مشاوره رایگان و یا راه اندازی زیرساخت مجازی سازی دیتاسنتر با کارشناسان شرکت APK تماس بگیرید. |
بررسی IOPS در vSAN
تعداد IOPSای که یک سیستم Storage میتواند ارائه نماید بستگی به مجموعه اجزای سختافزار (Hardware Componentry) و معماری سیستم دارد. پارامترهای گوناگونی از جمله RAID، میزان بهرهوری و … وجود دارد که IOPS ارائهشده را اداره میکنند. از آنجایی که vSAN یک سیستم Storage توزیعی است، موضوعات بیشتری وجود دارند که بسته به قابلیت دسترسی و نیازمندیهای عملکردی، بر اجرای آن تاثیر میگذارند. جهت استنباط ظرفیت IOPS، میتوان تعداد Threadها را به ازای هر Object به تدریج افزایش داد و تستها را تا جایی که Threadهای اضافی منتهی به IOPS رو به رشد (Incremental IOPS) نمیگردند، تکرار نمود. نکتهی جالب توجه دیگر این است که I/Oها ارتباط مستقیمی با میزان تاخیر دارند، یعنی وقتی حجم I/O (حجم Block یا Payload به ازای هر I/O) افزایش مییابد، تعداد IOPS کاهش و میزان تاخیر افزایش مییابد.
میزان تاخیر
میزان تاخیر در اصل مقدار زمان تکمیل یک عملیات خواندن یا نوشتن (معمولا بر حسب هزارم ثانیه) میباشد. این معیار سنجش، اغلب نقطهی آغازین هرگونه Benchmarking عملکرد یا عمل عیبیابی برای معلوم کردن میزان تندی یا کندی اجرای یک بار کاری میباشد. یک مدیر برنامهی کاربردی دور از ذهن است که درک کافی از بهکارگیری سیستم Storage داشته باشد و به آنچه که برنامهی کاربردی یا سیستم عامل Guest در حال تولید است، محدود است. یک برنامهی کاربردی ممکن است IOPS کمتری تولید کند و در عین حال میزان تاخیر بیشتری داشته باشد. این امر ممکن است به خاطر خصوصیات I/O، شامل حجم I/O، نسبتهای Read/Write و همسانی یا مغایرت با سایر منابع I/O باشد.
مفهوم توان عملیاتی در vSAN
توان عملیاتی، حجم و سرعت دادههای منتقلشده را نشان میدهد و ساختاری برای IOPS و میزان تاخیر ارائه مینماید. برای معلوم کردن حداکثر توان عملیاتی ممکن، تستها باید با Payloadهای بیشتری انجام شوند. هرچه حجم I/O بیشتر باشد، توان عملیاتی بهتر خواهد بود. باید توجه داشت حال که هرچه I/O، Payload بیشتری حمل کند، تعداد IOPS به همان نسبت کاهش خواهد داشت. حجم Payload یک I/O به حجم 256K برابر با 64تا I/O به حجم 4Kمیباشد.
متدولوژی تست
فرآیند پیادهسازی برای HCIBench در اینجا مورد بحث قرار نمیگیرد و در صورت علاقه میتوان آن را در HCIBench Documentation یافت. HCIBench پارامترهای تست پیشفرض مشخصی را که معرف انواع بارکاری عمومی باشند را استفاده می کند. آنهایی که با تست ترکیبی آشنایی ندارند میتوانند صرفا یک نوع بار کاری دستهبندیشده به عنوان EASY RUN بردارند و آغاز به کار کنند. در پشت پرده، EASY RUN تعداد VMها، دیسکها و حجم هر دیسک داده را بر اساس کلاستر vSAN مقصد، تخمین میزند.
در اینجا یک اسکرینشات نمونه از صفحهی پیکربندی میبینیم.
پس از تکمیل تست EASY RUN شما باید یک فایل خروجی شبیه به vdb-8vmdk-100ws-4k-70rdpct-100randompct-4threads-xxxxxxxxxx-res.txt ببیند. این فایل خصوصایت I/O را نشان میدهد:
Block size : 4k
Read/Write (%) : 70/30
Random (%) : 100
OIO (per vmdk) : 4
با تست بالا، یک مبنای اصلی برای IOPS، میزان تاخیر و توان عملیاتی به دست میآید. گام بعدی این است که پارامترها جهت تحت فشار قرار دادن سیستم برای نتایج مطلوب، تنظیم گردند. این امر با افزایش همسانی قابل انجام میباشد، یعنی تغییر تعداد Threadها یا (Outstanding I/O (OIO. افزایش OIO منجر به افزایش IOPS و میزان تاخیر میگردد (باید توجه داشت که افزایش در میزان تاخیر، کاهش عملکرد را نشان میدهد).
جهت تغییر OIO، باید یک پارامتر دلخواه، چنان که در پایین نشان داده میشود، ساخته شود.
1.باید وارد صفحهی پیکربندی HCIBench شد
2.EASY RUN را فعال نمود
3.همانگونه که در تصویر زیر نشان داده میشود بر روی گزینهی ADD کلیک شود
4.تعداد Threadها به ازای هر vmdk (افزایش/کاهش) به 4 تغییر کند
5.تمام تنظیمات دیگر همانند EASY RUN، تنظیم گردند
همچنین ممکن است نیاز باشد تمام مراحل بارها و بارها تکرار شوند تا زمانی که فرد به نقطهی عطفی برسد که در آن Threadهای اضافی به طور قابل توجهی IOPS را بهبود نمیبخشند، به عبارتی میزان افزایش IOPS بسیار کمتر از میزان افزایش در تاخیر باشد.
از نظر توان عملیاتی، همین تست میتواند با حجم I/Oی بیشتری تکرار شود. اکثر سیستم عاملهای Guest امروزی Writeهای با محدودهی 32k تا یک 1MB را اجرا مینمایند. میتوان حجم I/Oی 32k – 256k را برای به دست آوردن تخمینی از قابلیت توان عملیاتی، تست نمود.
- تست ترکیبی میتواند خصوصیات کلی یک بار کاری را به طور تقریبی تخمین بزند اما نمیتواند به طور دقیق همان نتیجه را پیشبینی نماید که بیشتر به خاطر ماهیت چندسطحی برنامههای کاربردی و زمان میباشد.
- تستها بر محور معیارهای سنجش مشخص Storage میباشند، نه بر پایه CPU یا حافظه.
- حجم I/O که در این مقاله بدان اشاره شد، حجم هر I/O میباشد. از به کار بردن اصطلاح «حجم Block» پرهیز شد چراکه ممکن بود به عنوان یک Attribute فایل سیستم نیز تفسیر گردد.
نکات کلیدی
- شناخت محیط و سنجش عملکرد یک کلاستر پشتیبانیشده توسط vSAN
- مرجع استاندارد و با ارزش ارزیابی عملکرد پس از پیادهسازی آغازین
- مقیاس با معیارهای سنجش عملکرد موجود از یک پیکربندی سختافزاری