במקרה חרום

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

נתחיל בעניין ה-DR/DRP. כן, אני מודע לכך שהנושא היה "שוס" ב-3 השנים האחרונות, ערימות של מסמכים נכתבו על הנושא פנימית וחיצונית בחברות שונות בארץ ובעולם וכמובן שחברות רבות רכשו חבילות תוכנה/שרותים ורכשו ציוד שיושב באיזו שהיא חווה (או באחד מהעננים הציבוריים) והמערכת מסתנכרנת תדיר בין ישראל לבין המיקום השני. הפתרון הזה הוא פתרון מעולה כאשר חברה נותנת שרותים לקהל לקוחותיה שנמצאים מחוץ לחברה. במקרים כאלו, התשתית המרוחקת (לאחר שינוי DNS) תתן שרותים וכשהתשתית הישראלית תחזור לפעילות, הנתונים יסתנכרנו ארצה.

אבל בואו נחשוב על כך שיש לי חברה שעושה משהו (נניח לשם הדוגמא: יבואנית צעצועים) ויש לי בבנייני החברה 250 עובדים. התרחשה רעידת אדמה רצינית. תודה לאל, אף עובד לא נפגע, ומבחינת IT כל הציוד עדיין תקין ועובד, רק שיש בעיה אחת קריטית…

אין תקשורת. החוצה.

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

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

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

  • שימוש ב-DNS פנימי, 2 שרתי DNS שמסונכרנים ביניהם תדיר עם AD ו-DHCP. (סביר להניח שזה מצב קיים אצל הרוב, אבל יש כאלו שהעבירו את זה לענן. תתפלאו).
  • שרת מייל פנימי – נכון, אין אפשרות לקבל/לשלוח מיילים מחוץ לחברה אך במקרים רבים המיילים/יומנים הם פנימיים ולכן שרת מייל פנימי יוכל לבצע זאת. (מכיוון שאינני מומחה Exchange, כדאי לשאול את מיקרוסופט איך מסנכרנים שרת כזה ל-365 אחרי שהתקשורת חוזרת).
  • שרתים (VM) שעברו לענן – כדאי להקים אותם פנימית בחברה עם DB ו-Snapshot שמתעדכן תדיר, עם כתובות FQDN זהות פנימית לשרתי DNS שציינתי בנקודה הראשונה, כך ששירותים חיוניים יופעלו מהתשתית המקומית בהיעדר תקשורת החוצה.
  • גיבוי – לוודא היטב שיש גיבוי מקומי והוא תקין (כן, מומלץ להריץ Verify על הקלטות). תזכרו – אין תקשורת, אין DR מרוחק.

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

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

אנשי שיווק מול אנשי מקצוע

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

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

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

תשובתי: אם אדוני מעוניין, אשמח לחבר אותו ל-LAB אצלי, שם המוצר שבחרתם רץ, ואשמח להראות לאדוני שהמוצר שבחרו אינו עושה את אותם דברים עם הברזלים שיש לכם.

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

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

עוד דוגמא: חברה מסויימת פנתה אליי בקשר למוצר שהם משתמשים וכבדרך אגב אותו אדם שפנה אליי סיפר לי שגם להם יש שרתים כמו שרכשתי (X3550 M3 של IBM) והם בדיוק הולכים  לרכוש הרחבת זכרון ל-256 ג'יגהבייט. הסברתי לבחור משהו פשוט: אתה תרחיב זכרון, ותראה נחיתה של 40% בביצועים. הוא לא האמין, הנציג שמוכר לו את הזכרון לא סיפר לו כלום על כך, אז שלחתי לו מסמך של לנובו שמראה שבשרתים עם מעבדים המבוססים על פלטפורמה של Westmere או Sandy Bridge, ברגע שממלאים את הזכרון, מהירות הזכרון יורדת מ-1333 מגהרץ ל-800 מגהרץ. אז יהיה יותר RAM, אבל הגישה תהיה יותר איטית. עדיף להוסיף שרתים – וזה ההבדל בין מישהו מקצועי לאיש שיווק.

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

  1. הפתרון שלהם מתאים אולי לשנת 2000, לא לשנת 2018.
  2. אין שום גדילה אופקית בפתרונות שהציעו
  3. אין שום שרידות רצינית בפתרונות שהציעו
  4. אין שום עדכוני אבטחה בפתרונות שהציעו.
  5. ההשקעה הכספית הראשונית גבוהה.
  6. הפתרון שהצעתי לאותה חברה הוא פתרון מבוסס קונטיינרים בענן. לאותה חברה יש ספק ענן מועדף ובכל הקשור לתמחור – יש לפנות לאיש השיווק של אותו ספק ענן.

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

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

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

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

מעבר ל-CI/CD בחברות גדולות

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

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

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

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

  1. לבחור צוות שיעבור ל-CI/CD מתוך כל הצוותים שיש בחברה. כדאי שבצוות יהיו אנשים עם מוטביציה ועם ראש פתוח. בלי זה – המעבר יכשל, מבטיח לכם.
  2. להעדיף כלים מבוססי קוד פתוח או פתרונות מסחריים מבוססי קוד פתוח. כלים קנייניים הם מקור לצרות בעולם ה-CI/CD שמתפתח בקצב מהיר. לעומת זאת, כלים בקוד פתוח צריכים בד"כ הרצה של פקודת YUM או APT כדי לעדכן.
  3. האם בהזדמנות זו מכניסים פתרון קונטיינרים? (אפשר לבצע CI/CD ללא קונטיינרים) – אם כן, כדאי להחליט אם הולכים על פתרון מסחרי של Kubernetes (כמו CAAS של SuSE) או על OpenShift של רד-האט שהוא גם מבוסס Kubernetes אבל נותן הרבה הרבה יותר יכולות. (ישנם כמובן גם פתרונות אחרים אבל הם לא עונים לצרכים של Enterprise).
  4. פיתוח כ-Multi Platform – חשוב במיוחד לבנקים, חברות ביטוח וחברות פיננסיות. זה נחמד וטוב לפתח ל-Windows אבל אפשר בעזרת עבודה די קצרה לעבור ל-Multi Platform. עובדים ב-JAVA? מצוין, אפשר גם עם לינוקס, צריך בסה"כ לשנות מספר סקריפטים (אם כתבתם) כדי לעבוד בלינוקס. עובדים עם Dot Net? תכירו את Dot Net Core שמאפשר לכם עבודה עם Windows ולינוקס. היתרון של עבודה עם לינוקס הוא שמגוון רחב של כלים יהיה זמין לכם (במיוחד אם אתם עובדים עם קונטיינרים).
  5. טסטים טסטים טסטים … יש עדיין מקומות שמעסיקים אנשי QA. ברוב המקומות לעומת זאת, כבר אין חיה כזו מהסיבה הפשוטה שהיום פשוט כותבים טסטים שרצים במערכת כמו Jenkins המבצעים בדיקות Unit testing ועוד מספר סוגי טסטים על מנת לוודא שמה שמפותח – הוא יציב ועובד.

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

ועוד משהו אחד שרבים לא יאהבו שאני כותב זאת: החיה הזו בשם "איש Devops" זו המצאה שגויה של אנשים שלא מבינים מה זה Devops. הבה נסתכל על משהו פשוט בחברה גדולה: החברה מחליפה תוכנת גיבוי, תוכנת Code Repository, אולי כלי אוטומציה ועוד מספר דברים. האם אותה חברה צריכה פתאום שכיר נוסף? לא, כי צוות ה-IT אמור לדעת לתמוך בכלים. אפשר לקרוא למישהו מבחוץ שילמד ויתרגל את הצוות, אבל הצוות יכול בהחלט להמשיך ולתחזק את אותם כלים. אדרבא, הן אנשי ה-IT והן צוותי הפיתוח צריכים להכיר את הכלים (ברמות מסויימות כמובן, ה-IT ברמה של Sysadmin והשאר ברמה של Usage).

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

כשצריכים סטורג' סופר-מהיר (חלק ראשון)

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

קצת מאחורי הקלעים של בלוג זה: יש לא מעט פוסטים שאני כותב ולא מעלה לבלוג זה מהסיבה המקורית של "לא לעצבן". במקרים מסוימים התברר לי בדיעבד שצדקתי ובמקרים מסויימים אני מצטער שלא פרסמתי. אחד הפוסטים שכתבתי 4 פעמים ולא פרסמתי הוא "מדוע לא כדאי לרכוש סטורג' מבוסס AFA (כלומר All Flash Array)" – וזו היתה טעות מצידי, למרות שפרסום פוסט כזה היה בהחלט מעצבן אינטגרטורים, משווקים ואני סטורג' למיניהם בחברות שונות.

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

עכשיו אסביר.

רוב הסטורג'ים AFA הם פחות או יותר "גלגול" של הסטורג'ים מבוססי דיסקים מכניים. במקרים רבים עם כל היוקרה של AFA, אתם מקבלים SSD בחיבורי SAS/SAS2 או SATA Enterprise (שם נחמד ל-SATA רגיל רק עם "יוקרה"), לאו דווקא דיסקים SSD בחיבור NVME וגם אלו עם חיבור ה-NVME – יתנו בהחלט ביצועים יותר גבוהים מדיסקים מכניים, אבל ה-Latency יהיה עדיין גבוה בהשוואה לדיסקים NVME שיושבים בתוך השרת פיזית. זו לא דעה, זו עובדה – קחו 2 דיסקים NVME והגדירו אותם לדוגמא כ-RAID-0 בשרת, עשו את העבודות שאתם רוצים לבדוק ואחר כך קחו זוג דיסקים SSD NVME במכונה אחרת והגדירו שיתוף כמו iSCSI או CIFS או NFS. לא חשוב איזו רשת יש לכם (10/25/50/100 ג'יגה), Ethernet או Infiniband – הביצועים יהיו גבוהים אבל ה-Latency יהיה גבוה. פתרונות כאלו יכולים להיות מעולים לאלו שרוצים מהירות גבוהה יותר מדיסקים מכניים, אבל הם לא הביצועים הכי גבוהים שניתן להשיג, ומכיוון ש-AFA עולה מאוד יקר, ההמלצה שלי לחברים ולעסקים שמשוחחים איתי – היתה להמתין, לא לרכוש עדיין.

הביצועים הכי גבוהים שמאוד רצויים אצל חברות פיננסיות, AI/ML, HFT ולכל ארגון גודל שמוכן לשלם בתמורה לביצועים מקסימליים – הם ביצועים ששווים לדיסקים SSD NVME (כמו ה-XPoint של אינטל/מיקרון או Z-SSD של סמסונג) שיושבים מקומית בתוך השרתים. זיכרו: דיסק NVME (בקרוב יהיו גם דיסקים מכניים עם NVME, אגב) לא מצריך איזה בקר שיושב באמצע והוא מדבר ישירות ל-CPU ולזכרון המחשב ולכן דיסקים בטכנולוגיות כמו XPoint או Z-SSD מצטיינים ב-Latency נמוך וביצועים שנמוכים אך במעט מזכרון RAM שיושב במחשב. ב-AFA שנמכרים כיום, יש לנו כל מיני פרוטוקולים שמגדילים את ה-Latency, החל מ-iSCSI, המשך ב-NFS וכלה ב-CIFS, כך שהדיסקים יושבים בסטורג' היוקרתי, יש צורך באחד מהפרוטוקולים הנ"ל כדי להעביר DATA דו צדדית בין השרתים לסטורג'.

כאן נכנס לתמונה ה-NVMEoF שכתבתי עליו לפני 3 חודשים, ועם NVMEoF ה-Latency יורד לרמה של דיסקים SSD NVME מקומיים, כך שפעולות התחלת קריאה/כתיבה או כל פעילות אחרת נעשית ב-Latency מאוד נמוך.

איך זה מבוצע? כפי שציינתי באותו פוסט – עם RDMA, כלומר עם אותו פרוטוקול ותיק, ידוע ומאוד אמין ובמקרים רבים זה נעשה על מעבד יעודי שנמצא בכרטיסי הרשת (בגלל זה כרטיסי Mellanox מעולים לארכיטקטורה כזו הן בשרתים והן בסטורג') ואת עניין ה-NVMEoF לא תמצאו ברוב הסטורג'ים AFA. רק בשנה האחרונה חברות ישראליות כמו E8 וכמובן Kaminario (כן, אנחנו "מעצמה" בתחום הסטורג'… טוב, לפחות בפיתוח 🙂 ) וחברות כמו Toshiba, Pure Storage ו-Lenovo (וכמובן הגדולים) מתחילים להציע פתרונות כאלו. אלו שרכשו סטורג' AFA יוכלו (תלוי בחברה) אולי לשדרג ל-NVME-oF אבל גם אז – יהיה צורך להחליף כרטיסים בשרתים וציודים "באמצע" בחלק גדול מהמקרים.

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

רכישת/מכירת שרתים יד שניה, פוסט המשך

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

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

מס' אנשים תלו (ותולים) תקוות שחברות אחרות ירכשו את השרתים שלהם, אך האמת הדי פשוטה היא שרוב החברות בארץ פשוט לא רוכשות שרתים יד שניה (למעט כמובן חברות סוחרים כמו All Trade ואחרים) מהסיבה הפשוטה: חידוש אחריות ל-3 שנים הכוללת הגעת טכנאי בזמן SLA  של 4 שעות – יהיה יקר בהרבה ממחיר רכישת השרת. כך לדוגמא, אם רכשתם שרת יד שניה ב-1500 שקל, עלות השרות שציינתי לעיל תעלה בסביבות 6000-10000 שקל, בשעה שרכישת שרת חדש עם הוספה של תמיכת SLA ל-4 שעות תעלה הרבה פחות בהשוואה לרכישת השרות לשרת יד שניה, כך שכל חברה שאפילו תחשוב על רכישת יד שניה ותרצה SLA כזה, תרד מרכישת שרת יד שניה.

מה לגבי ציודים שבשרתים? אז כך:

  • מקלות זכרון בגודל 1,2,4 ג'יגהבייט – אין להם בד"כ דרישה בשוק, כך שמי שרוצה למכור זכרונות ECC יכול לנסות את מזלו אולי ב-eBay. הדרישה בשוק בד"כ היא למקלות זכרון בגודל 8 ג'יגה ומעלה עם תיוג PC3 10300 או PC3 12800. גם עם מקלות אלו אין הרבה "בשר" מבחינת כסף להרוויח הואיל ורוב המוכרים (שוב, למעט חברות שזה מה שהן מציעות) פשוט לא נותנים שום אחריות לזכרונות, ולכן לדוגמא מקלות זכרון של 8 ג'יגה שווים בערך 20-40 שקל פר חתיכה (בסביבות ה-50-60 לזכרון PC3 10300 בהנחה שמדובר ב-DDR3 ECC).
  • דיסקים קשיחים – לא מומלץ לשום חברה שמעוניינת למכור את הציוד, למכור או לתת את הדיסקים הקשיחים עקב עניינים של אבטחת מידע. השרת מבחינתכם "מת"? העבירו את הדיסקים לגריטה. דיסקים SSD – לא מומלץ לרכוש יד שניה מכיוון שכמות הכתיבה עליהם מוגבלת ודיסקים SSD יד שניה בד"כ אינם כוללים בקרים מורכבים כך שסביר להניח שה-SSD ימות עוד לפני שתימלא לו שנה לאחר רכישה מיד שניה.
  • מעבדים – מאוד תלוי בדגם השרת. שרתים כמו Gen9 של HP (או R730 של Dell או M5 של לנובו) יכולים לקבל מעבדי Xeon E5 v4 כשדרוג במקום E5 v3 (כל מה שצריך זה לשדרג BIOS לגירסה האחרונה לפני החלפת מעבדים), ולכן גם כאן, מי שרוצה לרכוש שרת יד שניה, עדיף שירכוש את המעבד הכי "נמוך" שאפשר וישדרג ברכישת מעבדים ב-eBay. למוכרים – זו עיסקת חבילה ובקטע הזה לא תקבלו הרבה גם על הדגמים עם הכי הרבה ליבות.

מה לגבי מחירים? הפופולריים ביותר אלו הם שרתי 1U ו-2U מה-5 שנים האחרונות (אלו שלפני כן נמכרים במחירים של 3 ספרות). כך לדוגמא שרת Gen8 של HP עם 192 ג'יגהבייט זכרון ועם מעבדים בעלי 8 או 10 ליבות נמכרים במחירים של 1000-1500 שקל (ה-1500 זה אם יש דיסקים חדשים). Gen7 של HP נמכרים בסביבות ה-600-900 שקל עם 208 ג'יגהבייט זכרון לדוגמא, כך שכמו שאתם רואים – הרבה כסף אי אפשר לעשות מזה.

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

סוויצ'ים, UPS – גם כאן, המחירים נעים סביב ה-3 ספרות. UPS לדוגמא לא שווה הרבה אחרי 6-9 שנים של שימוש מכיוון שיש צורך להחליף סוללות פנימיות (והן יקרות!). סוויצ'ים לעומת זאת, חברות רבות נפטרות מהמתגים במהירות 1 ג'יגהביט לטובת מתגים במהירות 10 ג'יגה ומטה, כך שגם כאן המוכר לא יעשה מזה הרבה כסף והרוכשים הפרטיים יכולים אולי למצוא הזדמנויות טובות לשדרג LAB או להוסיף מתג לדברים/פרוייקטים צדדיים.

אז מדוע חברות כמו All Trade מוכרת במחירים כאלו גבוהים שרתים יד שניה? הסיבה פשוטה: הם חייבים להחזיק מלאי והם מוכרים שרות, כך שאם לדוגמא הם רכשו מלאי של 10 שרתי Gen8, הם יוכלו למכור רק 5-7 כאלו כי הם חייבים להחזיק שרתים אחרים כמלאי להחלפה בעת תקלות חרום כחלק מהשרות שהם מוכרים.

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

הסברים על SSD למשתמשים ביתיים ובחברות

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

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

הבעיה מגיעה לכך שכמעוניינים לקנות כונן SSD, ההיצע בשוק ענק, הטקסט השיווקי מטעה בלא מעט מקרים, ואפשר להוסיף על כך כל מיני הצהרות של אנשים טכניים שהיו נכונים לפני 6-9 שנים אך לחלוטין לא נכונים כיום (כן, קרה לי כבר פעם שמישהו מאוד בכיר טען בישיבה כי כונני ה-SSD לא יחזיקו מעמד 5 שנים. יש לי 4 כונני SSD בשרת ZFS שמחזיקים כבר 6 שנים של SanDisk בלי שגיאה אחת והם דווקא מהסוג הכי פשוט שיש!).

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

ניקח כונן SSD, ונפתח אותו. כך הוא נראה בצידו העליון:

כך נראה הכונן. בחלקו השמאלי יושבים מספר שבבי NAND שעליהם יאוחסן המידע. השבב עם ה-M (של חברת Marvell) הוא בעצם ה"מוח" של כונן ה-SSD. הוא הבקר שמצד אחד "מדבר" עם המחשב (החיבורים מימין) ומצד שני הוא האחראי לפריסת הנתונים על שבבי ה-NAND, תחזוקת הנתונים, טיפול בשגיאות, קריאה, כתיבה וכו'. במקרים רבים יש עוד שבב או יותר שמשמשים כזכרון חוצץ (Buffer) אשר מקבלים את הנתונים מבחוץ (אם לדוגמא אנחנו מעתיקים קובץ מבחוץ אל תוך ה-SSD) והבקר כבר דואג לקבל את הנתונים מהזכרון החוצץ ולפרוס אותם אל שבבי ה-NAND. יש עוד פעולות כמו Garbage Collection ו-TRIM שלא ניכנס אליהם אבל הם דברים מאוד חשובים לאורך חיי ה-SSD.

נעבור מכאן לשבבי ה-NAND. אלו השבבים שבהם מאוחסנים הנתונים שלנו. בתוך כל שבב כזה נמצאים מיליוני תאים שמאחסנים את הנתונים והגישה אליהם נעשית דרך הפינים מתחת לשבב. ישנם מספר סוגי תאים (SLC, MLC, TLC, QLC) פרי פיתוח של השנים האחרונות וההבדל ביניהם הוא בעצם כמות הנתונים שאפשר לאכסן פר תא. SLC לדוגמא זה Single Level Cell, כלומר בכל תא אפשר לאחסן נתון אחד וה-SSD הראשונים היו בנויים מ-SLC, כך שהם היו מהירים מצד אחד, אך כמות המידע שהיה אפשר לאחסן – היתה קטנה. MLC הגיע לאחר מכן ולמרות ש-M זה Multi, כמות הנתונים שהיה אפשרי לאחסן היתה בעצם 2 נתונים בתא. (מדוע לא קראו לזה פשוט DLC ש-D הוא Dual, אין לי מושג ירוק). אחרי MLC הגיע TLC (שנמצא ברוב כונני ה-SSD בשוק היום לסקטורים שאינם שרתים) ששם אפשר לאחסן 3 תאים והאחרון (QLC) יכול לאחסן כמות נכבדה של 4 נתונים בתא אחד.

אחת הבעיות הכי מאתגרות בתחום ה-SSD ו-NAND היתה בעצם האפשרות לאחסן כמות גדולה (אני מדבר על תקופת ה-SLC ו-MLC). יש גבול לגודל שבב שאפשר לייצר (ככל שהשבב יותר גדול, הסיכוי לתקלות בו יותר גבוה, בגלל זה מעבדים ו-GPU הם יקרים), ולכן סמסונג (ולאחר מכן חברות אחרות) החלו לעבוד על טכנולוגיה חדשה – במקום ליצור תאים יותר ויותר קטנים על מנת להכניס נתונים רבים – לבנות לגובה, וזה מה שנקרא 3D. בהתחלה סמסונג יצאה עם שבב שיש בו בעצם 32 "שכבות" ולאחר מכן 64 שכבות וכרגע הם מתחילים לייצר 96 שכבות ועובדים על 128 שכבות, כאשר בין כל השכבות יש מעין "מוטות" ותקשורת בין השכבות והבקר כמובן יכול לגשת לכל השבבים ולכל השכבות.

עכשיו שיש כמות רצינית של תאים פר שבב, ניתן לעשות מאות ג'יגהבייט וטרהבייטים, אבל ישנה בעיה אחרת: זוכרים את ה-SLC/MLC/TLC/QLC? הזמן שלוקח לכתוב לאותם תאים הוא יותר ארוך ככל שמתקדמים מ-SLC ל-MLC, מ-MLC ל-TLC, ומ-TLC ל-QLC (כאשר QLC יהיה די איטי אך יותר מהיר מכונן מכני), ולכן ה-Buffer יכול לסייע ובעצם "להחביא" את האיטיות כאשר הכתיבה בפועל תיעשה בתוך ה-SSD ברקע (בעקרון, כונן SSD הוא הרבה יותר חכם מאשר כונן דיסקים מכני. כונן SSD הוא מחשב שלם בפני עצמו הכולל מעבד, זכרון וכו').

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

נתחיל ב"קופסא" – אלו בד"כ כונני ה-SSD שאנחנו מכירים ללאפטופים ושיכולים כמובן להיות מחוברים לתחנות עבודה, דסקטופים וכו'. כל כונני ה-SSD הם בגודל אחיד של 2.5" (יש גם 3.5" אך הם מיועדים לסקטור השרתים והם עולים עשרות אלפי דולרים) והחיבור שלהם הוא חיבור SATA רגיל בדיוק כמו חיבור דיסק קשיח מכני (לאלו שיש להם מחשב ישן דסקטופ, ניתן לרכוש כמובן בזול מתאם בין 3.5" ל-2.5" ב-eBay ובאתרים אחרים, ובחלק מהמוצרים היצרן מוסיף מתכת להתאמה, כמו חברת Kingston). אין צורך בדרייברים על מנת לקבל פעילות של כונן ה-SSD (אך יכול להיות שתצטרכו תוכנה מסויימת, עליה אדבר בהמשך). דיסק SSD כזה הוא דבר מעולה לאלו שיש להם מחשבים ניידים עם דיסקים מכניים והם מעוניינים להשביח את המחשב הנייד שלהם. ישנן מספר תוכנות חינמיות שיכולות להעביר את הנתונים מהדיסק המכני לדיסק SSD (לשם כך תצטרכו לרכוש מתאם USB ל-SATA על מנת לחבר את כונן ה-SSD בחוץ ולהשתמש בתוכנה להעביר את הנתונים ורק לאחר מכן להעביר את ה-SSD לתוך המחשב הנייד).

חוץ מגירסת ה"קופסא" יש לנו את גירסת ה"מקל" – אלו בעצם כונני SSD בתצורה שמתברגת על לוח האם של המחשב (ושל מחשבים ניידים חדשים, בחלק מהמקרים). מדובר ב"מקל" ברוחב 22 מ"מ ובאורך 80 מ"מ (יש גם גירסה של 110 מ"מ) שאותו אנחנו מחברים לחיבור מיוחד ומבריגים. החיבור נראה כך:

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

עוד סוג חיבור שיש הוא חיבור ה-U.2, הוא מופיע בריבוע הכחול בתמונה:

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

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

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

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

  • סמסונג – המלכה בשוק. דגמים של ה-960 וה-970, ה-PRO או EVO (ה-PRO יותר מהיר)
  • אינטל – ה-900P או ה-905P בסידרת ה-Optane. שימו לב שהם יקרים מאוד אך ה-905P הוא ה-SSD הכי מהיר שיש כיום בשוק נכון לשעת כתיבת שורות אלו. שימו לב – הפתרונות של אינטל יעבדו רק אם יש לכם מעבדי AMD Ryzen או i7/i5/i3 מהדור השביעי (Kaby Lake) או דור שמיני (Coffee Lake).
  • Western Digital – סידרת ה-Blue או Black בגירסת M.2 NVME.

אלו שלא מומלצים – אני בד"כ לא פוסל SSD כי כמעט תמיד יש סקטורים שזה יכול להתאים להם גם אם הם לא מהירים כל כך, אך במקרה של אינטל, סידרת ה-Optane Memory Series – בגדלים 16,32,64 ג'יגהבייט אני ממליץ לא לרכוש. הם מבחינה טכנית פשוט זבל וכל דיסק SSD מכל יצרן יתן ביצועים הרבה יותר גבוהים עם הפרשי מחירים זעומים.

אז בחרנו SSD ואנחנו מכניסים אותו למחשב. לפרמט ולהשתמש? כמעט. כלל חשוב הוא לא לפרמט את הדיסק לניצול 100% ממנו אלא רק 90%. הסיבה לכך פשוטה: במסגרת התהליכים שבקר ה-SSD מבצע, הוא בודק תאים לבדוק שהנתונים תקינים וכשהוא נתקל בנתונים שיש סיכוי שתהיה בעיה איתם בקריאה/כתיבה, הוא מעבר אוטומטית את הנתונים לחלק שלא פירמטנו והוא מסמן את המקום שממנו הוא העתיק כמקום לא שמיש, כך שאנחנו אולי מפסידים חלק מהמקום בדיסק, אך מצד שני אנחנו מאריכים את אורך חיי הדיסק, וזה שווה את המחיר.

האם כדאי לוותר על הדיסק המכני? התשובה שלי: לא. דיסק מכני הוא מצד אחד זול ומצד שני יכול להכיל הרבה יותר מידע מאשר SSD (סתם לידיעה, סמסונג 850 EVO בגודל 4 טרהבייט יעלה לכם בחו"ל 1500-1700 דולר). בד"כ יצרן ה-SSD יציע תוכנה יחד עם ה-SSD שתעביר את ה-Windows ל-SSD וידע לנטר את הדיסקים כך שנתונים שהקריאה שלהם שכיחה יועברו ל-SSD והנתונים שבקושי קוראים אותם ישארו בדיסק המכני. לאינטל יש תוכנה כמו RST שעושה זאת ול-AMD יש הסכם עם חברת Enmotus למכור תוכנה ב-20$ שנקראת FuzeDrive (היא אמנם מצריכה התקנה של Windows על ה-SSD מחדש, אבל היא עושה עבודה הרבה יותר רצינית מה-RST של אינטל), ויש כמובן תוכנות צד ג' בשוק ל-Windows (חלקן חינמיות). למשתמשי Linux – אם אתם משתמשים ב-LVM במחשב שלכם, אז ה-LVM יכול לקבל כונן או ווליום או Partition כ-Cache ואפשר כמובן להשתמש בדברים כמו bcache כדי לקבל את אותה תוצאה.

דברים נוספים שכדאי לדעת:

  • מעתיקים קבצים של כמה ג'יגהבייט כל אחד? אל תצפו לכתיבה מהירה לאורך כל ההעתקה ברוב כונני ה-SSD (למעט ה-900P/905P וה-970 PRO). הסיבה? הזכרון החוצץ (Buffer) מתמלא ומתחיל לכתוב את הנתונים לשבבי ה-NAND וברגע שאין זכרון פנוי, הכתיבה נהיית איטית.
  • עובדים בפוטושופ ופתחתם קובץ עם מאות שכבות? אם זה לא SSD מהמהירים – יכול להיות שזה יהיה איטי במעט. זיכרו: דיסקים SSD זולים הם טובים בהעברת נתונים רציפה כאשר מדובר בהעברת קובץ גדול, אולם כשיש לו עוד 200 קבצים נוספים, הוא יהיה איטי.
  • מחירים: מחירי ה-SSD יורדים אבל לאט. אם מחירי הדגמים שציינתי לעיל יקרים, אתם מוזמנים להתסכל דור אחד אחורה או לקרוא כל מיני אתרים שמציינים מיקומים שונים לכונני SSD ומחירים.
  • אחריות – כיום כמעט כל יצרני ה-SSD נותנים מינימום 3 שנות אחריות, אינטל וסמסונג בד"כ נותנים 5 שנות אחריות ולדגמים מסויימים אפילו 10 שנות אחריות. חשוב לכל ה-Corporate.
  • משתמשי לינוקס ובחירת File System – אין ממש הבדל. כיום גם XFS, EXT4, BTRFS תומכים בפרמטר mount או עם פקודת fstrim. מערכת ZFS לעומת זאת תתמוך בגירסה 0.8 בפונקציונאליות הזו (אם כי קיימים טלאים שאפשר להשתמש בהם).
  • קונים גירסה M.2 והולכים לגרום למחשב "להזיע"? חפשו ברשת קירור טרמי ל-M.2. אחד החסרונות של M.2 (בחלק מהמקרים) הוא כשה"מקל" חם מאוד – הביצועים יורדים על מנת לשמור עליו. הפתרון הזה לדוגמא, הוא פתרון טוב.

ומה העתיד? אינטל דוחפת חזק את פתרון ה-XPoint שלה שהוא כרגע המהיר ביותר בשוק (אבל גם היקר ביותר – ה-905P שלהם בגירסת ה-600 ג'יגהבייט עולה 1220$ והוא יותר מהיר מגירסת ה-Enterprise שלהם!) אבל סמסונג לא נמצאת מרחוק עם ה-Z-SSD שלהם שמציע ביצועי קריאה יותר מהירים מכל דבר אחר בשוק (ביצועי כתיבה, לא משהו בדור הנוכחי).
סביר להניח שבשנה הבאה נראה SSD מבוסס QLC (שזה 4 נתונים נכתבים/נקראים בכל תא). החסרון הענק שלו הוא מהירות הכתיבה שתהיה די "זוחלת" (בהשוואה ל-SSD אחרים), אבל מצד שני נוכל לרכוש SSD כאלו בגדלים של 4 ו-8 טרהבייט במחיר שלא מגיע לאלפי דולרים ובכך נוכל להחליף כוננים מכניים ב-SSD.

לסיכום: כונני SSD נותנים ביצועים הרבה יותר מהירים מכונני דיסקים מכניים, אבל הם גם "חיות" שונות וכדאי לשים לב להבדלים. השוק מוצף ב-SSD שונים ולכן כדאי לבצע מחקר קטן לפני ששולפים את כרטיסי האשראי. כדאי לשים לב להוראות יצרן לדברים כמו לא לפרמט SSD ל-100% ואם מדובר ב"מקל" M.2 לגבי עניין החום.

על בעיה X ופתרון Y

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

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

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

  • מה הפונקציונאליות שהוא מחפש
  • מה הפונקציונאליות שמאוד חשובה לו, ומה הפונקציונאליות שבשבילו זה יהיה "נחמד" אם קיים אך אותה פונקציונאליות אינה קריטית.
  • האם הוא מחפש פתרון Scale Up או Scale Out
  • האם הוא מחפש פתרון שישולב כ-Hyper Converge או שהוא מחפש פתרון של ברזלים נפרדים
  • ויש עוד לא מעט שאלות…

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

  • אינטגריטי – אם מישהו יבוא אליי ויבקש לדוגמא פתרון סטורג' Scale Out והדבר הכי חשוב לו זה iSCSI לדוגמא, אז אני אומר לו בפשטות שכרגע אין פתרון Scale Out בקוד פתוח (גם כמוצר מסחרי) שיש לו פתרון iSCSI ל-Scale Out בצורה טובה והוא יצטרך פתרון קנייני.
  • על מה הפתרון אמור לענות? לקוח רוצה X על מנת לפתור את בעיית Y. נעזוב לרגע את X, ונשמע מהלקוח מהו אותו Y. אין ספק, דרישותיו של הלקוח הן חשובות, אולם ברגע שמספרים לי מהו אותו Y, אז ניתן להעלות מספר פתרונות שיכולים לענות על Y וגם להתחשב בצרכי הלקוח.
    לדוגמא: ללקוח יש 20 מכונות VM שמשמשות לפיתוח והלקוח רוצה פתרון סטורג' עבורם Scale Up. במקרה כזה אני יכול להציע לדוגמא פתרונות מבוססים ZFS, בין אם כקוד פתוח נטו או מוצרים מסחריים ובהצעה שאגיש לו יוסבר מדוע הפתרון הזה טוב ויוצעו ללקוח מספר פתרונות מבוססים ZFS, כך שבסופו של דבר ה-Y הם אותם 20 מכונות VM וה-X יהיה פתרון מבוסס ZFS.

וכאן בעצם מגיעה השאלה המרכזית שלי…

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

מוציאים מכרז לרכישת ברזלים? זוג עיניים נוספות יכול לסייע

עיריות, משרדי ממשלה, מועצות ורשויות מקומיות ואזוריות וכמובן חברות – כולן מוציאות אחת לזמן מה מכרזים שונים לשרותים שונים. אני אתייחס בפוסט זה למכרזים שמשווקים גדולים ניגשים אליהם – למכירת שרתים וציוד ל-Data center למוציא המכרז. אישית אני אוהב לעקוב אחרי מכרזים כאלו באתרים שונים (כמו אתר Jobiz וכו'). אני לא מחפש לגשת למכרזים כאלו (כי אני לא בעניין שיווק ברזלים), אבל זה בהחלט עוזר לראות מה החברות מחפשות ורוצות לרכוש ולהשתמש.

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

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

נעבור חלק חלק, נתחיל בסטורג':

  • במכרז מבקשים הצעת מחיר ל-Unity של Dell/EMC, עם שילוב של דיסקים מכניים (16), דיסקים SSD בגודל 400 ג'יגה (10), ו-3 דיסקים (Fast Cache) ושאר הציודים שצריך. זה טוב ויפה אולם יש כאן לעניות דעתי מספר נקודות שכדאי לחשוב עליהן:
    • פתרון כזה אינו עונה לצרכי מכונות VM שמייצרים כתיבה מרובה. נכון, הסטורג' "יחביא" את האיטיות בעזרת ה-Fast Cache (פלוס עוד כמה טריקים) אבל בשלב מסוים האיטיות תחל לצוץ.
    • הדיסקים SSD  הם איטיים (ולא חשוב אם בפנים הם MLC או eMLC) ובמקרים של Enterprise, דווקא ה-SATA SSD מבצעים עבודה הרבה יותר טובה (תסתכלו בהצעות של כל היצרני SSD, תראו שבד"כ מציעים SATA או U.2/PCIe/NVME, בקושי SAS) ולכן חשוב לזכור – זה לא משנה אם הדיסקים נמצאים בתוך סטורג' קנייני או בשרת: SSD קטנים יותר איטיים מהגדולים ולפעמים בפערים מאוד משמעותיים. לדוגמא: אם רוצים לרכוש 4 דיסקים של 400 ג'יגה, עדיף 2 דיסקים של 800 ג'יגה.
    • במקום להיצמד למותג קנייני, מוציא המכרז יכול לבקש פתרון חומרה ותוכנה שהם Software Defined Storage עם כל הפונקציות שהוא מצפה לקבל בסטורג' קנייני וגם להכתיב כמות מינימום ומקסימום IOPS שפתרון ה-SDS יצטרך לעמוד בו. חשוב לזכור: אם לשם הדוגמא אתה מוציא מכרז ואני זה שצריך לעמוד בו, ואני הסכמתי למפרט שלך, אני צריך לעמוד בביצועים במפרט, ואם זה עולה לי יותר, אותך זה לא מעניין, אני צריך לתת את מה שמובטח וזהו, ולכן במכרזים כאלו כדאי לנצל את הסיטואציה ולקחת SDS, מה עוד שתמיד ניתן להשתמש ב-SDS בעתיד לצרכי פתרונות אחרים בתחום הסטורג', כך שההשקעה משתלמת יותר מאשר סטורג' קנייני (אם לדוגמא עברתם לסטורג' אחר, אתה לא יכול להעביר את הדיסקים הישנים יותר).

מכאן נמשיך לשרתים:

מוציא המכרז מבקש 2 שרתי Dell R730:

  • ראשית, כדאי לבקש את דגם ה-XD, ההבדל במחיר הוא קטן (100-200 דולר, תלוי אצל מי קונים), ודגם ה-XD ניתן בהמשך להרחבות שונות שלא כל כך קיימים ב-R730 הרגיל.
  • לא מומלץ לקחת 32 ג'יגהבייט זכרון במקלות של 2 ג'יגהבייט (כלומר 16 מקלות) הואיל וכל נסיון הרחבת זכרון בעתיד מחייבת החלפת כל מקלות הזכרון ובמקרים רבים הזכרונות הללו ישארו "מיותמים", לכן מומלץ לרכוש את הזכרון עם מקלות של 4 או 8 ג'יגהבייט, בהתאם לגודל הסופי שרוצים.
  • 2 דיסקים של 300 ג'יגהבייט – חבל אפילו לרכוש אותם. אם (כפי שבמקרה זה) רוצים להריץ VMWare, עדיף לרכוש 2 מיקרו SD עם ה-Image מוטמע בהם ולהכניסם לתוך השרת, הואיל ו-ESXI כותב אליהם מעט מאוד והמודול מיקרו SD כולל שרידות (RAID-1). במקום ה-300 ג'יגה, אפשר לרכוש 2 דיסקים SSD בגודל של 500 ג'יגהבייט (מספיק Read Intense רגיל, לא צריך Mixed Intense) ואז להשתמש בהם כ-Read Cache בתוך vSphere, כך תוכנות רבות שרצות שוב ושוב ישתמשו ב-SSD המקומי כ-Cache לקריאה והדברים ירוצו החל מהפעם השניה יותר מהר מבלי להשקיע תקציב רציני.
  • כרטיסי רשתות: במקום לרכוש כרטיס Qlogic 57800 שנותן 2 כניסות 10 ג'יגהביט ו-2 כניסות 1 ג'יגהביט, כדאי לרכוש כרטיס אחד נוסף Intel X710 Quad Port – יוצא יותר זול עם אותה כמות פורטים (4 של 10, 4 של 1).

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

לסיכום: חברה גדולה או קטנה, רשות מקומית או אזורית או עיריה או משרד ממשלתי – כולם צריכים בסופו של דבר לעמוד במסגרת תקציב ואף חברה לא רוצה להרגיש פראיירית ולשלם יותר ממה שמקובל בשוק ובגלל זה כולם מוציאים מכרזים, על מנת לקבל את ההצעה הטובה ביותר. יחד עם זאת, אפשר לנצל את כל עניין המכרז כדי לקבל יותר מבלי לפרוץ מסגרות תקציב פנימיות. אחרי הכל – אתם לא קונים ברזלים ומחפשים אחר כך מי יתמוך בכם, אתם רוצים חבילה שכוללת הכל עם 24/7 ועם 4 שעות SLA, ואתם מקבלים זאת גם אם מדובר בטכנולוגיות חדשות שנותנות לכם יותר מסתם עוד הצעה שהיא Copy/Paste ממקום אחר.

הסטטוס של ZFS החופשי

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

אנחנו בשנת 2018 ורציתי לתת סטטוס עדכונים לגבי ZFS על לינוקס, ומה קורה עם ZFS כשזה מגיע לחומרה חדשה כמו NVME SSD ועוד.

בחודש יולי שנה שעברה שוחררה גירסת 0.7.0 עם ערימות של תיקונים ופונקציונאליות חדשה שתוכלו לקרוא עליה כאן. חלק מהפונקציות ישמעו טריוויאליות לחלוטין אך צריך לזכור שכש-SUN שחררה את ZFS לפני 13 שנה, לקוד לא היה שום קשר ללינוקס, הכל היה בנוי ל-Solaris בלבד ובכל הקשור לתמיכה בחומרה, היתה תמיכה במה שסולאריס תמך, או בקיצור – למעט הפצות סולאריס פתוחות, הקוד לא רץ בצורה אופטימלית עם תמיכה טובה לאף מערכת לינוקס או BSD וכך כל צוות של מערכת הפעלה היה צריך לממש פונקציונאליות של ZFS עם תמיכת חומרה של אותה מערכת הפעלה. בלינוקס זה לקח זמן וסוף סוף בגירסה 0.7.0 יש תמיכת "ברזלים" טובה. כך לדוגמא, אם יש לך מערך של 6 דיסקים, הגדרת 5 דיסקים ל-RAIDZ כלשהו והגדרת דיסק כ-hot-spare והתקלקל דיסק, המערכת אוטומטית משתמשת בדיסק הנוסף שהוגדר hot-spare מבלי שאף אחד ירגיש במשהו.

פונקציונאליות נוספות מעניינות:

  • הקץ לשרשור פקודות בשליחת/קבלת snapshots! שימוש בפרמטר c- וה-snapshot יהיה דחוס בשליחה ובקבלה.
  • תמיכה מלאה בפונקציות SSE2 ואחרים של המעבדים, כך ששימוש בדחיסה יעשה עם הפונקציות הללו במקום הפונקציות הרגילות כך שהפעילות תהיה הרבה יותר מהירה.
  • Compressed ARC – זה אחת הפונקציות שממש אהבתי! אם לדוגמא ניקח מכונה ממוצעת שנריץ עליה ZFS, אז בברירת המחדל ZFS ישתמש לשם Cache (כ-ARC) במחצית הזכרון (זה כמובן ניתן לשנות), כך שאם במכונה יש לדוגמא 32 ג'יגהבייט זכרון, ה-ARC ישתמש ב-16 ג'יגהבייט. עם Compressed ARC, ה-ZFS כביכול "מכפיל" את ה-ARC להיות 32 ג'יגהבייט בכך שהוא דוחס את ה-ARC ופורס דינמית תוך כדי שהוא משתמש בליבות המכונה והמהירות היא מדהימה – הדחיסה/פריסה עובדים במהירות של 1-2 ג'יגהבייט לשניה פר ליבה (תלוי כמה ליבות יש). פתאום הביצועים יותר טובים 🙂
  • המשכיות send/recieve. שלחת snapshot ועצרת באמצע או שהיתה לך תקלת תקשורת. מעתה אפשר להמשיך את הסשן במקום להתחיל מחדש. מעולה למצב שהתקשורת בין DC ל-DC היא לא משהו עקב … חברת תקשורת מסויימת.
  • הקפאת "קרצוף" (scrub). סיטואציה שאישית אני סבלתי ממנה: אני מכין ללקוח הדגמת PoC אצלי בבית, רק שבדיוק ה-scrub נזכר "שבת היום" – והוא מתחיל לבצע "קרצוף" והביצועים נוחתים ב-80%. מעתה ניתן להקפיא את ה"קרצוף" ובסיום העבודה לחדש אותו.
  • קריפטוגרפיה יותר רצינית. עכשיו יש תמיכה ב-SHA-512, Skein, Edon-R כ-Checksum על כל בלוק וכו' (קחו בחשבון שדבר כזה מומלץ להפעלה אם יש לכם מעבדי Xeon V3 ומעלה)
  • "אני המחליט" – כחלק מתהליך ה"ריפוי עצמי" של ZFS, מעתה ZFS יכול להחליט אוטומטית מתי דיסק גרוע, להשבית אותו ולבצע rebuild לדיסק אחר. (בשלב הבא הבא הוא יצווה עליך להוציא שליח שיביא דיסק חדש 🙂 )
  • הסוף לשימוש ב-sudoers עבור דברים טריוויאליים – פקודות zpool, zfs וכו' שאינן משנות דברים ניתן מעתה לעשות ע"י משתמש רגיל ובכך להדק יותר את האבטחה.
  • ויש עוד פונקציות חדשות, כנסו ללינק לעיל.

מאז גירסה 0.7.0 תוקנה המון וכיום יש 0.7.5. גירסה 0.7.6 תצא בקרוב עם שיפור מהירות ה-ARC ועוד מספר תיקונים (ניתן לראות כאן) ומבחינת יציבות – המערכת הרבה יותר יציבה ממה שהיתה בגירסאות 0.6, כך שאני ממליץ לאלו שיש להם מערכת ZFS – לשדרג (או לחכות ל-0.7.6 ולקבל מהירות יותר גבוהה אחרי תיקוני ה-ARC miss).

עתה אני רוצה להתייחס לציוד המודרני שקיים כיום במחשבים ובלוחות אם. כיום בעזרת השקעה בינונית אפשר לקנות SSD NVME בחיבור M.2 כמו הסמסונג 960 EVO או PRO ולקבל ביצועי קריאה של 2.5 ג'יגהבייט וכתיבה של 1.5 ג'יגהבייט לשניה. האם כדאי עם מערכות כאלו לפרמט ולהתקין אותן ישירות עם ZFS עוד מה-Boot? (כאן לדוגמא הוראות מאוד מפורטות לאובונטו 17.10).

התשובה שלי לכך היא פשוטה: זה תלוי במשתמש. ZFS היא לא עוד מערכת של File System, היא הרבה הרבה יותר מזה. נכון, משתמש רגיל לא ישתמש ב-90% מהאפשרויות ש-ZFS נותן (ומה לעשות, בשביל להכיר טוב ZFS צריך להשקיע זמן), אבל דברים כמו snapshots לפני שדרוג, ביצוע snapshot אוטומטי כל רבע שעה או דברים כאלו (זה לא ממש עולה לך, snapshot ריק תופס 0 מקום), וכל העניין של "לחיות את ZFS" מצריך שינוי מחשבה מסוים ואם בעל המכונה/שרת מוכן לכך, אז בהחלט – כדאי ללכת על ZFS.

יחד עם זאת, אם המשתמש רוצה רק ביצועים ולא מחפש ללמוד דברים חדשים, אז אין שום רע בלהשתמש במערכת כמו XFS, EXT4 או BTRFS. במערכות הללו יש כבר תמיכה לציודי אחסון חדישים ולא צריך לשחק יותר מדי עם המערכת כדי לקבל אותם.

לסיכום: ZFS ממזמן נמצא במצב פרודקשן כשזה מגיע למערכות של אורקל, FreeBSD (לגבי FreeBSD ו-ZFS.. מומלץ לא לנסות להריץ על מעבדי Xeon-SP החדשים.. אלא אם בא לכם לתלוש שערות כשהמכונה בעומס. רק אומר..). עכשיו גם גירסת הלינוקס של ZFS יכולה לתת פתרונות מעולים הן כ-iSCSI, CIFS, NFS. יחד עם זאת, חשוב לזכור: בשביל ש-ZFS יתן ביצועים מעולים, הוא גם צריך חומרה מעולה, עם PCIe 3.0, עם UEFI טוב, עם SSD של Enterprise עם גיבוי קבל (לפחות אחד כזה) או Optane של אינטל, ועם המון RAM (שמשמש ב-ZFS כ-Cache ראשי). עוד משהו חשוב: להקים ZFS לוקח חצי-שעה עד שעה הקמה ראשונית. להגדיר ZFS עבור עבודות שונות כולל בחינות ביצועים – יכול לקחת ימים. אין כאן הוקוס פוקוס וכדאי לקחת זאת בחשבון.

דעה: על רכישת CoreOS ע"י רד-האט

הערה
הדברים הנכתבים כאן הינם דעתי האישית, אינני כותב מטעם Red Hat

בימים האחרונים פורסמו באתרי טכנולוגיה שונים החדשות כי חברת רד-האט רכשה את חברת CoreOS. חברת CoreOS היתה מתחרה של רד-האט בכל הקשור למערכת לניהול Kubernetes (בשם Tectonic), ניהול Registry לקונטיינרים (Quay), וכמו כן את Container Linux (מערכת הפעלה מצומצמת להפעלת קונטיינרים) וכמובן את etcd שהוצאה כקוד פתוח ורבים (כולל רד-האט) משתמשים בו.

רד-האט (Red Hat) כידוע, היא החברה הכי גדולה בהפצת לינוקס ובמערכות מבוססות קוד פתוח ומטבע הדברים, כשהיא רוכשת חברות קטנות אחרות, יהיו כאלו שידאגו מה יהיה עם המוצרים שהם רכשו, מה עם תחרות וכו' וכו'. בפוסט זה אנסה להסביר מה הולך לקרות לדעתי בהתבסס על רכישות קודמות של רד-האט (כמו Qumranet, InkTank, Gluster ואחרים).

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

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

  • אחד הדברים הראשונים שלדעתי הולכים להשתנות הוא דווקא בצד של רד-האט והוא מוצר ה-Atomic Host. אינני חושב ש-Atomic Host ימחק, אבל יכול להיות שיהיו שינויים שיגיעו מ-Container Linux של CoreOS.
  • בכל מה שקשור ל-Registry, אני בספק אם יהיו שינויים רציניים אם בכלל במוצרים של רד-האט. ה-Registry הנוכחי שקיים ב-OpenShift לא ממש שונה למיטב זכרוני ממה שקיים ב-Quay, אבל יכול להיות שיהיו שינויים מעטים.
  • לגבי Tectonic – כאן זו שאלת המיליון דולר. רד-האט מייעדת את OpenShift ללקוחות גדולים, אלו שמוכנים לשלם כמה עשרות אלפי דולרים על מערכת OpenShift Enterprise (ועוד 2000-3000$ פר Node, ויש עוד כמה תשלומים על כל מיני חלקים) ורד-האט כבר הפיקה לקחים מהעבר לא לעצבן את הלקוחות הגדולים בשבירת תאימות אחורה. אני מאמין שבשנה שנתיים הקרובות יהיו 2 מוצרים: יהיה Tectonic שכולל שינויים (והמרה/תמיכה בפורמט קודם) להיות תואם לפורמט של OpenShift והוא ייועד לתחום ה-SMB (כלומר Small/Medium Business) ותהיה מערכת ה-OpenShift Enterprise שתוכל להמיר מערכת Tectonic ל-OpenShift – לאלו שגודלים ורוצים לעבור ל-OpenShift Enterprise.
  • לגבי etcd – השינויים שיהיו הם מול ה-Upstream, כלומר מה ש-CoreOS קובעים (פחות או יותר) יכנס ל-OpenShift.
  • לגבי RKT – יכול להיות שיקחו חלקים ממנו לצרכי שיפור Docker Container Engine (אני בספק) אבל אישית אני לא רואה את זה ממשיך כמוצר מסחרי.
  • לגבי השאר – כל פרויקט יעבור בחינה אם הוא מתאים לשילוב בדברים קיימים או שהוא ישאר ב-github.

רבים ישאלו: מדוע בעצם רד-האט רכשה את CoreOS? הרי יש להם מוצר כמו OpenShift הן בגירסת Online (שכל אחד יכול להיות מנוי ולהקים קונטיינרים מבלי להרים מקומית מאומה) והן גירסת Enterprise, אז מה להם ול-CoreOS? התשובה היא פשוטה: גודל שוק ולקוחות. השוק יותר ויותר מתרכז סביב פתרונות גדולים, בין אם מדובר בפתרונות ענן של ספקי הענן הציבורי, פתרון Kubernetes ישיר (גירסת הקוד הפתוח) או פתרון ניהול קונטיינרים מבוסס Kubernetes עם "פנים" ל-Enterprise. תמיד יהיו פתרונות כמו DC/OS, Rancher ואחרים שיכולים להתאים לכל מיני סקטורים, אבל ה-Enterprise דורש דברים אחרים ש-Kubernetes עצמו לא נותן לא מבחינת אבטחה, לא מבחינת רגולציה, עמידה בסטנדרטים משפטיים ועוד, והדבר הכי קרוב שיש עבור Enterprise כולל הדרישות הגבוהות שלהם (ולאלו שמוכנים לשלם) זה OpenShift.

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