גישה ישירה מרוחקת לזיכרון

גישה ישירה מרוחקת לזיכרון (Remote direct memory access ובקיצור RDMA), היא גישה ישירה לזיכרון מזיכרון של מחשב אחד לזיכרון של מחשב אחר, שיכולה להיעשות ללא מעורבות של מערכת ההפעלה באף אחד מהמחשבים. הודות לכך מתאפשרת העברה מהירה של נתונים וזמן השהיה קצר, מאפיינים החשובים לאשכולות מחשבים (קלאסטרים) הממקבלים חישובים בין מחשבים. בהעברת מידע בין מחשבים ברשת עשויים להיות צווארי בקבוק הנגרמים ממעורבות של מערכת ההפעלה והמעבד, כגון העתקות בין זיכרון של היישום לזיכרון של מערכת ההפעלה ומעבר דרך מערכת ההפעלה (המערב החלפת הקשר; context-switch). בגישה ישירה מרוחקת לזיכרון, יישומים מסוגלים לגשת (לקרוא ולכתוב) לזיכרון במחשב אחר, והודות לתמיכה מתאימה של כרטיס הרשת הניגש ישירות לזיכרון של היישום (מרחב משתמש), לא נדרשת מעורבות של המעבד בהעתקות של זיכרון (zero-copy). הממשק מגדיר את הפעולות האפשריות בגישה ישירה מרוחקת לזיכרון, הידועות גם כ"פעלים" (verbs): היישום שולח משימה (Work Request) דרך תורים אסינכרוניים, תורי Queue Pair ‏(QP), תור שליחה ותור קבלה, וכשהבקשה מושלמת מתקבל מידע על ההשלמה בתור משימות שהושלמו (Completion Queue; CQ). דוגמאות למשימות הנתמכות ב-RDMA הן משימות Read לקריאת מידע מזיכרון מרוחק, Write לכתיבת מידע לזיכרון מרוחק, ו-Send/Receive לשליחה וקבלה של מידע. ערך מורחב – InfiniBand InfiniBand ובקיצור IB הוא מימוש הזוכה לתמיכה של ארגון InfiniBand Trade Association. גרסה ראשונה של ההגדרה של אינפיניבנד יצאה לאור ב-2000. הסטנדרט מגדיר רשימת פעלים (verbs), שמתארים את היכולות הנתמכות. התוכנות הסטנדרטיות המשתמשות ב-verbs מוגדרות על ידי ארגון OpenFabrics. RDMA over Converged Ethernet ובקיצור RoCE הוא מימוש של RDMA עבור רשתות Ethernet. לו שתי גרסאות: RoCE v1 - הוא פרוטוקול שכבת הקשר (Link layer) מבוסס Ethernet ומאפשר תקשורת בין כל זוג שרתים באותו מתחם שידור. שדה ה-ethertype המוגדר עבורו הוא 0x8915. RoCE v2 - הוא פרוטוקול שכבת רשת (internet layer), וחבילות ב-RoCE v2 יכולות להיות מנותבות. החבילות הן מעל גבי UDP/IPv4 או מעל UDP/IPv6. מספר היעד של הפורט הוא 4791. הפרוטוקול מאפשר גם בקרת עומס (Congestion Control) באמצעות חבילות CNP.‏ internet Wide Area RDMA Protocol ובקיצור iWARP מוגדר על ידי חמישה סטנדרטים של IETF שיצאו לאור ב-2007: RFC 5040 תקן פרוטוקול גישה ישירה מרוחקת לזיכרון (A Remote Direct Memory Access Protocol Specification) הוא תקן מעל גבי פרוטוקול Direct Data Placement Protocol ‏(DDP). התקן מגדיר פעולות כמו שליחה, קריאה וכתיבה של זיכרון מרוחק. RFC 5041‏ Direct Data Placement over Reliable Transports הוא תקן מעל MPA/TCP או SCTP. התקן מתאר איך המידע המתקבל צריך להיות מסודר בשכבת הפרוטוקול העליונה RFC 5043 ‏Stream Control Transmission Protocol (SCTP) Direct Data Placement (DDP) Adaptation מתאר התאמה של DDP מעל גבי SCTP. RFC 5044 ‏Marker PDU Aligned Framing for TCP Specification RFC 5042 ‏Direct Data Placement Protocol (DDP) / Remote Direct Memory Access Protocol (RDMAP) Security מתאר ענייני אבטחה הקשורים בשכבות הפרוטקול של iWARP DDP ושל RDMAP. לתקן זה נוספו הרחבות נוספות בהמשך: RFC 6580‏ IANA Registries for the Remote Direct Data Placement (RDDP) Protocols פורסם בשנת 2012 ומתאר הגדרות IANA עבור קודי שגיאות RDDP, קודי פעולות וקודי פונקציות. RFC 6581 ‏Enhanced Remote Direct Memory Access (RDMA) Connection Establishment פורסם בשנת 2011 ומתאר כיצד ליצור חיבור ראשוני. RFC 7306 ‏Remote Direct Memory Access (RDMA) Protocol Extensions פורסם ב-2014 ומרחיב את RFC 5040 עם פעולות אטומיות ופעולת כתיבה לזיכרון מרוחק בצירוף מידע מיידי. OpenFabrics RDMA Consortium InfiniBand Trade Association A Tutorial of the RDMA Model RDMA usage A Critique of RDMA for High-Performance Computing OpenFabrics Alliance "InfiniBand™ Architecture Specification Release 1.2.1 Annex A16: RoCE". InfiniBand Trade Association. 13 באפריל 2010. {{cite web}}: (עזרה) "InfiniBand™ Architecture Specification Release 1.2.1 Annex A17: RoCEv2". InfiniBand Trade Association. 2 בספטמבר 2014. {{cite web}}: (עזרה) Ophir Maor (בדצמבר 2015). "RoCEv2 CNP Packet Format". Mellanox. {{cite web}}: (עזרה)