สถาปัตยกรรมชุดคำสั่ง BPF ได้รับสถานะมาตรฐานที่เสนอ

Internet Engineering Task Force (IETF) ซึ่งรับผิดชอบการพัฒนาโปรโตคอลอินเทอร์เน็ตและสถาปัตยกรรม ได้สรุป RFC สำหรับสถาปัตยกรรมชุดคำสั่ง BPF และเผยแพร่ข้อกำหนดที่เกี่ยวข้องภายใต้ตัวระบุ RFC 9669 RFC ได้รับสถานะเป็น "มาตรฐานที่เสนอ" หลังจากนั้นงานจะเริ่มให้สถานะของร่างมาตรฐานแก่ RFC ซึ่งจริงๆ แล้วหมายถึงการรักษาเสถียรภาพที่สมบูรณ์และคำนึงถึงความคิดเห็นทั้งหมดที่ให้ไว้

ข้อกำหนดที่เผยแพร่อธิบายถึงชุดคำสั่งไบต์โค้ด BPF และเครื่องเสมือนระดับต่ำที่ใช้ในระบบย่อยเคอร์เนล Linux eBPF เพื่อเรียกใช้ตัวจัดการภายนอกที่สามารถเปลี่ยนแปลงพฤติกรรมของระบบได้ทันทีโดยไม่ต้องแก้ไขโค้ดเคอร์เนล โดยพื้นฐานแล้ว eBPF จะใช้งานโปรเซสเซอร์เสมือนแบบง่ายๆ ที่มีชุดรีจิสเตอร์ของตัวเอง คำสั่งแบบ RISC สแต็ก และตัวนับโปรแกรม โปรแกรม BPF มักเขียนด้วยภาษา C ส่วนย่อย แล้วคอมไพล์เป็นไบต์โค้ดที่เหมาะสมสำหรับการเรียกใช้ใน eBPF เครื่องเสมือนเครื่องเสมือนสามารถเรียกใช้โปรแกรม BPF ได้โดยใช้การตีความหรือการคอมไพล์แบบทันที (JIT) เพื่อแปลงไบต์โค้ดเป็นคำสั่งเครื่องจักรแบบเรียลไทม์

คาดว่าการกำหนดมาตรฐานของสถาปัตยกรรมชุดคำสั่ง BPF จะกระตุ้นให้เกิดการสร้างการใช้งานจากบุคคลที่สามที่เข้ากันได้กับเครื่องเสมือน eBPF และสามารถเรียกใช้โปรแกรม BPF ที่เขียนขึ้นสำหรับเคอร์เนล Linux ได้ ขณะนี้กำลังดำเนินการเพื่อสร้างสิ่งดังกล่าว เครื่องเสมือน ผู้ผลิตอะแดปเตอร์เครือข่ายบางรายกำลังพัฒนาเครื่องมือเร่งความเร็วฮาร์ดแวร์สำหรับตัวจัดการแพ็กเก็ตเครือข่าย BPF แนวคิดคือการขยายขีดความสามารถของระบบย่อย XDP (eXpress Data Path) เพื่อให้สามารถเรียกใช้โปรแกรม BPF ได้ไม่เพียงแต่ในระดับไดรเวอร์เครือข่ายเท่านั้น แต่ยังรวมถึงบนอะแดปเตอร์เครือข่ายด้วย

ตัวอย่างเช่น Netronome ได้เพิ่มการรองรับ BPF ให้กับอะแดปเตอร์ Netronome Agilio CX SmartNIC และจัดเตรียมชุดตัวอย่างของโปรแกรม BPF สากลที่สามารถดำเนินการได้ไม่เพียงแค่ใช้ CPU ในเคอร์เนลพร้อมกับไดรเวอร์ที่รองรับ XDP เท่านั้น แต่ยังรวมถึงการ์ดเครือข่ายด้วย ซึ่งช่วยให้คุณตัดสินใจเกี่ยวกับการทิ้ง การแก้ไข หรือการเปลี่ยนเส้นทางแพ็กเก็ตโดยไม่ต้องเปลืองทรัพยากรของ CPU เทคโนโลยี XRP (eXpress Resubmission Path) กำลังได้รับการพัฒนาแยกกัน ซึ่งทำให้สามารถใช้ BPF เพื่อย้ายการดำเนินการบางอย่างด้วยไดรฟ์ NVMe เช่น การทำงานกับดัชนีและการรวบรวมข้อมูล ไปยังระดับไดรเวอร์ NVMe หรือไปยังอุปกรณ์ภายนอก

มีข้อสังเกตว่าการนำความสามารถดังกล่าวไปใช้ในวงกว้างนั้นถูกขัดขวางโดยความเสี่ยงที่เกี่ยวข้องกับปัญหาความเข้ากันได้และความจำเป็นในการตรวจสอบสถานะของ eBPF ในเคอร์เนล เนื่องจากความเสี่ยงเหล่านี้ ผู้ผลิตบางรายจึงชะลอการรวมการเร่งด้วยฮาร์ดแวร์ BPF ไว้ในอุปกรณ์ของตนจนกว่าจะมีการกำหนดมาตรฐาน

ที่มา: opennet.ru

เพิ่มความคิดเห็น