شرکت پردیس پارس در زمینه خدمات فناوری اطلاعات فعالیت گستردهای دارد و هدف آن ارائه خدمات شبکه در بالاترین سطح کیفیت و کسب رضایت مشتری میباشد. راهاندازی بستر مناسب شبکه برای سازمان شما، نصب، پیادهسازی و راهاندازی شبکه و سرور و راهاندازی انواع سرویسهای ویندوزی از جمله اهداف ما میباشد. در این مقاله که توسط آقای مهندس اشکان پزشکی تهیه و تدوین شده است قصد داریم شما را با مفاهیم RAID و Disk Performance بیشتر آشنا کنیم.
زمانی که تصمیم دارید یک استورج را پیکربندی کنید مهم ترین قسمت تعیین نوع RAID مورد استفاده میباشد. این RAID بندی به دو عامل مهم بستگی دارد
1- Capacity
2- Performance
در این مقاله ما در مورد کارایی یا Performance صحبت میکنیم.
معیار سنجش در کارایی دیسک (Disk Performance) واحدی با نام IOPS یا Input/Output Per Second می باشد. یک درخواست خواندن یا یک درخواست نوشتن برابر است با یک واحد IO . هر دیسک در سیستم ذخیره ساز (Storage) می تواند مقادیر مشخصی از IO را بر اساس سرعت دورانی دیسک، تاخیرمتوسط و متوسط مدت زمان جستجو فراهم نماید. بنده لیست بعضی از میانگینهای دیسک بر اساس سرعت را برای شما گردآوری کردم :
IOPS | Disk Speed |
175 | 15000 |
125 | 10000 |
75 | 7200 |
50 | 5400 |
برای محاسبه بعضی از IOPS های اصلی مشکلی نخواهیم داشت. مثلا فرض میکنیم سه JBOD دیسک داریم با سرعت 5400 RPM، ماکسیزمم IOPS را هم 150 درنظر میگیریم. این محاسبه بر اساس تعداد دیسک¬ها برابر مقدار IOPSی که هر دیسک می¬تواند فراهم نماید صورت گرفته است.
حال فرض کنید این دیسک ها در یک RAID قرار دارند. وقتی دیسک را در RAID میبرید امکان محاسبه درست IOPS از بین میرود زیرا ما نمی توانیم ماکزیمم مقدار IOPS را بدست بیارویم به این دلیل که بعضی محاسبات مربوط به RAIDها برای انجام نیاز دارند دیتاهایی را بر روی دیسک رایت نمایند به همین دلیل است که وقتی دیسکی fail میشود امکان ادامه فعالیت بدون هیچ گونه مشکلی در دیتاها وجود دارد.
با یک مثال کاملا مشکل برای شما حل خواهد شد.
فرض کنید تصمیم داریم با 4 عدد دیسک یک RAID4 در سیستم ایجاد نماییم. سه عدد دیسک حاوی دیتا بوده و دیسک آخر مربوط به اطلاعات parity میباشد. برای تعیین و محاسبه اطلاعات parity از XOR استفاده میشود. همان طوری که در زیر مشاهده میفرمایید ما سه دیسک داریم که دیتا بر روی آنها نوشته میشود و سپس اطلاعات parityها برای 4 دیسک محاسبه میشود.
عمل write بر روی دیسک انجام نمیشود تا زمانی که هم دیتا و هم اطلاعات parityها به صورت کامل بر روی دیسک ها نوشته شود. مدت زمان اضافی که شما منتظر هستید تا اطلاعات parity بر روی دیسک نوشته شود RAID penalty نام دارد.
توجه داشته باشید که برای عملیات خواندن نیازی به محاسبه parity نمیباشد، بنابراین penalty مرتبط با عمل خواندن وجود ندارد. فقط وقتی که بحث نوشتن بر روی دیسک مطرح میشود شما وارد بازی RAID penalty میشوید.
در نظر داشته باشید RAID0 هیچ گونه write penalty ندارد زیرا parity محاسبه نمیشود.
Write Penalty | RAID |
2 | 1 |
4 | 5 |
6 | 6 |
2 | DP |
2 | 10 |
RAID1
انصافا ساده ترین محاسبه penalty برای RAID1 یا mirror میباشد. write penalty این RAID عدد 2 است. زیرا عمل رایت 2 بار اتفاق میافتد، یک رایت بر روی هر دیسک انجام میشود.
RAID5
در RAID5 بحث write penalty کاملا طول میکشد زیرا چگونگی پخش دیتا روی دیسک پیچیده میباشد. RAID5 چیزی شبیه به RAID4 بوده با این تفاوت که دیتاهای مرتبط با parity را در تمام دیسک ها پخش میکند. در RAID4، یک دیسک مسئولیت تمام parity ها را برعهده دارد، بنابراین برای هر رایت نیاز داریم که یک parity هم بر روی دیسک نوشته شود در حالی که دیتا بر روی سه دیسک (یا بیشتر) پخش میشود.
تغییرات در RAID5 بوسیله خطی کردن دیتا و parity بر روی دیسکهای مختلف به شکل زیر میباشد:
Write penalty در RAID5 عدد 4 است (البته در این سناریو). زیرا هر تغییر بر روی دیسک، ما در حال خواندن دیتا، خواندن parity و سپس رایت کردن اطلاعات parity قبل از کامل شدن عملیات میباشد.
RAID6
RAID6 تقریبا فرآیندی یکسان و شبیه به RAID5 دارد به جز یکبار محاسبه parity که در این نوع از RAID این اتفاق دو بار میافتد. بنابراین ما سه بار خواندن را انجام میدهیم و سپس سه بار نوشتن انجام میشود. یک penalty با عدد 6 حاصل میگردد!!
(RAID DP (Double Parity
در این RAID عجیب ما دارای دو دیسک برای parityها هستیم، بنابراین پیاده سازی این نوع RAID وقتی که دو دیسک fail میگردد از loss دیتا جلوگیری خواهد کرد.
این RAID چیزی شبیه به RAID6 است و همین امر سبب میشود که شما تصور کنید که penalty هم شبیه به RAID6 است. Penalty در RAID6 در واقع خیلی پایین است. این امر شاید به خاطر وضعیت (Write Anywhere File Layout(WAFL میباشد. WAFL اساسا دیتاهای جدید را بر روی مکانهای جدید روی دیسک رایت کرده و همین امر سبب میشود نشان گرها مکان جدید دیتا را نمایش دهند و این مکانیزم باعث حذف شدن read دیتا از یک مکان میشود.
برآورد IOPS
حالا که آشنایی لازم با penaltyها را بدست آوردیم میتوانیم IOPS موجود بر روی استورج ها را محاسبه نماییم. لطفا موارد و فاکتورهایی که سبب محدودیت بر روی IOPS میشود را فراموش نکنید مواردی مانند ترافیک شبکه برای iSCSI یا FCOE و …
فرمول محاسبه IOPS در حالت خام و عملیاتی:
Raw IOPS = Disk Speed IOPS * Number of Disks
Functional IOPS = (Raw IOPS * Write% /RAID Penalty) + (Raw IOPS * Read%)
مثال: ما در شرکت پردیس پارس 5 عدد دیسک با سرعت 5400 RPM در اختیار داریم. کل Raw IOPS را محاسبه نمایید:
(50 IOPS * 5 Disks = 250 IOPS)
اگر این دیسک ها در حالت RAID5 قرار دهیم ، penalty برای حالت read دیسک ها نخواهیم داشت، اما در حالت write ما 4عدد penalty خواهیم داشت. فرض را میگیریم که 50% مربوط به read و write میشود.
250 Raw IOPS * .5/4) + (250 * .5) = 156.25 IOPS)