حافظه NVME یا Non-Volatile Memory Express پروتکل جدیدی جهت ذخیره سازی با سرعت بالا است که در مقایسه با پروتکلهای قدیمی مزایایی دارد. هارد NVME یکی از بهترین و موثرترین ویژگیها برای ارتقاء سیستم ذخیره سازی است. وجود پروتکل NVME و اتصال PCIe در یک حافظه SSD، سرعت بیشتر در خواندن و نوشتن را به دنبال دارد که چهار برابر سریعتر از یک حافظه SSD از نوع SATA با پروتکل SCSI است. ما در این مقاله میپردازیم که حافظه NVME چیست و چه کاربردی دارد؟ همچنین اهمیت آن برای مشاغل داده محور در چیست؟
کسب و کارها با درگیر شدن هر چه بیشتر با دادهها و رشد دادهها، باید در مورد چگونگی در اختیار گرفتن و ذخیره سازی آنها، دسترسی به دادهها و تبدیل آن ها تجدید نظر کنند. NVMe در کسب و کارهایی که با دادههایی مانند Fast Data که نیاز به تجزیه و تحلیل آنی و تکنولوژیهای جدیدی دارند، تاثیر زیادی دارد. در این مقاله به توضیح ماهیت NVMe و تشریح جزئیات فنی و دقیق معماری ذخیره سازی اطلاعات در این تکنولوژی خواهیم پرداخت. NVMe با مهیا کردن فرصت برای انجام عملیاتهای گسترده بر روی داده، دنیای جدیدی از امکانات را به روی ما گشوده است، که دلایل آن را در این مقاله مطرح میکنیم.
کاربرد حافظه NVMe چیست؟
حافظه NVME یک پروتکل ذخیره سازی با عملکرد بالا و دارای ویژگی NUMA یا Non Uniform Memory Access بهینه شده است. همچنین بسیار مقیاسپذیر است و هاست را به memory subsystem متصل میکند. این پروتکل نسبتاً جدید، دارای امکانات متعددی است که از ابتدا برای حافظه media (Persistent Memory و NAND) که از طریق رابط PCIe مستقیماً به CPU متصل شده اند، طراحی شده است.
این پروتکل بر روی Lane های پر سرعت PCIe ساخته شده است. رابط PCIe Gen 3.0 میتواند سرعت انتقالی بیش از ۲ برابر رابط SATA را در اختیار کاربر قرار دهد.
مزایای حافظه NVME چیست؟
- هارد NVME سرعت فوقالعاده بالایی دارد.
- استفاده ازهارد NVME باعث میشود تاخیر استفاده از حافظه کاهش پیدا کند.
- در دستیابی به حافظه، تعداد اعمال ورودی و خروجی در ثانیه بیشتر میشود.
- مصرف انرژی به طرز چشمگیری کاهش مییابد.
- هارد NVME ، امکان فرایندهای هم روند و موازی سازی را چند برابر افزایش میدهد.
- پروتکل NVME از مسیر PCIe استفاده میکند.
هارد NVME سیستم caching قدرتمندی دارد که باعث بهینه سازی در زمان دستیابی به دیتابیسهای بزرگ میشود.
سرعت پاسخدهی درهارد NVME بسیار بالاست و کارهای سنگین در دیتابیس و سایت با سرعت مطلوبی انجام میگیرد.
امکان رفع وقفه در پردازشها را فراهم میکند.
حافظه NVME مشابه معماری پردازندهها با عملکرد بالا، با استفاده از مسیرهای موازی با تاخیر کم به media های زیرین میرسد. این فناوری در مقایسه با پروتکلهای قدیمی SAS و SATA عملکرد به مراتب بهتر و تاخیر بسیار کمتری دارد. این امر نه تنها سبب شتابدهی و افزایش سرعت برنامههایی که به عملکرد بالا و سریع نیاز دارند می شود، بلکه توسط برنامههای جدید، امکان پردازش آنی را به هنگام لود کاری بالا برای دیتاسنتر و Edge ایجاد میکند.
پروتکلهای مرسوم برای در دسترس قرار دادن دادهها در برنامه میبایست CPU cycle های زیادی را مصرف کنند. این cycle های پردازشی هدر رفته، برای کسب و کارها هزینه بر است. بودجه زیرساختها زمانی بالا میرود، که بازده زیرساختها در ذخیره سازی و محاسبات به حداکثر برسد. از آنجا که NVME با زیر ساختهای کوچک هم میتواند برنامهها با حجم کاری بالا را مدیریت و کنترل کند، سازمانها میتوانند هزینه کلی را کاهش داده و رشد کسب و کار خود را سرعت بخشند.
معماری حافظه NVME به چه صورت است؟
بیایید نگاهی عمیقتر به معماری حافظه NVME و چگونگی دستیابی آن به عملکرد بالا و تاخیر کم بیندازیم. NVME میتواند از چندین I/O queues و حداکثر تا ۶۴K پشتیبانی کند و هر یک از این queue ها نیز میتواند تا ۶۴K ورودی داشته باشد. رابطهای قدیمی SAS و SATA فقط میتوانند از یک queue پشتیبانی کنند و هر کدام از این queue ها نیز به ترتیب میتوانند ۲۵۴ و ۳۲ ورودی داشته باشند. هاست NVME میتواند بسته به تنظیمات سیستم و لود کاری مورد انتظار، تا حداکثر مقداری که کنترلر NVME اجازه میدهد، queue ایجاد کند. NVME همچنین از I/O نوع scatter/gather پشتیبانی میکند، که بار انتقال داده بر روی CPU را به حداقل میرساند و حتی امکان تغییر اولویتها را بر اساس میزان لود کاری فراهم میکند.
تصویر زیر نمایش بسیار ساده ای از ارتباط بین هاست و کنترلر NVME است. این معماری به برنامهها اجازه میدهد تا چندین درخواست I/O را بهطور همزمان شروع، اجرا و به پایان برسانند و از underlying media برای به حداکثر رساندن سرعت و به حداقل رساندن تاخیرها استفاده کنند.
چگونه کار می کنند؟
روش کار بدین صورت است که هاست دستورات I/O Command Queues را نوشته و doorbell آنها را ثبت میکند (I/O Commands Ready Signa). سپس کنترلر NVME دستورات I/O Command Queues را دریافت کرده و پس از اجرا، آنها را به همراه یک دستور وقفه یا interrupt به I/O Completion Queue ارسال میکند. هاست دستور I/O Completion Queues را ثبت میکند و سپس door register را پاک میکند (I/O Commands Completion Signal). همانطور که در تصویر فوق نیز مشاهده میکنید، این فرایند انتقال در مقایسه با پروتکلهای SAS و SATA با فشار سربار پایینتری انجام میشود.
چرا NVME بیشترین بهره را از پردازنده های چند هسته ای می برد؟
همانطور که در بالا اشاره شد، حافظه NVME یک پروتکل بهینه شده NUMA-optimized است. این امر به پردازندههای چند هسته ای اجازه میدهد تا مالکیت queue ها، اولویت آنها و همچنین مکانیزمهای داوری و انتخاب بین آنها و atomicity دستورات را، به اشتراک بگذارند. به همین ترتیب NVME SSD ها دارای قابلیت scatter/ gather برای دستورات است تا آنها را خارج از نوبت پردازش کنند که موجب IOPS بالاتر و تاخیر داده کمتری میشود.
فرم فاکتور و استانداردهای حافظه NVME
حافظه NVME مجموعه ای از استانداردهای مدیریت شده توسط کنسرسیومی متشکل از شرکتهای همچون اینتل، سامسونگ، سندیسک، دل و سیگیت است که مسئول توسعه آن است. در حال حاضر استاندارد صنعتی درایوهای حالت جامد PCIe، شامل تمامی فرم فاکتورها است. این موارد شامل فرم فاکتور استاندارد: U.2 2.5 ،internal mounted M.2، کارتهای افزایشی (AIC) و فرم فاکتورهای مختلف EDSFF است.
تحولات جالب بسیاری در مورد ویژگیهای جدید این استاندارد در حال وقوع است، از آن جمله ایجاد multiple queues، ترکیب IO ها، فرایند تعریف مالکیت و اولویت بندی آنها، چند مسیری و مجازی سازی I/O ها، بهروزرسانیهای ناهماهنگ دستگاهها و بسیاری از ویژگیهای سازمانی دیگر که در گذشته وجود نداشته اند.
ما شاهد موارد استفاده بیشتر این استاندارد هستیم. یک مثال دیگر Zoned Storage و ZNS SSD ها هستند. NVME Zoned Namespace (ZNS) یک پیشنهادی است که توسط سازمان NVM Express در حال توسعه و بررسی است. این تکنولوژی به منظور مدیریت دادههای حجیم در زیرساختهایی با مقیاس بزرگ و فرایند انتقال دادههای هوشمند از درایو به هاست توسعه یافته است. برای این منظور، فضای LBA به مکانهایی تقسیم میشود که باید به ترتیب نوشته شود و اگر مجدداً نوشته شوند باید reset شوند. این ویژگیها نوع جدیدی از درایو NVMe را معرفی میکند که مزایای متعددی نسبت به SSD NVME های قدیمی دارد.
مزایای فرم فاکتور NVME
بالا بردن عملکرد با کاهش دامنههای نوشتن
بالا بردن ظرفیتها با کم کردن نظارتها
پایین بردن هزینهها به دلیل کاهش SSD controller DRAM footprint
تاخیرهای بهبود یافته
یکی دیگر از موارد جالب کاربرد این تکنولوژی در کارتهای SD و microSD Express است، که کارتهای SD و microSD را با رابطهای PCIe و NVME تلفیق میکند. این مورد یک نمونه از قابلیتهای نسل بعدی پردازشهای موبایلی با عملکرد بالا است.
نهایتاً پروتکل NVME محدود به اتصال ساده درایوهای فلش نیست، بلکه ممکن است از آن به عنوان یک پروتکل شبکه یا NVME over Fabrics استفاده شود. این پروتکل جدید شبکه، یک شبکه ذخیره سازی با عملکرد بالا را قادر میسازد تا جهت انتقال دادهها با شیوههای مختلف، از یک فریم ورک مشترک استفاده کنند.
چرا کاربرد حافظه NVME برای کسب و کار شما مهم است؟
سیستمهای سازمانی عموماً تشنه دادهها هستند. افزایش تصاعدی دادهها و افزایش تقاضای برنامههای جدید، میتواند SSD ها را با چالش مواجه کند. حتی SSD های با عملکرد بالا، که به پروتکلهای ذخیره سازی قدیمی متصل هستند نیز در مواجهه با برخی از چالشهای جدید Fast Data ممکن است عملکرد ضعیف، تاخیر زیاد و کیفیت پایینی داشته باشند.
ویژگیهای منحصر به فرد NVME سعی میکند از محدودیتها، چه در برنامههای سنتی در مقیاس پایگاه داده گرفته تا معماری جدید Edge computing، جلوگیری کند. تا بتواند پاسخگوی تقاضاهای جدید باشد.
هارد NVME با non-volatile storage media برای عملکردهای بالا طراحی شده است. NVME تنها پروتکلی است که برای اکوسیستم داده سازمانی، ابری و Edge که به شدت نیازمند داده هستند، مناسب است.
در نتیجه، درایوهای حافظه NVME نسبت به دیگر SSD های موجود در بازار، از سرعت خواندن و نوشتن بالاتری برخوردار هستند و همین عامل سبب میشود که انتخاب آن ها هوشمندانه تر به نظر برسد. امروزه ما میبینیم که شرکتهای ارائه دهنده خدمات هاستینگ و میزبانی وب، از حافظههای M.2 و NVME برای سرورهای خود استفاده میکنند. این حافظهها به سبب سرعت بالایی که در انتقال اطلاعات دارند، موجب افزایش بازدهی سرویسهایی میشوند که در این سرورها در حال اجرا شدن هستند. امیدوارم این مقاله به شما کمک کرده باشد تا درک کنید که NVME چیست و چرا برای کسب و کار شما اهمیت دارد.