סקירה מקדימה: מעבד AMD EPYC ROME

בשבוע שעבר אינטל החלה לחשוף מספר נתונים על מעבדי על Cascade Lake AP שלהם. כשאני מדבר על "מספר נתונים", אני מדבר על פירורים ורמזים – הרבה מאוד מידע חסר. אינטל חשפה את המידע יום אחד לפני ש-AMD חשפו את מעבדי ה-EPYC החדשים תחת הקוד "ROME" (רומא, כל הקודים של מעבדי EPYC קשורים למקומות/ערים באיטליה).

ב-AMD, בניגוד לאינטל, החליטו שחוץ ממצגות, יציגו גם את המעבד וגם מספר הדגמות שלו. אני פחות אתרכז בהדגמות (אם כי אקשר לוידאו קצר בהם AMD מדגימים מבחן אחד שכמובן מבליט את היכולות של EPYC החדש).

נתחיל בקצת היסטוריה: ל-AMD היו מספר מעבדים לשרתים במשפחת Opteron. היתרון שלהם היה מחיר זול, אך החסרון שלהם היה בביצועים בהשוואה למעבדים של אינטל. בדרך כלל, מי שלא כל כך מעניין אותו הביצועים אך מעניין אותו כמות הליבות אלו חברות ה-Hosting שרכשו כמויות של שרתים כאלו (זה היה בתקופה לפני העננים הציבוריים). מאז ל-AMD לא היו פתרונות טובים ואינטל כבשה את השוק לחלוטין.

ב-2017, אחרי שההנהלה הוחלפה וד"ר ליסה סו נכנסה לתפקיד המנכ"לית, הציגה AMD את ארכיקטורת ZEN, ואת מעבדי ה-EPYC, ו-AMD הציגו את המעבד הראשון בעולם עם 32 ליבות, 64 נימים ותמיכה של עד 2 טרהבייט זכרון פר מעבד. מבחינת ביצועים, אם נשווה את ה-EPYC למעבדי ה-Xeon SP, מעבדי ה-EPYC של AMD מובילים ב-2 קטגוריות עיקריות:

  • וירטואליזציה, כולל VDI
  • קונטיינרים

ב-2 המקרים, מעבדי ה-EPYC נותנים יתרונות ברורים על פני מעבדי Xeon SP, הן במצב וירטואליזציה "קלאסי" (סטורג' חיצוני, מכונות VM רצות על ברזלים) והן בפתרונות Hyper Converged (סטורג', רשת, Compute – הכל רץ על הברזלים המקומיים). ב-VDI היתרון של EPYC הוא שניתן להכניס הרבה יותר סשנים/מכונות וירטואליות פר ברזל מבלי לשלם את המחירים הגבוהים של מעבדי Xeon SP. כשזה מגיע לעומת זאת לאפליקציות ופלטפורמות שרצים על הברזל כמו Deep Learning, AI, רינדור תלת מימד ועוד מספר דברים (או מכונת VM שמשתמשת ברוב הליבות) – היתרון למעבדי Xeon SP ברור (אם כי רק בדגמים של Gold ו-Titanium). הביצועים היו יותר נמוכים עקב הארכיקטורה של המעבד שנתנה ביצועי Latency יותר גבוהים, תלוי על איזה ליבות או פיסת סיליקון נופלים, דבר שלא משנה ממש בוירטואליזציה/קונטיינרים וניתן להגדרה בקלות עם CPU Affinity.

בשבוע שעבר, AMD הציגו את המעבד החדש אחרי שהופקו הלקחים מהמעבד היותר ישן. כך הוא נראה:

בתמונה משמאל נוכל לראות את המעבד בגירסה הראשונה: 4 מעבדים שמכילים את כל מה שצריך (I/O, PCIe, ניהול זכרון וכו') בתוך כל אחד מהם. בתמונה למעלה נוכל לראות תצורה שונה לחלוטין: כל מלבן קטנטן שרואים בתמונה (AMD קוראים להם Chiplets) הם פיסות סיליקון שמכילות כל אחת מהן 8 ליבות (וסך הכל 64 ליבות במעבד בקצה הגבוה) אך ללא הדברים האחרים כמו ניהול זכרון, I/O, PCIe ועוד. מי שדואג לכל הדברים הוא המלבן האמצעי הגדול – זהו ה-I/O מודול שכולל את כל מה שצריך בשרת, הוא מנהל את הזכרון מה-Chiplets ואליהם, תעבורה, חיבור למעבדים וציוד אחר ועוד. בשיטה הזו, מהירויות תעבורת הנתונים וה-Latency הם צפויים וקבועים. כך בעצם AMD מסירה מה-Chiplets כל דבר שאינו קשור ישירות לליבות והביצועים יותר גבוהים בהשוואה למעבדי EPYC מדור קודם: פי 2 בהשוואה לדור קודם בעבודות רגילות, ופי 4 כשמדובר על Floating Point. ב-AMD החליטו גם להיות הראשונים (במעבדי X86-64) לצאת עם מעבדים עם תמיכת PCIe 4.0 כך שרוחב הפס לכל כרטיס PCIe הוא כפול ושבב ה-I/O יוכל לתקשר איתם במהירות כפולה בהשוואה לכל מעבד של אינטל.

מבחינת תאימות, AMD מאוד אוהבת סולידיות (כמו הלקוחות שלהם) ולכן מעבדי ה-EPYC החדשים יכולים להיות מוכנסים לשרתים הנוכחיים, לעדכן BIOS/UEFI ולקבל גם את הביצועים הגבוהים וגם כמות ליבות גבוהה (עד 64 ליבות פר מעבד) באותו שרת, ו-AMD מבטיחים שגם משפחת ה-EPYC הבאה (שם קוד: "Milan" שתצא ב-2020) תהיה תואמת לאותה תושבת, כך שניתן יהיה לשדרג כל שרת קדימה.

בזמן הצגת המעבד, ב-AMD החליטו קצת להתעמר באינטל עם הדגמת C-RAY, זו תוכנה לחישובי תלת מימד שמשתמשת רק במעבד (לא ב-GPU), והם השוו מכונה עם 2 מעבדי Xeon SP 8180M (זה המעבד הכי גבוה שיש לאינטל להציע ללקוחות, עם 28 ליבות פר מעבד) מול מכונה עם מעבד יחיד של EPYC החדש, וזה נראה כך:

ה-Sales Pitch של AMD לחברות שמריצות פתרונות וירטואליזציה הוא כזה: מחירי המעבדים שלנו זולים ב-60% מהמעבדים של אינטל בקצה הגבוה. אתה יכול לחסוך חשמל, ניהול מכונות וחסכון ברשיונות וירטואליזציה (הם מדברים על VMWare, לא על הפתרונות של מיקרוסופט) בכך שתעבור לכמות קטנה של שרתים מבוססי EPYC החדשים. הוידאו כולו המציג את המעבדים החדשים, את 2 כרטיסי ה-GPU החדשים ל-Data Center, עננים וחסכון ב-Datacenter אפשר לראות בוידאו הבא (הקישור לוידאו מתחיל בחלק של החסכון, תרגישו חופשי לרוץ קדימה ואחורה בוידאו):

לסיכום: AMD הציגה פרטים על מעבדי ה-EPYC החדשים ו-AMD מראה שאין לה כל כוונה לרדת מה"מלחמה" מול אינטל בכל הנוגע לתחרות של מעבדים לשרתים (על מעבדים לדסקטופ – AMD תציג פרטים במהלך ינואר). ב-AMD הפיקו לקחים רבים מה-EPYC הראשון ושינו דברים רבים, אך יחד עם זאת חשוב להם לשמור על תאימות כך שלקוחות לא יצטרכו לזרוק שרתים רק בגלל שהחברה החליטה להחליף תושבת למעבד (דבר שאינטל משנה תדיר, מה שמקשה על שדרוג שרתים מבלי להחליף שרת). ישנם שינויים רבים ש-AMD ביצעה ל-I/O Chip שלהם שלא כתבתי עליהם ושיופיעו בפוסט עתידי.

אחסון נתונים – לאן אנחנו מתקדמים?

כל מי שעובד ב-IT יודע: לוקח המון זמן להחליט לרכוש שרתים, ועוד יותר זמן להחליט ולרכוש פתרון Storage. מקבלים הצעות מכל מיני משווקים, אולי קוראים סקירות פה ושם, מוצאים תקציב – ואז קונים את הציוד.

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

נפתח בכותרת ראשית: מלחמה. יצרני פתרונות SSD כמו אינטל, טושיבה, סמסונג, מיקרון ואחרים מתחילים להוציא דיסקים SSD מבוססי QLC NAND Flash (כלומר בכל תא ניתן יהיה לאחסן 4 בייטים של מידע) בכדי להתחרות ביצרני הדיסקים הקשיחים המכניים. היתרונות של SSD QLC על פני דיסקים מכניים:

  • ניתן יהיה לרכוש SSD בגדלים של עד 32 טרהבייט (פר דיסק) – בהשוואה לעד 14 טרהבייט דיסק מכני.
  • מהירות הכתיבה תהיה יותר מהירה ממהירות הכתיבה לדיסק מכני, אם כי לא בהבדל כה משמעותי כמו SSD MLC – זה יהיה בסביבות ה-800-1000 מגהבייט לשניה. מהירות הקריאה לעומת זאת תהיה בערך כמו SSD MLC – בערך 2 ג'יגהבייט לשניה.
  • טיפול בשגיאות יהיה הרבה יותר חכם בהשוואה לדיסקים קשיחים מכניים – והטיפול יהיה פנימי (עם Garbage Collection ו-TRIM).
  • הקץ לחיבורי SATA ו-SAS2/SAS3 – כל החברות מעוניינות להעיף זאת (אוקיי, חוץ מטושיבה) לטובת NVME.

הדיסקים הללו יצאו במהלך השנה הקרובה. שימו לב: במקרים מסויימים, גם אם יש לכם תמיכת NVME בשרת, לא בטוח שדיסקים כאלו יהיה ניתן להכניס אותם הואיל והעובי שלהם הוא 15 מ"מ (בניגוד לרוב הדיסקים SSD שהם בין 5 ל-7 מ"מ).

רוב האנשים שאומר להם את המילים "SSD עם QLC Flash" לא ממש יבינו את ההבדלים בין SSD רגיל ל-SSD QLC ולכן אני מציע להציץ בלינק הבא. כפי שתוכלו להבין מקריאת המאמר שם – אלו דיסקים שלא מיועדים להירכש במקום דיסקים SSD שנמכרים כיום, אלא מיועדים להחליף את רכישת הדיסקים המכניים.

מ-QLC נעבור לטכנולוגיה שאינטל כה גאה בה – ה-3D Xpoint. טכנולוגיה זו, למי שאינו מכיר – היא טכנולוגיית אכסון על שבבים, אך לא מדובר ב-NAND Flash אלא על פתרון קנייני של אינטל ומיקרון. SSD בטכנולוגיות כאלו יחזיק הרבה יותר זמן, מהירות הכתיבה והקריאה שלו שווה פחות או יותר למתחרים, אולם הטכנולוגיה "עוקפת" את המתחרים בכל מה שקשור ל-Latency או בשימוש בחלק מה-SSD כ-SWAP והוא מאוד מתאים לדברים כמו SQL אם אנחנו מעוניינים להצמיד SSD כזה למכונת VM (או להריץ על "הברזל").

למרות שאינטל מהללת את הטכנולוגיה – ברוב המקרים אצל רוב החברות, לא יהיה לה ממש שימוש, הואיל ושימוש ב-SSD כזה על פתרון וירטואליזציה כמו vSphere לא יתן יתרון גדול על מתחרים אחרים כמו סמסונג, מיקרון ואחרים (ב-SSD ל-Enterprise). בנוסף, אינטל מייצרת אותם בגודל די קטן: 280, 375, ו-750 ג'יגהבייט (שוב, בגרסאות Enterprise) במחיר הרבה יותר גבוה מהמתחרים, כך שאם רוצים להשתמש ב-SSD כאלו – מומלץ לחשוב ולקחת יעוץ. מצד שני, אם אתם בונים פתרון NAS, דגם 905P לדוגמא יכול לתת פתרון Cache הרבה יותר טוב מאחרים (שימו לב, שבשביל להשתמש ב-SSD כזה, צריך מכונה די חדשה, מהשנתיים האחרונות).

טכנולוגיה נוספת שתעניין חברות שמשתמשות ב-SQL ושצריכים ביצועי Read רצחניים, היא טכנולוגיית ה-Z-SSD של סמסונג. ה-Z-SSD עוקף בביצועים את ה-3D Xpoint של אינטל, אבל הוא הרבה יותר איטי בכתיבה.

מכאן נעבור לפתרונות אחסון קנייניים. ברוב המקרים בקצה הנמוך עד בינוני (תקציב של 5-6 ספרות בדולרים) הטכנולוגיות הם פחות או יותר אותן טכנולוגיות, רק שכל חברה נותנת שמות אחרים (די מזכיר מה שקורה בתחום השרתים) ואחת השגיאות שרבים נופלים אליה – היא המושג "AFA" (או All Flash Array). אפשר להשוות את זה למושג שיגיע מאיש שיווק של רכבים – "מכונית מפוארת". זה שפתרון Storage הוא All Flash יכול להטעות, בגלל שכל SSD יש לו מגבלות – בכמות כתיבה רנדומלית או Sequencial, חלקם הוא Mixed Intense אבל ברוב המקרים בהצעה הראשונה שתקבל ה-SSD הוא Read Intense, מה שיאיט את הביצועים בצורה ניכרת בעבודות דיסק כבדות.

בשנה הקרובה יהיו יותר ויותר הצעות AFA שמבוססים על דיסקים SSD TLC (ולא MLC שהוא הרבה יותר מהיר. ה-TLC יושב "באמצע" בין ה-MLC ל-QLC) ושיהיו Read Intense. בהצעות היותר גבוהות, סביר להניח שנראה לקראת סוף שנה הבאה פתרונות Storage גדולים יותר מבוססי SSD QLC – כאשר חלק מה-SSD יהיו TLC כדי "להחביא" ביצועי כתיבה איטיים. אלו שרוצים להקים פתרונות VDI גדולים – פתרונות Storage כאלו יאיטו ביצועים במקרים מסויימים (במיוחד אם מרימים כל דסקטופ כ-VM ולא כ-Session RDP לדוגמא).

עוד תחום שיקבל תאוצה בשנה הקרובה הוא ה-NVMEoF שעליו כתבתי בעבר. הפתרונות הללו יקרים (7 ספרות בדולרים) והם הרבה יותר מורכבים מפתרונות Storage קודמים. תחום נוסף שיקבל דחיפה ויכול לעניין את אלו שמחפשים פתרון Storage עם Scale Out – הם פתרונות קנייניים של Scale Out מ-EMC, NetApp, ואחרים אך לעניות דעתי אין להם הצדקת רכישה – יש מספר פתרונות Scale Out Storage שיכולים לרוץ על ה-Nodes עצמם מבלי לרכוש עוד Storage.

עוד פתרונות מעניינים שיגיעו לשוק (אבל אני מאמין שלא יכנסו לשוק הישראלי האולטרא-שמרן) הם פתרונות JBOF – מכונות שמזכירות JBOD אך עם SSD במקום דיסקים מכניים, שמחברים כל מכונה למספר שרתים עם כרטיס HBA וב-JBOF מגדירים כמות דיסקים שיוקצו פר שרת. יש גם פתרונות של מכונות שיכולות לקבל 45-60 דיסקים מכניים בגודל 3.5 אינטש וכוללות מעבד, זכרון וכו' ויכולות לשמש כפתרון Storage (אולם יש צורך בשדרוג תשתית הרשת ל-40-50 ג'יגהביט).

מצד הדיסקים המכניים אנחנו נראה בשנה הבאה דיסקים שעובדים עם מנועים כפולים (ומהירות גישה כפולה – בסביבות ה-450 מגהבייט לשניה) בחיבורי NVME והיצרניות כבר יציעו דיסקים שמגיעים לגדלים של עד 20 טרהבייט. יהיה מעניין לראות את התחרות מבחינת מחירים – בהשוואה ל-SSD QLC.

לסיכום: יש לא מעט התפתחויות בתחום אחסון הנתונים. אני לא ממליץ להיות בין הראשונים לאמץ טכנולוגיות, אבל חשוב לדעתי להכיר את הטכנולוגיות.

על ליבות, נימים, אינטל, AMD

בשבוע האחרון נשאלתי ע"י מס' אנשים לגבי ליבות, נימים לאחר שפירסמתי לינק (שאפרסם אותו שוב בהמשך פוסט זה) מבחינת ביצועים. למען פוסט זה, אבהיר שכשאני מדבר על "נימים", אני מדבר על Threads, אינטל קוראת לזה HT (או Hyper Threading) ו-AMD קוראת לזה SMT (או Simultaneous multithreading).

כמעט כל מעבדי Xeon של אינטל כוללים HT. אם לדוגמא אתה רוכש מעבד עם 4 ליבות, יש לך 8 נימים. מחלקת השיווק של אינטל תציג לך תמיד גרפים שמראים שמעבד עם 8 נימים יותר מהיר יותר ו"תוכל להריץ יותר משימות". האם זה נכון? ברוב המקרים התשובה היא לא, מכיוון שאתה יכול להריץ את אותה כמות משימות על 4 ליבות, כמו שאתה יכול להריץ על 8 נימים. בסופו של דבר, מי שמריץ את העבודות של הנימים .. הם אותם 4 ליבות.

מדוע אינטל מציעה את אותם HT מזה שנים רבות? התשובה לכך פשוטה: מחיר. במשך שנים רבות אינטל היתה די בודדה בצמרת (אם נשכח לרגע את Sun, אבל המכירות של Sun לשעבר היו קטנות לעומת המכירות של אינטל, לפחות ב-15 השנים האחרונות) ואינטל גבתה מחירים גבוהים מאוד על מעבדים שהיו בסופו של דבר קצת יותר משופרים ממעבדי הדסקטופ שלה (כשאני מדבר על "קצת יותר משופרים" אני מדבר על כך שיש יותר זכרון מטמון ועוד מס' דברים שאינטל לא רצתה שיהיו במעבדי הדסקטופ, כמו תמיכת זכרון ECC, או RAS וכו'). אינטל תמיד ציינה שיצור מעבדים מעל 4 ליבות הוא תהליך יקר עם תפוקה יותר נמוכה, ובכך הם צודקים, אז אינטל ניסתה בעצם "להיפגש באמצע" עם לקוחות, בכך שהם הציעו את ה-HT. אינטל נקטה עוד כמה צעדים שיווקיים כמו "עידוד" היצרנים לייצר לוחות אם בעלי תושבת מעבד כפולה גם אם הלקוח רוצה מעבד יחיד ואין לו כוונה להוסיף מעבד (כיום זה מעט פחות רלוונטי מכיוון שיצרני השרתים מייצרים גם דגמים עם תושבת אחת).

אינטל, בשונה מ-AMD, מייצרת את המעבדים שלה כך שכל הליבות יושבות על פיסת סיליקון בודדת (במעבדי Xeon ישנים בעלי 3 ספרות, היו 2 פיסות סיליקון). ב-AMD לעומת זאת, הלכו על שיטה שונה לגמרי: בכל פיסת סיליקון ישנם 8 ליבות (בגרסאות מעבדים עם פחות מ-8 ליבות הם מבטלים ליבות עם מיקרוקוד), ובמעבדים כמו Threadripper ו-EPYC הם פשוט שמים עד 4 פיסות סיליקון (שנקראים CCX) ומשתמשים בטכנולוגיה שנקראת Infinity Fabric כדי לקשר בין הליבות במהירות של 100 ג'יגהביט לשניה. כך AMD יכולה למכור ברבע עד חצי מחיר מעבדים עם אותה כמות ליבות כמו אינטל.

כפי שציינתי לעיל, ברוב המקרים ל-HT אין יתרון. היכן בעצם יש יתרון (חלקי)? כשאנחנו מעוניינים "לנעוץ" מכונת VM לליבה לוגית (מה שנקרא CPU Affinity) או כשאנחנו מעוניינים להצמיד Process מסוים לליבה לוגית (בתוך ה-OS) כדי לקבל את כל אותם משאבי הליבה הלוגית. שם – יש יתרון ויש יותר גמישות כי יש לך "יותר ליבות".

עוד מקום שיש לו יתרון קטן ל-HT/SMT הוא דווקא בתחום ה-VDI. אם ניקח לדוגמא מערכת Windows ונפעיל אותה על VM, הליבה תהיה עמוסה (יחסית) בזמן ש-Windows עושה Boot, מעלה דרייברים, שרותים, ואפליקציות שונות, אולם מהרגע שהמשתמש ביצע Login והפעיל את האפליקציות שלו, הליבות די "משתחררות" והעומס יורד. מדוע ציינתי "יתרון קטן"? כי אם נרים פתרון VDI של מאות מכונות וירטואליות, שרתים עם כמות ליבות קטנה (פחות מ-16 ליבות פיזיות בכל השרת) ו-HT יתנו ביצועים נמוכים יותר בעת הפעלת מכונות ה-Windows הוירטואליות, וצריכת החשמל תהיה יותר גבוהה.

באתר Phoronix ישנו מאמר שמראה מה קורה אם אנחנו רוצים להריץ אפליקציות Multi Threaded על כמות ליבות שונה, החל מ-2 ליבות (ללא HT) ועד 64 ליבות פיזיות – והשוואה של התוצאות כשמפעילים HT/SMT. המבחנים בוצעו על שרת R7425 של DELL עם 2 מעבדי EPYC  של AMD והפצת לינוקס, אך התוצאות יהיו פחות או יותר זהות על מערכת עם מעבדי אינטל.

לסיכום: האם כדאי לכבות את ה-HT? כן, אם יש לכם מכונות VM עם ליבות מרובות או שאתם מריצים דברים "על הברזל" ואותן אפליקציות הן Multi Threaded. אם לעומת זאת, מכונות VM לא ממש מנצלות את הליבות עד תום או שהאפליקציות הן Single Threaded, אז HT לא ממש יפריע. בתחום ה-VDI לעומת זאת, כדאי לשקול לבטל את ה-HT – אחרי בדיקות ביצועים (יש הבדלים שונים בין פתרונות VDI הקיימים בשוק).

על PLX, שרתים מיוחדים ומחשבים תעשייתיים

בתחום ה-IT, רוב האנשים מכירים בד"כ מספר סוגי מחשבים. יש את הלאפטופים והדסקטופים, ויש כמובן את השרתים. ברוב המקרים חברות יקנו את השרתים והדסקטופים מיבואן או מפיץ של יצרן מחשבים זה או אחר מתוך רשימת דגמים שקיימים בארץ ויסגרו עניין.

כיום יש בחלק קטן מהמקרים דרישות לשרתים שונים. אחד הפופולריים לדוגמא הוא שרת שיכול לקבל כמה שיותר GPU לצרכי Deep Learning או AI. ברוב השרתים מהיצרנים הידועים ניתן להכניס בין 1 ל-4 כרטיסי GPU. מדוע זה נעצר ב-4 GPU? הרי תמיד אפשר לבנות שרת בגודל 3U ולדחוף בו עד 8 GPU בקלות (ואם מתאמצים – ויש כמה דגמים כאלו בשוק – גם 10 GPU). הסיבה לכך (לדעתי) היא המחשבה של רוב היצרנים שאם אתה רוצה לדחוף 8 כרטיסי GPU – עדיף שתקנה 2 שרתים שבכל אחד מהם יהיה 4 כרטיסי GPU. השיטה הזו עובדת מעולה על רוב החברות, אבל ממש לא עובדת על חברות ענן.

חברות ענן משתמשות בטכנולוגיה שונה שרוב החברות בארץ לא מכירות, ולכן אולי זו הזדמנות טובה להכיר מה זה PCI Switching (לרוב זה נקרא גם PLX על שם החברה שהמציאה זאת, למרות שיש חברות נוספות שמציעות אותו דבר).

תכירו את השרת הבא: 3U8G-C612 מחברת Asrock Rack (לחצו להגדלה):

כפי שאתם יכולים לראות, השרת נראה מעט .. מוזר. לא רואים את ספקי הכח (הם נמצאים מתחת ללוח האם, יש 4 ספקי כח אימתניים), והמאווררים נמצאים באמצע, לא בחלק השמאלי כמו רוב השרתים. כמו שאנחנו רואים, יש לנו 8 כרטיסי GPU.

מי שיציץ במפרט הכללי של מעבדי Xeon SP, יגלה שיש לנו בכל מעבד עד 48 נתיבי PCIe, כלומר יש לנו סה"כ (ברוטו) 96 נתיבים. לעומת זאת יש לנו 8 כרטיסי GPU שכל אחד מהם משתמש ב-16 נתיבי PCIe. חישוב פשוט של 8 כפול 16 שווה 128, אבל אין לנו 128 נתיבים, שלא לדבר על כך שכל פיפס דורש מס' נתיבי PCIe: ה-Chipset דורש 4, כרטיס רשת 10 ג'יגה דורש בממוצע 8, בקר ה-RAID דורש גם 8, ויש עוד כמה ציודים שגם הם דורשים מס' נתיבי PCIe.

אז איך ניתן לכולם וגם נספק 128 נתיבי PCIe לכל הכרטיסים?

לשם כך ישנה טכנולוגיה שנקראת PCIe Switching או כפי שהיא יותר מוכרת בתעשיה: PLX.

מה שה-PLX עושה בעצם, הוא יוצר מעין "מתג" בין מספר תושבות PCIe, ובכל פעם הוא מעביר למערכת מידע מכרטיס אחר. כך לדוגמא ישנם דגמים שיודעים לעשות סימולציה של 2 או 4 תושבות PCIe X16 ואותו PLX ממתג בין ארבעתם ומעביר את כל הנתונים הלוך וחזור בין המעבד לכרטיסים, כל זאת בשעה שהמערכת עצמה מודעת לכך שיש 4 כרטיסים (נניח) אבל המעבד מקבל כל פעם נתונים מכרטיס אחד. לשיטה הזו יש יתרון עצום בכך שאפשר להכניס הרבה יותר ציוד במחשב, אם כי המחיר שלה היא איבד מועט של מהירות (בסביבות ה-50-80 ננושניות).

שיטת ה-PCI Switching גם עובדת חיצונית. נניח ויש לנו מערכת vSphere עם מספר שרתים ואנחנו צריכים לתת למספר מכונות VM כרטיס GPU יעודי. אם נתקין GPU בשרת פיזי שמריץ vSphere לא תהיה לנו אפשרות לעשות Migration של המכונה לשרת אחר או Fault Tolerance. עם PLX לעומת זאת, אנחנו יכולים להקים מכונה כמו בתמונה לעיל, ולמפות בעזרת ציוד PCI Switching (שיושב "באמצע" בין השרת לשרתי ה-vSphere – כולל כבלים כמו SAS HD בין הציודים לשרתים) כרטיס ספציפי ל-VM ואנחנו יכולים להעביר ב-Live את הציוד בין מכונות ה-VM. (אגב, לאלו שחושבים לאמץ את הטכנולוגיה – היא יקרה, מאוד!)

כך, בקרוב, השרתים החדשים מבית DELL, Cisco ו-HPE יאפשרו ללקוחות להכניס בכל תושבות הדיסקים – SSD NVME. כל NVME דורש 4 נתיבי PCIe כך שאם אנחנו יכולים להכניס 24 דיסקים SSD NVME, נצטרך 96 נתיבים שאותם ב"טבעי" אין לנו ולכן ב-Backplane של השרת יהיו 2 שבבי PLX שישתמשו ב-32 נתיבי PCIe ואת זה אין שום בעיה ל-PCIe לתת. אגב, אינטל מאפשרת עד 96 נתיבי PCIe ו-AMD נותנת .. 128 נתיבים. יום אחד אולי אצליח להבין מדוע אינטל כה "חוסכת" נתיבי PCIe… אגב: שרתים מבית SuperMicro, Tyan, ASRock Rack כוללים כבר פתרון כזה מזה שנתיים וחצי…

משרתים נעבור למחשבים תעשיתיים. אלו מחשבים שאמורים לעמוד בתנאים קיצוניים של רעידות, חום קיצוני (עד 60 מעלות בזמן עבודה). בחלק מהמקרים המחשב, כשפותחים אותו, נראה כמו PC רגיל, ובחלק מהמקרים המחשב מורכב מלוח אם שהוא כמעט ריק ויש בו תושבת אחת ארוכה ועוד תושבות PCIe X16 ו-PCIe X8. המחשב עצמו יושב ב-90 מעלות אנכית בתושבת הארוכה (שמזכירה תושבת Riser בשרתים) והציודים מתחברים לאותו לוח אם. אחת הטעויות הנפוצות שיבואנים לא מודעים (וחלק מחברות האינטגרציה לא מודעות) היא שפתרון שאינו כולל PLX הוא מוגבל. ברוב המקרים במחשבים תעשייתיים יש מעבד i5 או i7 או Xeon E3 מכילים כמות קטנה של נתיבי PCIe! כך לדוגמא אם מכניסים GPU אז הוא משתמש ב-16 נתיבים ומעבד כמו Xeon E3-1585 v5 מגיע עם .. 16 נתיבים בלבד. אם לא מכניסים GPU, אז אנחנו יכולים להכניס 2 כרטיסים שמשתמשים כל אחד מהם ב-8 נתיבים או כרטיס של 8 נתיבים וכרטיס של 4 נתיבי PCIe, כך שאם בונים מחשב תעשייתי עם ציוד רב שצריך להתחבר אליו (GPU, בקרים – לא ב-RS232, חיבורי USB, חיבורים קנייניים וכו') אז חובה לחפש פתרון שכולל PCIe Switching.

לסיכום: ישנם תצורות נוספות של שרתים שיכולים לסייע לנו בכל מיני דרכים, שיצרני ציוד רגילים לא תמיד מוכרים. אם אנחנו רוכשים ציוד שאנחנו צריכים להכניס אליו ציודים רבים נוספים, חשוב לבדוק אם יש בו פתרון PCIe Switching, אחרת המחשב אפילו לא יפעל. הטכנולוגיה הזו  גם יכולה לסייע כשיש לנו צורך לחבר ציודים מסויימים כמו SSD NVME או GPU ממכונה יעודית אחת לשרתים אחרים מבלי שנצטרך להחליף שרתים. כדאי להתייעץ ולבדוק מה הצרכים והאם פתרונות כאלו יכולים לסייע לכם.

קונטיינרים – הפתרונות שקיימים ומה כדאי לבדוק

אם יש משהו שמרגיז אותי בלא מעט מקרים בכל הקשור לפלטפורמות קונטיינרים למיניהן, זה החלק של החומרה, וליתר דיוק – היעוץ שחברות ועסקים מקבלים לגבי הדרישות ברזלים להרמת הפלטפורמה הזו.

(הערה: מכיוון שמערכות כמו OpenShift, IBM Private Cloud, CAAS, Rancher ועוד מבוססים על Kubernetes ועל זה הם הוסיפו דברים אחרים, אתייחס בפוסט זה ל-Kubernetes או בשמו המקוצר הידוע – K8S).

אחד הדברים הראשונים שמנמר"ים ואנשי IT רבים עדיין לא מבינים, זה את הבסיס, שקונטיינרים אינם מכונות וירטואליות. קונטיינר שקם משתמש ב-Images והוא לא מיועד לאחסן נתונים באופן פרמננטי כמו במכונה וירטואלית, לשם אחסון נתונים יש Volumes שעליהם אתייחס בפוסט זה בהמשך. בקונטיינר אין מערכת הפעלה מלאה, אלא מה שהותקן בעת הקמת ה-Image וברוב מוחלט של המקרים מדובר במשהו מזערי שאמור לספק את דרישות האפליקציה שתרוץ בקונטיינר. בנוסף, קונטיינר מאובטח לא אמור להריץ שרותים כמשתמש root אלא כמשתמש רגיל (ללא הרשאות root/sudo) ולבסוף – קונטיינרים לא אמורים להריץ מספר אפליקציות, אלא אפליקציה אחת בכל קונטיינר/POD ו"לדבר" עם POD/קונטיינרים נוספים שמריצים אפליקציות אחרות, בשביל זה יש לנו TCP/IP ובשביל זה יש שרות DNS פנימי שרץ על K8S שיודע לתקשר בין החלקים והשרותים השונים.

הדבר השני שחשוב להבין בקונטיינרים, זה שזו מערכת מאוד דינמית. לא מומלץ לנסות לקבוע למערכת על איזה שרת לרוץ, מערכת K8S יודעת לבד באיזה שרת להקים את הקונטיינרים, היא יודעת למדוד עומסים וכשצריך – היא תקים את הקונטיינר בשרת אחר אם השרת שכרגע הקונטיינר רץ – עמוס או תקול. אין Live Migration של קונטיינרים, יש להרוג את הקונטיינר ולהריץ אותו מחדש במקום אחר, ובגלל זה כל מידע שצריך להישמר – צריך להיות מאוחסן ב-Volume, אחרת המידע ימחק.

הרעיון של Volume הוא שונה מכל מה שאנחנו מכירים וקשור לאחסון. במערכות וירטואליזציה לדוגמא, אנחנו מגדירים "אחסון" (כמו Datastore ב-VMWare) שיש לו Backing שיכול להיות iSCSI, NFS ובמקרה של Hyper-V זה יכול להיות CIFS. בפתרון הסטורג' שלנו אנחנו מקימים LUN או מחיצה כלשהו שייוצאו כ-NFS/CIFS לפתרון הוירטואליזציה (לא ניכנס עכשיו לכל עניין שרידות, Multipath ושאר ירקות) ועל המקום הזה פתרון הוירטואליזציה שלנו יוצר/משתמש בדיסקים וירטואליים כדי להריץ את מערכת ההפעלה ולאחסן את המידע שלנו.

ב-Volumes לעומת זאת, הדברים שונים לחלוטין. אנחנו עדיין צריכים את ה-Backing (רק שיש הרבה יותר אופציות מאשר iSCSI, NFS – יש 26 אופציות, ו-OpenShift מוסיף עוד כמה) מהסטורג' כדי לאחסן את ה-Volumes, אבל כשאנחנו באים ליצור/להשתמש ב-Volume, אנחנו צריכים קודם כל להגדיר Persistence Volume, להגדיר מה הגודל של אותו Persistence Volume, מה יקרה ל-DATA באותו Volume אחרי שהקונטיינר מת, ומה ההרשאות שיהיה לאותו Persistence Volume מבחינת קריאה/כתיבה. בהגדרות הקונטיינר עצמו אנחנו נשתמש ב-Persistence Volume Claim (או PVC בקיצור) כדי להתחבר לאותו Persistence Volume (או PV בקיצור) ולהגדיר גם Path להיכן להתחבר. ה-PV בדרך כלל מוגדר ברמה של מגהבייט או ג'יגהבייט.

דבר חשוב נוסף קשור לעננים ציבוריים, ואת הטעות הזו אני רואה במיוחד אצל לקוחות שלאחרונה התחילו להשתמש בעננים ציבוריים. מה הטעות? לנסות לבנות מערכות לקונטיינרים כאילו מדובר בתשתית מקומית. זו טעות. K8S נותן מספיק אפשרויות להשתמש בשרותי סטורג' ותקשורת שאותו ענן ציבורי נותן. דיברתי מקודם על Volumes, אז יש Volumes "טבעיים" לכל ספק ענן, לא צריך להקים שרת שיתן שרותי iSCSI או NFS בשביל Volumes ואפשר להשתמש בשאר שרותי הענן לצרכים שונים כדי להריץ K8S.

לכן, אם אנחנו רוצים להקים פלטפורמת K8S, אנחנו קודם כל צריכים להחליט, האם אנחנו מקימים את זה "על הברזל" או על מכונות וירטואליות? אם על מכונות וירטואליות והפתרון מבוסס vSphere, אז אנחנו יכולים להסתכל על VMware Kubernetes Engine™ VKE לדוגמא (ואפשר במקביל להציץ גם ב-PKS של VMWare/Pivotal). חובבי מיקרוסופט? בחודש הבא יוצא Windows Server 2019 שכולל את Kubernetes בתוכו. אם לעומת זאת אנחנו מעדיפים פתרונות כמו OpenShift, CAAS ואחרים, נצטרך להקים מכונות לינוקס ועליהן להריץ את אותם פתרונות. לא אכנס כאן ליתרונות וחסרונות של פתרונות "טבעיים" מול הקמת פתרונות על מכונות וירטואליות – אבל אחת הנקודות שחשוב לזכור, זה שפתרונות שמקימים על מכונות וירטואליות – זה שקל להזיז את הפתרון לעננים או למקומות אחרים במקום להיות "נעול" על פתרון שיצרני ה-OS ווירטואליזציה מציעים. חוץ מזה קיים גם עניין המחיר.

אם אנחנו רוצים להקים את פלטפורמת הקונטיינרים על ברזלים (ללא וירטואליזציה) חשוב שיהיו כמה דברים:

  • תקשורת 10 ג'יגהביט. שוב, אין בקונטיינרים Live Migration שמשתנה בו כמה קבצי קונפיגורציה וה-VM "קופץ" למכונה אחרת, יש הקמה מחדש של קונטיינרים ולמרות שה-Image נמצא בסטורג', בחלק מהמקרים הוא מועתק לדיסקים מקומיים ולכן פתרון תקשורת 1 ג'יגה יאיט הכל.
  • סטורג' עם שרידות – יש לא מעט חברות שבטוחות שזה שהדיסקים מחוברים בבקר RAID כפול יש אחלה שרידות. לדעתי – עדיף שרידות שאם "ראש" נופל, "ראש" אחר לוקח מיידית פיקוד, אבל שוב – הכל תלוי בתקציב וכמה הפלפורמה תהיה פרודקשן.
  • דיסקים מקומיים – מאוד חשוב. ה-Images ימצאו בדרך כלל ב-Container Registry, אבל הם יועתקו לדיסקים מקומיים ברוב המקרים ועם הדיסקים מקומיים איטיים, זמן הקמת הקונטיינר יתארך (ותהיו בטוחים שיהיו ערימות קונטיינרים, חוץ מהקונטיינרים שלכם, תלוי בפלטפורמה). דיסקים מכניים זה פתרון לא רע אבל אם רוצים ביצועים – תחשבו על SSD Mixed Intense.
  • אם המערכת הולכת להיות חשופה החוצה לאינטרנט (הכוונה השרותים כמו WEB חשופים לאינטרנט) – אז אבטחה רצינית היא חשובה: לא להקים Images כ-root, תקשורת ו-Namespace מופרדים ועוד דברים חשובים שמצריכים הכרה עמוקה עם פלטפורמת הקונטיינרים. תזכרו: קונטיינר שרץ כ-root וחשוף לרשת – יכול לתת לפורץ הרבה יותר ממה שאתם חושבים.

לסיכום: שוב ושוב אזכיר – קונטיינרים אינם VM והם מצריכים ידע שונה ותכנון שונה לגמרי מאשר פלטפורמות וירטואליזציה. חשוב לבדוק את האפשרויות מבחינת פלטפורמת קונטיינרים ובלא מעט מקרים להשקיע יותר כסף מאשר סתם להתקין K8S חופשי (האבטחה הפנימית של Kubernetes אינה מתחרה בפתרון כמו OpenShift). אם צריך, קחו קורס עבור המפתחים והעובדים על הפתרון שאתם הולכים להכניס וקחו יעוץ לפני שאתם מחליטים איזה פתרון קונטיינרים להטמיע.

חישובים על מעברים לעננים ציבוריים מול ענן פנימי

הערה: אישית אני האחרון שהוא "אנטי עננים ציבוריים". אם יש לחברתכם צורך ביעוץ, ליווי והקמה של דברים על הענן הציבורי, אשמח אם תיצרו קשר. יחד עם זאת, אני חושב שחברות רבות בארץ יכולות להקים להן ענן שיתן להם את רוב הדברים שהם צריכים מענן ציבורי – מקומית, ועל כך הפוסט.

בחברות רבות בארץ נערכים מדי פעם חישובים האם לעבור לענן או לא והשאלה הכי חשובה שנשאלת היא: האם זה יוצא יותר זול מאשר לרכוש תשתית כאן בארץ (או היכן שהחברה נמצאת, ארצות שונות וכו').

אם נתייחס למצב בישראל, אז הדבר הכי אירוני שקורה פה בארץ, הוא עניין מחירי שרתי המותג (HP, Dell, Lenovo, Cisco, Fujitsu): המחירים כאן די "דוחפים" את הלקוחות לעבור לשרותי ענן עקב מחירם היקר (מאוד).

הבה נסתכל מהצד השני, אצל ספקי ענן, ולא חשוב אם מדובר בספק קטן יחסית (Linode, Digital Ocean) או על הגדולים (אמזון, גוגל, מיקרוסופט): אצל כל אותם ספקים יש התחמקות רצינית מכל ציוד מותג. אצל הגדולים לא תמצאו שום ציוד מותג של שרתים, לא תמצאו חומרה של Enterprise ממותג (למעט מעבדים), לא תמצאו מתגים של מותגים, אין שום NetApp או EMC שמשמש כ-Storage ל-VM, ועוד. אצל היותר קטנים יכול להיות שתמצאו שרתי מותג – אך הם נרכשים בתצורה הכי בסיסית וכל הציוד הפנימי הוא צד ג' – ללא גרסאות Enterprise. הגדולים בונים לעצמם את הכל ושרתים מיוחדים נרכשים משמות שאף אחד לא מכיר כמו Wywinn הסינית שמייצרת את הדגמים לפי שרטוטי לוחות שספקי הענן מעבירים). בקיצור: המטרה של כל אותם ספקי ענן היא להוציא כמה שפחות כספים על הציוד, ובגלל זה פרויקטים כמו OCP מאוד פופולריים אצל ספקי הענן וכולם משתתפים ותורמים שרטוטים, תכנונים וכו'.

במילים אחרות: כשחברה עוברת לענן, המכונות הוירטואליות לדוגמא שהם יקימו – יוקמו על ציודים שספק אם בחברות ירצו לרכוש אותם מקומית. זה שאתם עוברים לענן לא אומר שלא יהיו לכם מכונות VM תקועות ושאר תקלות. אתם פשוט תצטרכו לבצע Restart והתשתית ענן תקים את ה-VM במכונה אחרת, ומכיוון שתשתית ה-Storage שם שונה לחלוטין מכל NetApp או EMC שאתם מכירים, לא יהיה צורך בביצוע Migrate (ואגב, הדיסקים באותו פתרון Storage – המכניים הם SATA "ביתי" וה-SSD ברובם גם "ביתיים" למעט חלק קטן עבור Write Cache שהם OEM מיצרנים ידועים כמו Samsung).

לכן, כל נסיון לבצע חישובי ROI או TCO כאשר הפתרון המקומי "מנצח" נידון ברוב המקרים לכשלון מכיוון שמנסים להשוות בין תפוחים לתפוזים. ספק הענן הולך על הציוד הכי זול (ובכמויות) ואילו Enterprise הולכת מראש על ציוד יקר.

אז איך אפשר לקבל מחיר נמוך, יחד עם עמידה בכל מה ש-Enterprise דורש?

התשובה פשוטה אך לא קלה לעיכול לאנשי מנמ"ר: להחליף את הדיסקט.

נאמר מראש: לשום חברה בארץ לא יהיו את המשאבים שיש לכל ספק ענן ציבורי בינלאומי להקים תשתית כזו. אף אחד לא ילך לשכור צוות מתכנני לוחות אם, ASIC וכו' ואף אחד לא הולך להזמין כל חלק באלפי עותקים, ולכן כדאי לראות בעצם מה הציוד שהם כן קונים ומה כחברה אתם כן יכולים לרכוש מבלי להיצמד למותגי יצרני שרתים ומדבקות אלא ללכת על מפרטים וביצועים שתואמים לדרישות שלכם, תוכנות שמתאימות, ציודים משלימים וכו' ומעל כל זה לעגן את הדברים בחוזה SLA שמתאים לכם, כך שתהיה לכם תמיכה ושרות שאתם מעוניינים בהם.

להלן מספר נקודות כלליות שיש לתת עליהן את הדעת:

  • וירטואליזציה – 2 הדברים החשובים כשמקימים ענן פרטי זה יציבות ומחיר נמוך (כשאני מדבר על מחיר נמוך, אני מדבר על מחיר תלת ספרתי בדולרים פר ברזל בגירסה המסחרית, או גירסת קוד פתוח עם חוזה תמיכה מבחוץ). מי שמעוניין ב-OpenStack, כדאי שיצור קשר עם SuSE ישראל (המחיר זול בעשרות אחוזים מהמחיר של Red Hat). מי שמעוניין בפתרון שהוא וירטואליזציה נטו, כדאי שיסתכל על RHV של Red Hat.
  • שרתים – אתם יכולים להשתמש בשרתים קיימים או לרכוש שרתים מתור קודם (ברוב המקרים, ההבדל בביצועים בין הדור הקודם לנוכחי לא כזה גדול). אני ממליץ גם להסתכל על השרתים של SuperMicro ושל חברת Tyan. ספציפית ל-SuperMicro יש מבחר הרבה יותר גדול של שרתים לצרכים שונים ופתרונות חדשניים שעדיין לא קיימים אצל HP או DELL לדוגמא, ובמחיר שהוא זול בהרבה בהשוואה לחמשת היצרנים שציינתי לעיל. אגב, הנה משהו מעניין שכתבה חברת Barrons על Supermicro. שרתים שאני לא ממליץ – הם דווקא של HP ובסעיף הבא אסביר מדוע.
  • דיסקים – עולם הדיסקים משתנה כל הזמן. דיסק SATA טיפוסי שבעבר היה נותן מהירות קריאה של 110-150 מגהבייט לשניה נותן כיום 250 מגהבייט לשניה ובקרוב יצאו דיסקים מכניים שנותנים מהירות שמגיעה ל-420 מגהבייט בשניה ובחיבור NVME (כן, SAS/SAS-HD מגיע לסוף דרכו). המבחר די גדול וכפי שהוכיחה חברת BackBlaze בדו"ח אחרי דו"ח (הם מנפיקים דו"ח פר רבעון והם קונים אלפי דיסקים) – דיסקים ל-Enterprise לא נותנים מאומה הן מבחינת ביצועים והן מבחינת שרידות. גם מבחינת מחיר, בממוצע אתה יכול לרכוש 3 דיסקים במחיר שקונים לדוגמא דיסק קשיח מ-HP, כך שאתה יכול להגדיר 2 דיסקים ב-RAID-1 ועוד דיסק כ-Hot Spare, ואתה מסודר לתקופה ארוכה – פר שרת. אני לא ממליץ על שרתי HP מבחינת דיסקים מכיוון ש-HP נועלים אותך על דיסקים שלהם בלבד (שעולים פי 3 בלי הצדקה, במיוחד כשרוכשים פתרון כולל SLA ואז עניין כל החלפת הדיסקים הוא על מי שנותן לכם שרות).
  • דיסקים SSD – עולם ה-SSD מתעדכן כמעט כל חצי שנה במהירות ויש המון יצרנים וסוגי SSD שונים. המצב מול SSD ל-Enterprise הגיע למצב כזה מגוחך כשראיתי אצל לקוח דיסק SSD שעלה המון והביצועים שאותו SSD נותן הם פחות ממחצית מדיסק SSD שיושב לי פה במחשב הדסקטופ שלי, ואני שילמתי רבע מחיר ממה שהוא שילם. לכן, חשוב לבחור יצרן שרתים שמאפשר הכנסה של כל דיסק צד ג' ובכך להנות מהתחרות בשוק.
  • מעבדים – המלצתי בעבר על EPYC ואני עדיין ממשיך להמליץ על מעבדים אלו מהסיבה הפשוטה שמקבלים יותר ביצועים וליבות ומשלמים פחות. החשבון פשוט.
  • תקשורת – זמן רב שהמחירים לא זזו בצורה רצינית בתחום התקשורת אולם כיום יש ירידה במחירים ולכן מומלץ לצייד כל מכונה בכרטיס עם זוג כניסות בחיבור +SFP כתקשורת עיקרית ומתגים עם חיבורים של 10 ג'יגה ו-Up/DownLink של 40 או 50 ג'יגה. אגב, יש בהחלט גם מתגים שתומכים ב-RJ45 וחיבור 10 ג'יגה על CAT6 (למרחקים קצרים) או DAC (גם למרחקים קצרים) או סיבים אופטיים (למרחקים יותר ארוכים).
  • סטורג' – אף אחד מספקי העננים, גדולים כקטנים, לא משתמש בסטורג'. כיום הבון טון הוא שימוש בדיסקים מקומיים עם פתרון Scale Out לסטורג' בין כל המכונות הפיזיות. הפתרונות הפופולריים כיום הם CEPH ו-GlusterFS.

פתרון מבוסס על הדברים שציינתי יתן לכם:

  • אפשרות קלה לשדרוג והוספת מכונות
  • פתרון ענן ל-3-5 שנים כולל תמיכה שוטפת
  • הרצת מכונות וירטואליות, קונטיינרים ועוד.

לסיכום: אפשר להקים תשתית שיכולה בחישוב ROI/TCO להיות יותר נמוכה ממחירים של ענן ציבורי – אם "משתחררים" מהראש של ציוד Enterprise ממותג מהיצרנים שציינתי בתחילת הפוסט. הציוד שתיארתי יכול לעמוד בדרישות פרודקשן חמורות והוא כבר עומד – אצל ספקי עננים קטנים לדוגמא (אגב, כשאני מדבר על "קטנים" אני מדבר על ספק עם מינימום 5 DC ואלפי שרתים פיזיים). כל עוד הדרישות שלכם מסתכמות במכונות וירטואליות וקונטיינרים – זה עובד. יש כמובן דברים שעננים מקומיים לא כל כך נותנים כמו כל עניין ה-Serverless או API ענק כמו של אמזון ל-1001 שרותים שונים, ואם רוצים להשתמש באותם API, אין מנוס מאשר לחתום מול ספק ענן ציבורי.

על vSphere ועל החלפת שרתים

יוצא לי מדי פעם לקבל תגובות נלהבות לגבי וידאו קליפים שאני מוציא על תוכנות מסויימות, בין אם זה על וירטואליזציה, על קונטיינרים וכו'. בחלק מהמקרים, כשאני מקבל תגובות נלהבות מצד מנמ"ר או CTO ורצון להטמיע אצלם דבר כזה, אני נאלץ "לצנן" את התלהבותו בכך שאני מסביר שמה שאני מדגים זה יותר לצורך שיתוף ידע ופחות לצרכי קידום מכירות (מה לעשות, אני נותן שרותי יעוץ ואינטגרציה, לא שרותי מכירות) ובחלק מהמקרים התוכנות הללו פשוט לא מספיק בשלות לפרודקשן לחברות גדולות. אני לדוגמא הייתי מאוד שמח "לדחוף" את RHV/oVirt כפתרון תחליף ל-vSphere אבל יש כמה באגים מעצבנים ופונקציונאליות שחסרה שפניתי בגינם ועד שהם לא יתוקנו, אני לא יכול להמליץ על פתרון זה ל-Enterprise.

לכן, כיועץ, הדבר הראשון שחשוב לי במתן יעוץ לגבי פתרון תוכנה לדוגמא, זה שהתוכנה תהיה מספיק "בשלה", עם תמיכה מסחרית, ועם עדכונים ובמיוחד עדכוני אבטחה. אם מדובר במוצר מסחרי שאני עוקב אחריו ואני רואה שאין עדכוני אבטחה לדוגמא, אני לא אמליץ על המוצר.

חברות רבות בארץ משתמשות בפלטפורמת vSphere כמענה ראשי לצרכי וירטואליזציה, ויש גם לא מעט כאלו שלאחר שמיקרוסופט הטיסה את מחירי רשיונות ה-Windows Server 2016 לשמיים – שמתעניינים לעבור לפלטפורמה זו. מבחינה טכנית, הפתרון של vSphere הוא פתרון מעולה, יש להם גם תמיכה מעולה, הם מוכרים שורה של מוצרים שמשתלבים יפה עם הפלטפורמה. מבחינת אבטחה ועדכוני אבטחה – ל-VMware יש רקורד די מרשים מבחינת מהירות שחרור עדכונים כך שהמלצה על פלטפורמת vSphere היא המלצה קלה שרוב חבריי היועצים ימליצו המלצה זהה.

אבל אחד הדברים שעדיין מתרחשים בארץ זה חוסר עדכון גרסאות. לא מעט מהחברות עדיין משתמשות בגירסאות 5.5 (הן מבחינת ESXI והן מבחינת vCenter) למרות שנשארו שבועיים בלבד לחיי התוכנה. ב-19 לחודש זה, המוצר "ימות" רשמית ולא יצאו לו כל עדכונים, גם לא עדכוני אבטחה קלים או קריטיים, ולכן חשוב לשדרג גירסה כמה שיותר מהר.

כאן מתקיים איזה משהו מוזר: חברות רבות שכן משתמשות בגירסה 6, אינן משדרגות לגירסה האחרונה (6.7) למרות שאין עלות נוספת מבחינת רשיון (אם כי יש צורך לשנות מספר סידורי – המספר הסריאלי שונה בין 6, 6.5 ו-6.7 ומספר של 6.0 לדוגמא לא יאפשר הפעלה של Schedule DRS על גירסה 6.5 ומעלה). כיום גירסה 6.7 היא גירסה בהחלט יציבה עם פונקציות רבות ותמיכה מתקדמת בדברים כמו NVME 1.3 (המאפשרת לקבל הרבה יותר מידע והתראות על SSD NVME) ודברים רבים נוספים.

וכאן מגיע עניין שדרוג שרתים.

בגירסה 6.7 של ESXI החליטו ב-VMWare להתחיל לנופף את גרזן התאימות אחורה. יש לך שרתים של HP מדור 6 לדוגמא או שרתים אחרים עם Xeon 55XX, Xeon 56xx, ויש עוד רשימה ארוכה של מעבדים שבהם גירסה 6.7 לא תעבוד. מדוע? אין לי גישה לקוד או ל-VMware עצמם, אך אני יכול לנחש שבשביל לתמוך בפונקציונאליות של ה-VT, כתבו ב-VMware הרבה קוד "בעייתי" שהם מתים להעיף, גם במחיר הסרת תאימות למעבדים מסויימים.

מטבע הדברים, מי שקורא את הרשימה ויש לו מעבדים ישנים המוזכרים ברשימה, יעדיף להתקין גירסה יותר ישנה של ESXi כמו 6.0 או 6.5. שם עדיין כמובן נשמרת התאימות.

אך זו, לעניות דעתי, החלטה אינה טובה, מכיוון שגירסה 6.0 נתמכת רק עוד שנה וחצי, ויש עוד נושא אחד חשוב…

PPW – או Performance Per Watt.

בעקרון, מעבדי Xeon נחלקים לדגמים מסויימים בכל גירסה: גירסת L הינה גירסה שצורכת הרבה פחות חשמל (אבל יש לה ביצועים נמוכים), ויש את גירסה E והיא הכי פופולרית (זה מה שבד"כ יצרן השרתים ימכור לך). למעבדים הישנים היתה גם גירסת X ששם מהירות המעבד היתה גבוהה, אבל צריכת החשמל היתה גבוהה בהתאם, פר מעבד.

אם נשווה מעבד Xeon ישן מסידרה 55XX (בלי ה-V) או 56XX בדגמים L או E, למעבדי Xeon E5 V4 לדוגמא (או למשפחה החדשה של ברונזה, כסף, זהב, פלטינום במעבדי Xeon-SP) נראה שצריכת החשמל היא כמעט אותה צריכה, רק שרמת הביצועים שונה לחלוטין. מעבד V4 או SP יתן ביצועים שנעים בין פי 3 ל-פי 10 (תלוי בפלטפורמה, תוכנה וכו') בהשוואה למעבדים הישנים. פלטפורמות כמו vSphere גם יודעות לנצל את הפונקציונאליות החדשה במעבדים כדי לתת HA יותר טוב ודברים נוספים (PCI Pass-through משופר, תמיכה יותר טובה ב-SR-IOV ועוד).

יוצא מכך, שאם תשקיעו חד פעמית בהחלפת השרתים, תוכלו לקבל הרבה יותר (יותר מכונות VM פר ברזל, תמיכה של יותר זכרון, תמיכה בציודים מודרניים ועוד) , וצריכת החשמל שלכם תישאר פחות או יותר אותו דבר (סביר להניח שזה יהיה פחות, המעבדים כיום יותר חכמים ומתחשבים יותר בצריכת חשמל, במיוחד מעבדי EPYC של AMD בוירטואליזציה). נכון, תצטרכו להקים Clusters חדשים (אחרת אין HA), אבל זהו דבר שקל לעשות והעברת מכונות VM בין השרתים הישנים לחדשים מצריכה בסך הכל חיבור ל-Datastore השונים, כיבוי המכונה הוירטואלית והפעלתה מחדש ב-Cluster החדש (יכול להיות שתצטרכו לשנות אולי גם את ה-Network אם חיברתם ל-VLAN אחר).

אישית אני יכול לאמר שאני מפעיל LAB ואני זה שמשלם את החשמל על ה-LAB ומצאתי שהחזקת שרתים ישנים והרצת מכונות VM עליהם פשוט אינה כדאית, במיוחד אם אני משווה את הביצועים וצריכת החשמל למעבדים מודרניים. בשבילי עדיף לי לקנות 2 מכונות עם מעבדי EPYC במקום הפעלה של 4 שרתים ישנים עם מעבדי Xeon 56XX. כך אוכל גם להשתמש ב-NVME, גם אוכל להכניס כרטיסי PCIe 3.0, וכך אוכל להנות מ-יותר ליבות פר מעבד וכל זאת מבלי להפריש עוד כספים לחברת החשמל. אני חושב שהגיון כזה יכול לפעול גם אצל חברות.

לסיכום: לדעתי, חשוב להשתמש בתוכנות יציבות עם עדכוני תוכנה ואם זה לא עולה סכום נוסף, עדיף להשתמש בגירסה האחרונה. אם יש צורך בהחלפת השרתים, אז כדאי לרכוש שרתים חדשים מודרניים ולנצל את היתרונות שלהם ולמכור/לגרוט את הישנים.

השורה התחתונה בעניין הטמעת VDI

כשרוצים להטמיע VDI, בין אם מדובר על כמות של כמה עשרות מכונות VDI בלבד או אלפים, יש צורך במעבר כמה שלבים.

השלב הראשון, עוד לפני שבכלל חושבים על תקציב וטכנולוגיה, היא עניין הכדאיות ואצל רבים אחרים זה לשכנע שלא מדובר באיזה "טרנד" חולף (זוכרים את טרנד ה-Diskless עם PXE בעבר הרחוק? כן, זה היה טרנד שנדחף ע"י Sun וכיום יש בו שימוש פה ושם. אישית אני משתמש בו ב-LAB בשרתי ESXi כשאני לא מעוניין להכניס דיסקים או דיסק-און-קי כדי לבצע Boot מהם).

ל-VDI יש יתרונות גדולים: כל העמדות מגובות, אפשר לבצע snapshots, וזמני התגובה יותר מהירים מהתחנות עבודה הרגילות שפזורות ברחבי המשרד, לא צריך לעבוד עם Image כמה שעות פר מכונה כדי להקים לעובד חדש (בקרוב וידאו על כך), ואם נוזקה נכנסת, קל לחזור אחורה מגיבוי – והכל מנוהל בצורה אחת מרוכזת תוך חסכון פוטנציאלי בריצות ברחבי החברה לעזור לרונית מדוע ה-Outlook נתקע לה…

החסרון: המחיר. צריך Storage יותר מהיר ממה שיש אצל רוב החברות (בעברית פשוטה: בלי דיסקים מכניים, עם SSD שהוא Mixed Intense) כי כשיום העבודה מתחיל והעובד יושב ליד המחשב אחרי שהכין לעצמו שתיה והוא מפעיל את ההתחברות ל-VM שלו, הוא רוצה זמן תגובה מהיר, ול-Windows יש Profile וזה צריך לעלות, מה שיוצר עומס עצום על ה-Storage (או מה שנקרא "סופה"/Storm) ועל השרתים שמריצים את מכונות ה-VM. בנוסף יש צורך במספר כרטיסי GPU כשעולים כל אחד כמה אלפי דולרים ושרתים מודרניים מהשנתיים שלוש האחרונים בשביל להריץ את כל העסק. בקיצור: ההוצאה הראשונית היא הוצאה גדולה (ועוד לא דיברנו על רשיונות תוכנה, להיכן לגבות, אם לרכוש Thin Clients או להשתמש ב-PC הקיימים עם לינוקס וכו').

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

אז אחרי שנחתום NDA (לא לספר לאף אחד שאתם רוצים לעבור ל-VDI, לא לספר על התשתית שלכם וכו'), אצטרך לדעת מה יש מבחינת תשתית. או שתספרו או שנעשה "טיול" לחווה. הבה נתחיל בציודים:

סטורג'

לא חשוב איזה סטורג' יש לכם, כל עוד יש בו דיסקים מכניים עם 2-4 SSD לצרכי Cache – הוא לא יספק בשביל להריץ מערכת VDI רצינית. מערכות Windows לדסקטופ "טוחנות" דיסקים עם הפרופילים, ודיסקים מכניים פשוט איטיים לזה וה-Cache קטן מדי. יכול להיות שתצטרכו או להוסיף מדף של SSD Mixed או סטורג' שהוא נטו SSD Mixed. אני מדגיש את Mixed כי Windows דסקטופ אוהב "להשתולל" עם הקריאה וכתיבה. זה לא Windows Server.

פתרונות וירטואליזציה מבוססי HCI

ב-HCI אפשר להוסיף כמובן דיסקים, אבל רוב הסיכויים שתצטרכו לרכוש עוד כמה שרתים בשביל VDI חוץ ממה שיש לכם כרגע. ב-HCI, מהירות ה-IOPS הכה חשובה מגיעה מריבוי שרתים ופחות מריבוי קבוצות דיסקים.

שרתים

כאן העניין די פשוט: תצטרכו שרתים מדור קודם או דור נוכחי, בהתאם לדגמים המועדפים עליכם. אפשר שרתים של 1U אבל עדיף 2U שאפשר לדחוף לתוכם יותר מ-GPU יחיד.

חיבור לסטורג'

כיום כל יצרן סטורג' מתפאר בחיבור סיבים במהירות 16 ג'יגהביט. זה יכול להספיק לפתרון VDI של כמה עשרות מכונות, לא מאות ובוודאי לא אלפים. יש צורך או במספר חיבורים ל-FC מוצמדים (Bond) או בחיבור יותר מהיר.

סוויצ'ים

כאן ברוב המקרים נצטרך לשדרג: 10 ג'יגה כפול 2 פר שרת, ו-40 ג'יגה בין הסוויצ'ים (ומעלה אם מדובר באלפי מכונות VM ל-VDI). חיבור 4 כבלים של 1 ג'יגה ב-Bond זה ממש לא פתרון להטמעה גדולה.

רשיונות לוירטואליזציה

מיקרוסופט: כדאי לדלג. עוד ילמדו יום אחד בבתי הספר לעסקים על השגיאה הגדולה שמיקרוסופט עשתה בכך שתמחרה את מחירי ה-Windows Server 2016 מחוץ לשוק (ב-VMWare מודים למיקרוסופט, תוצאות הרבעון האחרון והקודמים מראים על הגירה מהפתרון של מיקרוסופט ל-VMware). אתם תצטרכו לשלם פר ליבה ומכיוון שפתרון VDI מצריך מכונות מרובות ליבות (יותר מ-4 פר מעבד), המחיר שתשלמו יהיה גבוה בהרבה מכל פתרון אחר, אלא אם יש לכם הסדר מיוחד עם מיקרוסופט. חושבים להשתמש ב-Windows Server 2012R2? תצטרכו רשיון Data Center וגם אז התמיכה ב-VDI (למעט RDS) היא די חלקית, השיפורים הרציניים קיימים רק ב-Windows Server 2016.

VMWare: לא זול. תצטרכו את Enterprise Plus ואת Horizon 7.

Citrix: רוצים פורטל מסודר? נתחיל ב-3000$ על Xen Server (רשיון Enterprise ל-2 מעבדים פר שרת) ועל כך נוסיף את Xen App ואת Net Scaler (כתשלום נוסף כמובן). לא בטוח שהפתרון הזה זול ממש בהשוואה ל-VMWare.

Oracle VM Server: כבר עדיף ללכת על הפתרון של Citrix.

RHV של רד-האט: 900$ פר שרת (לתמיכה בשעות עסקיות+ או 1500$ לתמיכה 24/7). לפתרון של רד-האט יש חסרון כלשהו בכך שה-GUI אינו הכי "משופשף", כך שזה יותר מתאים לצוות הוירטואליזציה לנהל בשיתוף צוות לינוקס.

"תצורת ערימה"

יש כאלו שלא ירצו פתרון VDI עם פורטל אלא סתם פשוט "ערימה" של מכונות VM לדסקטופ. כאן גם פתרונות HCI יכולים להתאים (vSAN, Nutanix, Simplivity) אבל חשוב לזכור שכל פתרון HCI יחייב רכישת עוד שרתים בהטמעה גדולה על מנת לקבל תצורת IOPS מאסיבית. אפשר כמובן גם להרים זאת בתצורה הזו (ללא פורטל) בכל פתרון וירטואליזציה רגיל עם דיסקים מקומיים (לא HCI), אבל תצטרכו SSD Mixed וכרטיסי GPU לשרתים.

רשיונות Windows

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

חסכון

בדרך כלל כשמדובר בפתרון למאות או אלפי מכונות Windows בתצורת VDI וכשרואים הצעת מחיר, כולם מרימים גבות, והשאלות מתחילות לצוץ – איך ניתן לחסוך במחיר. עם או בלי פורטל.

אם הולכים ב"תצורת ערימה" ורוצים להשתמש בדיסקים מקומיים, ההצעה הראשונה שלי היא להשתמש במה שנקרא JBOF (כמו JBOD, רק Flash). כרגע היצרן היחידי שמציע זאת זו חברת SuperMicro, והפתרון הוא בעצם קופסא שאליה מכניסים את ה-SSD ומאחורה יש לה יציאות PCIe מיוחדות. מחברים את היציאות האלו (אחת פר שרת) לכרטיס HBA עם כבל יעודי ומנהלים את הדיסקים מה"שרת" של SuperMicro. כך אתם מקבלים ביצועי SSD גבוהים מאוד ומבלי המגבלה של רכישת דיסקים ספציפיים של יצרן השרתים שלכם. בכל קופסא כזו אפשר להכניס כמות "צנועה" של עד 1 פטהבייט של אחסון. ההצעה הזו יכולה לחסוך המון הואיל ואינכם תלויים בדיסקים שיצרן השרתים מוכר (בעשרות אחוזים מעל מחיר השוק, גם אם מדובר באותו דגם אחד לאחד שהיצרן שרתים מוכר. אף אחד מיצרני השרתים לא מייצר דיסקים).

אפשרות נוספת היא לבדוק פתרון מבוסס קוד פתוח (כמו oVirt) עם חוזה שרות לפי SLA שתקבעו.

ישנן עוד אפשרויות שעבדכם הנאמן שוקד על נסיון איתן אך הן עדיין לא בשלות ל-Enterprise.

לסיכום: ל-VDI יש יתרונות וחסרונות כפי שתיארתי לעיל. זה לא משהו שמקימים מהיום למחר, וסביר להניח שתקבלו הצעות למספר פתרונות. מכיוון שזהו שוק יוקרתי (ורווחי עבורן, מאוד! ליצרני ה-GPU זה רשיון להדפיס כסף), החברות יעשו אקסטרא מאמץ כדי למכור לכם את פתרונותיהן. לא כל פתרון יכול להתאים ולא כל חברה נותנת הצעות מתאימות. תשקלו את הדברים, קחו יעוץ ותסתכלו גם על האותיות הקטנות.

על VDI: מה הפתרון שיכול להתאים?

בשבוע שעבר כתבתי את הפוסט הזה לגבי VDI, וירטואליזציה ומה המעבדים שקיימים בשוק זה ומה מומלץ. הפעם אני רוצה לדבר על הרגע שכבר יש את הברזלים בחוות שרתים שלנו והשאלה היא כמובן איזה פתרון יכול להתאים.

מבחינת מתחרים, יש כמה ש"תפורים" ל-VDI (בצורה מלאה):

  • מיקרוסופט RDS
  • חבילת המוצרים של Citrix
  • VMWare Horizon
  • RHV/oVirt * (כמעט מלאה)

יהיו כמובן אלו שיציצו ברשימה הקטנה ויטענו שחסרים המון פתרונות אחרים, החל מ-Hyper-V ובוודאי יש עוד כמה. התשובה לכך היא שכשאני מדבר על "צורה מלאה" הכוונה מוצר שכבר יש בו פורטל עבור משתמש הקצה להריץ אפליקציות או להיכנס לתוך VM דסקטופי ולהתחיל לעבוד. על oVirt/RHV שמתי כוכבית כי לפתרון חסר מספר "תפירות" בשביל לתת פתרון מלא. כמו כן לא ציינתי מוצרים לדסקטופ כמו VirtualBox, VMWare workstation, Fusion, KVM מכיוון שאלו פתרונות שרצים על דסקטופ, לא על שרתים.

מבחינה טכנית, אין פתרון אחד שיכול להתאים לכולם, וברשותכם אדגים על משרד עו"ד קטן, 10 מחשבים (כולל פקידות ועו"ד). אם מחר משרד כזה היה פונה אליי ומבקש יעוץ לגבי VDI, השאלה הראשונה שהייתי שואל אותו היא פשוטה: מה יותר חשוב לך? מחיר נמוך או שרידות גבוהה? אם מדובר בלקוח ש-2 שרתים, NAS וסוויטצ' ורשיון Essentials של VMWare יקר לו, אז השרידות יורדת מהפרק ובמקרים כאלו שרת ESXI חופשי עם דיסקים מקומיים (נניח RAID-1 ועוד RAID-1 לצרכי גיבוי) יכול להיות פתרון VDI בשבילו (זיכרו, אין לו כסף מעבר לברזל יחיד), כאשר כל המכונות המקומיות עוברות P2V ולאחר העבודה כל העובדים מתחברים ב-RDP. מחיר הרשיונות? אפס (ה-Windows עובר מכונה, לא נשאר מקומית) ויכול להיות שהדבר היחיד שיצטרך לשלם (מעבר לעבודה ולברזל) הוא על תוכנת גיבוי. נכון, בפתרון כזה אין שום פורטל, אבל מצד שני הלקוח לא מוכן להוציא כסף. פתרון Xen או Hyper-V יכולים גם להתאים אך ברוב המקרים פתרון של ESXI יהיה הכי מהיר להקמה (ברוב המקרים אפשר להוריד את ה-ISO מהיצרן שרת, להירשם ל-VMWare לקבל מפתח חינמי ולהתחיל בעבודה).

מ-10 משתמשים נעבור למספר דו ספרתי גדול או לתלת ספרתי, לחברה. כאן כמובן פתרון ESXI חינמי לא ממש יעזור. אנחנו צריכים ניהול מרוכז של השרתים והמכונות הוירטואליות, וכאן שלושת הפתרונות שהזכרתי נכנסים לתמונה.

ב-RDS ובמקרה של Citrix (לא XEN Server) הפתרון בגדול הוא כמעט אותו דבר (למען האמת Citrix בנו את הפתרון עוד ב-Windows NT ומיקרוסופט סיכמו עיסקה עם Citrix להשתמש בבסיס לצרכי RDS אך עם פרוטקולים שונים וכו' וכו'): אתה מרים שרתים (ב-RDS לדוגמא זה Windows 2012/2016 Data Center), מגדיר את הדברים (במקרה של Citrix מתקין עוד כמה תוכנות) ואז כל משתמש מקבל בעצם Session, ה-Session יכול להיות דסקטופ מלא או אפליקציה ספציפית. ב-Citrix יש יתרון שיש לך Portal קל להבנה והוא יכול להכיל גם אפליקציות עצמאיות וגם Session של דסקטופ (קופ"ח מכבי משתמשת בכך לדוגמא, הרופאים שביקרתי אצלם והשתמשו בזה לא ממש מתפעלים).

וכאן גם נעוצה הבעיה המרכזית גם בפתרון של Citrix וגם בפתרון RDS: ניהול משאבי החומרה. ב-VM אני מגדיר כמות ליבות, כמות זכרון, כמות דיסק, חיבור רשת וכו', ואם המשתמש לדוגמא גולש לאיזה אתר והאתר נפרץ ומישהו הזריק לשם Coinhive, אותו משתמש ספציפי יתלונן שה-VM שלו איטי (טוב, הוא לא יאמר "VM" 🙂 ) אבל הדברים לא ישפיעו על מכונות VM אחרון (למעט בנוזקה שיודעת להשתמש ברשת). בפתרונות שאינם מבוססי VM, סביר להניח שגם אחרים יושפעו, כי אין הפרדה מוחלטת של משאבי CPU וכו'. יהיו כמובן אלו שיאמרו שהם משתמשים בסביבה סגורה ללא אינטרנט, ושם יכולים להיות באגים של תוכנות שונות שיש בהן Memory Leak – בהצלחה למצוא זאת. יחד עם זאת, ל-RDS ולפתרון של Citrix יש יתרון נוסף בכך שמבחינת חומרה, אין צורך להשקיע בסטורג' סופר יוקרתי (בניגוד לפתרון VDI מבוסס על מכונות VM).

ומה עם Horizon? ל-Horizon יש יתרון של גם וגם וגם. הוא תומך בפתרונות RDS, הוא תומך באפליקציות כ-Session (מה שנקרא ThinApp) וגם במכונות VM מלאות והכל נגיש למשתמש בפורטל נחמד. החסרון? בניגוד ל-RDS "רגיל" או הפתרון של CItrix שיכולים לרוץ על סטורג' די פשוט (שבנוי מדיסקים מכניים) – פתרון של Horizon עם מאות או אלפי מכונות יצריך סטורג' מבוסס SSD.

מה עם פתרון מבוסס קוד פתוח? עם oVirt יש פורטל (אך לא ניתן להשתמש באפליקציות כ-Session), ואפשר לעבוד איתו כפתרון VDI (הוא גם תומך בכרטיסי Tesla כמאיצים). העבודה עם RHV/oVirt מצריכה הכרת מושגים מעט שונים. RHV הוא הפתרון המסחרי.

ומה עם עננים ציבוריים? כאן כדאי לזכור שאנחנו חיים בישראל, וה-Latency מחו"ל לארץ (למעט אם רכשת חיבור יעודי ב-7500$ ומעלה!) מתחיל ב-100 מילישניות וזה די יגרום למשתמשים סבל, במיוחד כאשר יש משתמשים רבים.

לסיכום: VDI ניתן להקים בכל מיני תצורות. חשוב לזכור שתצורות מסויימות יכולים להתאים לעסק אחד אך לחלוטין לא לעסק אחר. לכל פתרון VDI יש יתרונות וחסרונות כפי שפירטתי, והשיקולים צריכים להיות לא רק כמה עולה, אלא במה אני יכול להשתמש בקיים. יש פתרונות שבעבר היו רלוונטיים (Hyper-V) אך כיום עקב שינוי התמחור כבר אינם שווים את המחיר כשמדובר בפתרון לעשות, מאות ומעלה של משתמשים, ולכן שיטת "העתקת שבלונה" מחברות אחרות אינה מומלצת. כדאי להתייעץ עם יועץ חיצוני על מנת לבדוק מה קיים, מה התקציב, מה המגבלות והכי חשוב – מה התוצאה הסופית שרוצים להגיע אליה.

חומרה ל-VDI: מציאות מול חומר שיווקי

כשלקוחות צריכים או רוצים לרכוש ציוד חדש, בין אם מדובר בסטורג', סוויצ'ים, שרתים, או דיסקים וכו', יש צורך לקחת בספקנות מרובה את תצהירי החברה המוכרת ו/או היצרן. מטבע הדברים, היצרן מנסה "להאיר" את המוצר בצורה הטובה ביותר וסביר להניח שבדרך הוא רוצה גם "לנגח" את המתחרים כדי לזכות בכמה שיותר מכירות. זו טקטיקה מוכרת שכל יצרן משתמש בה והוא שמח להעביר העתקים של גרפים מרשימים (ב-PDF) לידי לקוחות פוטנציאליים.

כאן צריך לקחת בחשבון 2 נקודות מאוד חשובות:

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

בואו ניקח דוגמא מתחום הוירטואליזציה: אינטל רוצה לדחוף את משפחת מעבדי ה-Xeon-SP שלה (תחת שם קוד: Purley) ומוציאה דו"ח איך המעבדים שלה מנצחים בנוק-אאוט את המתחרים, מעבדי ה-EPYC של AMD. כך הם מציגים גרף שבו מעבד ה-Xeon 8160 שלהם מהיר ב-37% מהמעבד 7601 EPYC של AMD.

נשמע מרשים, לא? שליש יותר! רק שבאותיות הקטנות רואים את הבדיקה המוטעה: אינטל הקימה 58 מכונות וירטואליות על ה-Xeon 8160 ועל ה-EPYC 7601 הם הקימו .. 42 מכונות וירטואליות. חשוב לזכור: בניגוד למצב שבו יש לנו שרת ללא וירטואליזציה ואנחנו מריצים אפליקציית Multi Threaded – לאפליקציה זמינים כל משאבי השרת, ואילו במכונה וירטואלית, המשאבים הזמינים לאפליקציה הם רק המשאבים שהגדרנו ל-VM. במילים אחרות: מעבד ה-EPYC במדידה ישב עם 16 ליבות פיזיות בלתי משומשות במבחן (מתוך הנחה שהם הגדירו 2 ליבות וירטואליות פר VM כאשר המכונה שהם משתמשים לבחינה מכילה 2 מעבדי EPYC 7601), כך שאם הם היו מקימים עוד מכונות וירטואליות על אותה מכונה, התוצאה היתה מתהפכת!

וכך בעצם מטעים לקוחות.

מכאן נעבור לתחום די פופולרי שמקבל תאוצה בזמן הזה: תחום ה-VDI. יש 3 מתחרים גדולים (VMWare, Microsoft, Xen – ויש עוד מוצר מסחרי שדווקא די מלהיב מחברה אחרת, אני אכתוב עליו פוסט בזמן הקרוב, לאחר קבלת אישור מהיצרן).

בשביל להקים תשתית VDI, אנחנו צריכים להחליט מה תהיה תצורת ה-VM. סביר להניח שנגדיר 2 ליבות, 4-8 ג'יגהבייט זכרון, ו-50-100 ג'יגהבייט דיסק. המכונה עצמה תהיה Linked Clone למכונת Master VM (אני לא מדבר כרגע על הפתרון RDS של מיקרוסופט, אלא מכונות VM).

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

ועל מה ירוצו כל מכונות ה-VM הללו? כמובן, על שרתים פיזיים. כאן בעצם חברות מתחלקות ל-3:

  • יש חברות שיקימו את ה-VDI על שרתים שקיימים בחברה תוך הסבתם לסביבת VDI חדשה.
  • יש חברות שיבחרו לרכוש שרתים חדשים ולהקים זאת כ-Hyper Converged (או HCI)
  • יש חברות שיקנו שרתים חדשים מבוססי מעבדי אינטל, סטורג', סוויצ'ים ויקימו עליה את תשתית ה-VDI.

חברות יעוץ רבות וגדולות (שכל מנמ"ר מכיר) ייעצו לבחור באחת מ-3 האפשרויות הנזכרות לעיל, וכאן הבעיה: בחירה בכל אחת מהאופציות הנ"ל לתשתית VDI היא טעות (והאמינו לי, בדקתי את המספרים). מדוע? הבה נראה:

  • שימוש בתשתית קיימת: למעבדי Xeon מהראשונים עד V4 (לא כולל) כמות ה-Cache היא קטנה והביצועים הם לא רעים – אם בונים VDI לכמות משתמשים של עשרות בודדות. צריכים כמה אלפי מכונות VM ל-VDI? המעבדים הללו יהיו חלשים מדי. (כמות Cache רצינית נמצאת במעבדים כמו Xeon E5 v4 2998/2999 אבל אינטל די מתחמנת עם המספרים ומכלילה אותם כ-"Smart Cache" מבלי לפרט רמות L1, L2, L3 – והמעבדים הללו סופר יקרים – 4000$ לחתיכה וזה במחיר של אמזון. בארץ – זה הרבה יותר גבוה).
  • שימוש ב-HCI: על פניו הרעיון הוא טוב, אולם בניגוד ל-VM אחרים, VDI מחייב IOPS גבוה, ובשביל להשיג IOPS גבוה, אתה צריך לרכוש המון (תחשבו במושג של ארונות) שרתים, כך שזה לא ממש משתלם, במיוחד במחירים בארץ שגבוהים מאוד בהשוואה לארה"ב לדוגמא.

שרתים חדשים מבוססי אינטל Xeon SP: המחירים של אינטל גבוהים (במיוחד כאן בארץ, ולא חשוב מי היצרן/ספק), ואם לדוגמא אתה רוכש מכונה עם 2 מעבדים בעלי 8 ליבות (כלומר 16 ליבות במכונה), אתה יכול לרכוש מכונה עם 2 מעבדי EPYC בעלי 16 ליבות באותו מחיר ולקבל בעצם 16 ליבות בחינם. במקרים של מעבדים עם יותר ליבות, המחיר של מכונה עם אותו מפרט אך עם מעבדי EPYC יהיה זול בהרבה וזה מגיע למצב של מעבדי הפלטינום של אינטל ששם אתה יכול לחסוך מינימום 6000$ פר מעבד ולקבל במקום 28 ליבות בקצה הכי גבוה של אינטל – 32 ליבות במערכת מבוססת EPYC.

ניקח דוגמא של מכונה "מפלצת" עם דברים מינימליים:

  • זכרון 512 ליבות
  • המעבדים עם כמות הליבות הכי גבוהה שאפשר.
  • ללא דיסקים, ספק כח יחיד, שום אקסטרא מעבר למה שהיצרן מציע.

התוצאה (המחירים הם של Dell ארה"ב אחרי הנחה של 250$, המחיר בארץ יהיה גבוה בהרבה, לא חשוב איזה יצרן):

  • שרת DELL R7425 עם 2 מעבדי EPYC 7601 (כל מעבד עם 32 ליבות) ו-512 ג'יגהבייט זכרון: מחיר של 24,079 דולר.
  • שרת DELL R740 עם 2 מעבדי Xeon 8180 (כל מעבד מכיל 28 ליבות) ו-512 ג'יגהבייט זכרון: המחיר הוא: 37,834 דולר

במילים אחרות: אתה תשלם 13,755 דולר על פחות ליבות (8 פחות), פחות Cache (באינטל תקבל 38.5 מגה למעבד, ב-AMD תקבל 64 מגה למעבד), פחות ערוצי זכרון ישירים (אינטל: 6, מול AMD: 8) ופחות נתיבי PCIe (אינטל: 48, ואצל AMD: 128), ועוד לא דיברנו על כך שמבחינת Performance Per Dollar ומבחינת Performance Per Watt ההצעה של אינטל לא משתלמת בהשוואה להצעה של AMD.

זו ההצעה של הקצה העליון, ברמות היותר נמוכות ההפרש יורד אולם עדיין ההצעות של AMD יהיו יותר זולות מההצעות של אינטל Xeon SP. אפילו מנכ"ל אינטל לשעבר (בריאן קרזניץ) מודה בראיון שהמעבד של AMD הולך לכבוש חלקים רציניים בשוק ואינטל תנסה לעצור את זה ב-20% מהשוק.

מבחינת תצורת VDI, יש 2 דרכים לממש זאת: בתצורת "מפלצות" ואז כמות השרתים קטנה, או בתצורה של שרתים יותר קטנים. אישית הייתי ממליץ לקחת את שיטת ה"מפלצות" מכיוון שכמות השרתים במחיר הגבוה היא קטנה וניתן לדחוס אליה מאות מכונות VDI (תלוי כמובן בכמות הזכרון). כך לדוגמא: אם יש צורך ב-500 מכונות VM ל-VDI, אפשר בקלות להכניס אותם ל-2 מכונות (או 3 בשביל שרידות והתרחבות עתידית). אגב, אם תלכו לפי המחירים של VMWare ומעבדי EPYC, תשלמו פחות פר מכונה (ב-VMWare אין חשיבות לכמות ליבות פר מעבד, במיקרוסופט בהחלט יש!).

בכל מה שקשור ל-GPU, רבים אצים רצים לרכוש את הכרטיסים של nVIDIA כדי להכניס לפתרונות VDI, אולם כרטיס כמו AMD FirePro S7150 X2 שנותן ביצועים לא פחות מ-Tesla בכל הקשור ל-vGPU רק בפחות ממחצית המחיר. אפשר לרכוש אותו ישירות מיצרן השרתים או מיבואן AMD בארץ.

כל מה שהזכרתי הם דברים טכניים, אבל בסופו של דבר יושב מנהל ומחליט אם לכאן או לכאן ויש לו שאלות. ננסה לענות עליהן:

  • האם הפלטפורמה יציבה? בהחלט.
  • האם היצרנים כבר מכרו כאלו פה בארץ לחברות גדולות? בהחלט (בדקתי)
  • האם ציודים קיימים (כרטיסים שונים, דיסקים, GPU וכו') נתמכים? בהחלט.
  • האם בארץ ליצרנים יש שרתים כאלו שאפשר לבדוק במשרדיהם? ל-Dell ו-HPE כן. לנובו – לא. לחברת Cisco יש שרתים עם מעבדי EPYC (שרתי Cisco UCS C4200 ו-Cisco UCS C125 M5 Rack Server Node שניתן להכניס 8 כאלו בשרת 2U) אך לא ידוע לי אם יש להם שרת כזה בארץ לבדיקות/הדגמה. במידה ואתם מעדיפים שרתים מיצרנים אחרים (Asus, ASRock Rack, SuperMicro, TYAN) – לכולם יש משפחות שרתים עם EPYC.
  • האם יש תמיכה במערכות הפעלה? כולן עובדות ללא צורך בטלאים מיוחדים, כולל RHEL, VMware 6.5U3, Windows Server 2012R2/2016, CentOS 7.5.
  • האם מעבדים עתידיים יתאמו לשרתים הנוכחיים? כן. תושבת ה-SP3 של AMD תומכת במעבד הנוכחי ובדור שיצא אחריו לפחות (שיכלול עד 48 ליבות) כך שאם תרצו לשדרג את השרת למעבד עתידי, כל מה שתצטרכו לעשות זה לעדכן BIOS/UEFI ולרכוש את ה-Kit מהיצרן שרתים. AMD בדרך כלל שומרת תאימות ל-5 שנים קדימה מהופעת התושבת לראשונה.

לסיכום: יצרנים עושים הכל כדי לבדל ולשבח את מוצריהם, אך במקרים רבים ההשוואות כלל אינן מצביעות על תשתית שקיימת אצל הלקוח. בתחום ה-VDI אפשר לעשות דברים רבים ואפשר לחסוך לא מעט כספים. כפי שהדגמתי לעיל – לא כל גרף הוא אמיתי ומראה תוצאות אמיתיות ואובייקטיביות וחשוב גם לקחת בחשבון את הדברים שיש לשלם אחר כך (צריכת חשמל של שרתים?) וגם דברים כמו מחיר ליבה פר דולר.