نظرات اخیر

    NVMe چیست و چرا اهمیت دارد؟

    NVMe چیست و چرا اهمیت دارد؟

    NVMe که مخفف Non-Volatile Memory Express می باشد، پروتکل جدیدی جهت ذخیره سازی با سرعت بالا است که در مقایسه با پروتکل قدیمی، دارای مزایای فراوانی می باشد.

    موضوع ذخیره سازی داده ها، با توجه به رشد روز افزون آن ها برای سازمان ها اهمیت زیادی دارد. هارد NVMe یکی از بهترین و موثرترین روش های ارتقا سیستم های ذخیره سازی به شمار می رود. استفاده از هارد NVMe تاثیر زیادی بر روی مشاغلی دارد که می بایست از داده های خود به صورت فوری و لحظه ای به منظور تجزیه و تحلیل استفاده کنند.

    فرایند تکامل NVMe

    اولین SSD های مبتنی بر فلش از اینترفیس های فیزیکی و پروتکل های SATA/SAS به منظور ایجاد حداقل تغییرات در ارتقا هارد درایوهای HDD به SSD در سرورهای سازمانی و سیستم های ذخیره سازی آن ها استفاده می کردند. با این حال هیچ یک از این اینترفیس ها و پروتکل ها برای سیستم ذخیره سازی با سرعت بالا مانند NAND یا همان حافظه پایدار طراحی نشده بودند. با توجه به سرعت اینترفیس و عملکرد سیستم ذخیره سازی جدید و همچنین نزدیکی به CPU، بهترین گزینه برای اینترفیس logical storage بعدی PCI Express (PCIe) به نظر می رسید. اسلات های PCIe مستقیما به CPU متصل می شوند و دسترسی شبیه حافظه (memory like) را فراهم می کنند. البتهSSD های اولیه به همراه اینترفیس PCIe دارای استاندارد صنعتی نبوده و از ویژگی های سازمانی برخوردار نیستند. آن ها از سیستم عامل اختصاصی استفاده می کردند که به دلایل زیر به منظور توسعه پذیری سیستم چالش برانگیز بودند:

    – اجرا و نگهداری سیستم عامل دستگاه ها

    • عدم انطباق و ناسازگاری سیستم عامل با نرم افزارهای مختلف
    • عدم استفاده همیشگی از lane های موجود و مجاورت CPU
    • فقدان ویژگی هایی مبتنی بر ارزش افزوده برای فرایند کاری سازمان

    لازم به ذکر است دلیل اولیه پیدایش NVMe، محدودیت های فوق بود.

    منظور از NVMe چیست؟

    NVMe را می توان یک پروتکل با عملکرد بالا و NUMA (Non-Uniform Memory Access) بهینه شده و همچنین پروتکل توسعه یافته ذخیره سازی دانست که هاست را به زیرسیستم حافظه مرتبط می کند. NVMe به عنوان یک پروتکل نسبتا جدید، دارای ویژگی های غنی است که از ابتدا برای حافظه های non-volatile (NAND و حافظه پایدار) طراحی شده و مستقیما توسط اینترفیس PCIe به CPU متصل می شود.

    pci gen

    (نمودار 1). این پروتکل روی خطوط پرسرعت PCIe ایجاد شده است. سرعت انتقال دیتای PCI Gen 3.0 دو برابر اینترفیس SATA است.

    DL_580 G10

    مزایای NVMe

    پروتکل NVMe دارای مزایایی مانند موازی سازی مسیر داده ها به همراه سرعت بالا می باشد و در مقایسه با پروتکل های SAS و SATA عملکرد بهتر و سریع تری دارد. سرعت این پروتکل، علاوه بر این که بر روی اپلیکیشن هایی که به عملکرد بهینه نیاز دارند، تاثیر می گذارد، اپلیکیشن ها و قابلیت های جدید را نیز قادر به انجام پردازش بسیار سریع در لبه شبکه و دیتا سنتر می نماید.

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

    ساختار NVMe

    NVMe می تواند از چندین صف I/O تا 64K پشتیبانی کند، به طوری که هر صف دارای 64k ورودی باشد. در صورتی که پروتکل های SAS و SATA می توانند تنها از صف های تکی پشتیبانی کنند که هر یک به ترتیب دارای 254 amp و 32 ورودی داشته باشند. نرم افزار NVMe host می تواند توسط NVMe controller حداکثر تعداد صف های مجاز را به ازای هر سیستم پیکربندی و حجم کاری مورد نظر، ایجاد کند. NVMe قادر به پشتیبانی از پراکندگی و جمع آوری I/Oها ، به حداقل رساندن بار اضافه CPU در انتقال دیتا و همچنین ارائه قابلیت تغییر اولویت بندی بر اساس نیازهای کاری می باشد.

    تصویر زیر (نمودار شماره 2) نمایی ساده از ارتباط بین Hsot و کنترلر NVMe را نمایش می دهد. این ساختار به اپلیکیشن ها امکان آغاز، اجرا و اتمام چندین درخواست ورودی/خروجی را به طور همزمان می دهد و به این ترتیب سرعت را به بالاترین حد خود می رساند.

    نحوه عملکرد در NVMe Commands

    روش کار به این صورت است که ابتدا هاست command queue های ورودی و خروجی را می نویسد و doorbell (سیگنال آماده ی کامندهای ورودی و خروجی) را ثبت می کند؛ سپس NVMe controller صف command های ورودی و خروجی را انتخاب می کند و آن ها را اجرا می کند و در نهایت صف های تکمیل شده را پس از یک وقفه به هاست می فرستد. هاست صف های تکمیل شده ورودی و خروجی را ثبت می کند و ثبت door را حذف می کند (سیگنال تکمیل شده کامندهای ورودی و خروجی). بنابراین می توان نتیجه گرفت در مقایسه با پروتکل های SAS و SATA بار بسیار کمتری دارد.

     

    nvme commands

    ذخیره ساز HPE

    چرا NVMe بیشترین performance را از پردازنده های multicore می گیرد؟

    همان طور که پیشتر نیز اشاره شد، NVMe پروتکل NNMA بهینه شده است. این ویژگی به هسته های چندگانه CPU اجازه می دهد تا مالکیت صف ها، اولویت آن ها و همچنین مکانیزم داوری آن ها را به اشتراک بگذارند. به این ترتیب، NVMe SSD ها می توانند command ها را پراکنده و جمع آوری کرده و آن ها را خارج از نوبت پردازش کنند تا IOPS بالاتری را با سرعت بیشتری ارائه دهند.

    استانداردها و فرم فاکتور در NVMe

    مشخصات NVMe، مجموعه ای از استانداردها است که توسط یک کنسرسیوم اداره می شود. در حال حاضر،SSD PCIe به عنوان یک استاندارد برای تمامی فرم فاکتورها به حساب می آید. فرم فاکتورهایی مانند استاندارد 2.5”U.2 و internal mounted M.2 و همچنین Add In Card (AIC) و یا EDSFF های مختلف نیز وجود دارند.

    با توجه به تحولات گسترده و جالبی که رخ داده، ویژگی های زیادی به این استانداردها اضافه شده اند مانند صف های چندگانه، ترکیب IOها، تعریف مالکیت، فرایند اولویت بندی، multipath و مجازی سازی ورودی ها و خروجی ها، دریافت به روزرسانی همزمان دستگاه ها و بسیاری ویژگی های دیگر.

    امروزه شاهد استانداردهای بیشتری هستیم به عنوان مثال Zoned Standard و ZNS SSDها. NVMe Zoned Namespace (ZNS) یک پیشنهاد فنی است که توسط سازمان NVM Express در حال بررسی است. با انتقال داده ها از درایو به سمت هاست، مدیریت حجم بسیار زیاد دیتا در زیرساخت های عظیم را تسهیل می نماید. در این صورت فضای نگهداری دیتا به zoneهای مختلف تقسیم شده که می بایست به ترتیب نوشته شوند.

    نوع جدید درایوهای NVMe در مقایسه با NVMe SSDهای قدیمی دارای مزایایی به شرح زیر می باشند:

    • افزایش عملکرد با کاهش دایره نوشتاری
    • افزایش ظرفیت
    • کاهش هزینه ها به دلیل کاهش ابعاد SSD controller DRAM
    • افزایش سرعت

    یکی دیگر از موارد استفاده جالب این است که SD و microSD Express card را می توان از طریق اینترفیس های PCIe و NVMe به هم کانکت کرد. این ویژگی را می توان یکی از قابلیت های نسل جدید محاسباتی موبایلی دانست.

    در آخر باید گفت پروتکل NVMe به اتصال درایوهای فلش محدود نشده و ممکن است توسط یک پروتکل شبکه یا NVMe over Fabric نیز مورد استفاده قرار گیرد. این پروتکل جدید شبکه، یک شبکه با عملکرد بهینه را قادر می سازد تا یک چارچوب رایج برای انواع مختلف انتقال دیتا باشد.

    cybersecurity

    دلیل اهمیت NVMe برای مشاغل

    سازمان ها همواره در پی اطلاعات و داده ها می باشند. افزایش تصاعدی داده ها و تقاضای اپلیکیشن های جدید، معضلی برای SSD ها محسوب می شود. حتی SSD های با عملکرد بهینه نیز هنگامی که به پروتکل های ذخیره سازی قدیمی متصل می شوند، در رویارویی با چالش های Fast Data، دچار عملکرد نامطلوب، تاخیر زمانی و کیفیت پایین خدمات می گردند. ویژگی های بهینه NVMe کمک زیادی به حل مشکلاتی مانند توسعه پذیری دیتابیس و ساختار محاسباتی لبه می نماید و نیازهای جدید داده ها را پاسخ می دهند.

    نتیجه گیری

    NVMe برای سیستم ذخیره سازی non volatile یا پایدار و عملکرد مطلوب طراحی شده و تنها پروتکلی است که در اکوسیستم دیتای سازمانی، لبه و فضای ابری بسیار پرتقاضا است.

    مطالب مرتبط