RDMA (Remote Direct Memory Access) là một công nghệ truyền thông mạng được phát triển từ DMA (Direct Memory Access). Công nghệ này cho phép các ứng dụng người dùng bỏ qua nhân hệ điều hành (CPU) và tương tác trực tiếp với các thẻ giao diện mạng (NIC) để truyền dữ liệu, mang lại băng thông cực cao và độ trễ cực thấp. Ban đầu được phát triển cho lĩnh vực tính toán hiệu suất cao (HPC), RDMA hiện đã được áp dụng rộng rãi trong các trung tâm dữ liệu.

1. Các nguyên lý kỹ thuật của RDMA

Nguyên tắc cốt lõi của RDMA nằm ở việc tận dụng phần cứng chuyên dụng trên các bộ điều hợp mạng (ví dụ: bộ xử lý RDMA trên NIC) để bỏ qua nhân hệ điều hành và thực hiện truyền dữ liệu trực tiếp giữa các bộ nhớ ở cấp độ dưới lớp truyền tải mạng. Cơ chế này giúp giảm thiểu độ trễ và tải CPU đồng thời nâng cao hiệu quả mạng


Trong RDMA, việc giao tiếp giữa người gửi và người nhận được thực hiện thông qua bộ điều hợp RDMA. Đầu tiên, người gửi đăng ký vùng đệm dữ liệu cần gửi trong bộ nhớ của bộ điều hợp RDMA và gửi mô tả vùng đệm (chứa địa chỉ, kích thước và các thông tin khác của dữ liệu) đến người nhận. Người nhận đăng ký bộ đệm nhận với bộ điều hợp RDMA và thông báo cho bộ điều hợp về địa chỉ của bộ đệm nhận. Sau đó, người gửi chuyển dữ liệu trực tiếp từ bộ đệm gửi sang bộ đệm nhận thông qua bộ điều hợp RDMA mà không cần sự can thiệp của hệ điều hành. Quá trình này được gọi là thao tác ghi RDMA. Người nhận cũng có thể đọc dữ liệu trực tiếp từ bộ nhớ của người gửi thông qua thao tác đọc RDMA.


RDMA hỗ trợ ba loại thao tác cơ bản: thao tác ghi, thao tác đọc và thao tác nguyên tử. Thao tác ghi cho phép một nút ghi dữ liệu trực tiếp vào bộ nhớ của một nút khác. Thao tác đọc cho phép một nút đọc dữ liệu trực tiếp từ bộ nhớ của một nút khác. Thao tác nguyên tử là những thao tác đặc biệt có thể thực hiện một số thao tác nguyên tử trên các nút từ xa, chẳng hạn như so sánh và hoán đổi (CAS).


Nguyên lý hoạt động của RDMA chủ yếu là giảm độ trễ truyền dữ liệu và tải cho CPU thông qua cơ chế truy cập bộ nhớ trực tiếp ở cấp độ phần cứng. So với phương thức truyền thông TCP/IP truyền thống, RDMA không cần thiết lập kết nối giữa người gửi và người nhận, cũng như không cần thực hiện các quy trình xử lý giao thức phức tạp, do đó mang lại hiệu suất cao hơn và độ trễ thấp hơn. Ngoài ra, RDMA còn hỗ trợ các tính năng như zero copy và kernel bypass, giúp nâng cao hơn nữa hiệu quả truyền dữ liệu.


Nói chung, nguyên lý kỹ thuật của RDMA là sử dụng phần cứng chuyên dụng trên bộ điều hợp mạng thông qua cơ chế truy cập bộ nhớ trực tiếp (Direct Memory Access), bỏ qua nhân hệ điều hành, từ đó đạt được giao tiếp mạng hiệu quả, có độ trễ thấp và ít chiếm dụng tài nguyên CPU.


2. Các đặc điểm kỹ thuật của RDMA chủ yếu bao gồm các khía cạnh sau:


* Không cần sự can thiệp của CPU: Một trong những đặc điểm cốt lõi của công nghệ RDMA là không cần sự can thiệp của CPU. Các ứng dụng có thể truy cập trực tiếp vào bộ nhớ của máy chủ từ xa mà không tiêu tốn bất kỳ tài nguyên CPU nào trên máy chủ đó. Điều này giúp giảm đáng kể độ trễ và mức độ chiếm dụng CPU trong quá trình truyền dữ liệu, đồng thời nâng cao hiệu suất tổng thể.


* Bỏ qua nhân hệ điều hành: RDMA hỗ trợ công nghệ bỏ qua nhân hệ điều hành, tức là các ứng dụng có thể trực tiếp thực hiện truyền dữ liệu ở chế độ người dùng mà không cần chuyển đổi ngữ cảnh giữa chế độ nhân hệ điều hành và chế độ người dùng. Điều này giúp giảm thiểu thêm độ trễ trong quá trình truyền dữ liệu và nâng cao hiệu quả.


* Không sao chép: Công nghệ RDMA có đặc điểm là không cần sao chép, giúp loại bỏ quá trình CPU sao chép dữ liệu từ bộ nhớ này sang bộ nhớ khác. Trong giao tiếp TCP/IP, việc truyền dữ liệu giữa các máy chủ đòi hỏi phải thực hiện các thao tác sao chép thường xuyên; RDMA giảm thiểu các thao tác sao chép không cần thiết này thông qua truy cập bộ nhớ trực tiếp, từ đó nâng cao hiệu quả truyền dữ liệu.


* Băng thông cao và độ trễ thấp: Do RDMA bỏ qua ngăn xếp giao thức do hệ điều hành cung cấp và trực tiếp thực hiện truyền dữ liệu ở lớp truyền tải mạng, nên nó có hiệu suất sử dụng băng thông cao hơn và độ trễ thấp hơn. Điều này khiến RDMA rất phù hợp với các tình huống truyền thông mạng đòi hỏi hiệu suất cao và độ trễ thấp.


* Hỗ trợ phần cứng: RDMA yêu cầu sự hỗ trợ phần cứng từ card mạng chuyên dụng, thường được trang bị bộ xử lý RDMA riêng biệt để xử lý các giao tiếp RDMA. Sự hỗ trợ phần cứng này giúp RDMA đạt được hiệu suất cao và độ trễ thấp.


Nhìn chung, các đặc điểm kỹ thuật của RDMA bao gồm: không cần sự can thiệp của CPU, bỏ qua nhân hệ điều hành, không sao chép dữ liệu, băng thông cao và độ trễ thấp, cùng với sự hỗ trợ từ phần cứng. Những đặc điểm này giúp RDMA trở thành một công nghệ truyền thông mạng hiệu quả và có độ trễ thấp, đặc biệt phù hợp với các tình huống đòi hỏi xử lý lượng dữ liệu lớn và truyền thông mạng hiệu suất cao.


3. Các tình huống ứng dụng của RDMA


Các tình huống ứng dụng của công nghệ RDMA rất đa dạng. Dưới đây là một số tình huống ứng dụng chính:


* Trung tâm dữ liệu: Trong trung tâm dữ liệu, các máy chủ cần thường xuyên truyền tải và trao đổi lượng dữ liệu lớn. Nhờ hiệu suất cao và độ trễ thấp, RDMA rất phù hợp cho việc truyền thông mạng trong các trung tâm dữ liệu, giúp nâng cao hiệu quả truyền dữ liệu, giảm độ trễ và cải thiện hiệu suất tổng thể.


* Tính toán hiệu suất cao (HPC): Lĩnh vực tính toán hiệu suất cao đòi hỏi phải xử lý lượng dữ liệu khổng lồ và thực hiện các phép tính phức tạp. Công nghệ truy cập bộ nhớ trực tiếp (RDMA) và công nghệ sao chép dữ liệu bằng không (zero copy) có thể giảm thiểu chi phí truyền dữ liệu và nâng cao hiệu quả tính toán. Đồng thời, RDMA hỗ trợ xử lý song song quy mô lớn và rất phù hợp cho tính toán song song đa nút trong môi trường HPC.


* Hệ thống lưu trữ phân tán: Trong một hệ thống lưu trữ phân tán, các nút cần thường xuyên thực hiện các thao tác đọc và ghi dữ liệu. Khả năng truyền dữ liệu hiệu quả và tính năng truy cập bộ nhớ trực tiếp của RDMA có thể nâng cao hiệu quả đọc và ghi dữ liệu giữa các nút, từ đó cải thiện hiệu suất tổng thể của hệ thống lưu trữ phân tán.


* Điện toán đám mây: Trong môi trường điện toán đám mây, việc giao tiếp và truyền dữ liệu giữa các máy ảo (VM) là những yêu cầu phổ biến. Công nghệ RDMA có thể được sử dụng để đảm bảo giao tiếp hiệu quả giữa các máy ảo và nâng cao hiệu suất tổng thể của môi trường điện toán đám mây.


Nhìn chung, mặc dù RDMA có một số nhược điểm và hạn chế, nhưng đây vẫn là một công nghệ truyền thông mạng rất hiệu quả trong nhiều tình huống đòi hỏi hiệu suất cao và độ trễ thấp. Khi quyết định có nên sử dụng RDMA hay không, bạn cần đánh giá tính phù hợp và hiệu suất của công nghệ này dựa trên các yêu cầu cụ thể của ứng dụng và môi trường.

联系我们