האצת עומס עבודה בצורה גמישה על ארכיטקטורת מקטינה עלות ציוד

אריק וינשטיין

תמיד יהיו מחלקות של עומסי עבודה ואלגוריתמים שידחפו לקצה את יכולות פלטפורמות המחשוב המסורתיות. דוגמה מצוינת לכך הם אלגוריתמים הצורכים כוח חישובי יקר להצפנת מפתח פומבי (

publickey) לתמיכה בפרוטוקול SSL, במיוחד תהליך ה-handshake שמאפשר לשרת ומשתמש הקצה (client) להקים את הקשר. כתוצאה מכך, אנשי ה-IT נוטים לשלב  לעיתים מזומנות תוספות ייחודיות המבוססות על מודולים להאצה כדי להגדיל את הביצועים ולמנוע עומס יתר על השרתים.

כעת ישנה אלטרנטיבה ע”י שימוש
ב-

ASICs ייחודיים לעומסי עבודה הצורכים כוח חישוב רב. לשרתים  המבוססים על פלטפורמות תקשורת מהדור הבא של ® Intel, שם קוד CrystalForest, יש יכולות חדשות להאצת קריפטוגרפיה סימטרית ואסימטרית, דחיסת מידע ועומסי עבודה אחרים. הפלטפורמה משלבת את טכנולוגיית Intel®QuickAssist הכוללת מודלי האצה הניתנים לגישה ע”י קבוצה מאוחדת  של פונקציות (APIs) ע”פ תקן תעשייתי. הם מספקים קונבנציות פיתוח וסמנטיקה בצורה עקבית על פני מספר יישומים של מאיצים, וע”י כך מגינים על השקעות תוכנה לעתיד. בנוסף מספקת הפלטפורמה ביצועי עיבוד חבילות
(
packetprocessing) יוצאים מן
הכלל ע”י שימוש בספריות של
Intel®DataPlaneDevelopmentKit  שעברו אופטימיזציה לביצועים. מאמר זה מספק סקירה של טכנולוגית
Intel®QuickAssist ומתאר 4 תסריטים ליישום שמדגישים את הגמישות הזמינה ליצרני ציוד, יצרני תוכנה בלתי תלויים (ISVs) ומומחי IT. השימוש בטכנולוגיה זו להאצת עומסי עבודה מאפשר ל-Telcocentraloffices ול-datacenters להקטין משמעותית את עלויות הציוד שלהם ולשפר את חלוקת עומסי העבודה בין השרתים.  

 

 

טכנולוגיית

 

 

 

®Intel

 

QuickAssist

 

טבלה-1: עומסי עבודה , מערכות ויישומי קוד פתוח הנתמכים

למרות שטכנולוגיה זו תומכת במספר מכניזמים לפלטפורמות מבוססות

Intel  כדי לתקשר עם מאיצים, מאמר זה מתמקד ביכולות ההאצה בפלטפורמת CrystalForest כלומר באמצעות ה-chipset של המעבדים שניתנים גם לשימוש כהתקני PCIe לביצועים גבוהים יותר. הם ניתנים לגישה על ידי  Intel®QuickAssistAPIs שמבצעת קריאות למודולים של מאיצי חומרה המובנים בפלטפורמה, כפי שמתואר באיור-1. המודולים הייחודיים להאצה הנמצאים ב-chipset מריצים עומסי עבודה ספציפיים כולל קריפטוגרפיה סימטרית וא-סימטרית, ודחיסה. ממשק ה-API  מאפשר גישה קלה למודולים המואיצים ע”י תוכנת קוד פתוח או מסחרית/קניינית. לכן, גמישות זו יכולה לקצר זמן הגעה לשוק (TTM) ע”י הקטנת סיבוכיות ומאמץ הפיתוח.

 

תמיכת תוכנת
קוד פתוח

 

איור-1: גישה של Intel® QuickAssist למודולים להאצה בחומרה.

כיום, טכנולוגיית

Intel®QuickAssist מאיצה עומסי עבודה של קריפטוגרפיה ודחיסת מידע. עומסי העבודה נתמכים ע”י מסגרות (frameworks) ויישומי קוד פתוח, כפי שמתואר בטבלה-1. השימוש במערכות קוד פתוח מאפשר למפתחים להעריך בצורה מהירה את הביצועים של המודולים המאיצים.

 

 

יתרונות

 

איור-2: תסריטי מימוש שונים

כיום יצרני ציוד ומומחי

IT יכולים לבחור ממבחר גדול של מודולים ייחודיים  להאצה המשתרעים על טווח רחב של ביצועים. בהשוואה למודולים רבים, טכנולוגיית  Intel מציעה ביצועים שווים או טובים יותר, בזמן שמציעה יתרונות אחרים. ניתן בקלות יחסית להגדיל ביצועים בגלל שקיבולת המאיצים ניתנת להגדלה ע”י הוספת מעבדים ו\או chipsets  למערכת. לדוגמא, במערכות כרטיסי – blade,  שילוב המאיצים במעבדים עצמם מונעת את הצורך להוספת מודולים להאצה ובכך מקטינים עלות, מורידים את ההספק הכללי הנדרש וכן את הגודל הפיזי של המערכת (footprint). בנוסף השימוש ב- APIs של  Intel®QuickAssist   משמר את ההשקעה בתוכנה לאורך דורות של פלטפורמות.

 

אפשריות ליישום

 

טכנולוגיית

Intel®QuickAssist מציעה רמה גבוהה של גמישות בהינתן שהיא תומכת במגוון עומסי עבודה, תומכת בתוכנת קוד פתוח  ומבוצעת גם ב-kernelspace וגם ב-userspace כדי להכיל  טוב יותר את היישום המסופק ע”י קהילת הקוד הפתוח. לדוגמא, IPSec  ו-IPComp רצים בד”כ ב-kernelspace בעוד פרוטוקולים רבים אחרים בקוד פתוח רצים ב- userspace.  יישומים ייעודיים יכולים לרוץ או kernelspace או ב-userspace.

Userspace: הזיכרון מוקצה לתוכנת היישום ע”י מערכת ההפעלה.

Kernel

space: הזיכרון משמש כדי להריץ את ה-kernel של מערכת ההפעלה והתוכנה שמנהלת את המשאבים בפלטפורמה, כמו לדוגמא הדרייברים (devicedrivers).

 

 

ההשקעה במימוש והביצוע

 

יצרני ציוד ומומחי

IT יכולים לממש את טכנולוגיית Intel®QuickAssist בכמה דרכים, כפי שמתואר באיור-2. האופציות למימוש תומכות ביישומי קוד פתוח או מסחריות וגם אם העיבוד נעשה ב-kernelspace או ב-userspace. כמה עדכוני קוד פתוח בצורת patches  (גם למרחב ה-kernel וגם ל-user) מסופקים ע”י מהנדסי Intel, וכתוצאה מכך האינטגרציה של תוכנת הלקוח פשוטה יותר. מצד שני, אופטימיזציות לביצועים אפשריות ליישומים מסחריים או קניינים, שיכולים לדרוש התאמות לממשק ה-APIs של Intel®QuickAssis. בנוסף,  אופטימיזציות אלו יכולות להיות מועברות לדורות הבאים של טכנולוגיית Intel®QuickAssist. דוגמאות ליישומים מובאות בהמשך ומודגמות באיור-3.

 

תסריט 1: יישום קוד פתוח,

 

 

 

user-space

האתגר: ספק תוכנה (

ISV) רוצה להגדיר צופן שיבצע הצפנה ופענוח של CBC ,CFB ,OFB או ECB.

פתרון:  הורד  את

OpenSSL (קוד פתוח)
ואת פונקציות ה-
APIs הקשורות, הנקראות EVP. הוסף ע”י include את  openssl/evp.h ובצע  link  לספרית libcrypto   (lcrypto)o בצע קומפילציה עם תוכנת התיאום (shim)  ש- Intel מספקת שתפקידה לקשר ל-APIs  של Intel®QuickAssis  דרך מימוש המנוע של OpenSSL, אשר בתורו קורא לדרייבר שמפעיל את החומרה ורץ ב-userspace.

 

תסריט-2:

 

יישום קוד פתוח,

 

kernel space

(IPsec & IPComp)

אתגר:

ISV  רוצה להשתמש בגרסאות קוד פתוח של תוכנת   IPsec ו- IPComp, כאשר חלק מניהול הפרוטוקול מבוצע ב-kernelspace.

פתרון: השתמש בפונקציות

APIs קוד פתוח, כמו OCFLinux, שהיא סביבת תוכנה מבוססת OpenBSD/FreeBSD  המתואמת (ported) ללינוקס (OCF).
גרסה מתואמת זו מטרתה לספק האצת הצפנה אסינכרונית מלאה ל-
kernel של לינוקס  וליישומים הרצים בלינוקס. Intel תומכת עם ממשק APIs של Intel®QuickAssist בעבודה ב-kernelspace, ותוכנת תיאום-shim ודרייבר הבנויים ב-kernel.  בסצנריו זה, רצף החבילות (packets) נשאר בד”כ ב-kernelspace, והקוד ב-userspace מטפל בהודעות ניהול (controlmessages).

 

 

תסריט-3:
פיתוח יישום קנייני,

 

user space

אתגר: יצרן ציוד רוצה להאיץ פונקציות אבטחה הנקראות ע”י יישום האבטחה הספציפי שלו הפועל ב-

userspace.

פתרון: לשנות את יישום האבטחה הפועל ב-

userspace לבצע קריאות לפונקציות ה-API של Intel®QuickAssist
(נדרשת מידת השקעה בתהליך למידת
ה-
APIs).

 

תסריט-4:
פיתוח יישום קנייני,

 

kernelspace 

אתגר: יצרן ציוד רוצה לקרוא למודולים המאיצים בחומרה של

Intel ישירות
מה-
kernelspace.

פתרון: פצל את יישום האבטחה המסוים כך שהקריאות למאיצי חומרה יתבצעו
מה-

kernelspace

 

האצת קצב עיבוד חבילות ב-

 

 

 

User Space

Intel

פיתחה את – IntelDataPlaneDevelopmentKit (או IntelDPDK) להאצת ביצועי עיבוד חבילות (packets) על פלטפורמות מבוססות IntelArchitecture.

Intel

DPDK מכילה מספר ספריות אשר קוד המקור שלהן זמין למפתחים לשימוש ו/או לשינוי בפתרונות רשת מיוצרים. למספר מעבדים ו-chipsets, קיימות דוגמאות המשתמשות במודלים של “runtocompletion” ו\או “pipeline”  המאפשרים ליישומים של יצרני ציוד לשמור על בקרה מלאה. IntelDPDK מאיצה באופן דרמטי את עיבוד החבילות על מעבדי Intel עד פי-7 ולכן מאפשרת רמה גבוהה יותר של תפוקה.

 

 

אלטרנטיבה להוספת מודולים להאצה

 

טכנולוגית

IntelQuickAssist מציגה סביבה או מסגרת להוספת האצת עומסי עבודה ברמת הפלטפורמה. היא מספקת את הגמישות על מנת לאפשר ליצרני ציוד ומומחי IT למצוא את האיזון הנכון בין מאמץ הפתוח לבין הביצועים.  במקרים בהם IntelQuickAssist מונעת את הצורך להוסיף מודולים האצה, מתאפשרת הורדת מחיר, הקטנת ההספק וכן הקטנת גורם הצורה ומצד שני ניתן להגדיל את יכולת ההרחבה (scalability)  וההתאמה (portability) של פתרון האצת עומסי העבודה.

איור-3: דוגמאות למימוש

תגובות סגורות