Remote Direct Memory Access (RDMA)

Published on April 15, 2023
Remote Direct Memory Access (RDMA)

Remote Direct Memory Access เป็นเทคโนโลยีที่ทำให้เครื่องคอมพิวเตอร์ที่เชื่อมต่อกันในระบบเครือข่าย ทำการแลกเปลี่ยนข้อมูลที่อยู่ในหน่วยความจำได้โดยตรง และ ไม่จำเป็นที่จะต้องอาศัย cache ใน CPU หรือว่า ระบบปฏิบัติการ RDMA นั้นจะช่วยให้ throughput และ ประสิทธิภาพ เพราะว่า มันช่วยให้มีการปล่อยทรัพยากรนั้นทำได้เร็วขึ้น ทำให้อัตราการส่งข้อมูลนั้นเร็วขึ้น และ latency น้อยลง เพราะฉะนั้นทำให้ทั้งความเร็วในการส่งข้อมูลในระบบเครือข่ายและทั้งการทำงานของ storage นั้นดีขึ้นอย่างมาก

RDMA นั้นมีการใช้ protocol เพื่อที่จะทำให้การส่งข้อมูลทั้ง เข้า และ ออก ระหว่างมีปรสิทธิภาพด้วยการใช้ transport protocol ภายใน network card เลย โดยเราจะเรียกว่า RDMA over Converged Ethernet (RoCE) เพื่อให้เกิดการสื่อสารระหว่าง Network Card

 

แสดงการไหลของข้อมูล RDMA

รูปที่ 1 แสดงการไหลของข้อมูล RDMA

 

RDMA นั้นใช้หลักการที่เรียกว่า zero-copy ซึ่งหลักการก็คือ การอ่านหน่วยความจำของ เครื่องคอมพิวเตอร์ที่ 1 และทำการเขียนไปในหน่วยความจำของเครื่องที่ 2  โดย bypass ระดับชั้น kernel ของระบบปฏิบัติการ ในคอมพิวเตอร์ทั้งสองเครื่อง หลักการของ RDMA นั้นถูกใช้อย่างกว้างขวางใน high-performance computing (HPC) และ hyperconverged (HCI) นอกจากนั้น ก็ยังมีการใช้งานในระบบ cluster และ database ที่จำเป็นต้องใช้ latency ต่ำๆ

การที่เราจะใช้ RDMA ได้นั้นจำเป็นที่จะต้องใช้ NIC ที่สนับสนุน RDMA และ จะต้องใช้ network protocol ซึ่งปัจจุบัน มีอยู่หลายตัวดังต่อไปนี้

  • RDMA over Converged Network (RoCE) ซึ่งเป็นหนึ่งใน protocol ที่จะทำให้ RDMA ทำงานได้บน ethernet โดยปัจจุบัน คือ version 2 (RoCEv2) มันทำงานอยู่บน protocol UDP และ IP อีกชั้นหนึ่ง โดย RoCEv2 นั้นเป็น routable protocol และ ปัจจุบันมันเป็น Protocol ที่แพร่หลายที่สุด ในการใช้งาน RDMA
  • Internet Wide Arewa RDMA Protocol (iWARP) สำหรับ iWARP จะใช้ TCP หรือ SCTP ในการส่งข้อมูล โดยผู้ที่พัฒนา iWARP คือ The Internet Engineering Task Force และ มันทำงานได้โดย ที่ไม่จำเป็นจะต้องอาศัยการสนับสนุน จากทั้ง application และ OS เลย
  • InfiniBand สำหรับ InfiniBand นั้นสนับสนุน RDMA โดย InfiniBand นั้นได้รับความนิยมอย่างกว้างขวางใน HPC เพราะด้วยความที่มันสนับสนุนความเร็วสูงอย่างมาก เช่น 200Gbps

ในปัจจุบันนั้น มีผู้ผลิตหลายรายในตลาดที่ออกผลิตภัณฑ์ที่สนับสนุน RDMA ออกมาในตลาด เช่น

  • Broadcom and Emulex adapters
  • DELL EMC PowerEdge Server
  • Marvell FastLinQ 45000 Ethernet NICs
  • Nvidia ConnectX network adapters และ InfiniBand
  • Chelsio Terminator 6 iWARAP adapters

 

RDMA ที่มีการใช้ flash-based SSDs และ NVDIMMs

สำหรับ flash storage นั้นเป็นระบบ ที่มีความเร็วสูงกว่า storage system ที่ใช้ disk เป็นอย่างมาก แต่อย่างไรก็ตาม แต่อย่างไรก็ตามซอฟต์แวร์ที่รองรับนั้นก็อาจจะเกิดสภาวะคอขวดขึ้นได้

 

Time Range Booking System

Time Range Booking คืออะไร และทำไมธุรกิจยุคใหม่จำเป็นต้องใช้ ในยุคที่ลูกค้าคาดหวัง ความรวดเร็วและความแม่นยำ มากขึ้น ระบบจองแบบเดิมที่เลือกแค่วันที่หรือรอบเวลา (slot...

Read more »

เพิ่มขีดความสามารถของ WordPress ด้วยการเชื่อมต่อ External API

WordPress คืออะไร WordPress คือระบบ CMS (Content Management System) แบบโอเพนซอร์ส ที่ใช้สำหรับสร้างเว็บไซต์โดยไม่จำเป็นต้องเขียนโค้ดเองเลย...

Read more »

Private Branding Hotel/Property Reservation System

ประเทศไทยนั้นมีจุดเด่นเรื่องสถานที่ท่องเที่ยวที่สวยงาม มีวัฒนธรรมอันยาวนาน และ ศิลปะท้องถิ่นที่มีเอกลักษณ์ รวมถึงอาหารที่ได้รับรางวัลระดับโลกมากมาย รวมถึงผู้คนที่มีจิตใจโอบอ้อมอารี และ สิ่งเหล่านั้นเองเป็นสิ่งที่ดึงดูดนักท่องเที่ยวทั่วโลกมายังประเทศไทย และมีการเติบโตของธุรกิจโรงแรมอย่างมากมายทุกประเภทไม่ว่าจะเป็น โรงแรม...

Read more »

Edge Computing vs Cloud Computing

ในยุคที่การให้บริการของธุรกิจนั้นอยู่บนดิจิตอลเป็นหลัก และ เวลาของการให้บริการนั้น จะต้องมีอยู่ตลอดเวลา หรือ ลดการ downtime ให้มากที่สุดเท่าที่จะเป็นไปได้ แต่อย่างไรก็ตามการได้มาถึง Uptime...

Read more »

เทคโนโลยีได้เข้ามาเปลี่ยนโฉมร้านกาแฟได้อย่างไร

การเติบโตอย่างก้าวกระโดดของร้านกาแฟ และ คาเฟ่ขายเครื่องดื่มในปัจจุบันนั้นอยู่ในระดับที่น่าสนใจอย่างยิ่ง และ มันเป็นหนึ่งในไม่กี่กี่ธุรกิจที่ยังสามารรถเติบโตได้ท่ามกลางเศรษฐกิจที่ซบเซา ในอุตสาหกรรมร้านกาแฟ (Cafe) เทคโนโลยีไม่ได้มีบทบาทแค่ ความทันสมัย แต่เป็น...

Read more »

ทำไม IoT ถึงทวีความสำคัญขึ้น พบกับอย่างงานมอนิเตอร์พลังงานและสมาร์ทฟาร์ม

ระบบ IoT (Internet of Things) กลายเป็นโครงสร้างพื้นฐานสำคัญของโลกยุคปัจจุบัน เพราะมันเปลี่ยน ข้อมูลหน้างานหรือข้อมูลดิบ ให้กลายเป็นข้อมูลที่สามารถใช้เพื่อการ การตัดสินใจแบบอัตโนมัติและแม่นยำได้แบบเรียลไทม์...

Read more »