RDMA là gì? Ưu Nhược Điểm và Cách Thức Hoạt Động của RDMA

RDMA là công nghệ mạng giúp tăng hiệu suất và giảm độ trễ khi truyền dữ liệu giữa các hệ thống. Cùng tìm hiểu chi tiết về RDMA ở bài viết nhé!

[toc]

RDMA là gì?

RDMA viết tắt bởi Remote Direct Memory Access ( truy cập bọ nhớ trực tiếp từ xa) là công nghệ mạng giúp bạn gửi dữ liệu nhanh chóng và dễ dàng từ bộ nhớ máy tính của bạn đến bộ nhớ một máy tính khác. Điều này rất hữu ích khi xử lí các tập tin lớn hoặc quy trình phức tạp như đối với machine learning.

RDMA là gì? Ưu Nhược Điểm và Cách Thức Hoạt Động của RDMA
RDMA là gì?

RDMA thường được sử dụng để truyền dữ liệu trực tiếp từ bộ nhớ chính hoặc bộ nhớ làm việc của máy tính sang bộ lưu trữ máy tính khác. Trong trường hợp này, hệ điều hành, CPU và bộ nhớ đệm hoàn toàn bị bỏ qua để giảm tài nguyên phần cứng. Với mục đích này, quá trình truyền của RDMA chạy qua bộ nhớ đệm riêng khi người dùng truyền dữ liệu. Khi thực hiện như vậy, công nghệ này sẽ truy cập vào card mạng hệ thống, nơi quá trình truyền được xử lý qua Ethernet hay InfiniBand.

Nhiều sản phẩm ( phần cứng và phần mềm) đã họ trợ RDMA như:

  • Apache Hadoop
  • Spark
  • Baidu Paddle
  • Dell EMC PowerEdge Server
  • Intel Xeon Scalable Processors
  • Microsoft Windows Server 2012 trở lên

Các giao thức RDMA phổ biến

Các giao thức RDMA phổ biến bao gồm:

InfiniBand (IB): Đây là một giao thức RDMA tốc độ cao dùng trong các hệ thống tính toán hiệu năng cao và trung tâm dữ liệu. Nó cung cấp băng thông cao, độ trễ thấp, hỗ trợ truy cập bộ nhớ từ xa mà không cần sự can thiệp của CPU. Giao thức này hiện được ứng dụng nhiều trong các hệ thống HPC, siêu máy tính, hệ thống tính toán phân tán và hệ thống lưu trữ tốc độ cao.

RoCE (RDMA over Converged Ethernet): cho phép RDMA hoạt động qua mạng Ethernet, giúp tích hợp dễ dàng với hạ tầng mạng Ethernet hiện có. Nó không yêu cầu phần cứng đặc biệt ngoài việc hỗ trợ RDMA trên các card mạng. Hiện nó được sử dụng rộng rãi trong các môi trường trung tâm dữ liệu, điện toán đám mây, hệ thống lưu trữ và cơ sở dữ liệu phân tán.

iWARP: là giao thức RDMA hoạt động qua giao thức TCP/IP, cho phép RDMA hoạt động trên mạng diện rộng và mạng LAN sử dụng các mạng TCP/IP hiện có. Nó phù hợp cho các môi trường có mạng phức tạp, ứng dụng đám mây và các hệ thống phân tán hoạt động qua WAN.

Cách thức hoạt động của RDMA

Để chuyển đổi dữ liệu qua RDMA, bạn cần có một bộ giao thức phù hợp trong card mạng. Thông thường TCP/IP được sử dụng làm cơ sở. Chỉ thông qua một giao thức vận chuyển phù hợp, công nghệ này mới có thể hỗ trợ công nghệ mạng không sao chép (zero copy networking).

Ví dụ: Mạng không sao chép không sử dụng bộ xử ký của máy tính. Khi cả hai hệ thống đều cho phép sử dụng RDMA, dữ liệu được truyền giữa chúng sẽ nhanh hơn đáng kể so với các hệ thống không hỗ trợ RDMA.

Để chuyển đổi mượt mà hơn với RDMA, các công nghệ mạng và giao diện sau đây đáp ứng các yêu cầu tốt nhất:

  • RoCE – Chạy RDMA thông qua kết nối Ethernet
  • IWARP: truyền dữ liệu dựa trên giao thức TCP hoặc TCP phát trực tuyến.
  • InfiniBand: giúp truyền tệp với độ trễ thấp hơn, giúp chuyển đổi dữ liệu nhanh chóng.

Tuy nhiên, RDMA cũng có thể sử dụng kết hợp với các phương tiện lưu trữ Flash hoặc thẻ SSD và NVDIMM (non-volatile dual in-line memory modules).

Cách Thức Hoạt Động của RDMA
Cách Thức Hoạt Động của RDMA

Sau đây là cách thức hoạt động của RDMA:

Khởi tạo kết nối RDMA: Hai máy tính thiết lập kết nối với nhau qua giao thức RDMA ( qua card mạng NIC hỗ trợ RDMA), hai hệ thống thỏa thuận về khu vực bộ nhớ nào sẽ được chia sẻ hoặc cho phép truy cập từ xa.

Truy cập bộ nhớ trực tiếp: RDMA bỏ qua CPU và hệ điều hành khi truyền dữ liệu, nó cho phép truy cập trực tiếp vào vùng bộ nhớ của máy đích. RDMA sử dụng cơ chế DMA để truyền dữ liệu từ bộ nhớ của hệ thống nguồn đến bộ nhớ hệ thống đích. Quá trình này diễn ra ở phần cứng không yêu cầu sự can thiệp của CPU.

Truyền dữ liệu qua mạng: Card mạng NIC hỗ trợ RDMA xử lý việc truyền dữ liệu, trực tiếp gửi dữ liệu từ vùng bộ nhớ của hệ thống gửi đến vùng bộ nhớ đích của hệ thống nhận qua mạng. RDMA sử dụng các khóa bảo mật hoặc mã định danh để đảm bảo chỉ các vùng bộ nhớ được thỏa thuận mới được truy cập.

Hoàn thành việc truyền dữ liệu: Trong quá trình truyền dữ liệu, không cần phải sao chép giúp giảm độ trễ và tải trọng trên CPU. Sau khi truyền thành công, NIC có thể gửi một thông báo hoặc tín hiệu đến CPU để thông báo quá trình đã hoàn tất.

Ưu điểm – hạn chế của RDMA

Ưu điểm của RDMA:

  • RDMA giúp giảm độ trễ do không cần thông qua CPU và hệ điều hành, đồng thời giúp giảm thời gian xử lý khi truyền dữ liệu
  • Truyền dữ liệu tốc độ cao, băng thông cao giúp tối ưu hóa truyền dữ liệu trong các môi trường đòi hỏi khối lượng công việc lớn.
  • Việc truyền dữ liệu không cần CPU giúp tăng khả năng xử lý của hệ thống mà không bị giới hạn bởi khả năng xử lý của CPU.
  • RDMA loại bỏ sự cần thiết của bộ đệm I/O trung gian, giảm thời gian sao chép dữ liệu, tăng hiệu quả sử dụng tài nguyên hệ thống
  • RDMA ứng dụng hiệu quả tỏng các môi trường phân tán và trung tâm dữ liệu, nhất là khi hệ thống cần mở rộng quy mô mà vẫn cần duy trì hiệu suất cao
  • RDMA yêu cầu khóa bảo mật và mã định danh để kiểm soát quyền truy cập bộ nhớ từ xa, giúp tăng tính bảo mật trong việc truyền dữ liệu trực tiếp.

Hạn chế của RDMA:

  • RDMA yêu cầu card mạng hỗ trợ RDMA và phần cứng phải tương thích. Dẫn đến tăng chi phí đầu tư cho hạ tầng.
  • Quá trình cấu hình và triển khai phức tạp cần người có kiến thức sâu về mạng, hệ điều hành và phần cứng.
  • RDMA có thể hoạt động không hiệu quả như các mạng LAN với độ trễ thấp, băng thông lớn trên các mạng WAN có độ trễ cao, chất lượng đường truyền không ổn định.
  • Khả năng tương thích hạn chế, gây khó khăn khi tích hợp RDMA vào hệ thống mạng có sẵn.
  • Chi phí bảo trì và nâng cấp hệ thống RDMA có thể cao hơn so với các giải pháp mạng truyền thống.

So sánh DMA và RDMA

DMA (Direct Memory Access) là công nghệ cho phép các thiết bị máy tính như ổ đĩa, card mạng có thể truy cập và truyền dữ liệu trực tếp vào bộ nhớ chính mà không thông qua CPU. Nó giúp tăng hiệu suất hệ thống bằng cách giảm tải công việc của CPU và tăng tốc độ truyền dữ liệu giưa các thiết bị.

Direct Memory Access
DMA là gì và nó khác RDMA như thế nào?

Vậy DRAM khác với DMA như thế nào? chúng ta cùng tìm hiểu nhé:

RDMA và DMA đều là những kỹ thuật quan trọng để nâng cao hiệu suất bằng cách hợp lý hóa việc di chuyển dữ liệu. Tuy nhiên, hai kỹ thuật này phục vụ cho các mục đích riêng và hoạt động trong các trường hợp khác nhau. Sau đây là các điểm khác biệt giữa chúng:

Về cách hoạt động:

Các hoạt động của DMA bị giới hạn trong môi trường máy tính cục bộ hoặc một thiết bị duy nhất. Trong khi RDMA hoạt động rộng hơn, tạo điều kiện truy cập bộ nhớ trực tiếp giữa các hệ thống mạng.

RDMA cung cấp độ trễ thấp và băng thông cao hơn so với các biện pháp truyền dữ liệu truyền thống. DMA cải thiện hiệu suất của hệ thống cục bộ nhưng RDMA giải quyết cả hiệu quả truyền dữ liệu cục bộ và từ xa.

Cả RDMA và DMA đều giúp giảm chi phí CPU bằng cách cho phép dữ liệu truyền mà không cần qua CPU. Tuy nhiên, RDMA cũng giảm gánh nặng cho CPU với các tác vụ xử lý liên quan đến mạng, giúp tăng hiệu suất cho hệ thống.

Về ứng dụng:

DMA thường được sử dụng trong hệ thống có các tác vụ như chuyển dữ liệu từ đĩa sang bộ nhớ trong quá trình đọc tệp hoặc giữa các thiết bị I/O và bộ nhớ. Giúp giảm tải CPU cho các hoạt động dữ liệu nặng trong một máy duy nhất.

RDMA: Phổ biến trong môi trường mạng như điện toán hiệu suất cao HPC, dịch vụ tài chính cho nền tảng giao dịch tuần suất cao, trung tâm dữ liệu đám mây, giúp cải thiện hiệu quả của các ứng dụng phân tán yêu cầu trao đổi dữ liệu nhanh chóng.

Triển khai và hỗ trợ:

DMA thường được tích hợp vào phần cứng và hệ điều hành hiện đại, chỉ yêu cầu người dùng cuối phải cấu hình tối thiểu.

RDMA: Việc triển khai thường đòi hỏi phần cứng mạng tương thích và phần mềm. Mặc dù phức tạp khi thiết lập nhưng nó mang lại nhiều lợi ích về hiệu suất.

Như vậy, DMA và RDMA đều cải thiện đáng kể việc truyền dữ liệu, tối ưu hóa hệ thống máy tính. Trong khi DMA cải thiện hiệu suất và giao tiếp hệ thống bằng cách giảm thiểu tình trạng quá tải CPU thì RDMA lại tăng tốc trao đổi dữ liệu cấp độ mạng, mang lại lợi thế trong điện toán phân tán. Bạn cần căn cứ vào nhu cầu về tốc độ, hiệu quả và khối lượng dữ liệu truyền để cân nhắc lựa chọn giữa DMA hay RDMA.

Kết luận

Trên đây, LANIT đã chia sẻ về RDMA – công nghệ mạng giúp tối ưu hóa việc truyền dữ liệu được sử dụng phổ biến hiện nay. Nếu bạn còn thắc mắc hoặc cần tư vấn về các dịch vụ lưu trữ đám mây như Cloud VPS, Cloud Hosting tại LANIT, liên hệ ngay với chúng tôi nhé!

avata Hải

Triệu Huyền Trang

Triệu Huyền Trang chuyên gia 3 năm kinh nghiệm trong ngành Công Nghệ, Phần Mềm. Chuyên chia sẻ các kiến thức phần mềm mã nguồn, ứng dụng và thông tin về công nghệ hữu ích.

Chat với chúng tôi qua Zalo!
Chat với chúng tôi qua Zalo!