فاکتورهای موثر بر عملکرد درایو SSD

برای مشخص کردن عملکرد و طول عمر یک حافظه SSD، شرکت­ ها علاوه بر IOPS و زمان تاخیر باید به معماری درایو، کنترل کننده فضای ذخیره سازی (کنترلر) و تشدید نوشتن (write amplification) حافظه را مد نظر قرار دهند.

توزیع کنندگان و فروشندگان اصلی SSD معمولا بازاریابی را بر اساس توان مصرفی، میزان تاخیر (Latency) و IOPS انجام می­ دهند تا مصرف کنندگان را مجاب کنند که SSDها را بر اساس عملکرد خریداری کنند، اما این خصوصیات فقط بخشی از داستان هستند.

عوامل موثر دیگری – معماری مولفه های درایو و اینکه چطور درایو  write amplification را کنترل می­ کند- می­ توانند به همان اندازه برای نشان دادن خوبی عملکرد یک درایو SSD و طول عمر آن مهم باشد.

بیشتر SSDهای مورد استفاده در دیتاسنترها امروزه بر اساس تکنولوژی حافظه های فلش هستند. مؤلفه هایی که یک فلش درایو را تشکیل می دهند شامل سلول های NAND هستند که داده ها را ذخیره می کنند. به علاوه فاکتورهای کنترلر فضای ذخیره سازی، رابط کاربری و بافر حافظه کش نیز وجود دارند که همه ­ی آنها نقشی محوری در عملکرد یک درایو SSD بر عهده دارند.

فناوری سلول NAND در حال حاضر پیشرفت کرده است در نتیجه امروزه از ظرفیت های بالاتری پشتیبانی می کند و همین امر موجب کاهش قیمت درایو های SSD می شود. حافظه های  فلش اولیه بر اساس معماری سلول تک سطحی (SLC) بودند که یک بیت بر سلول را در خود ذخیره می­ ساخت، سپس حافظه­ های چند سطحی روی کار آمدند که 2 بیت بر سلول را پشتیبانی میکردند و بعد از آن نوبت به سلول های سه سطحی (TLC) رسید که 3 بیت بر سلول را ذخیره می­کنند.

بیشتر بخوانید: آشنایی با ساختار درایو SSD

با TLC یک حافظه فلش بیشتر از همیشه ظرفیت ذخیره سازی دارد. آنها گوی سبقت را از بسیاری از هارد دیسک های همتای خود ربوده­ اند.

کنترلر فضای ذخیره سازی

مساله­ ی مهم دیگری که باید هنگام سنجش عملکرد یک SSD در نظر بگیریم کنترل کننده ­­ی فضای ذخیره سازی (کنترلر) است. پردازنده­ ی مخصوص درایو که سخت افزار را مدیریت می­کند و عملیاتی نظیر یکسان‌سازی پوشش (wear leveling) جمع آوری فایل های زائد، رمزنگاری، جانمایی بلوک های ذخیره سازی بد (bad-block mapping) و تصحیح کدهای خطا را در دست دارد.

بیشتر بخوانید : فلش کنترلر (Flash controller) چیست ؟

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

رابط کاربری (اینترفیس) بین سرور و درایو نیز یک عنصر حیاتی در معماری SSD است. دو رابط کاربری متدوال وجود دارد که یکی سریال متصل (SCSI) است و دیگری SATA است. SAS تمایل به ارائه ویژگی های سطح سازمانی بیشتری دارد و معمولا می­تواند عملکرد بهتری از درایو های حالت جامد ارائه دهد.

گفته می­ شود که این اینترفیس ها موجب ایجاد گلوگاه در عملکرد درایوهای ذخیره سازی می شوند و به این خاطر عرضه کنندگان رابط کاربری حافظه سریع پایدار (NVMe) را پیشنهاد می­ کنند که با پیوستگی با PCI اکسپرس کار می­کند تا عملکرد بهتری را چه با SAS و چه با SATA ارائه نماید.

یک SSD در کلاس سازمانی همچنین شامل یک DRAM میان درایو ذخیره سازی و رابطه کاربری است. بافر باید یک مکانیزم کش پرسرعت را در اختیار داشته باشد که یک فضای موقت برای قراردادن و جمع آوری را فراهم کند. برای اجرای موثر این فرآیند ، بافر باید به اندازه کافی بزرگ باشد تا دسترسی به داده ها و تغییرات را ساده سازی کرده و اثرات عملیات نوشتن را به حداقل برساند. بافر مناسب می تواند یک جزء مهم در SSD با عملکرد بالا باشد.

تشدید نوشتن

درایوهای فلش مثل بسیاری از SSDها مستعد تشدید نوشتن هستند. شرایطی که تعداد نوشتن های واقعی از نوشتن های درخواست شده بیشتر است. تشدید نوشتن به عنوان نتیجه­ ی روشی که دیتا روی SSD نوشته می­ شود اتفاق می­ افتد. قبل از اینکه داده بتواند نوشته شود، داده های دیگر باید پاک شوند و سپس دوباره نوشته شوند. بر خلاف یک هارد دیسک که در آن داده به راحتی اضافه می­ شود و یا روی داده های دیگر جایگزین می­ گردد. IOPS افزایش یافته که از تشدید نوشتن سرچشمه می گیرد می­تواند عملکرد نوشتن را به میزان قابل توجهی کاهش دهد.

بیشتر بخوانید: 4 راه‌حل برای بهینه‌سازی عملکرد SSD در دیتا سنتر

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

برای کمک به بهبود عملکرد نوشتن، SSD معمولاً نوعی از فرآیندهای جمع آوری زباله را پیاده سازی می کند که یک رویکرد پیشگیرانه برای آزاد سازی بلوک­ های نوشته شده­ ی قبلی است. این پروسه می­تواند نیاز به پاک کردن کل بلوک های داده ها را برای هر عملیات نوشتن از بین ببرد. اما پروسه­ ی جمع آوری فایل­های زائد می­تواند به تشدید عمل نوشتن کمک و اگر به درستی مدیریت نشده باشد می­تواند بر عملیات نوشتن اصلی تاثیر بگذارد.

بیشتر SSDها همچنین پروسه­ ی یکسان سازی پوشش را برای کمک به جلوگیری از دست رفتن سلول­ها پیش از موعد اعمال می­ کنند. یکسان سازی پوشش عمل نوشتن را در بین بلاک­ های در دسترس به صورت مساوی تقسیم می­ کند تا از نوشته و پاک شدن یک بلوک خاص به صورت پیاپی جلوگیری نماید. مانند Garbage Collection، یکسان سازی پوشش یا Wear Leveling هم می تواند روی تشدید نوشتن تاثیر بگذارد . به صورت بالقوه روی عملکرد SSD تاثیر بگذارد.

فرآیند های دیگری مانند مدیریت بلوک های بد (bad-block management) نیز می­توانند در تشدید نوشتن دخیل باشد. در مدیریت بلوک های بد کنترلر، بلوک­هایی که شامل یک یا چند سلولی که ممکن است برای ذخیره سازی اطلاعات قابل اعتماد نباشند را شناسایی می­کند. همچنین عمل دفراگمنت کردن درایو هیچ مزیتی برای برای یک SSD ندارد اما می­تواند سربار نوشتن/خواندن را اضافه کند

یک استراتژی معمول برای کاهش تشدید نوشتن و کاهش اثرات جمع آوری فایل­های زائد و یکسان سازی پوشش و پروسه های دیگر، اورپرویژن (over provision) حافظه­ ی SSD است که به صورت محدود کردن حافظه قابل استفاده به اندازه­ ی درصد خاصی عمل می کند. برای مثال بعضی سازمان­ها میزان قابل استفاده از SSD را 75 یا 80 درصد یا حتی کمتر در نظر گرفته اند. با فراهم کردن فضای آزاد کافی، درایو می تواند عملیات نوشتن را با کارایی بیشتری پشتیبانی کند و عملکرد SSD را به حداکثر برساند.

بیشتر بخوانید : هر آنچه باید درباره SSD Over-Provisioning بدانید

به علاوه SSDها می­توانند بعضی اوقات از توانایی های رابط کاربری برای کم کردن تشدید نوشتن سود ببرند. برای مثال SATA دستور TRIM را پیشنهاد می­ کند و SAS دستور UNAMR را پیشنهاد می کند. هر دو دستور بلوک­ هایی از داده ­ها را که دیگر مورد استفاده قرار نمی­ گیرند را شناسایی می­ کنند و بنابراین می­توانند آنها را به صورت داخلی پاک کنند. این عمل منجر به بهتر شدن عملکرد درایوهای SSD می ­شود زیرا می توان فرآیند Garbage Collection را به حداقل رساند و فضای بیشتری در درایو در دسترس خواهد بود.

ملاحظات دیگری برای استفاده از SSD در اتاق سرور وجود دارد مانند: سرورهای موجود، زیر ساخت های شبکه و سیستم عامل ها. اما اجزای تشکیل دهنده درایو و شناسایی روش های تشدید نوشتن باید نگرانی اصلی باشند. فقط با در نظر گرفتن همه ­ی فاکتورهای موثر بر عملکرد SSD یک سازمان می­تواند مطمئن باشد که همه­ ی درایوهای خریداری شده می­ توانند عملکرد مورد نیاز برای پشتیبانی از برنامه­ های کاربردی شان را فراهم آورند.