NVMe over Fabrics: FC-NVMe, NVMe/TCP, NVMe/RoCE ও সেগুলোর অপটিক্স
সার্ভারের ভেতরে NVMe সরিয়ে দিয়েছে SCSI-কে, কারণ ফ্ল্যাশ এতই দ্রুত যে প্রোটোকলের ওভারহেড আলাদা করে চোখে পড়ে; ফ্যাব্রিকের ওপর NVMe (NVMe-oF) একই কমান্ড সেট নেটওয়ার্ক জুড়ে বহন করে, যাতে শেয়ার্ড স্টোরেজও তাল মেলাতে পারে। এটি চলে তিনটি ট্রান্সপোর্টে, যেগুলো তিন ধরনের নেটওয়ার্কের সঙ্গে মেলে; ফলে অপটিক্সও তিন ধরনের, আর ফিজিক্যাল লেয়ারের নিয়মও তিন সেট। এই পেজে সেগুলোর তুলনা করা হয়েছে এবং প্রতিটি লিংকের কাছে কী চায় তা বলা হয়েছে।
কেন NVMe-oF
| দিক | SCSI-যুগ (FCP, iSCSI) | NVMe-oF |
|---|---|---|
| কমান্ড কিউ | একটি কিউ, ~32–256 কমান্ড | সর্বোচ্চ 64k কিউ × 64k কমান্ড; নকশাতেই সমান্তরাল |
| প্রতি I/O-এর প্রোটোকল ওভারহেড | CPU সময়ের কয়েক দশ µs | কয়েক µs; RDMA ট্রান্সপোর্ট CPU-কে এড়িয়ে যায় |
| ফ্যাব্রিক যে ল্যাটেন্সি যোগ করে | সাধারণত 100–200 µs | 10–30 µs (RDMA/FC), 30–80 µs (TCP) |
| সবচেয়ে উপযোগী | HDD ও প্রথম দিকের ফ্ল্যাশ অ্যারে | অল-ফ্ল্যাশ, ডিসঅ্যাগ্রিগেটেড স্টোরেজ, GPU ডেটা পাইপলাইন |
ট্রান্সপোর্ট
| ট্রান্সপোর্ট | নেটওয়ার্ক | লসলেস? | ল্যাটেন্সি | মন্তব্য |
|---|---|---|---|---|
| FC-NVMe (FC-NVMe-2) | ফাইবার চ্যানেল 16/32/64GFC | হ্যাঁ, ক্রেডিটের মাধ্যমে | খুব কম | একই ফ্যাব্রিক ও SFP-তে SCSI FCP-এর পাশাপাশি চলে; জোনিং ও নেম সার্ভার অপরিবর্তিত (FC প্রোটোকলের মূল বিষয়) |
| NVMe/RoCE v2 | RDMA NIC-সহ ইথারনেট 25/100/200/400G | PFC/ECN (DCQCN) লাগে | খুব কম | UDP/IP-এর ওপর RDMA ভার্বস; প্রান্ত থেকে প্রান্ত লসলেস কনফিগারেশন দরকার (লসলেস ইথারনেট) |
| NVMe/TCP | যেকোনো ইথারনেট/IP | না; TCP প্যাকেট হারানো সামলায় | কম–মাঝারি | বিশেষ NIC বা সুইচ ফিচার লাগে না; রাউটযোগ্য; এন্টারপ্রাইজে সবচেয়ে বেশি ব্যবহৃত বিকল্প |
| NVMe/IB | ইনফিনিব্যান্ড | হ্যাঁ, ক্রেডিটের মাধ্যমে | খুব কম | HPC/AI স্টোরেজ (ইনফিনিব্যান্ড) |
চারটিই NVMe-oF-এর একই আর্কিটেকচার ভাগ করে: ডিসকভারি কন্ট্রোলার হোস্টকে জানায় কোন সাবসিস্টেম আছে; হোস্ট I/O কন্ট্রোলারের সঙ্গে কিউ কানেক্ট করে; ANA (অ্যাসিমেট্রিক নেমস্পেস অ্যাক্সেস) মাল্টিপাথ সামলায়।
ফিজিক্যাল লেয়ারের কাছে প্রতিটির চাহিদা
| ট্রান্সপোর্ট | লিংকের প্রয়োজনীয়তা | অপটিক্স |
|---|---|---|
| FC-NVMe | পরিচ্ছন্ন FC লিংক: CRC/ITW শূন্যের কাছাকাছি, ক্রেডিট ফুরিয়ে যায়নি | 16/32/64GFC-এর FC SFP, ভেন্ডরের যাচাই করা (FC অপটিক্স) |
| NVMe/RoCE | শূন্য লস: FEC চালু, RoCE ক্লাসে PFC চালু, কোনো CRC এরর নেই (প্রতিটি হারানো ফ্রেম গো-ব্যাক-N পুনঃপ্রেরণের মাধ্যমে RDMA কিউ আটকে দেয়) | 25G SFP28 / 100G QSFP28 / 400G; র্যাকে DAC, সারিতে SR/AOC, কক্ষের মধ্যে LR/DR; প্রতিটি PMD অনুযায়ী FEC |
| NVMe/TCP | সাধারণ; প্যাকেট হারালে ল্যাটেন্সি বাড়ে, কিন্তু ডেটার সঠিকতা নষ্ট হয় না | যেকোনো ইথারনেট অপটিক্স |
| NVMe/IB | ইনফিনিব্যান্ড ফ্যাব্রিকের মতোই | IB ক্যাবল ও অপটিক্স (IB ক্যাবলিং) |
এ ক্ষেত্রে RoCE-ই সবচেয়ে সংবেদনশীল: সীমার কিনারায় থাকা Rx পাওয়ার বা নোংরা কানেক্টরযুক্ত লিংক এমন CRC এরর তৈরি করে, যা TCP নীরবে সামলে নিত, কিন্তু RDMA কিউকে চোখে পড়ার মতো আটকে দেয়। স্টোরেজের ল্যাটেন্সি স্পাইক কোনো পোর্টের এরর কাউন্টারের সঙ্গে তাল মিলিয়ে বাড়লে সেটিই সূত্র (Rx পাওয়ার ও লিংক বাজেট, VDM ও FEC মেট্রিক)।
বাছাই
| পরিস্থিতি | উপযুক্ত ট্রান্সপোর্ট |
|---|---|
| বিদ্যমান FC SAN, অল-ফ্ল্যাশ অ্যারে | FC-NVMe: একই ফ্যাব্রিক, একই অপটিক্স, প্রতিটি টার্গেটে আলাদাভাবে চালু করুন |
| গ্রিনফিল্ড ইথারনেট স্টোরেজ, মিশ্র ভেন্ডর, সাইটের মধ্যে রাউটিং | NVMe/TCP |
| ল্যাটেন্সি-সংবেদনশীল, একক-ভেন্ডর ইথারনেট, নিজেদের লসলেস দক্ষতা আছে | NVMe/RoCE |
| IB ফ্যাব্রিকযুক্ত HPC/AI ক্লাস্টার | NVMe/IB অথবা IB-এর ওপর প্যারালাল ফাইল সিস্টেম |
| ইথারনেট স্কেল-আউটযুক্ত GPU ক্লাস্টার | আলাদা স্টোরেজ নেটওয়ার্কে NVMe/RoCE বা NVMe/TCP (GPU ফ্যাব্রিক) |
অপারেশনাল নোট
- সম্ভব হলে স্টোরেজ ও কম্পিউটিংয়ের জন্য আলাদা নেটওয়ার্ক, অন্তত আলাদা ট্রাফিক ক্লাস; RoCE-এর দরকার নিজস্ব লসলেস ক্লাস।
- MTU: ইথারনেট ট্রান্সপোর্টে 9000; প্রান্ত থেকে প্রান্ত একই মান।
- মাল্টিপাথ: দুটি ফ্যাব্রিক অথবা দুটি VLAN/লিফ; ANA-সচেতন ইনিশিয়েটর।
- মনিটরিং: প্রতি পোর্টের CRC/FEC ও পজ কাউন্টার, সঙ্গে DDM-এর প্রবণতা; অবনতি হতে থাকা মডিউল বিকল হওয়ার অনেক আগেই টেইল ল্যাটেন্সি হিসেবে ধরা পড়ে (মনিটরিং)।
- ফার্মওয়্যার: NIC/HBA ও অ্যারের ফার্মওয়্যার-সামঞ্জস্যের ম্যাট্রিক্স অপটিক্সের সামঞ্জস্যের মতোই গুরুত্বপূর্ণ (SAN-এ অপটিক্স)।
CodingBox-এ
NVMe-oF ফ্যাব্রিকের অপটিক্স সাধারণ FC, ইথারনেট বা IB মডিউলই; পার্থক্য হলো ট্রান্সপোর্ট কতটা কম এরর সহ্য করে। ইনস্টলেশনের আগে টেস্ট বেঞ্চে শনাক্তকরণ তথ্য ও বেসলাইন DDM পড়া (Check transceiver, DDM) এবং অ্যারে ও সুইচের ভেন্ডর যে শনাক্তকরণ তথ্য গ্রহণ করে তা কোড করা (ভেন্ডর লক) কাজের সেই অংশ, যা প্রোগ্রামারের ভাগে পড়ে।
এই ফ্যাব্রিকগুলো যে অ্যাডাপ্টারের ওপর চলে, সেই 100G/200G NIC, তাদের কেজ, PCIe-এর সীমা ও মডিউল-নীতি: অপটিক্যাল পোর্টসহ NIC।