הדברים המסוכנים בבחירת פתרונות VDI מסוימים

תחום ה-VDI נדחף חזק מאוד ע"י חברות רבות מאוד, החל מיצרני שרתים, יצרני GPU, חברות כמו מיקרוסופט, VMWare, Red Hat, Citrix וחברות רבות נוספות. הסיבה לכך היא שמדובר בסכומים מאוד רציניים שחברות ישלמו פר העברת מחשבי משתמשים ל-VDI, ולכן חברות רבות שמחות להציע את מרוכלתן בתחום ה-VDI, והאמת היא שחלק מהפתרונות מסוכנים מבחינת אבטחת מידע.

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

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

מה הסיכון? הסיכון כרוך בבעיה מושרשת שקיימת ב-RDS ובפתרון הדומה שיש ל-Citrix וב-RDSH של VMware: ל-Windows יש יכולת גרועה לנטר ולהגביל תהליכים (Process). אם Process כלשהו יפעיל את עצמו 100 פעם, למכונת ה-Windows לא תהיה שום בעיה עם זה. אם ה-Process בולע זכרון כאילו אין מחר – גם עם זה ל-Windows אין בעיה. תוסיפו לזה את העובדה שמעתה יש עשרות סשנים כאלו פתוחים ע"י משתמשים שלא ממש מבינים במחשבים, ומספיק שאחד מהם הוריד משהו מסוכן שמתחיל לעשות Spawn ל-Process שהוא מקים ו"לשתות" זכרון, ותוך כמה דקות כולם סובלים. אם לעומת זאת הסשן דסקטופ היה מגיע ממכונה וירטואלית מיועדת, אז רק אותו משתמש היה סובל (טוב, למעט אם מדובר בנוזקה שיודעת להשתמש ברשת וחולשות אבטחה של Windows שלא עודכנו באותה חברה). זה די עצוב שבשנת 2018 לפתרונות שמבוססים על סשנים ולא על VM אין מספיק מגבלות על הדברים הללו. אפילו קונטיינרים מכילים את ההגנות הנ"ל.

סשנים כמו RDS ופתרונות דומים של אחרים הם מעולים לדבר אחד: Published Application, כלומר כשהמשתמש לוחץ על אייקון מסויים, נפתח לו סשן שמראה רק את האפליקציה, בלי Start ובלי שום דבר אחר. זהו פתרון שגם נוח מאוד למשתמשים שלא רואים דברים מיותרים ורגילים כבר לאותה אפליקציה.

לכן, ההמלצה שלי כשמקימים VDI, ולא משנה על איזו טכנולוגיה היא עובדת, היא VM פר משתמש, כלומר אם יש לנו 50 משתמשים, יהיה לנו Pool של מינימום 50 מכונות וירטואליות שינוהלו ע"י אותו פתרון שנבחר, עם Portal וכו' פר משתמש ואם צריך – גם Published App/Xen App או ThinApp וכו' של אפליקציות שמוצגות עצמאית.

פוסטים קודמים שכתבתי בנושא:

השורה התחתונה בעניין הטמעת 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 ועל GPU בשרתים

כשאנחנו מקימים פתרון וירטואליזציה, ברוב המקרים אנחנו מקימים מערכות VM עם מערכת הפעלה לשרתים, כמו הפצות לינוקס למיניהן, גרסאות Windows Server, אולי FreeBSD וגם Appliances וירטואליים למיניהן. המכנה המשותף לכל אלו – אנחנו לא צריכים כרטיס גרפי יעודי בשרת בשביל להשתמש באותן מכונות וירטואליות.

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

לכן, כשאנחנו רוצים להקים מערכת VDI רצינית ל-50+ מכונות וירטואליות, אנחנו נצטרך כרטיסים גרפיים בשרת.

אז נתחיל במשהו פשוט: מה בעצם תפקיד ה-GPU בסביבה הוירטואלית?

התפקיד המרכזי של GPU בפתרון וירטואליזציה (וזה לא משנה איזו וירטואליזציה) הוא בעצם לקחת את כל העניין של "ציור" המסך הוירטואלי ולהזרים אותו אל ה-Client שרץ על המכונה הקטנה שנמצאת אצל המשתמש הסופי. לשם כך, כשאנחנו מתקינים GPU המיועד לשרתים, אנחנו מתקינים על כל VM תוספת שנקרא vGPU או Virtual GPU. במערכת זה יופיע כמעין "כרטיס" נוסף ב-Device Manager ואנחנו נצטרך Client יעודי (למעט במקרים של מיקרוסופט ששם RDP עדכני נותן את הפתרון עם תמיכה ל-RemoteFX. שימו לב ש-RemoteFX עובד טוב עם תוכנות תלת מימד רק ב-Windows Server 2016 ומעלה) להתחבר אליו ומשם נקבל את ההאצה.

מהי בעצם אותה האצה? ה-GPU בשרת הוירטואליזציה יוצר בעצם מסך (כמו המסך שמולכם) כרגע ועליו הוא "מצייר" את החלונות, הגרפיקה ואלמנטים ויזואליים נוספים. ברגע שהוא מסיים ליצור Frame של המסך, הוא משדר זאת בזרימת (Stream) וידאו אל ה-Client, כאשר ה-Client יכול להיות PC פשוט, מק, מכונת לינוקס מקומית, iPAD, iPhone או טלפון/טאבלט עם אנדרואיד. לא חשוב מה היכולות הגרפיות של מכשיר הקצה.

כשה-Client מקבל את זרימת הוידאו, הוא מוצג למשתמש, והמשתמש לוחץ על המסך או מקליד או או משתמש בעכבר. כל הדברים האלו מועברים בחזרה אל ה-VM ול-GPU ונקלטים כאילו מדובר במחשב רגיל. המערכת מעבדת את הנתונים, ה-GPU יוצר עוד פריימים וכך הלאה וכך הלאה. כל העניין רץ מאוד מהר (בסביבות ה-30-60 פריימים לשניה) וכך בעצם המשתמש הסופי מקבל חוויה כאילו ה-Client שלו הוא PC חזק, למרות שמדובר במערכות קצה חלשות.

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

וכאן מגיעים כרטיסי GPU שונים.

בניגוד לפתרונות וירטואליזציה ששם אפשר "לדחוף" כמה שיותר מכונות וירטואליות, כל עוד יש מספיק משאבי זכרון ומעבד פנויים, ב-GPU הדברים מוגבלים. כמה מוגבלים? בד"כ GPU לשרתים יכול לשרת מקסימום בין 16 ל-32 משתמשים על אותו GPU. לכל מכונה וירטואלית אנחנו מגדירים כמות זכרון מה-GPU (בין חצי ג'יגה לדסקטופ בסיסי ועד 4 או 8 ג'יגה לדסקטופ וירטואלי שמריץ מערכות גרפיקה כבדות) ואין אפשרות ל-Over Provision, כלומר אם נרצה להרים 60 מכונות וירטואליות כ-VDI למשתמשי קצה, נצטרך בעצם 2 כרטיסי GPU יקרים שאת הזכרון שלהם בין המכונות הוירטואליות.

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

אז מה יש לשוק להציע מבחינת GPU?

אם נסתכל בפתרונות של nVidia המוצעים לשוק, יש את כרטיסי ה-GRID K1 ו-K2. אלו כרטיסים שיכולים להעביר סשנים של דסקטופ בסיסי (שוב – אופיס, דפדפן) בצורה לא רעה, אך אלו כרטיסים ישנים. כיום ל-nVidia יש כרטיסי TESLA, כאשר סידרה M מתאימה לדסקטופ בסיסי וסידרה P יותר מתאימה למשתמשים כבדים ואילו סידרה V מתאימה למשתמשים ממש כבדים (עריכת וידאו, פוטושופ בצורה מסחרית וכו').

מהצד של AMD יש את משפחת ה-Radeon Pro ודגמי S7150 (שמתאים עד ל-16 משתמשים) ו-S7150 X2 שמתאים עד ל-32 משתמשים כולל עבודות תלת מימד. כרטיס נוסף ש-AMD מוציאה בקרוב הוא ה-Radeon Pro V340 שמתאים למשתמשים כבדים (עד 32 משתמשים). היתרון של AMD מול nVidia הם מחירים נמוכים (לעיתים חצי מהמחיר ש-nVidia מבקשת) בלי להתפשר על ביצועים.

מי ממערכות הוירטואליזציה הקיימות צריך GPU למכונות VM דסקטופ? התשובה פשוטה: כולם.

ומה בדבר הכנסת כרטיסים "ביתיים" פשוטים לשרת כמו Geforce GTX 1080TI או VEGA 56/64 כפתרון זול? את זה לא תוכלו לעשות מכיוון שהדרייברים מזהים את הכרטיסים ומסרבים לעבוד איתם. פתרון של כרטיסים ביתיים בוירטואליזציה מתאים רק כשממפים (PCI Passthrough) את הכרטיס למכונת VM יחידה (רק מי בדיוק ירצה לעבוד מול שרת רועש?). פתרון של כרטיס ביתי יכול להתאים אם מריצים פתרון וירטואליזציה מקומי כמו KVM על לינוקס בתחנת עבודה כאשר מכונת VM של Windows משתמשת ב-KVM עם מיפוי לכרטיס ה-GPU. העניין קצת מורכב (ולא קיים בפתרונות כמו VMWare workstation, VirtualBox).

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

בפוסט הבא נדבר על השורה התחתונה, הכסף.

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

חומרה ל-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 אפשר לעשות דברים רבים ואפשר לחסוך לא מעט כספים. כפי שהדגמתי לעיל – לא כל גרף הוא אמיתי ומראה תוצאות אמיתיות ואובייקטיביות וחשוב גם לקחת בחשבון את הדברים שיש לשלם אחר כך (צריכת חשמל של שרתים?) וגם דברים כמו מחיר ליבה פר דולר.

על רשיון VDA ועל פתרונות עוקפים

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

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

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

פתרון 1
הפתרון הראשון הוא שימוש במערכת הפעלה של מיקרוסופט המיועדת לשרתים, ו"הפיכתה" למערכת דסקטופ. אפשר לבצע זאת הן על מערכת 2008/2008R2 והן על 2012/2012R2 בגרסאות Standard. מיקרוסופט עצמה מאשרת כי למערכת ש"הומרה" לדסקטופ, אין צורך רשיון VDA (אבל מצד שני גם לא תוכלו להשתמש במערכת הזו למשתמשים רבים אלא אך ורק מכונה פר משתמש). הנה מה שמיקרוסופט כותבת (מתוך ה-FAQ לגבי VDI – לחצו להגדלה)

vdaמי משתמש בטריק הזה? חברה אחת שאולי שמעתם עליה בשם .. אמזון, שמציעה שרותי דסקטופ תחת השם Amazon Workspaces. לפחות ממה ששמעתי מכל מיני אנשים שביצעו זאת, אין שום בעיה להריץ כל אפליקציה של Corporate.

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

הרבה, הרבה מאוד חברות לא אוהבות רעיון ה-VDA. תחשבו על זה לרגע – הדסקטופים שלכם והלאפטופים – בכולם יש Windows ששולם פעם אחת בלבד, וגם הרשיונות למערכות Windows 2012/2012R2/2008 שולמו באופן חד פעמי, ואילו VDA מצריך תשלום כל שנה, ולכן החברות הללו שהיו מעוניינות לחשוב על פתרון VDI פנו הן ל-Citrix והן ל-VMWare למצוא פתרונות חלופיים.

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

ה-VDI שיופעל עבור המשתמש הוא לינוקס לכל דבר ועניין, בין אם זו הפצת RHEL או Centos (גירסאות 6.6 ומעלה) או אובונטו 12 (שאר ההפצות לא נתמכות באופן רשמי אבל מנסיון – אין שום בעיה להשתמש בהן, כולל סביבות כמו KDE, XFCE ואחרות). ההטמעה בלינוקס (במקרה ומדובר ב-Horizon View של VMware, ב-Citrix זה שונה) כוללת התקנת VMWare Tools (ואני ממליץ לא להתקין את החבילה ש-VMWare נותנת אלא את Open VM Tools שזו גירסת הקוד הפתוח שהיא הרבה יותר יציבה, מעודכנת, וגם המהנדסים של VMWare משתתפים בפרויקט והחבילה כלולה בתוך ה-REPO ברירת המחדל של ההפצה), התקנת JRE (כן, ב-VMWare עדיין חושבים שלהריץ JAVA על דסקטופ זה דבר חכם…) ואת ה-View Agent והגדרות נוספות שונות שאיש הלינוקס יצטרך להוסיף. אגב, את עניין הרפליקציה של המכונות (בין אם Linked Clones או Full Clones יש צורך לבצע עם סקריפט שכתוב ב.. Power Shell. לך תבין מדוע..)

לאחר שהמשתמש מקבל את המסך הלינוקס (אחרי שהוא התחבר ל"פורטל"), הוא מבצע Login למערכת (אין שום בעיה שיבצע Login מול AD של מיקרוסופט) והוא יקבל סביבה גרפית שאיש הלינוקס בחברה בנה/שינה כדי שתיראה כמה שיותר "ווינדוזית". מכאן והלאה, שמשתמש יבצע Double Click על אייקון כלשהו (דפדפן, וורד וכו' וכו') הוא יקבל בעצם את האפליקציה משרת 2012/2008 כך שהלינוקס הוא רק "מעטפת", אתם לא תתחילו להריץ תוכנות לינוקסיות בחברה (אלא אם אתם רוצים, אבל זה משהו אחר. זו לדוגמא יכולה להיות הזדמנות מעולה להטמיע כרום ולשכוח מוירוסים)

בשיטה זו – אתם משלמים 0 פר VDI למיקרוסופט (שוב, למעט רשיונות שאתם צריכים לשלם על Published Apps)

שוב, אזכיר, אלו פתרונות שלא חייבים להיות מחר מורמים Corporate Wide והרמה של מכונה אחת כזו יכולה לשמש כלי מעולה למו"מ מצד אחד, ומצד שני לחברות שיש להם אנשי לינוקס – זו יכולה להיות הזדמנות מעולה לעבור למשהו יציב שלא מצריך עדכונים ו-Reboot כל הזמן.

 

כמה דברים על VDI – תוספות

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

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

  • תמיכה הרבה יותר גדולה ב-Clients מסוגים שונים (מטלפון סלולרי ועד כרומבוק, כולל הפצות לינוקס שונות, אנדרואיד, iOS וכו')
  • תמיכה בדסקטופים שאינם מיקרוסופט (דסקטופ מבוסס לינוקס)
  • מוצרים משלימים מהחברה עצמה שנותנים בעצם פתרון יותר "בוגר" כפתרון VDI
  • לא חשוב מה פתרון הוירטואליזציה שתשתמש – בין אם זה Hyper-V, XenServer או ESXi (ואפילו KVM) – ל-Citrix זה לא ממש משנה (אם כי תמיכה רשמית תקבל רק לשלישיה שציינתי לעיל)

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

גם לפתרון של VMWare יש יתרונות לא רעים כלל וכלל. יש לך כבר שרתים שמריצים RDS? מצוין, תתקין עליהם Agent של VMWare View והמשתמשים שלך יוכלו להתחבר ישירות לכל האפליקציות שביצעת להן Publish, או למכונות דסקטופ וירטואליות קיימות (אם כי את המכונות דסקטופ הוירטואליות מומלץ לך להקים מחדש עם ה-View). בפתרון של VMWare הקמת מכונות וירטואליות יכולה להתבצע במגוון אפשרויות, החל בהקמת מספר מכונות וירטואליות סטטיות שמשתמשים מתחברים אליהן בצורה קבועה, ועד מצב שהמערכת משתמשת ב-Golden Image שאליו היא מחברת דיסקים זמניים ובכך היא תקים VM חדש בכל פעם שמשתמש עוזב (וישנן אופציות נוספות כמובן) תוך שניות ספורות. גם תהליך העדכון למכונות הוא קל מאוד ותהליך הלימוד של View לא יקח יותר מיומיים (כל עוד יש למנהל פתרון הוירטואליזציה ידע ברמה של VCP). אם יש לחברה סניפים, פתרון ה-PCoIP נותן פתרון יעיל ודינמי (בהשוואה ל-RDP) שיודע להתמודד יפה עם רוחב פס משתנה, עם הצפנה מובנית בפרוטוקול עצמו (גם RDP תומך בהצפנה, PCoIP מוגדר עם הצפנה כברירת מחדל), אין צורך ב-Wan Optimizer (אפשר לקרוא עוד על כך ואפשרויות נוספות כאן), ומבחינת כמות השרתים הנוספת שצריך כדי להקים ולנהל את ה-View עצמו (לא כולל ה-VM של הדסקטופ) – הכמות היא קטנה (יחסית, יחסית).

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

  • מבחינת מחיר (שוב, אינני מדבר על מחירי ברזל מבחינת compute ו-storage – את זה תצטרכו לרכוש בכל פתרון שתבחרו) – הפתרון של מיקרוסופט הוא הכי זול (תצטרכו CAL פר משתמש או ציוד). סביר להניח שתצטרכו לשלם על רשיון מערכת הפעלה לדסקטופ (רשיון ה-OEM לא יעזור למיטב ידיעתי, אבל את הרשיון הזה תצטרכו לשלם בכל פתרון VDI.
  • מבחינת קלות תפעול והקמה, הפתרון של מיקרוסופט קל למימוש, אך גם הפתרון של View קל למימוש ואם אתם כבר משתמשים ב-ESXi, אז תוכלו לבקש ממי שמוכר לכם את הרשיונות מחיר מיוחד (עם האיום של לעבור לשכנים ממול 🙂 ) ובכל מקרה אם תרצו לרכוש את הפתרון של VMWare אל תרכשו את הרשיונות בחנות של VMWare, מנסיון – המחיר יכול להיות נמוך בהרבה מהמחיר המוצג באתר (3000 יורו ל-10 משתמשים בגירסת ה-Enterprise).
  • אם אתם מקום שמשתמש ב-Clients שונים (או חושבים להכניס Clients נוספים חוץ מעמדות PC שיהיו "טיפשות") – אז מומלץ להסתכל על הפתרונות של VMWare ושל Citrix. נכון, הרוב תומך היום ב-RDP, אבל המתחרים למיקרוסופט משקיעים הרבה יותר ב-Clients ממיקרוסופט עצמה, במיוחד בתמיכה בציודים כמו Zero Client או כרומבוקים (פוסט על כרומבוקים בחברות יופיע כאן בקרוב).
  • אם אתם רוצים להעביר סביבות לינוקס ל-VDI (יעיל במיוחד לפיתוח, תוכנות CAD וכו') – גירסה 6 של View והגירסה הקרובה של Citrix תומכות בכך, הפתרון של מיקרוסופט לא תומך בכך.
  • אם אתם רוצים להעביר/להקים מכונות VM שמריצות תלת מימד/עריכת וידאו ל-VDI, הפתרון של Citrix ושל VMWare יתאימו לכך (יהיה צורך ב-GRiD של nVidia לשם כך). הפתרון של מיקרוסופט לא תומך בכך (זה יתמך בגירסה הבאה).
  • אם יש לכם סניפים מרוחקים שמחוברים ב-DSL או בפתרון תקשורת אחרת, פתרון PCoIP יכול להוות יתרון הואיל ואין צורך בפתרונות WAN Optimization.
  • נקודה חשובה: ראיתי את העניין הזה בקופות חולים, בחברות אשראי, בחברות ביטוח, בבנקים וכו' – אם אתם נותנים פתרון VDI, תעיפו את ה-PC והטמיעו Thin Client. מחשב PC צורך יותר חשמל מ-Thin Cliernt במיוחד כשמדובר במאות מחשבי PC בבניין. פתרון Thin Client מבוסס ARM צורך פחות מעשירית ממה ש-PC צריך מבחינת חשמל, ואין צורך בהחלפת מאווררים.
  • אם אתם חושבים על מעבר ל-VDI, כדאי לשקול פתרון מבוסס Hyper Converged, כך שלא תצטרכו להשקיע עוד מאות אלפי דולרים על Storage חדש. ישנם מספר פתרונות כאלו (כתבתי על כך כאן), וכל עוד אינכם "נעולים" אך ורק על Hyper-V, תוכלו להרים 2-3 שרתים כאלו ולראות איך זה עובד מבחינת מחיר וביצועים. אגב, VSAN 6 של VMWare יצא לאחרונה, והתמיכה שלו ב-Flash הרבה יותר טובה (עכשיו הוא תומך ב-Flash לא רק כ-Cache).

לסיכום: למיקרוסופט, Citrix ו-VMWare יש פתרונות ל-VDI, אבל שום פתרון אינו מתאים לכולם. לפעמים כדאי לנצל את ההזדמנות כדי להתנסות במוצר מתחרה ואולי אותו פתרון יתן לכם את מה שחיפשתם. גם אם אתם "נעולים" עם פלטפורמה X, כדאי לנסות פתרונות מתחרים. מנסיוני – היו מקרים שפיילוט על מוצר מתחרה פתר לחברות גם בעיות שיש להן עם מה שהן משתמשות באופן קבוע, אז תרימו פיילוט, במקרה הכי גרוע – אפשר לפרמט את השרת 🙂

כמה מילים על VDI

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

למי שלא מכיר את רעיון ה-VDI, הנה הסבר בכמה מילים: VDI (ר"ת Virtual Desktop infrastructure) היא בעצם דרך/שיטה חדשה לתת למשתמשים דסקטופ משלהם. בניגוד לדרך שרוב החברות והארגונים משתמשים כיום, עם VDI למשתמש הפשוט אין יותר PC (או שיש לו Thin Client או שה-PC שלו "מומר" למערכת הפעלה שכל תפקידה הוא להפוך ל-Thin Client), וכל ה-Windows רצים כמכונות וירטואליות על שרתים שמריצים Hypervisor כמו vSphere, Hyper-V או Xen (וגם KVM שאליו אתייחס בהמשך). אין יותר טכנאים שרצים בין המשתמשים להחליף דיסקים קשיחים או תקלות חומרה אחרות וכל האחסון של המכונות הוירטואליות נמצא על NAS או SAN חזקים מבוססי SSD.

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

  • זמן הקמת מכונה חדשה נמדד בשניות בודדות, כאשר המכונה החדשה כוללת את כל מה שעובד הקצה צריך.
  • צורת הגיבוי יותר יעילה (Snapshots לדוגמא) והרבה יותר מהירה.
  • עלויות החומרה יורדות כי אין צורך להחליף דיסקים קשיחים, שדרוגי מחשבים וכו'.
  • אפשר להמשיך להשתמש בכלים הקיימים אצלך כיום לשליטה מרחוק וטיפול מרחוק בתקלות
  • וכמובן – היתרונות של וירטואליזציה כמו זכרון דינמי, thin provisioning, ניהול דינמי של משאבי וירטואליזציה ועוד.

מנהלי רשתות ותיקים יכולים להרגיש תחושה של Deja Vu. כבר היינו ב"סרט" הזה בעבר. חברה כמו Citrix מוכרת קרוב ל-20 שנה פתרונות קרובים לכך (פתרונות כמו XenDesktop ו-XenApp לדוגמא) ומיקרוסופט מוכרת פתרון די דומה (שברובו בין כה נמכר למיקרוסופט ע"י Citrix) ב-8 שנים האחרונות לפחות. נכון, לא היתה וירטואליזציה כמו שיש כיום והכל רץ על שרתים עם שרותי Remote Desktop Service (מה שהיה בעבר Terminal Services). אצל 2 החברות, הפתרון היה שרת Windows Server שהמשתמש היה מקבל עליו Session עם אפליקציות שהיו מותקנות בצורה מרוכזת והמשתמשים היו מקבלים מעין Shortcuts. אגב, הפתרון הזה קיים יותר מ-30 שנה בעולם היוניקס עם X server/Client.

ההבדל המהותי בין אז להיום הוא שכיום עם VDI המשתמש מקבל את "כל העוגה", הוא מקבל מכונת Desktop, מכונה וירטואלית שכוללת הכל, בדיוק כמו ה-PC שלו.

מכיוון שעניין ה-VDI קיבל Hype בשנים האחרונות, חברות כמו מיקרוסופט, Citrix ו-VMWare החלו לשחרר מוצרים ל-VDI. להלן מספר דוגמאות:

  • מיקרוסופט כוללת פתרון VDI בתוך Windows Server 2012, כאשר הפתרון יכול להיות כמו המצב ה"קלאסי" (שרת שמריץ אפליקציות והמשתמשים מתחברים רק לסשן עם אפליקציה) או מצב VDI מלא כאשר מכונת Windows וירטואלית רצה פר משתמש עם Hyper-V, והמשתמש מתחבר דרך Thin Client עם RDP למכונה הוירטואלית שלו. לפתרון הזה יש יתרון שעקומת ההקמה/מעבר הוא די קטן (כל עוד יש לך ברזלים או תקציב לערימת ברזלים ואחסון רציניים). המחיר הנוסף (חוץ מהשרתים והאחסון) הוא על רשיונות ל-RDS (פר משתמש).
  • ל-VMWare יש את VMWare View (שנקרא כיום VMWare Horizon). בפתרון הזה ישנו פתרון PCOIP והיתרון שלו הוא שאפשר לחבר יותר מסכים (עד 4) עם רזולוציה יותר גבוהה פר מסך (עד 2560X1600), ויש תמיכה ב-OpenGL (שלא קיימת בפתרון של מיקרוסופט). הפתרון של VMWare מצריך תשתית של vSphere שעליה ירוץ Horizon. הפתרון גם תומך ב-RDP, אם כי התמיכה אינה כוללת תמיכה מתקדמת של RDP כמו RemoteFX (וגם על כך יש סייג – VMWare View 6 יכול "לתפוס טרמפ" על שרת RDS ולשמש בעצם כ-Gateway).
  • הפתרון של Citrix הוא XenDesktop (שמורכב מכמה חלקים) והוא מאפשר פתרון די זהה למה שמיקרוסופט מציעה, רק שהפתרון של Citrix יכול לרוץ על HyperVisor מסוגים שונים כולל Hyper-V, vSphere ו-Xen.

מבחינת דרישות חומרה – כל הפתרונות הנ"ל דורשים כמו תשתית וירטואליזציה מאוד גדולה עם עדיפות לאחסון ב-SSD. (מה לעשות, כל VM דסקטופי בממוצע כותב 75% מהזמן שהוא חי וקורא 25% לערך), כך שיש צורך לא רק בשרתים חזקים אלא גם בפתרון אחסון גדול מאוד, ומאוד מומלץ שהשרתים יחוברו בתשתית של 10 ג'יגהביט (VDI מצריך המון משאבי רשת).

דרישה נוספת ויחודית בתחום ה-VDI זה GPU Hardware Accelerator. אם המשתמש גולש הרבה או שיש לו המון פעילות בדסקטופ (ומה לעשות, אתרים ישראליים "טוחנים" את ה-CPU עם פרסומות Flash) – השרתים שלך יהיו עמוסים (חשוב לזכור: 30 פריימים לשניה ברזולוציה ממוצעת של 1280X1024 דורשת לא מעט משאבים, במיוחד אם המשתמש השאיר אתר חדשות ישראלי ממוצע ב-TAB או חלון פתוח – ה-Flash "יטחן" את מעבדי ה-Xeon שלכם, ועוד לא דיברתי על ניגון וידאו!). במקרה של מיקרוסופט, החברה ממליצה בחום להכניס כמה כרטיסי GPU לשרתים על מנת להוריד את העומס שקשור ל-Display (כך שהכרטיס הגרפי בשרת יבצע את עבודת רינדור המסך וישלח את התוצאה ב-RemoteFX [שהוא חלק מ-RDP] ל-Thin Client).

ב-VMware Horizon אין אמנם דרישה לכרטיסי GPU שישבו על השרת אלא אם המכונות הוירטואליות יריצו אפליקציות גרפיות כבדות כמו פוטושופ/עריכת וידאו/3D ועוד או במקרים בהם יש לך יותר מ-100 מכונות דסקטופ וירטואליות. במקרים כאלו תצטרך או להכניס כרטיסים מבוססי OpenGL כמו Quadro של nVidia או להסתכל על פתרון ה-Teradici PCoIP Hardware Accelerator. במקרים בהם יש לך אלפי מכונות וירטואליות שצריכות עבודה גרפית אינטיסיבית, תצטרך לשוחח עם nVidia לגבי פתרון קופסאות ה-GRiD שלהם. זול – זה לא.

כשזה מגיע ל-Citrix, כהרגלם בקודש, אם אפשר לסבך דברים – הם יסבכו. הנה לינק עם ערימת תנאים והתניות. בשורה התחתונה – כל עוד לא תריץ דברים גרפיים כבדים (או מאות VM דסקטופ ומעלה), אתה לא חייב כרטיסי GPU, אבל זה יכול לעזור.

מוצר שהיה עד לפני חודשיים ל-Citrix (לצערי הם הרגו את המוצר) שנקרא VDI-in-a-box. המוצר היה Appliance וירטואלי שרץ על התשתית הוירטואלית שלך, היה קל מאוד להגדרה (לוקח משהו כמו 20 דקות להגדיר ולהכין הכל) והיה מאוד מתאים להרצה במקומות קטנים (כמה עשרות דסקטופים וירטואליים עד מאות בודדים). ב-Citrix הודיעו שאת הטכנולוגיה הם ישלבו בפתרון Xen Desktop בעתיד.

KVM: ל-KVM יש פתרון שהוא "בדרך". ניתן כיום להקים פתרון VDI מבוסס KVM כל עוד יש לך כלי ניהול ל-KVM שידע להעביר מכונות בזמן עומסים לשרתים פנויים יותר (כמו Convirt). הבעיה המרכזית עם KVM היא שאין אפשרות להכניס GPU לשרתים ולבצע offload של פעילות גרפית לכרטיסי GPU כמו המתחרים, ושוב – יש Flash פועל אצל המשתמש – תראו את ה-Xeon "מזיע" ממאמץ ולכן KVM כיום יכול להתאים לפתרון VDI אם מדובר ב-pilot/POC כשמדובר בכמות קטנה (כמה עשרות מקסימום) של מכונות דסקטופ וירטואליות.

אחת השאלות שנשאלתי לא פעם בעבר לגבי עניין ה-VDI היא מדוע לא קיים פתרון שיודע להשתמש במעבד הגרפי שקיים ב-Client. אחרי הכל, אפילו טאבלטים ומחשבים שהם Low end ממוצעים כיום יכולים לנגן וידאו ולהראות גרפיקה בצורה חלקה ויפה. התשובה לכך היא שפעילות כזו תצטרך תקשורת ישירה ורצופה 30 פעם בשניה בין הכרטיס הגרפי ב-thin client ל-CPU שנמצא בשרת, מה שמצריך המון רוחב פס ו-Latency נמוך ואת זה לא ניתן בקלות לפתור. הפתרונות של Citrix ושל VMWare נותנים פתרון עקיף, וברוב הזמן למשתמש ממוצע בחברה זה יספיק, אבל במקרים של שימוש גרפי רציני, הפתרון מגיע מפרוטוקולים קנייניים שמשתמשים ב-GPU שרץ על השרתים במקום להשתמש שימוש מלא ב-GPU שקיים ב-Thin Client.

אז האם כדאי לעבור ל-VDI? לעניות דעתי – תלוי.

אם יש בארגון שלכם סניפים – פתרון VDI יכול לסייע (במיוחד כתחליף ל-Terminal Services, לתשומת לב חברות תקשורת סלולריות מסויימות…), פרטוקולים כמו HDX או RDP או PCOIP יודעים להתמודד להתמודד עם Latency תלת ספרתי. אם יש לכם קבוצה גדולה של משתמשים שמריצים אופיס ודפדפן – אפשר בהחלט לשקול להעביר אותם לפתרון VDI (לא לשכוח לבטל להם Flash, בין כה השימוש העיקרי בו היום הוא פרסומות). לעומת זאת, אם יש לכם בארגון כמה מאות/אלפי משתמשים ואתם חושבים על מעבר ל-VDI, אני ממליץ לבדוק את השיקול הכלכלי שוב, אני אישית מתקשה להאמין שתמצאו לכך הצדקה כלכלית רצינית.