نحوه کار و آشنایی با IOmeter - بخش اول

یکی از مهم ترین ابزار جهت تست سرعت I/O در Storage نرم افزار رایگان IOmeter می باشد. اما برای اجرای آن و گرفتن تست مورد نظر باید تنظیمات مورد نظر بر روی این نرم افزار به درستی انجام شود تا نتایج ارایه شده، قابل استناد باشد.
در این مجموعه مقالات با کارکرد دیسک های SSD آشنا خواهیم شد و در ادامه خواهیم توانست خروجی مورد نیاز خود را از نرم افزار دریافت کنیم.

 

iometer1

درباره حافظه فلش
در اینجا به مجموعه ای از مقالات در مورد SSD می پردازیم که در آنها به توضیح مفاهیم تست SSD و چگونگی تفسیر نتایج تست ها، پرداخته شده است. مطالبی که در این مقالات گنجانده شده اند در ارزیابی بهتر نتایج تست SSD به کاربر نهایی کمک خواهند کرد.
اندازه گیری و ارزیابی تست عملکرد دستگاه های SSD کار آسانی نیست و نیازمند تلاش و زمان زیاد برای تهیه نتایج دقیق می باشد. این مساله اهمیت بسزایی دارد، چراکه مقایسه عملکرد دستگاه های مختلف موجود در بازار در به دنبال این نتایج دقیق حاصل خواهد شد.
مقاله ی پیش رو در راستای کمک به درک بهتر مجموعه محیط های ذخیره سازی دیتا تاثیر به سزایی خواهد داشت؛ به خصوص ذخیره سازیِ All-Flash که در آن، سرور فقط از دیسک های SSD استفاده می کند.
در اینجا به اولین بخش از مجموعه مقالات SSD می پردازیم.

SSD flash memory

حافظه فلش چطور کار می کند؟ خلاصه ای از SSD
دستگاه های SSD بسته به دیتایی که از قبل روی آنها نوشته شده است عملکردهای مختلفی دارند. یعنی ممکن است یک دستگاه SSD در زمان انجام یک تست خاص، عملکردهای مختلفی را به نمایش بگذارد، چون ممکن است قبل از انجام تست، در معرض Workloadهای مختلفی قرار گرفته باشد. میتوان گفت که SSDها بعد از نوشته شدن مقدار خاصی دیتا روی آنها، کندتر می شوند. معمولا این مساله زمانی اتفاق می افتد که بیشتر یا تمام فضای دیسک پر باشد. البته این لزوما به معنی پر کردن تمام فضای دیسک نیست، بلکه می تواند آن تعداد Write باشد که برای پر کردن تمام فضای دیسک نیاز است.
سرعت SSD در تمامی موارد، مدتی بعد از استفاده نسبت به حالت اولیه کاهش خواهد یافت.
قبل از این که به مباحث اولیه تست عملکرد SSD بپردازیم بهتر است روش کار SSD را توضیح دهیم. دانستن روش کار SSD ضروری است، چون با علم به این مساله است که می توان فهمید که چرا بعد از مقداری نوشتن روی SSD عملکرد آن کاهش می یابد.
قسمت سازندۀ ابتدایی در حافظه فلش، سلول دیتا است که در واقع یک ترانزیستور است. حافظه فلش روش کاری شبیه DRAM دارد، اما دیتا در آن ماندگار است. این ماندگاری را توسط Gate Transistorهای شناور (Floating Gate) ایجاد می کنند. این ترانزیستور نیازمند تامین ولتاژ خود توسط یک خازن نمی باشد (کاری که در DRAM انجام می شود)، بلکه می تواند مقداری بار در خود ذخیره کند که بر روی Gate ترانزیستور وجود دارد (ورودی ترانزیستور). نحوه عملکرد این ترانزیستور به صورتی است که اعمال مقدار کمی ولتاژ (ولتاژ خواندن) بر روی Gate (در صورتی که بار ذخیره نشود) باعث می شود جریان خاصی شارش کند. وقتی بار در Gate ذخیره شود، ولتاژ پایین برای شارش جریان کافی نیست. بنابراین می توان گفت این سلول یک حالت باینری داشته و وقتی بار در آن ذخیره نشده است 1 و وقتی بار در آن ذخیره شده است 0 را نشان می دهد.
به علاوه، Gate Transistorهای شناور وقتی ولتاژی بیش از مقدار خاصی (مقدار آستانه) به آنها اعمال می شود، قادر هستند جریان را هدایت کنند (ترانزیستور فعال می شود). این ولتاژ بیش از ولتاژی است که برای خواندن آن سلول استفاده می شود.

SSD

اساسا حافظه فلش (سلول های ذخیره سازی داده) از همین Gate Transistorهای شناور ساخته شده است. این سلول ها در صفحاتی قرار می گیرند و هر یک از این صفحات معمولا شامل دو هزار، چهار هزار، هشت هزار یا شانزده هزار سلول هستند. این صفحات Blockهایی را می سازند که 128 یا 256 صفحه دارند. Block یک شبکه است که هر صفحه به عنوان یک سطر بر روی آن قرار گرفته است. در حافظه های فلشِ NAND که معمولا از آنها استفاده می شود، صفحات در یک Block به صورت سری به هم متصل می شوند. خروجی یک صفحه (Drain در ترانزیستورها) به ورودی ترانزیستور در صفحه بعدی متصل است. در این چینش صفحات، دیتا در هر زمان فقط بر روی یک صفحه نوشته و خوانده می شود (اما Overwrite نمی شود که بعدا در این مورد توضیح خواهیم داد). برای خواندن، ولتاژ کمی به Gate صفحه ای که باید خوانده شود و ولتاژ بالاتری به سلول های صفحات دیگر اعمال می شود. از آنجا که این ولتاژ بالا، سلول ها را روشن می کند، دیتایی که از آن صفحه خوانده می شود در این شبکه انتقال یافته و می توان به آن دسترسی داشت. نوشتن دیتا با اعمال ولتاژ بالا به Gate سلول های موجود در آن صفحه انجام می شود در حالی که خروجی تمام سلول های دیگر موجود در آن Block به ground متصل است. فقط ستون هایی که سلول های موجود در آنها باید شارژ شوند به ground متصل می شوند. به این صورت بار بر روی Gate شناور قرار گرفته و مقدار باینری صفر در آن ذخیره می شود.
صفحه کوچک ترین قسمت حافظه فلش است که خوانده و نوشته می شود. Overwrite یک صفحه به تنهایی امکان پذیر نیست، بلکه باید کل Block را Overwrite کرد.
پاک کردن سلول ها نیاز به ولتاژ بالایی دارد. مقدار این ولتاژ آنقدر زیاد است که اگر بخواهیم فقط یک صفحه را پاک کنیم ممکن است صفحات مجاور نیز تحت تاثیر قرار گیرند. به بیان ساده تر، اقدام برای پاک کردن یک صفحه نیاز به اعمال ولتاژ بالا دارد که این مسئله ممکن است باعث تغییر در سطح ولتاژ سایر سلول ها شده که به وضوح می تواند باعث Corrupt شدن دیتا شود و به هیچ وجه قابل قبول نیست. به این دلیل است که خواندن و نوشتن می تواند روی یک صفحه انجام شود، اما پاک کردن (یا Overwrite کردن) فقط در مقیاس Block قابل انجام است.
به طور خلاصه می توان گفت حافظه فلش دارای صفحاتی است که کل Block را می سازند. می توان دیتا را بر روی یک صفحه نوشت و خواند، اما نمی توان یک صفحه را به تنهایی Overwrite کرد، بلکه باید کل Block را Overwrite کرده و سپس دیتا را روی آن Block نوشت.
منتظر قسمت های بعد باشید...

*منبع

برچسب ها: IOmeter, flash memory, block, gate transistor, ذخیره سازی all-flash, ذخیره سازی دیتا, حافظه فلش, تست عملکرد SSD, overwrite, SSD

Submit to DeliciousSubmit to DiggSubmit to FacebookSubmit to Google PlusSubmit to StumbleuponSubmit to TechnoratiSubmit to TwitterSubmit to LinkedIn