נקודות לגבי שרתים לבניה עצמית

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

כפי שכתבתי בפוסט קודם בסידרת ה-My Labs: אני מעדיף לבנות את ה-LAB שלי בעזרת מחשבים עם מעבדי דסקטופ של AMD מסידרת Ryzen 7 2700. יש לך 8 ליבות ו-16 נימים, עד 64 ג'יגהבייט זכרון, ו-2-3 מכונות כאלו אמורות להספיק לכל LAB קטן..

אמורות.. חשבתי לעצמי..

ואז הגיעו כמה הצעות מעניינות. מצד אחד הרעיון שלי לגבי VDI זול (שמצריך מעבדים כמו Xeon E5 V4), או בקשות לגבי בניית סטורג' מבוסס 100 דיסקים 3.5", בקשות לגבי סטורג' משולב במתודת Scale Out, וירטואליזציה HCI במחיר זול, הקשחת חומרה, וגם בקשות כמו ניטור אפליקציות שונות ב-Scale out ב-Scaling של כמה עשרות Nodes אך לא במובן של אם "זה רץ", אלא מה ההשפעה מבחינת Latency, זמנים וכו'.

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

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

  • שרתי מותג בתצורת 1U או 2U ישנים הם אסון מבחינה אקוסטית כשמתחילים להרחיב אותם. קחו כל שרת 1U ותוסיפו כרטיס או 2. לא חשוב מה הכרטיסים שתוסיפו. ברגע שתפעילו את הכרטיסים ותפעילו מחדש את השרת, תראו איך המאווררים עולים בכמה דציבלים טובים מבחינת רעש, גם אם יש קירור ממזגן או שהמעבדים לא עושים כמעט כלום. הכרטיסים חוסמים חלק מהקירור, שבב ה-BMC שאחראי על ניהול כל הקירור וה-PWM של המאווררים – מחליט על דעת עצמו להעלות ברמה את מאמצי הקירור (למרות שאין ממש צורך. שרת יכול לעבוד יופי גם אם הטמפרטורה בשרת היא 25 מעלות לדוגמא). בשרתים 2U הבעיה פחות קיימת – עד שאתה מכניס כרטיסים של 40 ו-56 ג'יגהביט (לדוגמא: מסידרת ConnectX של Mellanox) – ואז שוב הדצבילים עולים. זו, אגב, אחת הסיבות מדוע שום ספק ענן ציבורי רציני לא רוצה להשתמש בשרתים כאלו – הם בנויים ברמת Engineering של "כיסוי תחת" מושלם, למרות שהציוד יכול לתת יותר ולעבוד בטמפרטורות יותר גבוהות (מה שחוסך לספק הענן כסף בקירור).
  • אחת הבעיות הנוספות בשרתי מותג היא שהטכנולוגיה ישנה למרות שטכנולוגיה חדשה יותר היתה קיימת בעת יצור השרת. קחו שרתים כמו R610 ו-R620 (או G7 ו-G8 של HPE) ותגלו שרוב תושבות ה-PCIe (אם לא כולם) הם PCIe 2.0 ולא PCIe 3.0. רוצה לחבר JBOD ב-SAS 12G? זה פשוט או שלא יעבוד או שיעבוד לאט כי השבבים של LSI ו-Adaptec לדוגמא דורשים PCIe 3.0.
  • בעיה נוספת שאינה נמצאת רק בשרתי מותג היא עניין הזכרון: אם אין לך מקלות זכרון DDR3 ECC כשכל מקל הוא 32 ג'יגהבייט, תוכל להכניס מקסימום 16 מקלות של 16 ג'יגהבייט ולקבל מהירות של 1333 מגהרץ. כל מקל נוסף שתכניס בתושבות הזכרון הפנויות – ומהירות הזכרון של כל השרת יורדת ל-1033 ואם אתה ממלא את כל התושבות (18 או 24, תלוי בלוח אם) – זה ירד גם ל-800 מגהרץ עלובים, כך שמקסימום הזכרון שניתן להשתמש בלוח אם עם מעבדי Xeon E5 V1 או V2 במהירות זכרון מקסימלית – היא 256 ג'יגהבייט זכרון עם מקלות של 16 (מחירי המקלות של 32 ג'יגהבייט זכרון עדיין גבוהים).

מהבעיות – נעבור לפתרונות:

  • מבחינת לוחות אם, אני מעדיף לעבוד עם Supermicro. הם מייצרים לוחות מעולים שידידותיים לשינויים. כך לדוגמא ניתן להוסיף תמיכת NVME לתוך ה-BIOS, גם כש-NVME לא היה קיים בזמן יצור הלוח. אפשרי גם להתקין Coreboot (בחלק מהמקרים, לצרכי אבטחה) במקום ה-BIOS הרגיל, וכל הציוד הקיים על הלוח נתמך גם בהפצות לינוקס ישנות ללא צורך בחיפוש אחר מודולים ודרייברים, כולל שינוי מהירויות מאווררים, שליטה על ה-IPMI ללא צורך להיכנס ל-BIOS וכו'.
  • אחת הנקודות שחשוב לשים לב בבחירת לוח אם – זה הגודל שלו. אפשר למצוא לוחות מעולים של Supermicro אך שהם בגודל EE-ATX. בניגוד לרושם הראשוני, הגודל במקום רבים מופיע כ-Extended EATX ואנשים לא שמים לב לכך (כולל הח"מ) ולוח כזה לא נכנס לשום מארז שרת (וגם לא ברוב מארזי ה-Tower, אלא אם בא לכם להצטייד במקדחה לחורר דברים, לחתוך פלסטיקים וכו' וכו'), ולכן אם רוצים לרכוש לוח אם כזה, כדאי לבחור ATX או E-ATX בלבד.
  • בחירת מעבדים – הנה נקודה שנשמעת די טריוויאלית אך היא אינה כה פשוטה שמסתכלים מקרוב. בלוחות SuperMicro מסוג X8D או X9D אפשר להשתמש ב-Xeon E5 V1 (שלא כתוב עליו V או V1) ובמקרה של X9D אם תכנון הלוח (כתוב כ-Revision על הלוח) הוא מגירסה 1.20 ויש BIOS אחרון – אפשר להשתמש ב-Xeon E5 V2. בלוחות X10D אפשר להשתמש במעבדי Xeon E5 V3 או Xeon E5 V4 עם זכרון DDR4 ECC. אתם לא מחפשים כח עיבוד רציני? אפשר או לרכוש לוחות עם האות S במקום D (ה-S מציין לוח מעבד יחיד ו-D מציין זוג מעבדים) ואז מכניסים מעבד אחד או שאפשר לרכוש 2 מעבדים כשבמעבד מצויינת האות L (הכוונה Low Power).
  • מעבדים וטכנולוגיה – סביר מאוד להניח שכל מי שרוצה לרכוש שרתים, ירצה להריץ עליהם פתרון וירטואליזציה כלשהו, ואין שום בעיה להריץ vSphere על כל המעבדים, החל מהדור ראשון ועד הנוכחי, אבל אם רוצים להשתמש בטכנולוגיית וירטואליזציה כמו SR-IOV (פוסט על הנושא בבלוג העסקי בקרוב) – חייבים מעבד Xeon E5 V4 ומעלה. אפשר לנסות על Xeon E5 V3 אבל המימוש קיים בערך ב-60-80% מהמקרים, תלוי בלוח, ב-BIOS וכו'.
  • מבחינת מארז ללוח אם לשם בניית השרת – ישנם לא מעט מארזי 3U זולים שניתן לרכוש מ-eBay והם יחסית קלים במשקל כך שלא יהיה צורך לשלם סכומי עתק על המשלוח. עם מארזים כאלו ניתן להשתמש בקירור יותר קונבנציונאלי למעבדים, ניתן להשתמש במאווררים 120 מ"מ שקטים וניתן להשתמש בספק ATX רגיל (מי שמעוניין יכול כמובן להכניס 2 ספקי Flex ATX לשרידות), ואם הולכים על מארז 4U, אפשר להשתמש בפתרון קירור עם רדיאטור בגודל 120 מ"מ לכל מעבד ולהשאיר את המאוורר האמצעי לקרר את את הלוח, זכרון וכו' – זה בהחלט מספיק.
  • מעבדים – ניתן למצוא מעבדים זולים מהסידרת Xeon הראשונה, V2 וגם חלק ממעבדי V3 (אלו עם ה-4 ליבות). מעבר לכך – המחיר קופץ. פתרון די פופולרי שקיים הוא לרכוש מעבדים מאותה משפחה מסידרת ES שהם בעצם Engineering Samples. חשוב לציין: אלו מעבדים שאין להם כיתוב שם רשמי על המעבד (כתוב מספר כלשהו ו-Confidential) ובחלק מהשרתים (במיוחד בשרתי מותג) הם לא יעבדו. המהירות שלהם תהיה פחותה מהמהירות הרשמית בהשוואה לדגם הרשמי ויכול להיות (סיכוי מאוד קטן) למצוא בעיית תאימות כלשהי באפליקציות מסויימות (לא נתקלתי בבעיה כזו). אין שום אחריות למעבדים כאלו מצד אינטל. גם כאן, Supermicro הם היחידים שאני מכיר שכל ה-ES עובדים בלי בעיה על לוחות האם של החברה. אפשר לקחת פחות סיכון ולרכוש את ה-QS שהם בעצם שוחררו זמן ממש מועט לפני היציאה הרשמית של המעבד, ושם מהירות השעון היא כמו המעבד הרשמי ואם היו באגים, המיקרוקוד שקיים ב-BIOS כבר מטפל בבעיה. בכל מקרה אני לא ממליץ לאף חברה לרכוש מעבדים דוגמאות ES או QS.

עוד דברים שיכולים לעזור:

  • חושב לעבוד במהירות 10 ג'יגה? (לפחות מהסטורג' שלך למכונות). במקום לחבר Point to point, יש Switch של חברת MicroTik ב-2 גרסאות. יש גירסה של 8 פורטים ו-16 פורטים, חיבורי +SFP. ה-8 פורטים עולה כמה מאות שקלים וה-16 פורטים עולה בסביבות ה-1300 שקל, כך שתצטרך לרכוש כרטיסי רשת וכבלי DAC/TwinAX. חשוב לשים לב – אם אתה עובד עם vSphere אז לא לרכוש כרטיסי רשת ישנים של Chelsio (הם לא נתמכים ואין VIB שנותן להם תמיכה).
  • מחירי UPS צנחו וכיום ניתן לרכוש UPS של 1000VA ולחבר אותו ל-3 מכונות למקרים של הפסקות חשמל קצרצרות (חצי דקה עד דקה גג, תלוי בעומס של המכונות שלך) או כמיישר מתח. מחיר של UPS כזה הוא בסביבות 400-500 שקל (תלוי היכן קונים).
  • אם אתה מתעקש לקחת שרתי מותג ורוצה מקסימום שקט, קח שרת 2U ואל תכניס בו דיסקים (למעט 1 או 2 ל-OS ואם זה ESXI – אז תשתמש ב-Disk On Key בחיבור שקיים לך על לוח האם). אחד הדברים ששמתי לב בכל הקשור לאיוורור – הוא שאם יש דיסקים, המאווררים חייבים ליצור לחץ סטטי גדול מאוד כדי להכניס מספיק אויר לקירור. אם אין דיסקים, לא צריך לחץ סטטי חזק והשרת יותר שקט.

בקרוב אציג וידאו חדש: איך לבנות JBOD טוב ובזול, ללא צורך בזכרונות, מעבד, לוח אם, והכי חשוב – שקט.

כמה מילים על UPS

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

עד לפני חודשים ספורים ב-LAB שלי כל המכונות היו שרתי מותג ושרת האחסון מבוסס לינוקס+ZFS היה מכונת Core i5 פשוטה עם 32 ג'יגה זכרון ודיסקים. אם היתה מתרחשת הפסקת חשמל והחשמל היה חוזר לאחר זמן מה, כל השרתים היו מופעלים מיידית, אך מכיוון שלשרתים לוקח זמן רב להגיע למצב שהם מטעינים את ה-OS, הזמן ה"פנוי" הזה היה די והותר עבור מכונת ה-i5 לעלות, לבדוק שהכל תקין מבחינת ZFS, לייצא את ה-NFS ושאר שרותים, כך שכשהשרתים היו מתחילים לעלות, כל השרותים שהם זקוקים להם חיצונית – היו זמינים להם. את ה-UPS עצמו לא הייתי צריך כי רוב הזמן המכונות הוירטואליות היו סטטיות "ריקות" שמריצות Hypervisor (כך ש-reboot פתאומי לא היה ממש משנה משהו) ומכונות ה-VM היו עולות בין כה מחדש, כך שב-99% מהמקרים הפסקת חשמל לא היו ממש מזיקות לי. כל המערכת כולה, החל מהרגע שהחשמל חזר ועד שהכל למעלה – עולה תוך 10 דקות בערך.

UPS באופן עקרוני יכול לעזור במצבים מסויימים. אם יש לך מכונת דסקטופ עם GPU יוקרתי וביצעת Overclock לדוגמא למעבד ו/או לזכרון, המכונה תעבוד 24/7 ותצרוך הרבה יותר חשמל מהמצב הרגיל, מה שאומר ש-UPS של 1000VA (וולט אמפר) יחזיק לך אולי דקה או 2 גג. אתה יכול להגדיר את ה-UPS כך שלא יעשה כלום או שיתחיל את תהליך הכיבוי או להריץ סקריפט משלך כשאין חשמל. כמה זה עוזר? תלוי. יש מקרים ש-Windows לדוגמא בעת כיבוי מציג חלון שאומר שאפליקציות X,Y,Z פתוחות והחומר לא נשמר, מה שדי מבזבז את הזמן שנשאר בסוללת ה-UPS. בלינוקס ובמק המצב יותר טוב והמערכת כשמקבלת פקודת כיבוי מתחילה לכבות את השרותים במקביל עד לחלק ה-poweroff שמורץ ואז המכונה תיכבה מעצמה בצורה חלקה ללא נזקים.

בזמן האחרון ה-LAB שלי קיבל תפנית חדה ועד סוף חודש הבא (תלוי בשירותי השליחויות בחו"ל, מכס וכו') יתווספו ל-LAB שלי עוד 5 שרתים באורח קבע ושרת האחסון שלי יוחלף בשרת עם מעבד Xeon מרובה דיסקים ו-SSD. שרת כזה לא עולה תוך 45 שניות כמו השרת הנוכחי וכששרתי הוירטואליזציה השונים לא מקבלים שרותי NFS ו-iSCSI בזמן boot – הם גם לא מפעילים את המכונות הוירטואליות שאמורות לרוץ עליהם, ולכן מה שאצטרך לעשות בעצם זה לחבר את ה-UPS ל-Raspberry Pi ולדגום את ה-UPS. אם יש הפסקת חשמל, הוא ישלח פקודות דרך ipmitool כדי לכבות את המכונות ושרת הקבצים כמכונה אחרונה. חזר החשמל? הסקריפט ירוץ הפוך (שרת קבצים קודם כל, בדיקת שרותים, ולאחר מכן הפעלת שרתי הוירטואליזציה).

אז למי ששואל אותי לגבי עמדתי בעניין UPS – כן, אני ממליץ לכל אחד, במיוחד שזה עולה רק בסביבות ה-400 שקל ויכול להציל אותך מהפסקות חשמל קצרצרות (כמו שיש כאן באזור). למי שיש LAB לעומת זאת, אני ממליץ לעשות חישובי צריכה ולקנות את ה-UPS בגודל המתאים (אם יש לך נסיון בלינוקס אז אתה לא חייב את הגירסה עם הכרטיס רשת. יש בלינוקס את NUT ואתה יכול לעשות איתו את הכל ופשוט לחבר את ה-UPS לאיזה מכשיר Raspberry Pi או תואם). אני לא אהבתי כל כך UPS כי אני אוהב לחיות מבחינת טכנולוגיה "על הקצה" ואוהב לעשות Stress לציוד שברשותי (ושהינו בבעלותי) ולבדוק אם המערכת חיה גם אחרי אירועי הפסקות חשמל, חום וכו', אבל גם אני עכשיו עם UPS 🙂

כמה מילים על Stadia, שרות המשחקים החדש של גוגל

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

לשרות הזה קוראים Stadia ולמי שלא ממש קרא את החדשות או ראה את ההכרזה ביוטיוב, הנה כמה מילים על השרות ממה שכבר הוצג לציבור:

שרות Stadia יאפשר למשתמשים לשחק משחקים דרך הדפדפן. בהתחלה כמובן דפדפן כרום (ואחר כך דפדפנים אחרים יתמכו, אם כי דפדפן Edge עובר לאותה טכנולוגיה של כרום אז גם הוא יתמך, לא רשמית כנראה). המשתמש יוכל להיכנס ללינק ומבלי להתקין שום דבר, הוא יוכל לבחור את המשחק ולשחק אותו מבלי להוריד מאומה. בנוסף יהיה אפשר לשלוח לחברים לינק למשחק ספציפי וגם לקטע מסויים במשחק עצמו. עוד משהו נחמד – תוכלו לראות ביוטיוב שידור חי של משחק ואז להצטרף כשחקן נוסף באותו משחק (אם המשחק תומך כמובן ב-Multi Player). התמיכה אינה רק בדפדפן כרום אלא גם בטלפון הסלולרי, בטאבלט, בכרומבוק וגם על מסך הטלויזיה הגדול שלכם. במקרים שלציוד אין תמיכת Touch או מקלדת/עכבר, ניתן יהיה לקנות ג'ויסטיק מיוחד שיתחבר ל-WIFI ומשם ישירות אל שרתי גוגל למשחק עצמו כך שההשהיה אמורה להיות מאוד מינימלית. מבחינת מערכות הפעלה – כולן נתמכות (כל עוד משתמשים בדפדפן כרום תחת אותה מערכת הפעלה).

מכאן, נעבור ל"מאחורי הקלעים".

גוגל מדברת על כך שתוכלו להתחיל לשחק תוך 5 שניות מרגע שלחצתם על לינק למשחק ובתוך ה-5 שניות המשחק לא רק יתחיל, הוא יעבוד ברזולוציה עד 4K, ב-60 פריימים לשניה ו-HDR (תירוץ מעולה לשדרג את הטלויזיה בסלון! כמובן שמפרט HDR הוא דבר פתלתל כמו נחש, אבל לזה אתייחס בפוסט אחר). תהיה כמובן אפשרות לרדת לרזולוציית Full HD במדינות שבהן הספק אינטרנט סופר כמות ג'יגהבייט תעבורה בחודש וקונס על חריגה – או שהמכשיר אינו תומך ב-4K.

אחד הדברים המוזרים שלא ראו בהכרזה זה את החברות המשתתפות או אלו משחקים יהיו זמינים, וגם לא עניינים פיננסיים (האם אתה "קונה" את המשחק והוא זמין לך אונליין לכל החיים +  גירסה להורדה למחשב, או שמדובר על מנוי במחיר Fixed לכל חודש?). את הקטע הפיננסי גוגל יצטרכו לפתור עם אולפני המשחקים, אבל לגבי זמינות משחקים – כאן הדברים שונים מעט ממה ש-nvidia לדוגמא מדברת במשחק ה-Geforce Now שלהם, והנה משהו שפורסם לגבי Stadia אבל לא פורסם לגבי Geforce Now: אי אפשר יהיה לקחת משחק של PC ולהריץ אותו על הענן. זה לא שזה בעיה להריץ Windows 10 על הענן, זה עניין הרשיונות שצריך לשלם למיקרוסופט, משהו שלא רק שיעלה את המחיר לצרכן הסופי, גם ספקי הענן לא מעוניינים בכך, ולכן – יהיה אשר יהיה, הדברים שאולפן משחקים יצטרכו לשנות במשחקים שהם ירצו שירוצו בענן הם:

  • להמיר את המשחק לרוץ על לינוקס. עם Geforce Now יהיה אפשר "להתחמק" בכך שיבוצעו שינויים על מנת שהמשחק ירוץ תחת Wine, אולם ב-Stadia המשחק (כנראה) יצטרך לרוץ לגמרי באופן טבעי על לינוקס, בלי אפליקציות "המרה" כמו Wine.
  • יהיה צורך לבעוט החוצה כל זכר ל-DirectX או OpenGL. ב-Stadia עובדים אך ורק על ספריית Vulkan. כאן, יכול להיות שאולי ב-Stadia כן יסכימו להשתמש ב-Wine עם ספריית DXVK אולם לספריה זו יש חוסר רציני בתמיכה ב-DirectX12, אז שוב (וזו ספקולציה שלי) – יהיה כנראה צורך להמיר את המשחק להשתמש בספריות Vulkan.
  • אופטימיזציה "רצחנית" מבחינה גרפית למשחק. גוגל לא פירטו מה ה-GPU שיהיה בתוך אותם שרתים שיריצו את המשחקים, אך הם נתנו מספר פרטים שתוך דקות ספורות רבים מהקהילה הטכנית הצליחו לזהות מה ה-GPU יהיה מבוסס עליו: Vega 56 של AMD. ההבדל הגדול הוא שמשחקים יוכלו לדרוש מספר GPU שיעבדו יחד עבור אותו משחק. סביר להניח שה-CPU וה-GPU יהיו מאוחדים במעבד אחד (כמו בפלייסטיישן 4 ו-XBox One). מכיוון שגוגל יחד עם AMD יוציאו "תחנת עבודה" למפתחי משחקים – סביר להניח שנדע פרטים מדוייקים יותר בקרוב.

במילים אחרות: בשביל שמפתחת משחקים תוכל להציע דרך גוגל את משחק X, הם יצטרכו לבצע עבודה שאינה פחותה מעבודת המרה של משחק לפלייסטיישן (פחות או יותר) עם אופטימיזציה לשמירת מהירות רציפה של 60 פריימים בשניה ב-Full HD וב-4K (ומאוחר יותר ב-8K עם 120 פריימים לשניה!)

האתגר הטכני הגדול ביותר שיהיה קיים – הוא לגוגל עם התשתית שלהם. גוגל נותנת כיום איכות צפיה מעולה ביוטיוב ובסרטים (דרך Google Play), אבל במקרה דנן מדובר על תהליך תקשורת דו כיווני שהההשהיה אמורה להיות מילישניות בודדות. גוגל יכולים לתת את זה, אבל הבעיה בדרך כלל יותר קשורה לספקי האינטרנט (שמאיטים מהירות), תצרוכת ביתית (בהצלחה עם השרות אם מישהו בבית צופה בנטפליקס ומישהו אחר צופה בשידור חי ב-Twitch או יוטיוב) ועוד, וגוגל תצטרך להתמודד גם עם זה.

כפי שציינתי לעיל – גוגל אינה היחידה שהולכת להציע את השרות הזה. nVidia הולכים להציע את Geforce Now ולפי השמועות, מיקרוסופט הולכת להציע משהו דומה (רק עם הרצת משחקים של ה-XBox) וכולם הולכים להציג את מרכולתם השנה או תחילת שנה הבאה.

התובנות שקיבלתי מה-LAB שלי

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

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

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

מה שאני כן ממליץ זה לבחור את אחת מהאופציות הבאות:

  • לקחת מחשב דסקטופ שקיים אצלכם, למלא אותו בזכרון (במידה וצריך), להתקין עליו כרטיס רשת (אני ממליץ על כרטיס המבוסס על שבבים של אינטל), לרכוש SSD זול ולהתקין לדוגמא ESXi (יש צורך בכרטיס הרשת הנוסף מכיוון ש-ESXi אינו תומך בכניסות רשת שנמצאים על לוח האם).
  • לרכוש מחשב מבוסס AMD Ryzen 7 (כמו ה-2700) ולמלא אותו בזכרון בהתאם לתקציבכם, SSD זול, כרטיס רשת – ולהתקין ESXI. במקרה הזה תקבלו פי 2 יותר ליבות בהשוואה למעבדים של אינטל ותמיכה ב-עד 64 ג'יגהבייט זכרון.

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

מכאן – נעבור לתובנות.

בקיץ האחרון היו לי מספר שרתים 1U ו-2U של חברות כמו Dell, HPE, IBM. כולם שרתים ישנים (מעבדי E5-2620 דור ראשון ושני) – והיו לי בין 3 ל-8 מכונות, תלוי בחודש ובדילים שהשגתי, מה שמכרתי ועוד. הסביבה שבא נמצאו השרתים היתה ללא מזגן ולפעמים נכנסו גם קרני שמש.

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

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

ולהלן תובנותיי:

  • כל עוד מדובר במכונה שלא יבוצע לה Overclock ואין בה כרטיסי GPU, אפשר יהיה להרכיב לה 3-4 מאווררים (2-3 מקדימה בתצורת PULL, מאוורר מאחורה בתצורת PUSH), יחד עם המאוורר שמגיע עם המעבד – מכונה כזו לא צריכה מיזוג או תנאים מיוחדים (יש לי 2 מכונות דסקטופ כאלו שעובדות כך כבר 6 שנים).
  • מתוך הנחה (ולאחר בדיקות) שניצול ה-CPU אינו עובר את ה-60-70% – אפשר להתקין פתרון קירור של Noctua מסידרת ה-Low Profile (כל עוד יש את האיוורור שציינתי לעיל), כך שהמכונה תהיה שקטה גם בקיץ.
  • במידה ובונים מכונה ורוצים עליה שליטה מרחוק עוד ברמת הכיבוי/הפעלה – מומלץ לרכוש לוחות אם עם IPMI. במקרה של אינטל – קשה מאוד למצוא לוחות כאלו שמקבלים מעבדי דסקטופ, ומעבדי Xeon הם יקרים ולכן ניתן לוחות אם שתומכים במעבדי Xeon ישנים יותר (אני ממליץ E5 V2 ומעלה) או שניתן לרכוש לוח כזה עבור מעבד Ryzen מודרני.
  • שרתים מוכנים – ישן, אך לא ישן מדי: מאוד מפתה לרכוש שרת ישן בן 6-7 שנים בכמה מאות או ב-1000-1500 שקל כשכמעט הכל כלול (מעבדים, זכרון, רשת – אין דיסקים), אולם לא ניתן בשרתים כאלו להוסיף ציוד כמו SSD NVME, כרטיסי רשת מרובי כניסות וכו', וכמו כן מבחינת ביצועים – מעבד דסקטופ מודרני זול "בועט" בכל Xeon דור ראשון או שני (כשמדובר על אותה כמות ליבות ולפעמים כשב-Xeon יש כמות ליבות כפולה). ראו, אגב, הערותיי למעלה אם אתם חושבים להקים "LAB" שבעצם מבוסס על מכונה אחת.
  • אם אין לך בעיה שהמערכת לא תעבוד זולת שרותים בסיסיים בהפסקת חשמל ושכל המידע שלך בשרת האחסון לא יזוק כתוצאה מהפסקת החשמל – לא חייבים UPS. פוסט ופרטים על כך – בקרוב.
  • אפשר לבנות שרתים שקטים גם בתצורת 2U. וידאו ופרטים על כך – בקרוב.

הקיץ הזה אני אצטרך כפי הנראה (בהתאם לפרויקטים שיכנסו) מספר שרתים, שרת ה-ZFS העיקרי שלי יוחלף למשהו הרבה יותר מאסיבי (320 ג'יגה זכרון, 20 דיסקים קשיחים, Optane SSD ו-2 מעבדי Xeon וכנראה תקשורת במהירות 40 ג'יגה) ותהיה גם מערכת ניהול חכמה למקרים של הפסקת חשמל והפעלת שרתים עם שרותים בסיסיים שיפעלו ללא תלות בחשמל רציף. הכל יוקלט בוידאו ויפורסם ביוטיוב, פוסטים חדשים יופיעו בנידון וגם הקוד לניהול ישוחרר באופן חופשי ב-GitHub. אתם מוזמנים להירשם לבלוג (או לעקוב אחר הפייסבוק שלי או ערוץ הטוויטר שלי), ואני אשמח לקרוא את תגובתכם.

על Windows ומעבדים מעל 16 ליבות

בשנים האחרונות אנחנו רואים יותר ויותר מעבדים חדשים מ-AMD עם יותר ויותר ליבות במחירים מאוד מפתיעים, הן לתחנות עבודה והן לשרתים. להלן 2 דוגמאות:

  • מעבד AMD Threadripper 2990WX עם 32 ליבות ו-64 נימים עולה 1700$ (מיועד לתחנות עבודה)
  • מעבד AMD EPYC 7551P עם 32 ליבות ו-64 נימים עולה $2700 (מיועד לשרתים בעלי תושבת מעבד יחידה)

לשם השוואה: המעבד לתחנות עבודה ושרתים הכי זול עם 16 ליבות מאינטל (Xeon SP Gold 6130) עולה נכון להיום $1932. ההצעה הזולה ביותר מעל 16 ליבות של אינטל היא מעבד Xeon Gold 6140 וכיום מחירה הוא $2500, כך שבמחיר של מעבד אחד מאינטל אפשר לקנות מעבד עם כמות כפולה של ליבות לתחנות עבודה, ובתוספת של 200$ אפשר לרכוש מעבד לשרת עם כמות כפולה של ליבות (בהשוואה ל-6140 של אינטל).

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

אך מה יקרה אם נרצה לקנות מכונה כזו להריץ אותה כתחנת עבודה או כשרת Windows (לא וירטואלי)? צפו לביצועים נמוכים ב-30-50% בהשוואה ללינוקס עם אותם מעבדים.

כשאינטל שחררה את משפחת Xeon SP, אינטל הציגה בגאווה כמה המעבדים לשרתים (אז לא היה Threadripper) שלה הרבה יותר מהירים ממעבדי EPYC של AMD. סקירות עצמאיות הוכיחו שאינטל פחות או יותר צודקת (יש מספר מבחנים די תמוהים של אינטל ועל כך הופיע פוסט ב-Anandtech). רוב הסוקרים ציינו כי הבעיה של הביצועים קשורה לארכיטקטורת ה-NUMA של AMD.

שנתיים חלפו מאז ש-AMD הוציאה את משפחת מעבדי EPYC לשרתים. AMD הוציאה באותו זמן את משפחת ה-Threadripper דור ראשון (עד 16 ליבות) ואת משפחת ה-Threadripper דור שני (מבוסס על ארכיטקטורת +ZEN). עם הדור השני, AMD הוציאה את המעבדים 2970WX ואת 2990WX -האחד עם 24 ליבות והשני עם 32 ליבות. ההבדל בין מעבדים אלו לבין המעבדים ממשפחת EPYC – היא שמעבדי Threadripper משתמשים ב-4 ערוצי זכרון ולחלק מהליבות אין גישה ישירה לזכרון, בשעה שמעבדי EPYC מקבלים גישה ל-8 ערוצי זכרון.

המחיר הזול גרם ללא מעט אנשים להתעניין לראשונה במעבדים עם 24 ו-32 ליבות ולא מעט אנשים רכשו אותם. המעבדים עובדים מצוין אולם מי שבחן אותם על Windows קיבל "הפתעה" – גם כאן, Windows הציג ביצועים נמוכים ב-30-50% בהשוואה ללינוקס (הבעיה אינה קיימת בדגמים כמו 2950X שהם עם 16 ליבות).

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

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

למי שראה את הוידאו ולא הבין: הבעיה נמצאת עם ה-Windows Scheduler, ה"מתזמן" של Windows שמקים תהליכים (Processes) על ליבות שונות לפי העומסים שלהם, ועם המעבדים המוזכרים לעיל וכמות הליבות הגדולה, ה-Scheduler של Windows – "מתחרפן", ומה שיותר גרוע – מיקרוסופט לא עושה סימנים שהיא עובדת על תיקון הבעיה, ומה שהכי גרוע – זה קורה בכל גרסאות ה-Windows, כולל Windows Server.

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

לכאורה ניתן להחליט משהו פשוט: לא רוכשים מעבדים של AMD אם מריצים Windows כמערכת הפעלה מרכזית "על הברזל", ואני יכול בהחלט להבין החלטה כזו, אולם הבעיה המרכזית אינה רק במעבדים של AMD. גם אינטל הולכים להוציא מעבדים חדשים עם אותה ארכיטקטורה כמו של AMD (הם יתחילו להופיע תחת משפחת Cascade Lake שתצא השנה). הבעיה היותר גדולה שקיימת בצד של מיקרוסופט היא תמיכה במעבדים מעל 16 ליבות ולא חשוב מי היצרן (גם אינטל). הסיבה שאף אחד לא התלונן עד כה? אף חברה שרוכשת שרת עם מעבדים מעל 16 ליבות לא מריצה ישירות Windows "על הברזל". עם Scheduler יותר טוב, גם מעבדים של אינטל ירוויחו מכך.

לסיכום: אין מנוס מלציין משהו פשוט. מיקרוסופט נרדמה בעמידה. מיקרוסופט עם Windows 2019 בהחלט מעוניינת שתריצו Kubernetes וקונטיינרים, אבל אם נסתכל לדוגמא במבחנים של Phoronix על מכונה עם 40 ליבות שמריצה Windows Server בגרסאות שונות ("על הברזל") מול הפצות לינוקס שונות – לינוקס ברוב המקרים פשוט "בועט" ב-Windows, גם כשלא מדובר כלל במעבדים של AMD. מישהו שם צריך להתעורר.

תקלות בפלאפון ומה כולם יכולים ללמוד מכך

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

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

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

בכל חברה שיש שרתים, בין אם בענן או מקומית, יהיה צורך אחת לזמן מה לבצע שדרוג. זה יכול להיות שדרוג למערכת הפעלה, ל-VM, יכול להיות שדרוג לאפליקציה, ל-Appliance, למתג או לכל ציוד אחר. אין מה לעשות – באגים מתוקנים, פונקציונאליות נוספת, יש צורך בהרחבה, לא חסר סיבות וצרכים לשדרג.

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

בעבר הרחוק, אמצעי העזר שעמדו לרשותך היו קבצי TAR (בלינוקס, יוניקס) שהכנת לפני השדרוג (אם כמובן גיבית את הכל והתוכנה לא זורקת איזה קובץ so באיזה חור נידח והוא לא כלול בקובץ TAR) או גיבוי לקלטת. עם מערכות Solaris היה אפשר להשתמש ב-Veritas Volume Manager כדי ליצור Snapshot, בלינוקס בזמנו היה LVM אבל לא היה Snapshot וב-Windows (לפני שנות ה-2000) המצב לא היה טוב יותר.

עכשיו ב-2018 דברים השתנו. הרוב רץ על VM כיום אז אין בעיה ליצור Snapshot לכל המכונות המושפעות משדרוג ואם יש תקלה, אפשר לחזור אחורה. כל DB מאפשר לעשות dump שבמקרה הצורך ניתן לשחזרו, ובכל מערכת DR ניתן לעשות את הסינכרון הדו כיווני המתמשך כשעושים עבודת שדרוג.

כיום, גם מבחינת מערכות ההפעלה השדרוגים יותר נוחים. בתחום הלינוקס, כל מערכת ניהול חבילות מאפשרת שדרוג ושנמוך בקלות, וב-Windows אתה יכול לעשות Blacklist ל-KB מסויימים שה-QA של מיקרוסופט, כרגיל, עשה עבודה גרועה בבדיקת תאימות ושחררו זאת בכל זאת.

לכן, שדרוגים לא צריכים רק להיבדק רק על המכונה (או על רפליקציה של המכונה ב-LAB) אלא גם על המכונות שמושפעות מכך, ויש צורך לעשות גיבוי או snapshot לכל דבר שמושפע, כך שאם רכיב מסויים דופק דברים, צריך לעשות rollback לא רק לרכיב, אלא גם למכונות שהושפעו מכך (אם הושפעו). Snapshot, אני מעוניין להזכיר, שומר רק את ה-Delta (שינויים) בין המצב של המערכת לפני ה-Snapshot ולמצב הנוכחי, כך שלא מדובר במקום רב בדיסק, כך שאין צורך לחשוש לגבי מקום בדיסק בגלל Snapshot (כמובן שמומלץ כמה ימים אחרי השדרוג לבטל את ה-Snapshot ואם צריך לשחזר – להשתמש בגיבוי).

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

על המו"מ מול מיקרוסופט, וקוד פתוח בממשלה

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

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

  • Windows Server 2016/2019 – מיקרוסופט מודעים היטב לכך שאינטל ו-AMD מוציאים שורת מעבדים שבכל דגם יש כמות מסויימת של ליבות ונימים (Threads). זה מתחיל ב-4 ליבות ו-8 נימים וגנמר (במקרה של אינטל) ב-28 ליבות ו-56 נימים או 32 ליבות ו-64 נימים (במקרה של AMD). עד גירסת Windows Server 2012R2, זה שיש לך מעבד עם 4 ליבות או 32 ליבות – לא ממש שינה ברשיון. הנה החלק הרלוונטי ב-License Datasheet של Windows Server 2012 – שימו לב לשורה האחרונה המתחילה ב-Note בסוגריים:

עם Windows Server 2016 – למיקרוסופט "נפתח התאבון". זה נחמד שבכל שרת שלך יש 2 ליבות, עכשיו בוא נספור כמה ליבות (לא נימים) יש לך בכל מעבד, כך שאם לדוגמא חושבים להתקין שרת Windows Server 2016 (להריץ אפליקציות "על הברזל", Hyper-V וכו') – אתה תשלם החל מפי-4 על Windows Server 2016 בהשוואה ל-Windows Server 2012R2 (פתאום כל אלו שהשוויצו כמה Hyper-V "יותר זול" רואים שעכשיו פתאום העיסקה על vSphere יותר זולה בהשוואה למחיר Windows Server 2016 ו-Hyper-V).

  • הבעיה המהותית השניה קשורה יותר ל-Office. מיקרוסופט עושה הכל כדי לדחוף את הלקוחות משתמשי אופיס שלה לענן כך שהם ישלמו תשלום חודשי או שנתי כמנוי. הסיכוי שהחשכ"ל והרגולטור וגופי אבטחת מידע יאשרו לעבוד בענן שווה בערך לסיכוי שלי להיות ראש ממשלת ישראל בקדנציה הקרובה. מיקרוסופט מצידה מעלה כבר באוקטובר הקרוב את מחירי אופיס (הרגילים, לא 365) ב-10% (וזה בארה"ב, באירופה וישראל המחיר יעלה יותר). כשקונים 20 רשיונות זה כואב טיפה, שאתה מדבר על מאות אלפי רשיונות – העצבים מתחילים לרתוח.

אז מה לגבי תחליפים מבוססי קוד פתוח?

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

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

מדוע? הסיבה נורא פשוטה ונראה לי שרבים מאנשי לינוקס המקצועיים (גם אצל מפתחים בהפצות לינוקס שונות) מפספסים אותה: אלו שחושבים בראש של מהנדסים ומפתחים, חושבים על פונקציונאליות, API, סקריפטים וטרמינל, שזה מעולה – אבל מפספס לגמרי את אותם משתמשי קצה. קחו לדוגמא את אופיס, יש את LibreOffice – זה יכול להחליף? מבחינת פונקציונאליות, כן ברוב המקרים, אבל לא מבחינת ויזואליות. ל-LibreOffice יש ממשק שמזכיר את אופיס מלפני 11 שנה ואנשים רוצים ממשק שהם מכירים כיום, הם רוצים החלקת פונטים בדיוק כמו שיש להם ב-Windows (דבר ש-LibreOffice עדיין עושה בצורה די עקומה) ואלו שמעל אותן פקידות, אלו שמפתחים כל מיני כלים סביב ה-Office מחפשים את האינטגרציה בין האופיס ל-Access (ישמרנו האל!), למאקרו, לטפסים האוטומטיים וכו'. אנחנו מדברים על שנים על גבי שנים של עבודת אינטגרציה, ושום LibreOffice לא יכול להחליף את זה בלי חתיכת עבודה רצינית וכבדה מאוד.

נוסיף על כך את העניין שבמשרדים ממשלתיים הכל מתקדם לאט והם עדיין משתמשים ב-Windows 7, עם אקספלורר (כמו הבנקים), ונוכל להבין שפתרון קוד פתוח לדסקטופים לא הולך לקרות בקרוב מהסיבה הפשוטה שלמשרד האוצר יהיה הרבה יותר זול "לבלוע" את התוספת במחיר לרשיונות אופיס מאשר לממן פרויקט מבוסס LibreOffice או החלפת דפדפן ושכתוב מאסיבי של קוד עתיק או בכלל לינוקס על דסקטופ.

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

מעבר דסקטופ ללינוקס אצלי

אינני הטיפוס שמתייחס למערכות הפעלה כ"דתות". אין לי שום בעיה להודות שעד לפני זמן לא רב, מערכת ההפעלה העיקרית בדסקטופ שלי היתה Windows 10, וכשאני רוצה לעבור מערכת הפעלה, אני לא עושה זאת כצעד "אנטי מיקרוסופטי" אלא פשוט בגלל נוחות: 90% מהזמן שאני משתמש במחשב לעבודה או לבדיקות, אני נמצא מול חלון טרמינל או דפדפן, וב-Windows די נמאס לי להפעיל Putty, להשתמש ב-WSL ולגלות שהחלון "טרמינל" מתחרפן לו כשאני מגדיל אותו, ואני גם לא אוהב את המעקב של Windows אחרי.

אבל כמו שאומרים: יש רצוי ויש מצוי, והסיבה שנשארתי עד כה עם Windows 10 היו התוכנות, ובמיוחד תוכנת Camtasia Studio ותוכנת Premiere Pro של אדובי. אני רוצה להתייחס לשתיהן והתחליפים שלהן בלינוקס.

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

בלינוקס קיימים מספר כלים להקלטות מסך (כולל OBS Studio המפורסם), אך הקידוד שהם מקודדים את הוידאו מתאים יותר לשידור מאשר לעריכת וידאו (קידוד של H.264, WebM, OGG וכו') כך שוידאו כזה שאקליט מסך ולאחר מכן אערוך ואוסיף אפקטים, שינוי צבעים וכו' – יעבוד בצורה מאוד איטית בתוכנות כמו Premiere. עם Camtasia Studio לעומת זאת, הם משתמשים במקודדים שלהם (TSCC, TSC2) כך שהעריכה בתוך התוכנה היא לא רק קלה, הקובץ המיוצא קטן ב-90% מכל קובץ שיוצא בתוכנת הקלטת מסך בלינוקס. מדוע זה משנה? מכיוון שאני מחובר ב-ADSL וזמן ההעלאה שונה משמעותית, בין 3-4 דקות (וידאו שהוקלט ונערך עם Camtasia) לבין כל וידאו שנוצר בתוכנה אחרת (40-50 דקות). בנוסף, שום תוכנת הקלטת וידאו לא מאפשרת באופן רציני הקלטה עם Codec מקצועי (Apple ProRes, DNxHD, DNxHR) ו-OBS שכן מאפשר – נותן עיוות בוידאו או חונק את המעבד.

ויש גם את Premiere Pro ועם כל הכבוד למתחרים שלו מבוססי קוד פתוח, הם לחלוטין מחווירים לעומת ה-Premiere, קלות עבודה, תוספים ועוד. אני מכיר את Kdenlive ואת Openshot, ועם שתיהם לא הצלחתי להסתדר. שלא תבינו אותי לא נכון, אני מלא טענות כרימון כלפי אדובי – היא אינה משפרת מהירות רינדור וידאו (בין אם יש לכם כרטיס GTX 1080Ti יקר או GTX 980 – תקבלו את אותם ביצועי רינדוד אחד לאחד!), אינה יודעת לתמוך במעבדים מרובי ליבות, ושיטת המנוי שלה לא ממש מעודדת אנשים (כמוני) שלא משתמשים ב-Cloud של אדובי ולשלם 175 שקל לחודש רק בשביל הזכות להשתמש בתוכנה נשמע לי חסר פרופורציות. אם אני צריך תוכנה מסחרית, אני אשלם אליה תשלום חד פעמי וזהו. בלי מנויים ובלי הקפצות מחיר בדרך.

להלן הפתרונות שמצאתי:

  • הקלטת וידאו של מסך: אני אשתמש בתוכנות כמו Green Desktop ואחרים. נכון, זה לא יתן וידאו בגודל קטן של קבצים, ולכן אנצל את הוידאו להמרה (עם FFMPEG) ל-DNxHD על מנת לאפשר עריכת וידאו יותר קלה ל-Process מצד תוכנת עריכת הוידאו.
  • תוכנת עריכה מקצועית: אין Premiere Pro? ברוך הבא Davinci Resolve 15 ללינוקס (שמתקן את הבאגים של אודיו ללינוקס שהיה בגירסה 14). יש גירסה חופשית ויש גירסה מסחרית, אני כנראה ארכוש את המסחרית. יש בתוכנה כמעט כל מה שיש ב-Premiere ו-After Effects ומבחינת לימוד התוכנה היא נראית מקליפים שצפיתי – די קלה ללימוד.
  • פתרונות VPN: מי שאינו פרילאנסר אולי לא מכיר זאת, אבל כאן בישראל חברות רבות משתמשות ב-VPN מסוים ואינן זזות ממנו גם כשהמערכת יצאה לגמלאות. חלק מהחברות עדיין משתמש ב-VPN שמצריך ActiveX (אללה יוסטור), חלק משתמשות ב-JAVA, וחלק בכלל קיימות רק כ-Native ל-Windows. לזה אין ממש פתרון בלינוקס, ולכן אצטרך להשתמש כנראה ב-VM או Dual Boot, צריך להחליט..
  • מיקרוסופט אופיס: יש גוגל Docs ולמי שלא נוח, שיעביר קובץ PDF. ביי אופיס.

עם איזו הפצה אעבוד? כמו תמיד, אותה הפצה: Fedora האחרונה.

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

אז אתם רוצים ללמוד על לינוקס

אנחנו נמצאים בשנת 2018 וחדירת מערכת הלינוקס לחברות השונות נמצאת בעיצומה. כל סטארטאפ יודע מהיום הראשון שככל שמדובר בשרתים, הוא מהר מאוד יצטרך לעבוד על לינוקס. תחום מתודות ה-Devops והכלים שמשתמשים? סביר להניח שחלק גדול מהכלים יצטרכו שרת לינוקס לעבוד עליו. קונטיינרים? ב-Windows יש אבל זו בדיחה לא מצחיקה (שם זה בכלל VM) – אתם תצטרכו לינוקס להריץ את זה ואם אתם עובדים על עננים ציבוריים עם כלי אוטומציה, סביר להניח שהחיים יהיו יותר קלים עם טרמינל לינוקס (כן, מיקרוסופט משפרת את הקונסולות של ה-CMD וה-PowerShell אבל מספיק להריץ פקודת TOP ולהגדיל את החלון כדי לראות את הקונסולה Freak out ופתאום לא רואים כלום. במקרים כאלו פקודת reset תעזור, אגב).

בקיצור, לא חשוב איך נסתכל על זה, לינוקס נכנס כמעט לכל מקום אפשרי, כולל מקומות שהיו שמורים בעבר אך ורק למערכות מיקרוסופט. ב-Enterprise הכניסה הרבה יותר איטית – אבל היא מתרחשת.

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

אז קודם כל, הדבר הכי חשוב שצריך לזכור לגבי תחום הלינוקס – זה שהתחום מתפתח בקצב רצחני. אנשים לומדים עכשיו קונטיינרים על Docker ו-Kubernetes? הגיע הזמן שתכירו את ה"אח" שלו – cri-o. משתמשים בפתרונות של Docker ל-Enterprise? זה מת, תעברו ל-Kubernetes או OpenShift (תלוי בסביבה ובכל מיני פרמטרים).

בשביל להתחיל ללמוד לינוקס, מתחילים תמיד בבסיס, ומומלץ כמה שפחות להיות "תלוים" בממשק הגרפי, כי כשתגיעו לנהל שרתי לינוקס כלשהם, לא תמצא שם ממשק גרפי (ואם תתקין דבר כזה, בוא נאמר שצוות ה-IT לא יתפוס ממך כאיש לינוקס רציני), ולכן הדבר הראשון זה להכיר בצורה הכי קרובה את המסוף (Terminal). להכיר את מערכת הקבצים בלינוקס, להכיר הרשאות, פקודות, ואם אפשר – להכיר כמה הפצות לינוקס. אובונטו זה נחמד ודי פופולרי בענן, לא ממש פופולרי ב-Enterprise, שם RHEL (של רד-האט) או CentOS עדיין שולטים. הפצות לינוקס כמו Debian ו-Arch או Gentoo הן טובות – למי שרוצה להשקיע ממש לעומק בלינוקס.

אחרי שמכירים הרשאות קבצים ותיקיות, sudo, כדאי להכיר דברים כמו הפניות (redirection) כמו > | < שמאפשרות לקחת פלט מסוים ולהעביר אותו לפקודות/אפליקציות אחרות, כדאי להכיר גם פקודות המאפשרות לבצע מניפולציות לקבצים, פקודות כמו SED, AWK, GREP ועוד. יש כמובן לא מעט פקודות, ותמיד לכל פקודה ניתן למצוא את ה"מדריך" שלה עם פקודת man, כך שלדוגמא אם אין לי מושג ירקרק מה לכל הרוחות עושה awk, פקודת man awk תתן לך הסברים. חלק מה-manuals ארוכים מאוד ומפורטים מאוד (תסתכל על man awk כמה הוא ארוך!) וחלק מאוד קצרים וחיפוש בגוגל יוכל לעזור.

אחרי שנלמד כמה וכמה פקודות, יגיע הזמן שנצטרך שפת סקריפטים כדי להריץ את הפקודות ביחד מתוך קובץ. למי שמגיע מעולם מיקרוסופט, מכיר בוודאי קבצי Batch או PowerShell. בלינוקס כיום הדבר הכי פופולרי זה BASH, ועם BASH תוכלו לכתוב סקריפטים קצרים או ארוכים. השפה עצמה די קלה ללימוד אך מצד שני BASH מאוד פדנטי לגבי רווחים. יהיו לכם הרבה מקרים שתשברו את הראש מדוע סקריפט לא עובד ורק אחרי שעות חיפוש תגלו ש… ששכחתם רווח בין פקודה לסוגריים או שחסר איזה ; ואחד החסרונות הגדולים של BASH הוא שאין לך debug אמיתי.

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

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

ברגע שאנחנו מכירים לא רע את שפת Python ו-BASH, מכירים פקודות פופולריות של לינוקס ואנחנו מרגישים די נוח עם הטרמינל, יהיה כדאי להכיר כלי אוטומציה, כלים אלו יעזרו לכם לבצע דברים שונים בשרתים אחרים כך שלא תצטרכו להמציא את הגלגל מחדש בכל פעם ולא תצטרכו להריץ פקודה 20 פעם רק כי יש לכם 20 שרתים שונים. כלי האוטומציה שאני ממליץ עליו הוא Ansible שמאפשר לעשות כמעט כל דבר תוך כתיבת Playbook (שזה בעצם ה"תסריט") בפורמט YAML ומודולים ב.. Python. יש גם כלים אחרים ואם אתם עובדים עם עננים ציבוריים, סביר להניח שימליצו לכם לעבוד על consul או עם terraform. כל חברה והעדפותיה, כך שאם אתם חושבים לעבוד בתפקיד "Devops", כדאי שתכירו גם את terraform ותלמדו איך להתחבר לעננים כמו AWS כדי לעשות דברים שונים דרך ה-API של אמזון לדוגמא. עוד תחום שכדאי ללמוד, הוא ניהול קוד (כן, גם לדברים הקטנים שלך) עם כלי כמו GIT. אתה יכול להרים לעצמך בבית לדוגמא את GOGS, מנהל GIT קטן וחמוד שיכול לעזור לך הרבה.

דבר נוסף שחשוב הם השרותים שנמצאים בלינוקס. תכירו את SystemD, תכירו כלי כמו TOP (למפונקים שביניכם – htop), תכירו איך לנהל דיסק עם Volume Management, ועוד ועוד. כל קורס טוב שמדריך לינוקס מסביר פחות או יותר על הדברים רק שחשוב לזכור: הקורסים מסבירים דברים בצורה בסיסית בלבד וה"חבר" הכי טוב שלך הם פקודת ה-man לפקודות השונות.

מכאן – הכל תלוי לאן אתם רוצים לקחת את ההכרות שלכם עם לינוקס. תכנות? תכירו את השפות והכלים, ויש מאלו המון. כך לדוגמא אם אתם רוצים ללמוד על Kernel, פיתוח דרייברים וכו', תצטרכו להכיר עמוק את ה-GNU Chaintools ואת GCC, את GDB כ-Debugger ואת ה-proc filesystem, ניהול זכרון, scheduling, ועוד ועוד. שפות כמו PHP? תכירו את השפה וערימות המודולים שלה ואת הדרך להטעין דינמית מודולים, וכו' וכו'.

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

לינוקס כדסקטופ בשימושים אצלי

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

מבחינתי, אצלי בבית יש לי כמה עשרות מכונות וירטואליות, לאפטופ ודסקטופ, בנוסף לכמה שרתים פיזיים. כמות מכונות ה-Windows שיש לי היא 3: מכונת הדסקטופ הראשית שלי היא Windows 10, יש לי מכונה וירטואלית שהיא גם Windows 10 (שמשמשת לצרכי חיבור VPN כשיש צורך להתחבר ללקוחות ממערכת נפרדת), ושרת וירטואלי (VM) שמריץ Windows 2012R2 שמשמש כשרת AD לצרכי בדיקת תאימות של תוכנות שונות. השאר – לינוקס, FreeBSD ומדי פעם אפילו Solaris כשצריך לבדוק אפליקציות כלשהן.

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

יחד עם זאת, לעניות דעתי, צריך להכיר בעובדות קיימות.

הסיבה שלי שאני מריץ Windows 10 על המכונת דסקטופ שלי היא די פשוטה: יש לא מעט תוכנות שאני צריך שקיימות רק ל-Windows ושום אמולציה או שימוש ב-Wine לא יעזרו. כך לדוגמא, כשאני מפרסם הדרכות/הדגמות תוכנות/אפליקציות/שרותים – אני משתמש בתוכנת Camtasia להקלטה, עריכה ויצוא הוידאו לפורמט H.264. האם אפשר להקליט מסך עם לינוקס תוך שימוש במיקרופון? בהחלט, אבל הקידוד של Camtasia ב-Windows יוצר קבצים שהם בגודל 10% בהשוואה להקלטת מסך בלינוקס. במקרים אחרים כשאני מקליט וידאו שבו אני מופיע, אני משתמש בתוכנת digicamControl שהיא בקוד פתוח ששולטת על מצלמת ה-Nikon (המעפנה) שלי ואת הוידאו אני עורך ב-Premiere. נכון, קיימות תוכנות עריכת וידאו בלינוקס, אבל את פרמייר Pro אני מוצא הכי נוחה (וכן, ניסיתי את Kdenlive ואחרות). פה ושם אני עובד טיפה עם פוטושופ לערוך תמונות, ואני פשוט לא מסתדר עם GIMP.

בלאפטופ שלי לעומת זאת מותקנת הפצת Fedora 28 עם KDE. אין שם Windows ואני כותב עם הלאפטופ כרגע את הפוסט הזה, ואני משתמש שם רק בלינוקס כי כל הצרכים שלי יכולים להתבצע בקלות על לינוקס. אני לא אערוך וידאו על הלאפטופ גם אם אדובי מחר תוציא את חבילת התוכנות שלה ללינוקס מהסיבה הפשוטה שאותו לאפטופ לא נוח מספיק (והמסך באיכות זוועה!), אבל בשבילי רוב העבודה על הלאפטופ זה טרמינל ודפדפן, וברוב המקרים, אפילו כרומבוק מספיק בשביל זה.

לאלו ששואלים אותי אם לעבור ללינוקס, אני אומר משהו פשוט: בדוק מה התוכנות שאתה צריך, האם תוכנות חליפיות יכולות לספק אותך והאם אתה מוכן לבצע Multiboot או להשתמש בוירטואליזציה. לינוקס לא יכול להחליף ב-100% כל מערכת Windows ואפליקציות שרצות עליה. לינוקס מבחינת שימושיות כדסקטופ עשתה צעדים גדולים בשנים האחרונות והפצות לינוקס מודרניות יודעות לתמוך ברוב הציוד מבלי שתצטרך להגדיר משהו, אבל מבחינת אפליקציות – יש אלטרנטיביות ראויות לתוכנות שונות ויש אלטרנטיבות גרועות ויש מקרים שאין אלטרנטיבות ואז יש צורך להגדיר את המכונה כ-Multiboot או להשתמש בוירטואליזציה (אם אין צורך בשימוש רציני ב-GPU ע"י האפליקציה – כמו באפליקציות של אדובי), והכי חשוב זה להכיר במציאות: דברים אינם שחור או לבן. אין שום דבר רע בשימוש ב-Windows כמו שאין שום דבר רע בשימוש בלינוקס.