ה-LAB הביתי – לרכוש שרתים?

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

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

אתחיל בפתגם עתיק בעברית שאומר "לא כל הנוצץ, זהב הוא", וה"זהב" הוא שרתים ישנים שנמכרים במחיר מפתה. אחרי הכל, יש לא מעט כאלו שישמחו למכור לך שרת HP G7 או שרת Supermicro או IBM X3650 M3 עם 2 מעבדים (בד"כ 4 ליבות כל מעבד), 64 ג'יגה זכרון ואולי 2 דיסקים (מכניים) של 300 ג'יגהבייט (ישנים, ממליץ לקחת ולזרוק אותם ישירות לפח) – ב-1000-1500 ש"ח! שלם, תביא הביתה או לחדר LAB שלך, חבר לחשמל, לרשת, למסך, תגדיר IPMI/ILO – וצא לדרך!

וכאן בעצם נמצאות מספר בעיות:

  • איטיות – יכול להיות שמוכרים לכם מעבדים מסידרה L (הסידרה ה"חסכנית" בחשמל) או סידרה X (הסידרה ה"בזבזנית" בחשמל אך אמורה לתת ביצועים) – אך הביצועים של מעבדים אלו – מאוד נמוכים. כמה נמוכים? אם תשוו מעבד ממשפחה כזו למעבד מודרני מהשנתיים האחרונות של לאפטופ ל-Enterprise (כמו Thinkpad) – הלאפטופ יהיה מהיר פי 2-8 (תלוי במבחן)!
  • צריכת חשמל מבהילה: אם נסתכל בבית ממוצע אלו מכשירים חשמליים ישנם, רובם אינם צורכים חשמל בכמות גבוהה ואלו שכן צורכים, אנחנו משתמשים בהם לזמן קצר: מכונת הכביסה תצרוך כמות רצינית אבל היא תעבוד שעות ספורות, מייבש שיער – חצי שעה? מקררים כיום הם די חכמים ומפעילים את עצמם אחת לזמן מה כדי לקרר והטרמוסטט מנטר את המצב ומפסיק את הקירור לאחר הגעה לטרמפרטורה מסויימת.
    בשרתים לעומת זאת – צריכת החשמל המינימלית מתחילה בסביבות ה-180-200 וואט כשהשרת לא עושה כלום, הוא רק פעיל עם OS, לא מריץ מכונות וירטואליות שמבצעות דברים. הנה לדוגמא גרף של שרת Supermicro שמריץ כאן FreeNAS שלא מבצע כלום:
    כמו שאתם יכולים – גם כשהשרת לא עושה כלום, הוא צורך לא מעט חשמל (ואגב, לא, הוא לא במצב Performance, אחרת הצריכה מטפסת בחינניות גם במצב idle לכיוון ה-350 וואט)

וכל זה מדובר על שרת יחיד. יש לך 3-4? אתה מסתכל על בערך 1 קילוואט חשמל שנשרף על כלום. אם אין לך בעיה לתרום כסף לחברת חשמל – אז הנושא אינו רלוונטי עבורך.

מהצד השני – המחשב שאני משתמש בו כדי לכתוב פוסט זה הוא עם מעבד AMD Ryzen 2700, וצריכת החשמל שלו כרגע (אני עם עוד מספר טאבים פתוחים בכרום, וכמה אפליקציות פעילות) היא בסביבות ה-50 וואט. במצב idle הצריכה נוחתת ל-30 וואט, ומבחינת ביצועים – ה-Ryzen הזה נותן ביצועים פי 4-10 בהשוואה לכל מעבד Xeon V1 וגם כאן יש 8 ליבות ותמיכה של זכרון עד 128 ג'יגה (זכרון רגיל או RDIMM עם ECC). החסרון היחידי: אין לי שליטה מרחוק ברמת חומרה (אם כי גם את זה אפשר לפתוח ברכישת לוח אם כזה).

ולכן, ההמלצה שלי כיום ל-LAB ביתי היא לא לרכוש שרתים, אלא לרכוש דווקא דסקטופים עם מעבדים כמו Ryzen מכמה סיבות:

  • מחיר זול למעבדים (בארץ) וזכרון: מעבד כמו Ryzen 7 3700X עולה בארץ 1510 שקל (Ivory/KSP) – מעבד כזה יכול להתחרות בכבוד גם במעבדי Xeon או מעבדי דסקטופ של אינטל מהדור האחרון. מבחינת זכרון – DDR4 הוא הרבה יותר זול מ-DDR3 ECC ונמצא לרכישה בכל מקום.
  • השקעה לטווח ארוך – הטכנולוגיות הללו לא  הולכות להיעלם בשנתיים שלוש הקרובות, במיוחד לוחות אם עם X570 Chipset שתומך PCIe 4.0.
  • חסכון משמעותי בחשמל – במיוחד אם ה-LAB שלך הולך להיות פעיל 24/7/365
  • אין צורך במזגן, גם אם יש לך 4-5 מכונות כאלו בחדר אחד.
  • פעולה שקטה.
  • לא צריך ארון – אפשר לאלתר פתרון של 2 מדפים: מדף אחד (עם חור בחלק האחורי) למתג, מודם, נתב וכו', ומדף שני למקלדת ועכבר (את המסך אפשר לתלות על הקיר). המחשבים יכולים לשבת על הרצפה (מחשבי דסקטופ עם מארז דסקטופ) או על משטח מוגבה (למהדרין)

לסיכום: הרבה יותר קל לנהל ולעבוד עם LAB שמורכב ממחשבים בתצורת דסקטופ (גם אם יש במארז דסקטופ לוח אם של שרת, כמו לוחות של Supermicro) – הרבה יותר קל לקרר (במקום להסתמך על קירור קנייניי שלא ממש יודע להתחשב בזה שאתה מריץ את זה באיזה מחסן או חדר או ממ"ד בבית בלי מזגן), צריכת החשמל הרבה יותר נמוכה ויש תמיכה מלאה של ציוד סטנדרטי מהשנים האחרונות, והכי חשובים: קבלת ביצועים גבוהים.
אני לא מנסה לטעון כי תצורת פיצה (1U או 2U) היא לחלוטין מיותרת ב-LAB ביתי (מישהו מכיר מארז דסקטופ שיכול לקבל 24 דיסקים 2.5 אינטש בחיבור U.2? יש רק גרסאות של 2U לדברים כאלו למיטב ידיעתי), אבל יש יותר יתרונות בתצורת דסקטופ מאשר תצורת פיצה ל-LAB ביתי.

קצת על IPXE

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

מבחינה טכנית – PXE הוא די פשוט: יש שרת TFTP שמגיש קבצים ב-UDP דרך פורט 69. אתה מקים שרת כזה, מוודא שיש שרת DHCP שיתן כתובות IP זמניות (או קבועות אם אתה נותן כתובות לפי MAC) למכונה שעושה BOOT PXE וכל מה שנשאר לך זה לוודא שתוכנת ה-PXE Client (יש כל מיני ללינוקס ו-Windows) יודע איך להעלות את המערכת שאתה רוצה להעלות.

הפתרון הזה הוא פתרון נחמד למעבדת מחשבים או למקום שצריך PXE פה ושם. אחרי הכל – תן לשרת TFTP להגיש קבצים ל-100 מכונות בו זמנית ותראה את השרות זוחל.

אני רוצה להכיר לכם את IPXE.

אם אנחנו מסתכלים היום על Data Center – בין אם ה-DC מורכב מחצי ארון עם 3 שרתים ועד לאולם שלם שמפוצץ שרתים – הדברים השתנו לחלוטין בעשור האחרון. שיטת העברת הקבצים הכי פופולרית היום היא HTTP, אנחנו יותר משתמשים ב-iSCSI וב-NFS, בחלק מהמקומות יש Infiniband, ועוד ועוד טכנולוגיות מודרניות, ובכלל – כיום כל VM יושב על iSCSI או על NFS והתקנה אוטומטית דרך פרוטוקולים אלו יכולה לסייע מאוד.

היחוד של IPXE הוא בכך שהוא לוקח את PXE המוכר ומקדם אותו לעידן של היום תוך מתן תמיכה טבעית ל-NFS ו-iSCSI והעברת קבצים עצמה יכולה להתבצע דרך HTTP (ולכולם יש כיום מערכות לנטר ולכוון תעבורת HTTP). מה עם שרת ה-TFTP? אותו עדיין נצטרך אך ורק להעביר קובץ יחיד (UNDIONLY.KPXE) ואולי עוד קובץ למערכות UEFI. את השאר אפשר להעביר בפרוטוקולים אחרים.

IPXE נותן לנו במכונה שעושה BOOT PXE גם אפשרויות של סקריפטים בשפה די פשוטה שיקח לכם זמן מאוד קצר ללמוד אותה. אפשר להכניס תנאים, לשרשר קבצי IPXE, וכמובן – יש תמיכה ל-NFS, iSCSI, Infiniband ופרוטוקולים אחרים. כך לדוגמא אם מרימים מערכת ESXi או לינוקס, אפשר להכניס פרמטרים להטענת kickstart להתקנה אוטומטית, להשתמש ב-WIM של Windows ועוד. צריכים מכונות דסקטופ ל-Windows? אתם יכולים לעקוב אחר ההוראות כאן לגבי פתרון שיכול להתאים לכם.

הנה לדוגמא מערכת שאני מקים אצלי ב-LAB בבית (מאז הוספתי עוד כמה שורות). לא משהו מורכב, אבל עם הסקריפט הסופר-פשוט שכתבתי – אני יכול להתקין מגוון מערכות הפעלה לכל VM חדש שאני יוצר מבלי לחפש כל פעם היכן ה-ISO. כל קבצי ההתקנה וסקריפט ה-IPXE יושבים אצלי על שרת NGINX (שרת Web) וסקריפט ה-IPXE פשוט מוריד את כל מה שהוא צריך בהתאם למערכת שבחרתי ולבסוף מריץ פקודת boot. משהו לא עבד? לחיצה על CTRL-B תתן לי "shell" נחמד שאיתו אני יכול לנסות את הפקודות ידנית או לראות את השגיאות לפרק זמן ארוך כדי לתקן אותם ולהפעיל את המערכת מחדש.

מערכת נוספת שהכנסתי לתפריט היום (לא מופיע בתמונה) היא מערכת GParted שהיא מערכת לניהול Partitions. נניח שאני צריך לגבות Partitions מסויימים לפני שינוי והשרת עצמו הוא פיזי (ב-VM יש snapshots, במכונות פיזיות – זה קצת יותר מסובך). אני יכול להתקין תוכנת גיבוי ולעשות זאת ולקוות שהגיבוי הצליח, או שאני פשוט יכול למפות iSCSI Volume זמני דרך ה-iPXE, להפעיל את IPXE, לבחור את GParted ולגבות את ה-Partitions. אותו דבר אני יכול לעשות עם NFS ושאר טריקים לאחסון – כל זה מבלי להתקין שום תוכנה נוספת, לרכוש רשיונות וכו'.

הפתרון של IPXE הוא פתרון שמנצל את הכלים שלנו לשימוש מודרני ב-DC, הפתרונות שיש כיום להפצת קבצים יכולים יפה מאוד לעמוד בעומס של עשרות או מאות מכונות שרוצות PXE ועכשיו. בהמשך הדרך, כש-VDI יכנס יותר ויותר לתמונה, ה-Thin Client יוכל לקבל את המערכת שצריכה לרוץ עליו דרך PXE במקום לעדכן קושחות, לבצע טסטים על כל שינוי קטן וכו'.

לסיכום: גם אם יש לכם פתרון PXE, מומלץ להכיר יותר את IPXE. ה-IPXE נותן לנו פתרון שמשתמש בטכנולוגיות של היום ובדרך גם חוסך בכל מה שקשור לתחזוקה והתקנות של מחשבי דסקטופ, שרתים, מכונות VM ואחרים. לא חייבים לשנות כל 3 דקות את הגדרות ה-DHCP (יש ProxyDHCP ותמיכה לזה ל-IPXE) ובטווח הארוך זה חוסך הרבה עבודה. מנסיון.