حافظه سریع پایدار یا NVMe چیست ؟
حافظه NVMe
حافظه سریع پایدار یا NVMe – non-volatile memory express یک رابط کنترل کننده میزبان (host controller interface) و یک پروتکل ذخیره سازی ساخته شده با هدف سرعت بخشیدن به انتقال داده میان سیستم های تجاری و سرویس گیرنده و درایو های جامد یا SSD بر روی گذرگاه PCIe کامپیوتر می باشد.
مشخصات NVMe یک رابط ثبت (register interface)، مجموعه ای از دستورات و مجموعه ای از ویژگی ها را برای درایوهای جامد (SSD) مبتنی بر PCIe با اهداف افزایش بهرهوری و قابلیت همکاری بر روی طیف گسترده ای از زیر سیستم های NVM تعریف می کند. مشخصات NVMe مدل استفاده نهایی (Ultimate Usage)، از قبیل ذخیره سازهای جامد، حافظه اصلی، حافظه نهان (Cache Memory) یا حافظه پشتیبان (Backup Memory) را تضمین نکرده است.
NVMe یک جایگزین برای استاندارد رابط سیستم کامپیوتر کوچک (SCSI) و استاندارد اتصال فناوری پیشرفته (ATA) برای اتصال و انتقال داده میان یک سیستم میزبان و یک دستگاه ذخیره ساز هدف پیرامونی، ارائه می دهد. مجموعه دستورات ATA که توسط درایوهای جامد Serial ATA یا SATA و مجموعه دستورات SCSI که توسط درایوهای جامد Serial Attached SCSI یا SAS مورد استفاده قرار می گیرند در زمانی توسعه یافتند که درایوهای دیسک سخت و نوار مغناطیسی، رسانه ذخیره سازی اصلی به شمار می رفتند. NVMe برای استفاده در کنار رسانه های سریع تری طراحی شده بود.
مزایای اصلی درایوهای جامد مبتنی بر NVMe نسبت به درایوهای جامد مبتنی بر SAS و SATA مواردی مانند کاهش تاخیر در پشته (stack) نرم افزار میزبان، تعداد بیشتر عملیات ورودی و خروجی بر ثانیه و توان مصرف انرژی پایین تر، بر اساس مشخصات ظاهری (form factor) و تعداد خطوط مورد استفاده PCIe می باشد.
NVMe می تواند از درایوهای جامد (SSD) که از انواع مختلفی از حافظه های غیرفرار شامل فلش های NAND و فناوری توسعه یافته 3D XPoint توسط اینتل و Micron Technology استفاده می کند پشتیبانی کند. مشخصات ظاهری (form factors) که پشتیبانی می شوند شامل کارت های PCIe، درایوهای جامد M.2 و U.2 در سایز 2.5 اینچی میباشد. مرجع راه اندازهای NVMe برای انواع سیستم عاملها از جمله ویندوز و لینوکس در دسترس می باشد.
NVMe چگونه کار می کند ؟
NVMe دستورات ورودی/خروجی و پاسخ ها به حافظه اشتراکی در یک کامپیوتر میزبان را بر روی رابط کاربری PCIe مینگارد. رابط NVMe به منظور آسان نمودن توان عملیاتی بالا و کاهش گلوگاه (bottleneck) واحد پردازش مرکزی (CPU) از ورودی/خروجی موازی با پردازنده های چند هستهای پشتیبانی می کند.
NVMe مجموعه دستورات بسیار سادهتری را نسبت به مجموعه دستورات SCSI و ATA برای پردازش یک درخواست ورودی/خروجی ارائه می دهد. NVMe به کمتر از نیمی از دستورالعملهای CPU از مجموعه دستورات SCSI که با دستگاه های SAS و مجموعه دستورات ATA که با درایوهای SATA مورد استفاده قرار می گیرند نیازمند است.
NVMe از ۶۴۰۰۰ دستور در یک صف پیام واحد و حداکثر تا ۶۵۵۳۵ صف وررودی و خروجی پشتیبانی می کند. در مقابل یک دستگاه SAS به طور معمول تا ۲۵۶ دستور و درایو SATA تا ۳۲ دستور را در یک صف پشتیبانی می کند.
هرچند درایوهای جامد PCIe مبتنی بر NVMe در حال حاضر گرانتر از درایوهای جامد مبتنی بر SATA و SAS با ظرفیت برابر می باشد، و درایوهای جامد NVMe تجاری سطح بالا ممکن است انرژی بیشتری نسبت به SAS یا رایوهای جامد SAS مصرف کنند. انجمن تجاری SCSI ادعا می کند که درایوهای SAS جامد تکامل یافتهتر، مزایای بیشتری را نسبت به درایوهای NVMe جامد PCIe ارائه می دهد. مزایایی از قبیل مقیاس پذیری بزرگتر، قابلیت های تحمل خطا اثبات شده (آزمایش شده) در طول زمان و قابلیت اتصال گرم (hot pluggability). همچنین ممکن است درایوهای NVMe جامد PCIe سطحی از کارایی را که بسیاری از نرم افزارها به آن نیاز ندارند ارائه دهند.
تاریخچه NVM Express
کار گروه رابط کنترل کننده میزبان حافظه غیر فرار یا (NVMHCI) در سال ۲۰۰۹ شروع به توسعه مشخصات NVMe و انتشار نسخه 1.0 آن در تاریخ ۱ مارس ۲۰۱۱ نمود. مشخصات نسخه یک شامل رابط صف بندی، مجموعه دستورات NVM، ویژگی های امنیتی و مجموعه دستورات مدیریتی می شد.
کارگروه NVMHCI که معمولا با عنوان کارگروه NVM Express شناخته می شود، یک بروزرسانی برای مشخصات NVMe در تاریخ ۱۱ اکتبر ۲۰۱۲ منتشر نمود. در NVMe 1.1 امکان پشتیبانی از درایوهای جامد با درگاه های چندگانه PCIe برای فعال سازی ورودی و خروجی چندگانه و اشتراک گذاری فضای نام (namespace) به آن افزوده شد. دیگر قابلیت های جدید شامل تغییر خودکار وضعیت توان مصرفی در زمان بیکاری به منظور کاهش نیاز انرژی و پذیرش هماهنگی دو میزبان یا بیشتر برای هماهنگی دسترسی به یک فضای نام اشتراکی به منظور بهبود تحمل خطا می باشد.
کارگروه NVM Express نخستین رونمایی آزمایشی محصول خود را در ماه مه ۲۰۱۳ به منظور فراهم آوردن امکان آزمایش این محصول برای شرکت ها و تطبیق محصولاتشان با مشخصات NVMe و همچنین بررسی امکان همکاری مشترک با سایر محصولات این گروه برگزار نمود.
مشخصات NVMe 1.2 در ۳ نوامبر ۲۰۱۴ با پیشرفت هایی مانند پشتیبانی از بروزرسانی زنده سفت افزار (Live Firmware Updates)، مدیریت توان بهبود یافته و گزینه ای برای حفاظت سراسری داده ها به نمایش درآمد.
در ۱۷ نوامبر ۲۰۱۵ سازمان NVM Express نسخه 1.0 رابط مدیریت NVM Express یا NVMe-MI را به منظور ارائه یک معماری و مجموعه ای از دستورات برای مدیریت یک زیر سیستم حافظه غیر فرار خارج از باند (band) تعیین شده به تصویب رساند. NVMe-MI کنترل کننده مدیریت را قادر می سازد تا وظایفی از قبیل دستگاه SSD و کشف قابلیت، نظارت بر میزان سلامت و درجه حرارت و نیز بروزرسانی های بدون مشکل سفت افزار (firmware) را انجام دهد. بدون NVMe-MI، مدیران فناوری اطلاعات به طور کلی منحصرا به رابط های مدیریت مخصوص فروشنده برای فرآهم آوردن امکان مدیریت درایوهای جامد PCIe متکی بودند.
پیشرفت ویژگی های NVMe 1.3
NVM Express در ماه ژوئن ۲۰۱۷ نسخه 1.3 از NVMe را عرضه کرد. کانون نکات برجسته پاکسازی، یک چارچوب (framework) شناخته شده با نام directives و پیشرفت هایی در مجازی سازی.
در یک عملیات پاکسازی، تمامی دادههای کاربر در زیرسیستم NVMe اصلاح شده، به طوری که بازیابی با توجه به یک برگه مرجع از NVM Express “از هر نوع حافظه نهان، رسانه غیر فرار یا حافظه میانگیر (buffer) کنترل کننده” امکان پذیر نیست. عملیات پاکسازی زمانی توصیه می شود که یک SSD کنار گذاشته شده و یا برای یک مورد جدید مورد استفاده مجدد قرار گرفته است. حالت های پاکسازی شامل پاک کردن بلاک سطح پایین بر روی رسانه NAND، پاکسازی رمزنگاری به منظور تغییر کلید رمزنگاری رسانه و بازنویسی مجدد است.
دستورالعمل های فریم ورک، مکانیزمی برای تبادل داده میان یک میزبان و یک زیر سیستم NVMe تعریف می کند. این موضوع، امکان برچسب گذاری هر دستور ورودی/خروجی را امکان پذیر ساخته و این توانایی را به مدیران فناوری اطلاعات خواهد داد که تنظیمات و ویژگی های قابل گزارش گیری را پیکربندی کنند.
نخستین کاربرد دستورالعمل ها یک ویژگی است که جریانی (Stream) برای بهینه سازی قرارگیری داده به منظور ارتقاء سطح تحمل و افزایش کارایی درایوهای NAND نامیده می شود. به طور متداول پیش از اینکه داده بتوانند بر روی SSD نوشته شوند، بلاک های بزرگ حافظه باید ابتدا پاک شوند.
ویژگی جریان ها میزبان را قادر می سازد تا از “تعیین کننده هویت جریان” (stream identifier) برای نشان دادن بلاک های ذخیره سازی منطقی ویژه ای که به گروهی از داده های مرتبط تعلق دارند استفاده کند. این موضوع، امکانی را فرآهم می کند تا خواندن و نوشتن با داده های مرتبط ذخیره شده در موقعیت های دیگر برچسب گذاری شوند.
پیشرفت های مجازی سازی چگونگی امکان استفاده از فلش NVMe در محیط های ذخیره سازی اشتراکی را تعریف می کند که هر دو کنترل کننده مجازی و فیزیکی شامل کنترل کننده های ذخیره ساز اصلی و ثانویه در آن وجود دارند. طبق گفته NVM Express هدف، ایجاد توانایی برای تیم توسعه به منظور اختصاص دادن یک SSD ویژه به یک ماشین مجازی اختصاصی است.
موارد نقشه راه نسخه های بعدی، شامل بهبود ورود/خروج پیش بینی شده درایو جامد NVMe، پشتیبانی از میانگیر (buffer) حافظه کنترل مداوم و SAN چند مسیره (multipathing) می باشد. NVMe طرح ریزی شده بر اساس موارد نقشه راه محیط انتقال (Fabrics) شامل تایید هویت (authentication)، بهبود قابلیت یابندگی (discovery) و پشتیبانی از انتقال پروتکل کنترل مخابره (Transmission) می باشد.
شرکت NVM Express
در مارس ۲۰۱۴ گروه کاری NVM Express تحت نام موسسه NVM Express به صورت شرکتی یکپارچه درآمد. بنیان گذاران آن زمان را Cisco Systems، Dell، EMc، Western Digital’s HGST subsidiary، اینتل، LSI، Micron Technology، NetApp، اوراکل، PMC-Sierra، سامسونگ الکترونیکس، SanDisk و Seagate Technology تشکیل می دادند.
موسسه NVM Express پس از آن با عنوانی ساده تر یعنی شرکت NVM Express شناخته شد. این موسسه غیرانتفاعی از میان شرکت های فناوری بیش از 100 عضو دارد.
هیئت مدیره شرکت NVM Express دارای ۱۳ عضو می باشد که آن را اداره و رویکردهای استراتژیک آن را تعیین می کنند. شش عضو این هیئت مدیره برای دوره چندین ساله و ۷ عضو باقی مانده به صورت سالانه توسط اعضای NVMe Express به طور متناوب از میان شرکت های برتر ترقی دهنده انتخاب می شوند.
اعضای هیئت مدیره که دوره چندساله شان در ۲۰۱۷ به پایان رسید، سیسکو، Dell EMC، اینتل، Microsemi، NetApp و اوراکل و اعضایی که برای دوره یکساله انتخاب شدند، فیسبوک، میکرون، مایکروسافت، سامسونگ، Seagate، توشیبا و Western Digital می باشند.
NVMe بر روی اجزای محیط انتقال (Fabrics)
شرکت NVM Express نسخه 1.0 مشخصات NVMe بر روی اجزای محیط انتقال (Fabrics) را در ۵ ژوئن ۲۰۱۶ منتشر کرد. NVMe-oF به منظور ارتقاء مزایای بهرهوری و تاخیر پایین NVMe بر بستر اجزای محیط انتقال از قبیل کانال فیبر (FC)، اترنت و InfiniBand که سیستم های ذخیره سازی را به سرورها متصل می کنند طراحی شده است.
محیط انتقال دهنده (Fabric transports) شامل NVM-oF که از دستیابی مستقیم به حافظه از راه دور (RDMA) و NVMe-oF که از کانال فیبر (FC) بهره می برند می باشد. یک زیر گروه فنی از شرکت NVM Express به وسیله RDMA بر روی NVMe-oF کار می کند و گروه T11 از کمیته جهانی استانداردهای فناوری اطلاعات (INCITS) مسئول توسعه FC-NVMe خواهد بود.
به طور عمده مشخصات NVM-oF با مشخصات NVMe یکسان است. یکی از تفاوت های اصلی میان NVMe-oF و NVMe روشی برای ارسال و دریافت دستورات و پاسخ هاست. NVMe برای استفاده محلی و نگاشتن دستورات و پاسخ ها بر حافظه اشتراکی کامپیوتر از طریق PCIe طراحی شده است. در مقابل NVMe بر روی محیط انتقال (Fabrics) یک سیستم پیام محور را برای ارتباط میان کامپیوتر میزبان و دستگاه ذخیره سازی هدف به کار می گیرد.
هدف از طراحی معروف NVMe-oF افزودن حداکثر 10 میکروثانیه و نه بیشتر به تاخیر برقراری ارتباط میان یک کامپیوتر میزبان NVMe و یک دستگاه ذخیره سازی NVMe متصل به شبکه در مقایسه با تاخیر مربوط به یک دستگاه ذخیره سازی NVMe با استفاده از یک گذرگاه PCIe کامپیوتر محلی می باشد.
منبع : techtarget