

NVMe giúp khai thác hiệu năng của SSD tốc độ cao thông qua kết nối PCIe. Tuy nhiên, trong trung tâm dữ liệu, việc gắn trực tiếp ổ NVMe vào từng máy chủ có thể gây hạn chế khi nhiều server cần sử dụng chung một hệ thống lưu trữ.
Vậy NVMe-oF là gì, hoạt động như thế nào và khác gì so với NVMe hay iSCSI? Hãy cùng tìm hiểu trong bài viết dưới đây.
NVMe-oF (NVMe over Fabrics) là công nghệ cho phép các lệnh NVMe được truyền giữa máy chủ và SSD hoặc hệ thống lưu trữ thông qua một network fabric, thay vì giới hạn trong kết nối PCI Express (PCIe) cục bộ.

NVMe over Fabrics (NVMe-oF) ra đời để giải quyết một nghịch lý lớn trong trung tâm dữ liệu: ổ cứng NVMe cắm trực tiếp trên máy chủ cho tốc độ cực cao, nhưng khi đem chia sẻ qua mạng lưu trữ tập trung (SAN) thì toàn bộ sức mạnh đó bị nghẽn lại bởi các giao thức truyền thống.
Trước đây, các hệ thống mạng lưu trữ như iSCSI hay Fibre Channel đều xây dựng trên nền tảng giao thức SCSI. Ngăn xếp lệnh SCSI vốn được thiết kế cho thời kỳ ổ đĩa cơ quay (HDD), chỉ hỗ trợ một hàng đợi lệnh duy nhất với tối đa 32 lệnh xử lý đồng thời.
Khi ngành công nghiệp chuyển sang dùng SSD chuẩn NVMe chạy qua bus PCIe - vốn có khả năng xử lý song song tới 64.000 hàng đợi, mỗi hàng đợi chứa 64.000 lệnh - hạ tầng SAN cũ lập tức trở thành cổ chai. Việc phải bọc lệnh NVMe vào khung SCSI để truyền qua mạng rồi giải mã ngược lại gây lãng phí chu kỳ CPU và phát sinh độ trễ chuyển đổi rất lớn, triệt tiêu ưu thế vốn có của flash memory.
NVMe-oF khắc phục triệt để vấn đề này bằng cách mở rộng trực tiếp tập lệnh và cấu trúc hàng đợi song song khổng lồ của NVMe ra môi trường mạng. Chuẩn này đặt ra mục tiêu khắt khe: độ trễ phát sinh thêm khi truyền qua mạng phải ở mức dưới 10 microsecond so với việc cắm ổ trực tiếp vào bo mạch chủ máy chủ.

Về cơ bản, NVMe-oF giữ lại mô hình lệnh NVMe nhưng thay đổi cách dữ liệu và command được truyền giữa host và hệ thống lưu trữ.
Quá trình có thể hiểu qua bốn bước chính.
Ứng dụng trên server cần đọc hoặc ghi dữ liệu.
Hệ điều hành và NVMe driver xử lý yêu cầu, sau đó tạo các NVMe command tương ứng.
Trong NVMe PCIe truyền thống, command được trao đổi với NVMe controller thông qua PCIe.
Với NVMe-oF, command được đóng gói và chuyển thông qua NVMe Fabric Transport.
Tùy kiến trúc hệ thống, transport có thể là:
Network fabric chịu trách nhiệm vận chuyển dữ liệu giữa host và storage target.
NVMe Target nhận command, xử lý yêu cầu trên SSD hoặc storage subsystem rồi trả kết quả về máy chủ.
Đối với ứng dụng, tài nguyên này vẫn có thể xuất hiện như một thiết bị block storage dù dữ liệu thực tế nằm trên một hệ thống storage từ xa.
Để hiểu NVMe over Fabrics, có bốn khái niệm quan trọng cần nắm rõ.
Host là máy chủ sử dụng tài nguyên lưu trữ.
Máy chủ chạy NVMe initiator/host driver để thiết lập kết nối và gửi các NVMe command tới hệ thống storage.
Host có thể là:
NVMe Target là phía cung cấp tài nguyên lưu trữ.
Target nhận command từ host rồi xử lý các thao tác đọc, ghi hoặc quản lý dữ liệu trên storage.
Một target có thể cung cấp storage cho nhiều host khác nhau.
NVMe Subsystem đại diện cho hệ thống cung cấp các namespace, controller và tài nguyên NVMe cho host.
Một subsystem có thể chứa nhiều NVMe controller và namespace tùy thiết kế của giải pháp storage.
Fabric chính là mạng kết nối host và storage target.
Đây có thể là Ethernet, Fibre Channel hoặc mạng hỗ trợ RDMA.
Chất lượng của fabric ảnh hưởng trực tiếp đến các yếu tố như:
SNIA lưu ý rằng mỗi NVMe transport có những đặc tính khác nhau về hiệu năng, tính sẵn sàng và khả năng mở rộng, do đó phù hợp với các môi trường và use case khác nhau.
NVMe-oF hỗ trợ nhiều phương thức truyền tải, cho phép doanh nghiệp lựa chọn theo hạ tầng mạng và yêu cầu hiệu năng.
NVMe/TCP truyền dữ liệu NVMe qua TCP/IP và có thể tận dụng mạng Ethernet hiện có.
Phương thức này phù hợp khi doanh nghiệp ưu tiên khả năng tương thích, dễ triển khai và hạn chế thay đổi hạ tầng. Tuy nhiên, TCP có thể tạo overhead cao hơn RDMA trong các hệ thống yêu cầu độ trễ rất thấp.
NVMe/RDMA sử dụng Remote Direct Memory Access (RDMA), giúp truyền dữ liệu với ít sự tham gia của CPU và hệ điều hành hơn.
Các công nghệ phổ biến gồm RoCE, iWARP và InfiniBand. NVMe/RDMA phù hợp với workload cần latency thấp, throughput cao và IOPS lớn, nhưng thường yêu cầu hạ tầng và cấu hình phức tạp hơn.
NVMe/FC truyền NVMe qua mạng Fibre Channel.
Đây là lựa chọn phù hợp với Data Center đã sử dụng Fibre Channel SAN, giúp tận dụng hạ tầng storage hiện có khi chuyển sang NVMe.
Transport | Hạ tầng | Điểm nổi bật | Phù hợp |
| NVMe/TCP | Ethernet/TCP-IP | Dễ tận dụng mạng hiện có | Enterprise, Cloud |
| NVMe/RDMA | RoCE, iWARP, InfiniBand | Latency thấp, overhead thấp | AI, HPC, hệ thống hiệu năng cao |
| NVMe/FC | Fibre Channel | Tận dụng FC SAN hiện có | Data Center, Enterprise SAN |
Không có transport nào luôn tốt nhất trong mọi trường hợp. Việc lựa chọn còn phụ thuộc vào workload, hạ tầng đang có, ngân sách và yêu cầu hiệu năng.
NVMe được xây dựng cho các thiết bị lưu trữ tốc độ cao và có kiến trúc command hiệu quả.
Khi kết hợp với fabric phù hợp, NVMe-oF có thể giảm overhead của quá trình truy cập remote storage, đặc biệt quan trọng với các workload nhạy cảm về latency.
SSD ngày càng nhanh khiến giao thức và network stack có thể trở thành một phần của bottleneck.
NVMe-oF được thiết kế để mở rộng mô hình NVMe sang môi trường network storage, giúp hệ thống khai thác tốt hơn khả năng của flash storage.

Thay vì một SSD chỉ phục vụ một server, NVMe-oF cho phép tài nguyên lưu trữ tập trung được chia sẻ cho nhiều host.
SNIA cho biết mô hình này giúp hạn chế tình trạng stranded storage capacity, tức dung lượng bị dư thừa tại một máy chủ nhưng không thể được sử dụng hiệu quả bởi những máy chủ khác.
Doanh nghiệp có thể mở rộng tài nguyên compute và storage độc lập hơn.
Ví dụ, hệ thống thiếu CPU có thể thêm compute node mà không bắt buộc phải thêm storage tương ứng.
Ngược lại, khi cần nhiều dung lượng hơn, doanh nghiệp có thể mở rộng storage pool mà không phải bổ sung thêm toàn bộ server.
NVMe-oF phù hợp với mô hình kiến trúc storage hiện đại như:
Đây cũng là một trong những lý do công nghệ này ngày càng được quan tâm trong các hệ thống có số lượng máy chủ và lượng dữ liệu lớn.
NVMe-oF có nhiều ưu điểm nhưng không có nghĩa mọi hệ thống đều cần triển khai.
Local NVMe kết nối trực tiếp với PCIe trong server.
NVMe-oF đưa kết nối storage qua mạng, vì vậy hiệu năng còn phụ thuộc vào:
Một hệ thống NVMe SSD rất nhanh nhưng sử dụng network không phù hợp vẫn có thể gặp bottleneck.
NVMe-oF yêu cầu quản lý đồng thời:
Điều này phức tạp hơn đáng kể so với việc chỉ gắn một SSD NVMe trực tiếp vào server.
Một số kiến trúc yêu cầu:
Do đó cần cân đối giữa hiệu năng đạt được và tổng chi phí sở hữu.
Sự khác biệt lớn nhất nằm ở cách host kết nối tới storage.
Tiêu chí | NVMe | NVMe-oF |
| Tên đầy đủ | Non-Volatile Memory Express | NVMe over Fabrics |
| Kết nối phổ biến | PCIe | Network fabric |
| Phạm vi | Chủ yếu local | Remote/shared storage |
| Tài nguyên | Thường gắn với server | Có thể chia sẻ nhiều host |
| Khả năng scale | Phụ thuộc server | Scale compute/storage linh hoạt hơn |
| Use case | Local NVMe SSD | Data Center, SAN, Cloud, AI, HPC |
Có thể hiểu NVMe-oF không thay thế NVMe.
Nó mở rộng khả năng của NVMe từ phạm vi kết nối cục bộ ra môi trường network fabric.
Cả NVMe-oF và iSCSI đều có thể cung cấp block storage từ xa, nhưng chúng dựa trên hai kiến trúc giao thức khác nhau.
iSCSI truyền các SCSI command thông qua TCP/IP.
Trong khi đó, NVMe-oF mở rộng mô hình NVMe qua network fabric.
NVMe được thiết kế trong thời kỳ SSD và bộ nhớ flash tốc độ cao phát triển mạnh, do đó kiến trúc của nó tập trung nhiều hơn vào khả năng xử lý song song và giảm overhead.
Tiêu chí | NVMe-oF | iSCSI |
| Command | NVMe | SCSI |
| Storage hướng tới | Flash/NVMe hiện đại | Block Storage nói chung |
| Transport | TCP, RDMA, Fibre Channel | TCP/IP |
| Hiệu năng | Hướng tới latency thấp, IOPS cao | Phù hợp nhiều workload phổ thông |
| Mức độ triển khai | Yêu cầu hệ sinh thái NVMe-oF | Rất phổ biến và trưởng thành |
NVMe-oF đặc biệt phù hợp với các workload cần xử lý lượng dữ liệu lớn với tốc độ cao.
Các hệ thống database có lượng giao dịch lớn thường yêu cầu:
NVMe-oF có thể giúp nhiều database server truy cập pool NVMe Storage tập trung thay vì phụ thuộc hoàn toàn vào local storage.
Hệ thống AI có thể sử dụng hàng chục hoặc hàng trăm GPU cùng xử lý tập dữ liệu lớn.
Nếu storage không cung cấp dữ liệu đủ nhanh, GPU có thể phải chờ I/O thay vì tập trung vào tính toán.
Do đó các kiến trúc AI/HPC ngày càng quan tâm đến NVMe-oF nhằm xây dựng storage có bandwidth cao và khả năng mở rộng lớn.
Các cluster HPC thường có nhiều compute node cùng truy cập dataset.
NVMe-oF giúp xây dựng hệ thống storage hiệu năng cao có thể chia sẻ giữa nhiều node.
Đối với Data Center, khả năng tách compute và storage là một lợi thế quan trọng.
Doanh nghiệp có thể tạo một NVMe Storage Pool tập trung rồi phân bổ tài nguyên cho:
NVMe-oF cũng có thể trở thành lớp block storage hiệu năng cao phía dưới hạ tầng virtualization hoặc container.
Nhờ đó workload có thể sử dụng storage từ xa nhưng không nhất thiết phụ thuộc vào ổ đĩa vật lý gắn trực tiếp trên từng node.

NVMe-oF là một giao thức/cơ chế để truyền NVMe qua network fabric. Nó có thể được sử dụng trong kiến trúc SAN nhưng bản thân NVMe-oF không đồng nghĩa với toàn bộ hệ thống SAN.
Có. NVMe/TCP hoạt động trên TCP/IP và Ethernet, trong khi NVMe/RDMA cũng có thể hoạt động trên Ethernet thông qua những công nghệ như RoCE hoặc iWARP.
Không. NVMe/TCP sử dụng TCP/IP và không yêu cầu RDMA.
Đây là một trong những điểm giúp NVMe/TCP dễ triển khai trên hạ tầng Ethernet hiện có hơn.
Không nên hiểu như vậy.
Local NVMe kết nối trực tiếp qua PCIe không phải đi qua network nên có lợi thế về đường truyền ngắn. Giá trị của NVMe-oF nằm ở việc đưa khả năng của NVMe vào mô hình remote/shared storage với mức overhead thấp, thay vì làm cho kết nối mạng nhanh hơn PCIe cục bộ.
Không.
Hai công nghệ phục vụ nhiều trường hợp sử dụng tương tự nhưng có ưu, nhược điểm khác nhau. iSCSI vẫn phù hợp với nhiều hệ thống không đòi hỏi hiệu năng storage cực cao, trong khi NVMe-oF đặc biệt hấp dẫn đối với flash storage và những workload nhạy cảm về latency.
NVMe-oF (NVMe over Fabrics) là công nghệ mở rộng NVMe từ kết nối PCIe cục bộ sang môi trường mạng, cho phép nhiều máy chủ truy cập hệ thống NVMe Storage tập trung thông qua TCP, RDMA hoặc Fibre Channel.
