CodingBox الوثائق

NVMe عبر النسيج (Fabrics): FC-NVMe وNVMe/TCP وNVMe/RoCE ووحداتها الضوئية

استبدل NVMe بروتوكول SCSI داخل الخادم لأن الفلاش سريع بما يكفي لإظهار التكلفة الحاسوبية للبروتوكول القديم؛ ويحمل NVMe عبر الشبكات (NVMe-oF) مجموعة الأوامر نفسها عبر شبكة بحيث يستطيع التخزين المشترك مجاراة السرعة. ويعمل فوق ثلاثة نواقل تقابل ثلاثة أنواع من الشبكات — وبالتالي ثلاثة أنواع من البصريات وثلاث مجموعات من قواعد الطبقة الفيزيائية. تقارن هذه الصفحة بينها وتبيِّن ما يطلبه كل منها من الوصلات.

لماذا NVMe-oF

الجانبعصر SCSI (FCP، وiSCSI)NVMe-oF
طوابير الأوامرطابور واحد، ~32–256 أمرًاحتى 64 ألف طابور × 64 ألف أمر؛ متوازية بحكم التصميم
التكلفة الحاسوبية للبروتوكول لكل عملية إدخال/إخراجعشرات الميكروثواني من وقت المعالجبضع ميكروثوانٍ؛ وتتجاوز نواقل RDMA المعالج
الكمون الذي يضيفه النسيجنمطيًا 100–200 µs10–30 µs (RDMA/FC)، و30–80 µs (TCP)
الأنسب لـHDD ومصفوفات الفلاش المبكرةالتخزين الكامل بالفلاش، والتخزين المفكَّك، ومسارات بيانات GPU

النواقل

الناقلالشبكةبلا فقد؟الكمونملاحظات
FC-NVMe (FC-NVMe-2)Fibre Channel بسرعة 16/32/64GFCنعم، بالأرصدةمنخفض جدًايعمل إلى جانب SCSI FCP على النسيج وSFP نفسها؛ وتقسيم المناطق وخادم الأسماء دون تغيير (أساسيات بروتوكول FC)
NVMe/RoCE v2Ethernet بسرعة 25/100/200/400G ببطاقات NIC تدعم RDMAيتطلب PFC/ECN (DCQCN)منخفض جدًاverbs الخاصة بـRDMA فوق UDP/IP؛ يحتاج ضبطًا بلا فقد من طرف إلى طرف (إيثرنت بلا فقد)
NVMe/TCPأي Ethernet/IPلا — يتعامل TCP مع الفقدمنخفض إلى متوسطبلا بطاقات NIC أو ميزات مبدِّل خاصة؛ قابل للتوجيه؛ الخيار الأكثر انتشارًا في المؤسسات
NVMe/IBInfiniBandنعم، بالأرصدةمنخفض جدًاتخزين HPC/الذكاء الاصطناعي (InfiniBand)

وتتشارك النواقل الأربعة معمارية NVMe-oF نفسها: تخبر وحدة تحكم الاكتشاف المضيفين بالأنظمة الفرعية الموجودة؛ ويُوصِّل المضيفون الطوابير بوحدات تحكم الإدخال/الإخراج؛ وتتولى ANA (الوصول غير المتماثل لمساحة الأسماء) تعدد المسارات.

ما يطلبه كل ناقل من الطبقة الفيزيائية

الناقلمتطلب الوصلةالبصريات
FC-NVMeوصلات FC نظيفة — CRC/ITW قريبان من الصفر، والأرصدة غير مستنفَدةFC SFP بسرعة 16/32/64GFC، معتمدة من المورّد (بصريات FC)
NVMe/RoCEفقد صفري: FEC مفعَّل، وPFC على فئة RoCE، ودون أخطاء CRC (كل إطار مفقود يوقف طابور RDMA بإعادة إرسال go-back-N)25G SFP28 / 100G QSFP28 / 400G؛ وDAC داخل الرف، وSR/AOC داخل الصف، وLR/DR بين الغرف؛ وFEC حسب PMD
NVMe/TCPعادية؛ ويكلِّف الفقد كمونًا، لا صحة البياناتأي بصريات Ethernet
NVMe/IBكما في نُسُج InfiniBandكبلات وبصريات IB (كبلات IB)

وRoCE هو الأكثر حساسية: فالوصلة بقدرة Rx هامشية أو موصل متسخ تُنتج أخطاء CRC كان TCP سيمتصها بصمت، لكنها توقف طوابير RDMA بشكل ظاهر. وارتفاعات كمون التخزين التي تتبع عدّادات أخطاء المنفذ هي العلامة الدالة (قدرة Rx وميزانية الوصلة، مقاييس VDM وFEC).

الاختيار

الموقفالناقل المناسب
شبكة SAN من نوع FC قائمة، ومصفوفات فلاش كاملةFC-NVMe — النسيج والبصريات نفسها، فعِّله لكل هدف
تخزين Ethernet جديد كليًا، وموردون متعددون، وتوجيه بين المواقعNVMe/TCP
حساس للكمون، ومورّد Ethernet واحد، وخبرة داخلية بالتقنية بلا فقدNVMe/RoCE
عنقود HPC/ذكاء اصطناعي بنسيج IBNVMe/IB أو أنظمة ملفات متوازية فوق IB
عناقيد GPU بتوسع أفقي (scale-out) عبر EthernetNVMe/RoCE أو NVMe/TCP على شبكة تخزين منفصلة (نُسُج GPU)

ملاحظات تشغيلية

  • شبكات منفصلة للتخزين والحوسبة حيثما أمكن — أو فئات حركة منفصلة على الأقل؛ ويحتاج RoCE فئته الخاصة بلا فقد.
  • MTU: بقيمة 9000 على نواقل Ethernet؛ ومتّسقة من طرف إلى طرف.
  • تعدد المسارات: نسيجان أو VLAN/leaf اثنان؛ وأجهزة بادئة (initiators) تدرك ANA.
  • المراقبة: عدّادات CRC/FEC والإيقاف المؤقت لكل منفذ، إضافة إلى اتجاهات DDM — فالوحدة البصرية المتدهورة تظهر كزمن انتظار ذيلي قبل فشلها بوقت طويل (المراقبة).
  • البرنامج الثابت: مصفوفات توافق البرنامج الثابت لبطاقات NIC/HBA والمصفوفة تهم بقدر أهمية توافق البصريات (البصريات في SAN).

في CodingBox

بصريات نسيج NVMe-oF هي وحدات FC أو Ethernet أو IB عادية؛ والفرق هو مقدار الخطأ الضئيل الذي يتحمله الناقل. وقراءة الهوية وDDM كخط أساس على منصة الاختبار قبل التركيب (Check transceiver، DDM)، وترميز الهويات التي يقبلها موردو المصفوفة والمبدِّل (قفل المورّد)، هما الجزءان من المهمة اللذان يلامسان المبرمج.

المهايئات التي تعمل عليها هذه النُسُج — بطاقات NIC بسرعة 100G/200G، وأقفاصها، وحدود PCIe، وسياسات الوحدات: بطاقات NIC بمنافذ ضوئية.


إذا وجدت معلومة غير دقيقة أو خطأً في هذه المادة، فحدِّد المقطع المعني واضغط Ctrl+Enter .