حافظه NVMe چیست؟ چرا بهترین نوع حافظه برای سرور است؟
انواع مختلفی از حافظه وجود دارد که برای ذخیره سازی اطلاعات استفاده می شوند. هر نوع از آن ها دارای ویژگی هایی است که باعث می شود تا برای کاربردی خاص مورد استفاده قرار گیرد. از جمله معروف ترین نوع حافظه های ذخیره سازی می توان به حافظه های دیسک سخت یا HDD و حافظه های درایو جامد یا SSD اشاره داشت. اما یکی از پر سرعت ترین این حافظه ها، حافظه های از نوع NVMe است که در واقه زیر مجموعه ای از حافظه های SSD محسوب می شوند. اگر شما هم نمی دانید حافظه NVMe چیست و چه ویژگی هایی دارد، پس با ما همراه باشید.
فهرست مطالب
- NVMe چیست؟
- حافظه NVMe چگونه کار می کند؟
- چرا حافظه NVMe مهم است؟
- موارد استفاده NVMe چیست؟
- مزایای NVMe چیست؟
- معایب حافظه NVMe چیست؟
- تفاوت بین SATA، NVMe و SAS چیست؟
- تاریخچه و تکامل NVM Express
- استانداردهای اتصال حافظه NVMe
- نتیجه گیری
NVMe چیست؟
در ابتدا باید گفت NVMe (non-volatile memory express) یک پروتکل انتقال یا اینترفیس ارتباطی است، که برای افزایش سرعت انتقال داده ها در دستگاه های ذخیره سازی حالت جامد (solid-state) یا SSD ایجاد شده است. در واقع پروتکل NVMe به حافظه های SSD این امکان را می دهد تا از درگاه PCIe استفاده کنند.
همانطور که فناوری SSDها در بازار ذخیره سازی داده ها مورد استقبال بیشتری قرار می گرفت، خیلی زود مشخص شد که رابط ها و پروتکل های موجود (مانند Serial ATA (SATA) و Serial-Attached SCSI (SAS)) دیگر در محیط هایی که نیاز به پایداری و سرعت بالا دارند، مثل دیتاسنترها مناسب نیستند. به همین دلیل در اوایل سال 2011، بحث حافظه های NVMe با مشارکت نزدیک به 100 شرکت فناوری در توسعه آن، پیش کشیده شد.
از حافظه های NVMe معمولاً برای ذخیره سازی حالت جامد (solid-state storage)، حافظه اصلی (main memory)، حافظه نهان (cache memory) یا حافظه پشتیبان (backup memory) استفاده می شود. NVMe با برقراری ارتباط بین یک رابط ذخیره سازی و یک واحد پردازش مرکزی سیستم (CPU) از طریق یک گذرگاه پرسرعت Peripheral Component Interconnect Express (PCIe) کار می کند.
پروتکل NVMe برای استفاده با رسانه های سریع (fast media) طراحی شده است. از جمله مزایای اصلی SSDهای مبتنی بر PCIe نسبت به سایر انواع ذخیره سازی، کاهش زمان تأخیر و افزایش سرعت عملیات ورودی/خروجی است.
NVMe همچنین یک عامل کلیدی برای فناوری ها و برنامه های در حال تکامل مانند اینترنت اشیا، هوش مصنوعی و یادگیری ماشین بوده است که همگی میتوانند از بهبود هایی مانند تأخیر پایین و عملکرد بالای ارائه شده توسط حافظه های ذخیره سازی NVMe، بهره ببرند.
حافظه NVMe چگونه کار می کند؟
منطق کار حافظه NVMe بدین صورت است که یک تراشه کنترل کننده NVMe به صورت فیزیکی در حافظه استفاده می شود. به این ترتیب در هنگام انتقال داده با استفاده از پروتکل NVMe، حافظه SSD قادر است تا مستقیما از طریق یک رابط PCIe به CPU متصل شوند.
پروتکل NVMe می تواند هر شکلی از سیستم های NVMe را پشتیبانی کند، از جمله SSD های مجهز به فلش NAND. علاوه بر این، درایورهای مرجع NVMe برای انواع سیستم عامل ها از جمله ویندوز و لینوکس در دسترس هستند. حافظه NVMe از طریق یک درگاه PCIe و یا یک کانکتور M.2 یا U.2 به مادربرد متصل می شود. به این ترتیب ما شاهد تأخیر کمتر و IOPS بالاتر، به همراه کاهش مصرف انرژی در سیستم خواهیم بود.
چرا حافظه NVMe مهم است؟
حافظه های NVMe برای عملیات ذخیره سازی پایدار با کارایی بالا طراحی شده است و برای کانفیگ های بسیار سخت و محاسباتی مناسب است. به عنوان مثال، NVMe میتواند بار کاری سازمانی را مدیریت کند و این در حالی است که به زیرساخت کمتری نیاز دارد و حتی به انرژی کمتری نسبت به سایر انواع ذخیرهسازی از جمله SAS و SATA نیاز دارد.
تفاوت عملکرد زیادی بین NVMe، SAS و SATA وجود دارد. به عنوان مثال، NVMe تاخیر بسیار کمتری نسبت به پروتکل های SAS و SATA دارد. این بدان معناست که NVMe را می توان با برنامه های کاربردی سنگین که نیاز به پردازش در لحظه (Real Time) دارند و در عین حال باید پایداری بالایی داشته باشند، استفاده کرد. محیطهای سازمانی و مراکز داده معمولا از عملکرد بالای ذخیرهسازی مبتنی بر NVMe بهره می برند.
با توجه به موارد گفته شده می توان نتیجه گرفت حافظه NVMe بهترین نوع حافظه برای سرور است، زیرا با توجه به اینکه سرورها برای سازمان هایی که حجم بالایی از داده و کاربران را دارند به کار گرفته می شوند، اهمیت داشتن سرعت بالا در رد و بدل کردن اطلاعات و دیتا ها بسیار بالاست. در ادامه موارد استفاده از این نوع حافظه را می خوانید.
موارد استفاده NVMe چیست؟
NVMe به دلیل عملکرد و توانایی بالا در مدیریت تعداد زیادی از عملیات مختلف، برای موارد زیر مناسب است:
- استفاده حرفه ای و انجام کارهایی مانند ویرایش گرافیکی.
- برنامه های کاربردی با عمق صف زیاد برای ذخیره سازی ورودی/خروجی، از جمله پایگاه های داده و برخی عملیات های وب.
- محاسبات با کارایی بالا، به ویژه در برنامه هایی که تأخیر کم بسیار مهم است.
- پایگاه داده های رابطه ای که در آن عملکرد سیستم های حافظه NVMe، تعداد سرورهای فیزیکی مورد نیاز را کاهش می دهد.
- برنامه هایی که نیاز به بازیابی یا ذخیره داده ها در زمان واقعی دارند، مانند برنامه های مالی و تجارت الکترونیک.
مزایای NVMe چیست؟
حافظه NVMe مزیت های بسیاری دارد که استفاده از آن را در موارد مختلف مناسب کرده است. از جمله مزایای NVMe می توان به موارد زیر اشاره کرد:
- درایوهای NVMe می توانند دستورات را دو برابر سریعتر از درایوهای SATA ارسال کنند.
- سوکت های PCIe می توانند اطلاعات بسیار بیشتری نسبت به درایوهای SATA انتقال دهند.
- SSD های NVMe تنها چند میکروثانیه تاخیر دارند، در حالی که SSD های SATA تاخیر بین 30 تا 100 میکروثانیه دارند.
- NVMe ذخیره سازی، مدیریت و دسترسی کارآمد به داده ها را ارائه می دهد.
- پهنای باند بسیار بالاتری در مقایسه با SATA و SAS دارد.
- NVMe از چندین فرم فاکتور از جمله کانکتورهای M.2 و U.2 پشتیبانی می کند.
- این نوع حافظه می تواند مجموعه های دستوری را برای تجزیه کارآمد داده ها ساده کند.
- NVMe از پروتکل های تونل سازی برای حفظ حریم خصوصی پشتیبانی می کند.
- از نظر مصرف انرژی کارآمد است. حافظه های NVMe در حالت آماده به کار تنها در حدود 0.0032 وات و در حالت فعال حدود 0.08 وات مصرف انرژی دارند.
- NVMe در تمام سیستم عامل های مهم پشتیبانی می شود و در فرم فاکتور M.2 با دستگاه های پرتابل مانند لپ تاپ ها نیز سازگار است.
- SSD های NVMe برای بازی های کامپیوتری، زمان بارگذاری و زمان نصب سریع تری را برای کنسول های بازی فراهم می کنند.
معایب حافظه NVMe چیست؟
حافظه های NVMe در برخی کاربرد ها دارای معایبی نیز هست که از جمله آن ها می توان موارد زیر را نام برد:
- عدم پشتیبانی از سیستم های قدیمی
- برای ذخیره حجم زیاد داده مقرون به صرفه نیست. حافظه های NVMe بر اساس ظرفیت ذخیره سازی در مقایسه با هارد ها یا HDD و حتی حافظه های SSD معمولی، گرانتر هستند.
- معمولاً با فرمت M.2 عرضه می شوند که این امر می تواند در انتخاب درایو محدویت زیادی ایجاد کند.
تفاوت بین SATA، NVMe و SAS چیست؟
SATA
SATA یک پروتکل ارتباطی است که در سیستم ها برای تعامل با سیستم های ذخیره سازی هارد دیسک، توسعه یافته است. SATA در سال 2000 معرفی شد و جایگزین ATA موازی شد و به سرعت به پروتکل سیستم ذخیره سازی محبوبی برای رایانه ها تبدیل شد. در طول سال ها، بازبینی هایی بر روی مشخصات آن انجام شد و در نهایت به سرعت 6 گیگابیت بر ثانیه (Gbps) با توان عملیاتی تا 600 مگابایت بر ثانیه بهبود داده شد.
اگرچه SATA در ابتدا برای افزایش عملکرد فناوری حافظه های هارد دیسک با صفحات چرخان مکانیکی و هدهای خواندن و نوشتن توسعه داده شد، اما SSD های اولیه نیز با رابط های SATA به بازار عرضه شدند. این موضوع از یک نظر بسیار هوشمندانه بود چون به تسریع پذیرش SSD کمک کرد، اما ساتا، رابط ایده آلی برای حافظه فلش NAND نبوده و از نظر عملکردی، در بهینه ترین حالت ممکن خود قرار ندارد.
SATA تا 100000 IOPS، شش گیگابیت بر ثانیه توان عملیاتی، کمتر از 1 میلی ثانیه تاخیر، یک صف و 32 فرمان در هر صف را پشتیبانی می کند. NVMe حداکثر 10 میلیون IOPS، شانزده گیگابیت بر ثانیه توان عملیاتی، کمتر از 10 میکروثانیه تأخیر، 65535 صف و 65536 فرمان در هر صف را پشتیبانی می کند.
SATA | NVMe | |
---|---|---|
IOPS | 100.000 | 1.000.000 |
توان عملیاتی | 6Gbps | 16Gbps |
تاخیر | کمتر از 1 میلی ثانیه | کمتر از 10 میکروثانیه |
تعداد صف | 1 صف | 65535 صف |
تعداد فرمان در هر صف | 32 فرمان | 65536 فرمان |
NVMe
سرعت NVMe و تأخیر کم آن باعث شده تا ظرفیت ذخیره سازی بسیار بالاتری در فرم کوچکتر مانند M.2 فراهم شود. به طور کلی، پارامترهای عملکرد NVMe پنج برابر یا بیشتر، از SATA فاصله دارند.
SATA سابقه طولانی تر و هزینه های پیاده سازی پایین تری از NVMe دارد، اما از نظر فناوری و عملکرد، نمی تواند در حد و اندازه های NVMe ظاهر شود.
SAS
حافظه NVMe از 64000 فرمان در یک صف پیام و حداکثر 65535 صف ورودی/خروجی پشتیبانی می کند. در مقابل، عمق صف دستگاه SAS معمولاً تا 256 فرمان را پشتیبانی می کند و درایو SATA حداکثر 32 فرمان را در یک صف پشتیبانی می کند.
این نکته را نیز باید در نظر بگیریم که حافظه های SSD و NVMe سازمانی پیشرفته، میتوانند انرژی بیشتری نسبت به SAS مصرف کنند. انجمن تجارت SCSI ادعا می کند که SAS مزایای بیشتری نسبت به SSD های NVMe PCIe ارائه می دهد، مانند مقیاس پذیری بیشتر، قابلیت اتصال سریع (hot pluggability) و قابلیت های شکست زمان تست شده (time-tested failover). SSD های NVMe PCIe همچنین می توانند سطحی از عملکرد را ارائه دهند که بسیاری از برنامه ها به آن نیاز ندارند و برای آن ها کاربردی ندارد.
تاریخچه و تکامل NVM Express
گروه کاری رابط کنترل کننده میزبان حافظه غیر فرار، توسعه مشخصات NVMe را در سال 2009 آغاز کرد و نسخه 1.0 آن را در 1 مارس 2011 منتشر کرد. این مشخصات شامل رابط صف، مجموعه دستورات NVM، مجموعه دستورات مدیریت و ویژگی های امنیتی بود. از دیگر تاریخ های قابل توجه می توان به موارد زیر اشاره کرد:
- 8 نوامبر 2012: گروه کاری NVMe 1.1 را منتشر کرد که پشتیبانی از SSD با چندین پورت PCIe را برای فعال کردن چند مسیر I/O و فضای نام اضافه کرد. سایر قابلیت های جدید شامل انتقال خودکار حالت توان در زمان بیکاری، برای کاهش نیازهای انرژی و رزرو بود، به این معنی که دو یا چند میزبان میتوانند دسترسی به فضای نام مشترک را برای بهبود تحمل خطا هماهنگ کنند.
- می 2013: گروه کاری NVM Express اولین Plugfest خود را برگزار کرد تا شرکت ها را قادر سازد تا مطابقت محصولات خود را با مشخصات NVMe آزمایش کنند و قابلیت همکاری با سایر محصولات NVMe را نیز بررسی کنند.
- مارس 2014: گروه کاری NVM Express تحت نام سازمان NVM Express ایجاد شد. این گروه بعداً به نام NVM Express Inc شناخته شد. این سازمان غیرانتفاعی اکنون بیش از 100 شرکت عضو دارد.
- 3 نوامبر 2014: مشخصات NVMe 1.2 با پیشرفت هایی مانند پشتیبانی از به روزرسانی های میان افزار زنده، بهبود مدیریت انرژی و گزینه ای برای حفاظت از داده های end-to-end ظاهر شد.
- 17 نوامبر 2015: سازمان NVM Express نسخه 1.0 رابط مدیریت NVM Express (NVMe-MI) را برای ارائه یک معماری و مجموعه دستور برای مدیریت یک زیرسیستم حافظه غیر فرار خارج از باند تأیید کرد. NVMe-MI یک کنترلر مدیریت را قادر میسازد تا کارهایی مانند کشف دستگاه SSD و قابلیت ها، نظارت بر سلامت و دما، و به روزر سانی های سیستم را انجام دهد. بدون NVMe-MI، مدیران IT به طور کلی به رابط های مدیریت اختصاصی و خاص برای فعال کردن مدیریت PCIe SSD متکی بودند.
- ژوئن 2017: NVMe 1.3 را منتشر کرد. نکات برجسته این نسخه، محوریت عملیات پاکسازی بود و همین طور چارچوب جدیدی به عنوان دستورالعمل ها و مجازی سازی شناخته شد.
- جولای 2019: NVMe 1.4 همراه با پیشرفتها و ویژگیهای جدید، از جمله کمک بازسازی (rebuild assist)، گزارش رویداد دائمی (persistent event log)، دسترسی نامتقارن به فضای نام (asymmetric namespace access)، بافر حافظه میزبان (host memory buffer) و منطقه حافظه پایدار (persistent memory region) معرفی شد.
- 2020: مشخصات مجموعه فرمان NVMe Zoned Namespaces (ZNS) تصویب شد. این مشخصات NVMe را قادر میسازد تا مجموعه های دستوری را برای فناوری های نوظهور، از جمله ZNS، مقدار کلید و ذخیره سازی محاسباتی، جداسازی و تکامل دهد.
- 3 ژوئن 2021: NVMe 2.0 منتشر شد. این مشخصات برای ایجاد امکان توسعه سریعتر و آسانتر NVMe و پشتیبانی از محیط NVMe متنوع تر بازسازی شد.
- 2022: مشخصات NVMe 2.0 دو بار در ژانویه 2022 به NVMe 2.0b و در اکتبر 2022 به 2.0c تغییر داده شد. این به روز رسانی ها برای امکان توسعه سریعتر و آسان تر فناوری NVMe و افزودن ویژگی هایی مانند ZNS و مدیریت گروه استقامتی (endurance group management) ایجاد شده است.
استانداردهای اتصال حافظه NVMe
نیاز به یک رابط ذخیره سازی و پروتکلی برای بهره برداری بهتر از پتانسیل عملکرد NAND flash در محیط های سازمانی، نیروی محرکه توسعه NVMe بود. اما استاندارد اتصال، باعث ایجاد چندین نوع مختلف پیاده سازی رابط ها شد. از جمله این فرم های استاندارد می توان به موارد زیر اشاره کرد:
- AIC (Add-In Card): این فرم به سازندگان اجازه میدهد Card های خود را ایجاد کنند و بدون اینکه نگران شکل محل ذخیره ساز یا محدودیت های مشابه باشند، در رابط PCIe قرار میگیرند. این Card ها اغلب برای موارد استفاده خاص طراحی شدهاند و میتوانند شامل پردازنده های اضافی و تراشه های دیگر برای افزایش عملکرد ذخیره سازی باشند.
- M.2: فرم M.2 با استفاده از اندازه جمع و جور فلش NAND و تخلیه حرارت کم ایجاد شده است. به این ترتیب، دستگاه های M.2 NVMe برای قرار گرفتن در محفظه های درایو قدیمی در نظر گرفته نشده اند، بلکه باید در فضا های بسیار کوچک تر مستقر شوند. درایوهای SSD M.2 که اغلب به اندازه یک آدامس توصیف می شوند، 22 میلی متر عرض و حدود 80 میلی متر طول دارند، اگرچه برخی از محصولات ممکن است بلندتر یا کوتاهتر باشند.
- U.2: بر خلاف فرم فاکتور M.2، درایو های SSD U.2 به گونهای طراحی شدهاند که در محل ذخیره ساز های موجود که در اصل برای دستگاه های استاندارد SATA یا SAS در نظر گرفته شده بودند، قرار بگیرند. درایوهای SSD U.2 شبیه مدیاهای قدیمی تر به نظر می رسند، زیرا معمولاً از محفظه های 2.5 یا 3.5 اینچی استفاده میکنند که محفظه های آشنا برای هارد دیسک هستند. ایده این فرم این بود که پیاده سازی فناوری NVMe با کمترین مهندسی مجدد تا حد ممکن آسان شود.
- EDSFF (Enterprise and Data Center Standard Form Factor): یکی دیگر از فرم های NVMe که کمتر به کار گرفته شده است و هدف آن ارائه عملکرد و ظرفیت های بالاتر به سیستم های ذخیره سازی کلاس سازمانی است.
- U.3: این فرم می تواند درایوهای NVMe، SAS و SATA را در یک اسلات سرور جای دهد. U.3 با استفاده از مشخصات U.2 ساخته شده است و با استفاده از یک کنترلر سه حالته، کانکتورهای SFF-8639 و یک چارچوب مدیریت جهانی backplane کار می کند. با U.3، سازمان ها به آداپتورهای NVMe، SAS یا SATA جداگانه نیاز ندارند.
نتیجه گیری
در این مقاله در رابطه با حافظه NVMe و نحوه کار و کاربردهای آن آشنا شدیدو همنطور که گفته شد این حافظه مزایای بسیاری دارد اما به همان نسبت گران قیمت تر نیز می باشد. سازمان ها و افراد باید نیازهای خود را بسنجند و سپس حافظه متناسب کسب و کار خود را انتخاب نمایند. اگر سرعت بالا در انتقال داده ها نقش مهمی در توسعه کسب و کار داشته باشد، این حافظه بهترین انتخاب است.