آموزش رایگان Data Storage Networking؛ نوشتن و خواندن اطلاعات روی هاردها چگونه است؟
اصطلاحاتی همچون تاخیر پردازشی، عملیات ورودی و خروجی، نوشتن تصادفی در قیاس با متوالی، نحوه محاسبه اطلاعات ارائه شده توسط فروشندگان و… موارد مهمی در مورد دیسک درایوهاست. آشنایی با این اصطلاحات به شما کمک میکند دیسک درایوهایی متناسب با نیازهای کاری و با سرعت مناسب برای عملیات سازمانی خود تهیه کنید. هارد دیسک از فاکتورهای تأثیرگذار بر روی قیمت لپ تاپ و قیمت کامپیوتر است، آشنایی با عملکرد آن در انتخاب بهترین هاردمتناسب با نیاز ما لازم است. برای آشنایی با این مفاهیم با فالنیک همراه باشید.
- تأخیر چرخشی در هارد چیست؟
- آشنایی با مفهوم IOPS در ذخیره سازی
- عملیات ورودی/خروجی چیست؟
- تصادفی در مقابل IOPS متوالی
- مفهوم Cache Hits و Cache Misses
- دو ترفند تنها تبلیغاتی استفاده شده از سوی فروشندگان
- محاسبه IOPS دیسک درایو
- مگابایت بر ثانیه چیست؟
- حداکثر نرخ انتفال و نرخ انتقال پایدار (Maximum and Sustained Transfer Rates)
- قابلیت اطمینان درایو دیسک چیست؟
- میانگین زمان بین خرابی/شکست چیست؟
- نرخ خرابی سالانه چیست؟ (Annualized Failure Rate)
تأخیر چرخشی در هارد چیست؟
تأخیر چرخشی یا rotational latency تعریف دقیقتر تأخیر مکانی است و به مدت زمانی اشاره دارد که هدهای خواندن و نوشتن به مکان درستی روی دیسک درایو برسند و در مسیر حرکتی قرار گیرند.
تأخیر چرخشی بهشکل مستقیم با معیار سنجش دور در دقیقه (RPM) یک دیسک درایو مرتبط است. دیسک درایوهایی که سرعت بیشتری دارند، تأخیر چرخشی کمتری دارند، بهطوریکه زمان جستوجو تنها در بارهای کاری تصادفی و آن هم در هر دو بار کاری تصادفی و متوالی تأثیرگذار و قابل توجه است.
بهطور معمول، فروشندگان دیسک درایو، تأخیر چرخشی را در واحد میلیثانیه بیان میکنند. در دنیای واقعی برای آنکه مقدار متوسط تأخیر یک هارددیسک را مشاهده کنید باید به عبارتی که شبیه به مثالهای زیر هستند روی جعبه محصول مراجعه کنید.
15K drive = 2.0 ms
7.2K drive = 4.16 ms
شایان ذکر است که تمام معیارهای عملکردی به شدت به متغیرهای آزمون وابسته هستند. به عنوان مثال، هنگام آزمایش تعداد عملیات IOPS که یک دیسک قادر به مدیریت آنهاست، نتایج تا حد زیادی به اندازه عملیات I/O بستگی دارد. عملیات ورودی/خروجی بزرگ نسبت به عملیات ورودی/خروجی کوچکتر به زمان بیشتری نیاز دارند.
آشنایی با مفهوم IOPS در ذخیره سازی
عملیات ورودی/خروجی در ثانیه IOPS سرنام input/output operations per second است و به صورت آی-اوپس (eye-ops) تلفظ میشود. برای اندازهگیری و بیان عملکرد دیسک درایوهای مکانیکی، درایوهای حالت جامد و آرایههای ذخیرهسازی استفاده میشود. بهعنوان یک معیار عملکردی، iops برای اندازهگیری عملکرد بارهای کاری تصادفی ورودی/خروجی در کاربردهایی مثل پایگاه داده مفید است. متأسفانه، برخی شرکتهای فعال در زمینه تولید دیسکهای ذخیرهساز از iops بهشکل غیر اصولی استفاده میکنند تا بتوانند معیار عملکرد رسانه ذخیرهساز خود را بهتر نشان دهند.
فروشندگان، بهویژه فروشندگان آرایههای ذخیرهسازی، اغلب بسیار مشتاق هستند در مورد اعداد دیوانهکننده IOPS تبلیغات رسانهای کنند، به این امید که شما آنقدر تحت تأثیر قرار بگیرید که نتوانید در مقابل خرید کالاهای آنها مقاومت کنید. بنابراین، هنگام خرید تجهیزات ذخیرهساز و هنگامی که مقادیر مرتبط با IOPS ارائه شده توسط فروشنده را مشاهده میکنید خیلی به آنها اعتماد نکنید و سراغ بنچمارکهایی بروید که به شکل عملی این محصولات را ارزیابی فنی کردهاند. بهعنوان یک قاعده کلی به این نکته دقت کنید که اعداد ارائه شده برای IOPS با آنچه در دنیای واقعی مشاهده میکنید تفاوتهایی دارد، زیرا مقدار عملیات ورودی و خروجی در واحد ثانیه در محیطهای آزمایشگاهی و تحت شرایط خاص انجام میشود، بنابراین طبیعی است که بالاترین مقدار ثبت شود.
عملیات ورودی/خروجی چیست؟
یکی از موضوعات مهمی که باید در مورد آن اطلاع داشته باشید، اصطلاح عملیات ورودی/خروجی معادل input/output است. I/O Operation اساساً عملیات خواندن یا نوشتن است که یک دیسک یا آرایه دیسک در پاسخ به درخواست یک میزبان (معمولاً یک سرور) انجام میدهد. ممکن است متوجه شوید که برخی از کارشناسان دنیای شبکه به فرآیند نوشتن و خواندن اطلاعات از روی دیسک I/O یا IOP میگویند. درست است که این نوع ادبیات در ارتباطات کلامی بسیار رایج است، اما در نگارش باید از واژه عملیات (Operation) همراه با دو واژه ورودی/خروجی (Input/Output) استفاده کنیم. بنابراین صحیحترین عبارت عملیات I/O است، اما برخی از افراد در گفتار معمولیتر و اغلب هنگام اشاره به یک عملیات ورودی/خروجی از نسخه کوتاه شده استفاده میکنند. بدیهی است که اگر یک IOP را به یک عملیات ورودی/خروجی ترجمه کنید، حق مطلب را ادا نکردهاید.
هنگامی که روی سندی کار میکنید و دکمه Save را کلیک میکنید و رایانه شما محتوای درون حافظه را به دیسک درایو انتقال میدهد، یک یا چند کار خواندن و نوشتن (IOPS) انجام میدهد تا اطلاعات بهدرستی به دیسک انتقال پیدا کنند. حال اگر بخواهید سند را باز کنید تا آنرا چاپ کنید، سیستم دوباره عملیات IOPS را انجام میدهد تا به اطلاعات دسترسی پیدا کند.
نکته دیگری که باید به آن دقت کنید این است که انواع مختلفی از عملیات I/O وجود دارد که از مهمترین آنها عبارتند از:
- خواندن (Read)
- نوشتن (Write)
- تصادفی (Random)
- ترتیبی (Sequential)
- کش کردن (Cache hit)
- از دست دادن حافظه کش/پنهان (Cache miss)
علاوه بر اصطلاحات مذکور، موضوع مهم دیگری که در این زمینه وجود دارد، اندازه عملیات I/O است. هر زمانکه مسائل، جنبه فنی پیدا میکنند و این مسائل ممکن است بر عملکرد دیسک درایو و IOPS تاثیر منفی بگذارد، فروشندگان سعی میکنند شما را گیج کنند به این امید که بتوانند شما را تحت تاثیر قرار دهند.
تصادفی در مقابل IOPS متوالی
همانطور که اشاره کردیم، دیسک درایوهای مکانیکی در بارهای کاری متوالی عملکرد خوبی دارند، اما در بارهای کاری تصادفی عملکرد چندان جالبی ارائه نمیکنند. از طرفی رسانه حالت جامد (ssd) بر مبنای بارهای کاری تصادفی کار میکند و شاید در بارهای کاری متوالی عملکرد خیلی جالبی ارائه نکند. برای آنکه بتوانید این موضوع را به شکل دقیق متوجه شوید، مجبور هستید به دنیای پیکربندیهای پیچیدهای که بر صنعت دیسک درایوها حاکم است، وارد شوید.
در شکل زیر نمای سادهای از یک صفحه درایو دیسک را مشاهده میکنید. یک ترک واحد با شانزده بخش برجسته نشان داده شده است. تراک 2 سومین تراک از نمای بیرونی است. دقت کنید در دنیای کامپیوترها ترکها با 0 و نه 1 آغاز و شمارهگذاری میشوند.
در تصویر بالا فرآیند نوشتن متوالی به هشت سکتور در یک مسیر مشخص به ترتیب از سکتورهای 0 تا 7 انجام میشود. این فرآیند را میتوان در طول یک چرخش دیسک تکمیل کرد. به یاد داشته باشید که دیسکها هزاران بار در دقیقه میچرخند. هنگامی که دادهها روی دیسک نوشته شدند، در مراجعه بعدی که قصد خواندن دادهها را داریم، فرآیند بازخوانی دادهها از دیسک میتواند با یک چرخش دیسک انجام شود. نه تنها دیسک باید فقط یک بار بچرخد، بلکه هدهای خواندن/نوشتن مجبور نیستند جستوجویی برای اطلاعات انجام دهند. بنابراین شما تاخیر مکانی صفر دارید. با اینحال، باید مدت زمانی را صبر کنیم تا بخشهای صحیح زیر هدهای R/W برسند، در نتیجه هنوز مقداری تأخیر چرخشی وجود دارد که چندان محسوس نیست.
حالا بیایید به بار کاری تصادفی نگاهی داشته باشیم. برای آنکه قیاس دقیقی داشته باشیم، در اینجا نیز فرض میکنیم در نظر داریم دادهها را به هشت سکتور بخوانیم یا بنویسیم و مانند مثال قبلی، اینکار را تنها روی 2 ترک انجام دهیم. این بار، سکتورهایی که نیاز به خواندن آنها داریم به ترتیب در موقعیتهای 5 و 2 و 7 و 4 و 0 و 6 و 3 قرار دارند. اگر هد R/W از بالای سکتور 0 فرآیند خواندن را آغاز کنند، این الگوی خواندن به پنج دور چرخش نیاز دارد. بهطوری که فرآیند به شرح زیر انجام میشود:
- بخش 5 انتخاب میشود.
- بخشهای 2 و 7 و 8 انتخاب میشوند.
- بخش 4 انتخاب میشود.
- بخشهای 0 و 6 انتخاب میشوند.
- بخش 3 انتخاب میشود.
همانگونه که مشاهده میکنید، فرآیند مذکور منجر به کار بسیار بیشتر و زمان بسیار بیشتر برای سرویسدهی به یک درخواست خواندن میشود. در اینجا به یک نمونه ساده اشاره کردیم و همه این فرآیندها میتوانند پیچیدهتر شوند، زمانی که مبحث جستوجو (Seek) و صفحات مختلف به بحث وارد میشوند.
البته سازندگان دیسک درایوها باهوشتر از این هستند که اجازه دهند چنین مشکلی باعث کاهش عملکرد دستگاههای آنها و عدم فروش آنها شود. آنها برای حل این مشکل یک بافر کوچک به دیسک اضافه کردهاند که در آن یک صف از عملیات I/O نگهداری میشود. هنگامی که یک جریان ورودی/خروجی مانند بار کاری تصادفی وارد بافر میشود، عملیات I/O ارزیابی میشود تا مشخص شود که آیا میتوان آنها را به ترتیب کارآمدتری سرویسدهی کرد یا خیر. در مثال ما، ترتیب خواندن به ترتیب از سکتورهای 0 و 2 و 3 و 4 و 5 و 6 و 7 و 8 انجام میشود. در بافر، به هر عملیات I/O یک برچسب داده میشود و در ادامه به عملیات I/O رسیدگی میشود. با توجه به این مکانیزم برچسبگذاری، هرچه صف بزرگتر باشد، عملکرد بهبود پیدا میکند. در مثال ما، برچسبزنی دستورات خواندن سکتورها بهگونهای بهینه میشوند که دسترسی به اطلاعات تنها در یک چرخش انجام شود.
مفهوم Cache Hits و Cache Misses
عملیات ورودی و خروجی مرتبط با کش (Cache-hit IOPS) که گاهی اوقات به آنها IOPS کش میگویند، مجموعه عملیاتی هستند که برای انجام عملیات زیربنایی از کش به جای هارد دیسک استفاده میکنند. از آنجایی که حافظه کش (پنهان) معمولاً DRAM است، عملیات ورودی/خروجی که توسط کش سرویسدهی میشوند، در مقایسه با عملیات ورودی/خروجی که باید از دیسک انجام شوند، چندین برابر سریعتر هستند.
هنگامی که به ارقام IOPS ارائه شده توسط فروشندگان بزرگ آرایه دیسک نگاه میکنیم، بسیار مهم است که بدانیم آیا اعداد IOPS درج شده در کش کردن (Cache Hits) یا از دست دادن کش (Cache Miss) هستند. دقت کنید که نرخ عملیات ورودی و خروجی IOPS-Cache-Hit چند برابر بیشتر از IOPS cache-miss هستند.
در دنیای واقعی، شما ترکیبی از cache hit و cache miss را خواهید داشت، مخصوصاً در بارهای کاری خواندنی، بنابراین اگر هنگام خرید آرایههای ذخیرهساز تنها به مقدار IOPS Hit دقت کنید، ممکن است یک آرایه یا دیسک نه چندان جالبی خریداری کنید. عباراتی مانند 600000 IOPS کاملا تبلیغاتی هستند و تصویر روشنی در اختیارتان قرار نمیدهند، مگر اینکه با اطلاعات بیشتری مانند 70% خواندن، 30% نوشتن، 100% تصادفی، اندازه ورودی/خروجی 4K و اطلاعات مرتبط با حافظه کش همراه باشند.
دو ترفند تنها تبلیغاتی استفاده شده از سوی فروشندگان
در دنیای واقعی، فروشندگان برای تحت تاثیر قرار دادن شما به خرید یک محصول از دو ترفند رایج استفاده میکنند.
فروشندگان آرایههای ذخیرهسازی از ابزارهای عملکردی شناختهشده در صنعت، مانند Iometer استفاده میکنند، اما آنها را به گونهای پیکربندی میکنند که بارهای کاری غیرواقعی را ملاک عمل قرار دهند تا عملکرد درایو را بهتر از آنچه است نشان دهند. یکی از حربههایی که آنها استفاده میکنند محاسبه فرآیند خواندن و نوشتن روی درایوهایی است که تمامی اطلاعات آنها در سکتورهای پشت سرهم قرار دارند. در این حالت هدهای خواندن و نوشتن مجبور نیستند به سکتورها و بخشهای مختلف یک دیسک مراجعه کنند تا اطلاعات را بخوانند، بنابراین بالاترین نرخ دسترسی و کمترین نرخ تاخیر را نشان میدهند.
یکی دیگر از ترفندهای قدیمی این است که حجم کار نمونه به گونهای آماده میشود که حافظه پنهان (کش) مسئولیت پاسخگویی به تمام ورودی/خروجی را داشته باشد. طبیعی است در چنین شرایطی بالاترین نرخ عملیات IOPS ثبت میشود، در حالی که در دنیای واقعی چنین حالتی هیچگاه محقق نمیشود.
هنگامی که دادههای مربوط به بنچمارکها را مشاهده میکنید، همیشه اندازه حجم منطقی آزمایش را با مقدار حافظه پنهان در سیستم مورد آزمایش مقایسه کنید. اگر حجم دستکم دو برابر بیشتر از اندازه حافظه نهان نباشد، به این معنا است که هنگام خرید درایو به معیاری که روی جعبه محصول درج شده دست پیدا نمیکنید. بنابراین مراقب باشید خرید درایوها در دام ترفندهای تبلیغاتی گرفتار نشوید.
محاسبه IOPS دیسک درایو
یک راه سریع و آسان برای محاسبه عملیات IOPS که یک درایو دیسک قادر به سرویسهی است، استفاده از این فرمول است:
1/(x+y) * 1000
در این فرمول x متوسط زمان جستجو و y متوسط تأخیر چرخشی را نشان میدهد. بهطور مثال، یک درایو با میانگین زمان جستجوی 3.5 میلیثانیه و متوسط تأخیر چرخشی 2 میلیثانیه، مقدار IOPS برابر با 181 را نشان میدهد.
1 / (3.5 +2)* 1000 = 181.81
دقت کنید این فرمول تنها برای دیسک درایوها و نه برای رسانههای حالت جامد یا آرایههای دیسک با حافظه کش بزرگ قابل استفاده است.
مگابایت بر ثانیه چیست؟
مگابایت در ثانیه (MBps) سرنام Megabytes per second یکی دیگر از معیارهای عملکردی است. این معیار بیانگر مقدار بارپردازشی در واحد مگابایت در ثانیه است که یک دیسک درایو یا آرایه ذخیرهسازی قادر به پردازش آنها است. اگر IOPS در اندازهگیری بارهای کاری تصادفی بهترین است، مگابایت بر ثانیه هنگام اندازهگیری حجمهای کاری متوالی مانند استریم چندرسانهای یا کارهای پشتیبانگیری بزرگ بسیار مفید است.
دقت کنید که مگابیت در ثانیه (MBps) با مگابیت در ثانیه (Mpbs) یکسان نیست. MBps به معنای مگابایت بر ثانیه مگابایت است، در حالی که Mbps به معنای مگابیت بر ثانیه مگابیت بر ثانیه است. 1 مگابایت بر ثانیه برابر با 1000 کیلوبایت در ثانیه است.
حداکثر نرخ انتفال و نرخ انتقال پایدار (Maximum and Sustained Transfer Rates)
حداکثر نرخ انتقال – maximum transfer rates عبارت دیگری است که در رابطه با عملکرد دیسک درایو استفاده میشود. بهطور معمول، برای توصیف بالاترین نرخ انتقال ممکن یک دیسک درایو در شرایط بهینه استفاده میشود. حداکثر نرخ انتقال پایدار – sustained transfer rates به اعداد و ارقامی اشاره دارند که دیسک درایوها نمیتوانند در آن بازه خدمترسانی کنند. بنابراین برای محاسبه نرخ انتقال پایدار باید از معیار بهتری که نرخ انتقال پایدار (STR) است استفاده کنید.
STR سرعتی است که یک دیسک درایو میتواند دادههای متوالی پخش شده در ترکهای مختلف را بخواند یا بنویسد. از آنجایی که معیار فوق دادههای توزیع شده در مسیرهای مختلف را شامل میشود، برخی از سربارهای نسبتاً واقعی مانند سوئیچینگ هد R/W و سوئیچینگ مسیر را مدنظر قرار میدهد. به همین دلیل است که معیار STR یکی از مفیدترین معیارها برای اندازهگیری عملکرد دیسک درایو است.
در زیر نمونهای از تفاوت بین حداکثر سرعت انتقال و نرخ انتقال پایدار دیسک درایوی که سرعتی برابر با 15K دارد را مشاهده میکنید:
حداکثر (Maximum): 600 مگابایت در ثانیه
پایدار (Sustained): 198 مگابایت در ثانیه
قابلیت اطمینان درایو دیسک چیست؟
قابلیت اطمینان هارد درایو معادل disk drive reliability است. شکی نیست که دیسک درایوها قابل اعتمادتر از گذشته شدهاند اما دیسک درایوها به مرور زمان فرسوده میشوند و زمانی که از کار میافتند، دردسرهای بزرگی پدید میآورند. به همین دلیل، باید راهحلهای ذخیرهسازی قدرتمندی برای مقابله با خرابی دیسک درایو آماده کنید.
همچنین، شایان ذکر است که درایوهای کلاس سازمانی قابل اعتمادتر از درایوهای ارزانتری هستند که کاربران عادی از آنها استفاده میکنند. از مهمترین دلیلی که باعث شده درایوهای کلاس سازمانی قابل اعتمادتر باشند عبارتند از:
- درایوهای کلاس سازمانی اغلب با مشخصات بالاتر و قطعات با کیفیت بهتر ساخته میشوند.
- درایوهای سازمانی معمولاً در محیطهایی استفاده میشوند که برای بهبود قابلیت اطمینان دیسک درایوها و سایر تجهیزات رایانهای طراحی شدهاند. به عنوان مثال، دیسک درایوهای کلاس سازمانی اغلب در محفظههای مخصوص و آرایههای دیسک پیشرفته نصب میشوند. این آرایهها برای به حداقل رساندن لرزش، طراحی شدهاند و از مکانیزم خنککنندگی قدرتمند و منابع تغذیه کارآمدی استفاده میکنند. آنها همچنین در مراکز دادهای قرار میگیرند که دما و رطوبت آنها به دقت کنترل میشوند و میزان گرد و غبار بسیار پایین و مشکلات مشابهی دارند.
حال این دیسک درایوها را با نمونههایی که روی کامپیوترهای شخصی دارید مقایسه کنید.
میانگین زمان بین خرابی/شکست چیست؟
وقتی در مورد قابلیت اطمینان دیسک درایوها صحبت میکنیم، به معیار مهمی میرسیم که میانگین زمان بین خرابی یا به اختصار MTBF نام دارد. mtbf مخفف mean time between failure است. میانگینی که میتواند بهطرز وحشتناکی پیچیده باشد و گاهی اوقات برداشتهای اشتباهی از آن انجام میشود.
بهطور معمول هنگام ساخت یک محصول متوسط زمان بین دو خرابی بهعنوان شاخصی کمّی جهت عملکرد مطلوب در نظر گرفته میشود. به بیان ساده mtbf به میانگین بازه زمانی بین یک خرابی ذاتی و خرابی که حاصل از فرسایش یک قطعه در هارد دیسک در اثر مستهلک شدن در طول کارکرد آن و در نهایت خراب شدن هارد دیسک است اشاره دارد. در واقع، این مسئله را شرح میدهد که وقتی یک هارد دیسک خراب میشود و دوباره تعمیر میشود و به حالت عملیاتی بر میگردد چه مدت زمانی (بر اساس ساعت) انتظار میرود به درستی کار کند تا دوباره خراب شود. شکل زیر این موضوع را نشان می دهد.
در مجموع معیار mtbf معیار چندان مفیدی نیست.
نرخ خرابی سالانه چیست؟ (Annualized Failure Rate)
یکی دیگر از مشخصات مرتبط با قابلیت اطمینان، نرخ شکست سالانه (AFR) است. معیار annualized failure rate تلاشی برای تخمین احتمال خرابی یک دیسک درایو دیسک در طول یک سال استفاده کامل را نشان میدهد. به عنوان یک قاعده کلی به این مسئله دقت کنید که فارغ از معیارها و ارقامی که تولیدکنندگان ارائه میکنند، هنگامی که دیسک درایوها از کار میافتند و با خرابی روبرو میشوند، دیگر قابل اطمینان نیستند، حتی اگر تعمیر شده و دوباره استفاده شوند. بنابراین بهتر است، همواره از اطلاعات خود نسخه پشتیبان تهیه کنید. این مورد بهویژه زمانی که از معماری رید – raid استفاده میکنید اهمیت پیدا میکند.