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

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

הבעיה בד"כ היא במחשבה או בתכנון מעבר. אם לדוגמא יש לכם פתרון וירטואליזציה של VMWare ותרצו ליישם את VSAN, ההשקעה תהיה גבוהה. על כל שרת ממוצע תצטרכו לשלם 5000$ וזה עוד לפני הדיסקים והתצורה היחודית שיש צורך ב-VSAN (על כל 2 דיסקים מכניים או SSD בינוניים, דיסק SSD מהיר או Mixed Intense או ביחד). במקרים אחרים יש פתרונות HyperConverged כמו Nutanix, Simplivity וכו' שבסופו של דבר מחייבות אותך לרכוש כמעט הכל מחדש (אם כי כמובן אפשר במקרים מסויימים להשמיש שרתים שונים, תלוי מה ה"גיל" שלהם).

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

גם במקרים של פתרון קוד סגור או קוד פתוח, נצטרך דבר ראשון להעיף מבט על השרתים שיש לנו. רוב השרתים שמריצים פתרון וירטואליזציה כלשהי, אנחנו נראה שרוב התושבות בשרתים – פנויים (וכמובן שיצרני השרתים מנצלים זאת על מנת לתת פתרון Backplane חלקי, כך שגם אם תרצה למלא 24 דיסקים 2.5" בשרת, לא תוכל אלא אם תרכוש עוד 2 backplanes עם החיבורים. בד"כ ה-backplane שאתה מקבל בשרת יכול לחבר מקסימום 8 דיסקים), כלומר שמבחינת השקעה בברזלים אם נרצה פתרון סטורג' מבוזר, נצטרך לרכוש פתרונות backplane לשרתים, וכמובן דיסקים מכניים, SSD (מסוגים שונים – read intense או mixed Intese – תלוי בתקציב ובמה שאתם רוצים לעשות). נקודה נוספת שנצטרך לקחת בחשבון זו הרחבת זכרון. אין צורך "להשתולל", בד"כ לפתרון SDS נצטרך 16 או 32 ג'יגהבייט זכרון. הנקודה האחרונה שיכולה להיות קצת יקרה היא רשת – אנחנו נצטרך בכל מכונה חיבור של 10 ג'יגהביט לתקשורת פנימית בין ה-VM שמריצים את פתרון ה-SDS.

את פתרון ה-SDS נריץ כ-VM בתוך כל מכונה, אולם אנחנו צריכים קודם כל להחליט איפה בעצם לאכסן את הנתונים, באלו דיסקים. דיסקים בגודל 2.5" לדוגמא יהיו קצת בעייתיים כי כמות ה-DATA שאפשר לאכסן בהם היא לא גדולה אך המחיר הוא די גבוה. אם לדוגמא נדמיין שאנחנו מכניסים 20 דיסקים של 1 טרה בגודל 2.5", ועוד 2 דיסקים SSD שישמשו כ-Cache, אז נקבל "ברוטו" 20 ג'יגהבייט. אולם אם נחליף את הפאנל הקדמי (כולל הלוח המוצמד) לגירסת LFF (כלומר Large Form Factor), אז נוכל להכניס 12 דיסקים של 4 טרהבייט, אז נקבל "ברוטו" 48 טרהבייט ומחירי הדיסקים הללו יהיו יותר זולים מ-20 דיסקים של 2.5" (בד"כ נוכל להכניס 2 דיסקים SSD ל-Cache מאחורי השרת). מבחינת הוירטואליזיציה, אין לנו צורך להתקין אותה (בגירסת vSphere) על הדיסקים המקומיים, 2 כרטיסוני מיקרו SD יוכלו לעשות את העבודה. (בין כה כמות הכתיבה אליהן מאוד קטנה ואם כרטיס נופל, כרטיס שני "לוקח פיקוד") כך שאנחנו יכולים בסופו של דבר להצמיד את כרטיס ה-RAID ל-VM עצמו ולקבל מקסימום ביצועים.

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

כעת, כל מה שנותן לעשות זה לחבר את הדברים. בכל מכונה נקים VM עם הפצת לינוקס כלשהי (GlusterFS קיים לכל הפצת לינוקס שתרצו), להגדיר אם אנחנו מעוניינים בשכפול והפצת קבצים (אפשר לראות את האפשרויות כאן, פוסט מורחב על הנושא יהיה בקרוב) ומאותו פתרון SDS נוכל להגדיר שיתופים איך שנרצה: CIFS, NFS, iSCSI ועוד. כך נוכל להנות גם מפתרון SDS יציב, שיכול לעמוד במצב ששרת או 2 נופלים (תלוי איך הוגדר GlusterFS, בד"כ הגדרות ברירת מחדל יתנו HA כך שאם מכונה נופלת, השניה לוקחת פיקוד), גם נוכל להרחיב את הפתרון בהמשך (הוספת דיסקים, JBOD, מכונות נוספות) והכי חשוב – נוכל להנות מפתרון שנותן גם ביצועים מהירים וגם התחזוקה עצמה תהיה די מינימלית.

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

נקודות למחשבה בעת קניית סטורג' – חלק שני

בחלק הראשון של הפוסט דיברתי בכלליות על סוגי פתרונות שקיימים, גדילה (Scale Up או Scale Out) והתייחסות לצוות שיווק (Pre Sales).

בעסק קטן עם נניח 1-2 שרתים ועוד כמה Share ל-Windows, המחשבות וההתלבטויות לגבי קניית פתרון אחסון הם אינן גדולות. קונים NAS טוב, דיסקים, מגדירים את הכל ומתחילים לעבוד. בד"כ הפרמטרים הכי חשובים שם זה מהירות מספקת לצרכי עבודה ומחיר טוב. בד"כ פתרון NAS טוב נותן את הדברים שהעסק שצריך החל מ-CIFS, iSCSI, שרידות מינימלית וזהו.

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

נתחיל ברמה הכללית בכמה נקודות (ותודה לעומר שציין מס' נקודות בפייסבוק):

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

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

  • DeDuplication (או DeDup בקיצור): כשאנחנו משתמשים בוירטואליזציה, אנחנו מקימים מכונות VM רבים שיש בהם את אותה מערכת הפעלה ואותם קבצים. פונקציונאליות ה-DeDup מזהה חלקים זהים והיא "רושמת לעצמה" היכן נמצאים החלקים הזהים (ברמת Block או קבצים) אך היא שומרת עותק יחיד (במקרים מסויימים 2 עותקים) של אותם אזורים זהים, ובכך המערכת חוסכת מקום בסטורג'. ככל שיש יותר חלקים זהים, המערכת חוסכת יותר מקום.
  • Compression (דחיסה): פונקציואנליות נוספת "שכנה" של DeDup היא הדחיסה. יצרניות סטורג' שונות מאפשרות להקים Policy (שוב, ברמת בלוק או קבצים) המאפשרת דחיסה של נתונים שונים ופריסתם ברגע שצריך את הנתונים (הדחיסה והפריסה הם "שקופים").
  • Thin Provisioning: כשיש צורך בהקמת LUN (או משאב אחר הקשור בהקצאת שטח אחסון לטובת פרוייקט כלשהו) יש באפשרותנו להקצות חלק משטח האחסון ב-2 שיטות עיקריות: Thick Provisioning ו-Thin Provisioning. ב-Thick כל השטח המתבקש מוקצה מיידית לטובת אותו LUN לדוגמא ואילו ב-Thin יש רק "הכרזה" במערכת כי LUN X יקבל כך וכך שטח אך במציאות הוא מקבל מעט מקום ובכל פעם שיש צורך בעוד מקום, אותו LUN יקבל את מבוקשו עד גובה ההכרזה הראשונית. היתרון ב-Thin Provisioning הוא שאין צורך מיד "לכסח" חלק גדול ממקום האחסון אך החסרון הוא שכל בקשה לוקחת מעט יותר זמן (דבר שיכול להיות קריטי למערכות כבדות כמו שרת SQL וכו'). היתרון ב-Thick הוא בכך שיש את השטח לאפליקציה זמין כל הזמן והגישה היא יותר מהירה.
  • Snapshots: כל חברה נורמלית דואגת לגיבוי יומי של כל הנתונים בשרתים ובסטורג', אך הבעיה עם גיבוי ושחזור – זה ששחזור לוקח זמן. לעומת זאת, Snapshot מייצר "צילום" עכשוי של אחסון ספציפי (LUN או משאבים אחרים לדוגמא) וכך אם לדוגמא אנחנו משדרגים מערכת שמשתמשת ישירות בסטורג' ואיננו מרוצים מהתוצאה, אנחנו יכולים "לקפוץ אחורה" אל ה-Snapshot במקום לשחזר מהגיבוי, ופעולת החזרה אל ה-Snapshot היא מאוד מהירה.
  • Disaster Recovery: נשרף הראש, קרתה תקלה באחד הבקרים – מהי הדרך לשחזר, האם קיימת כזו, מה הזמן שלוקח לשחזר?
  • Tiering – עם Tiering פתרון האחסון עובד ב"שכבות" והוא מעביר קבצים לפי השימוש שלהם, כלומר אם יש לנו קבצים שיש בהם צורך מדי יום, הוא יאחסן אותם בדיסקים הכי מהירים שיש במערכת ואילו קובץ שקוראים אותו אולי פעם בכמה חודשים – עובר להישמר באחסון הכי איטי שיש (דיסקים SATA), ובכך המערכת מגיבה הרבה יותר מהר כי הקבצים שיש בהם צורך תכוף נמצאים בדיסקים הכי מהירים שיש.
  • IOPS – המושג שמשתמשים בו הכי הרבה בתחום הזה. כמה IOPS הסטורג' נותן בכתיבה ובקריאה? אל תתפתו להאמין לנתוני שיווק! דרשו מסמך התחייבות לכמה IOPS הפתרון נותן ומתי.

נקודות חשובות נוספות שכדאי לבדוק:

  • כמות תושבות PCIe: לפעמים יש צורך להכניס עוד כרטיסים לסטורג', כמו להוסיף כרטיסי תקשורת וכו'. כמה מקומות יש, אם בכלל?
  • כמות דיסקים וסוג: כל סטורג' יכול להכיל כמות מסויימת של דיסקים ולא מעבר לכך, ולכן חשוב לדעת מהי המגבלה, וכמו כן אלו דיסקים מתקבלים: SAS, NL-SAS, NVME, FC, SATA…
  • מעבדים מסייעים: בכל סטורג' היום נמצא מעבד Xeon כלשהו, והשאלה החשובה היא האם קיימים מעבדים מסייעים לעבודות שונות, כמו Block Storage Processor שלוקח עליו את העבודה בכל הקשור ל-Block Storage. קיומם של מעבדים כאלו במערכת מסייע מאוד בעבודה מהירה.
  • עדכונים ועדכוני אבטחה: בכל סטורג' חדש תקבלו עדכונים בשנתיים שלוש הראשונות כולל עדכוני אבטחה. השאלה החשובה היא מה קורה לאחר התקופה הזו. האם היצרן מתחייב לפרסם עדכוני אבטחה גם לאחר שלוש שנים? אם כן, לכמה זמן?
  • המשכיות: קניתם פתרון סטורג' מהיצרן ולאחר 3-4 שנים החלטתם לשדרג לדגם אחר – האם אפשר להשתמש בציודים הקיימים (מדפים ודיסקים) בציוד העתידי או שצריך הכל מחדש?
  • הדרכה/שרות/SLA: האם יש הדרכה רשמית שמדריך מגיע לחברה ומלמד את צוות ה-IT או שזורקים עליכם כמה קבצי PDF ותסתדרו? וכשזה מגיע לשרות – מה ה-SLA? זיכרו: במקרים רבים, כש-SLA לא מצוין, מדובר על יום העסקים הבא (NBD), וזה קורה במיוחד כשמוכרים לעסקים קטנים, קחו את זה בחשבון.

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

על Spectre/Meltdown ועל יצרניות סטורג'

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

כולנו שמענו על הצרות עם Meltdown ו-Spectre. בחברות מסויימות מיהרו להטמיע עדכוני BIOS/UEFI רק כדי לראות מערכות שבאופן רנדומלי מבצעות Cold Reboot ללא השארת עקבות והצהרות מצד היצרנים לא להתקין את העדכונים האחרונים ואם הם הותקנו – יש לבצע Rollback.

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

תסלחו לי, אבל מדובר לדעתי האישית בחתיכת בולש*ט!

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

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

כיום, מה שבד"כ רואים בפריצות למערכות, זה שמנסים לפרוץ אל השרתים ומכיוון שלשרתים אין גישה לכל מה שנמצא על ה-Storage, אפשר לגשת דרך השרת רק לחלק מהמידע. עכשיו תנסו לחשוב על פורצים מתוחכמים וממומנים. תחשבו על חברות מתחרות שיש ברשותן מאות מילונים/מיליארדי דולרים, תחשבו על מדינות כמו סין ורוסיה שמחזיקות צבא של פורצים ושהן מעוניינות במידע שלך. גם באותם גופים קוראים חדשות והם קוראים שיצרניות ה-Storage מתחמקות והן לא הולכות לבצע עדכוני Meltdown/Spectre. עכשיו אותם פורצים פשוט צריכים לשנות אסטרטגיה: עכשיו הם צריכים בעצם לפרוץ לתחנת עבודה שמריצה Windows או מק או לינוקס ומשם לפרוץ לממשק ווב או לקונסולה (CLI) של ה-Storage, להעלות משהו כמו busybox ואז להשתמש ב-חורים Spectre/Meltdown כדי לקבל מידע סודי/פנימי/חסוי. (הנה משהו שאולי יכול לעזור לכם: בדקו אם יש לכם ACL שנותן גישה לממשק רק למכונות מסויימות בחברה).

מדוע החברות Storage עושות זאת? אני יכול רק לנחש: אם הם יתקינו את הטלאים נגד Spectre/Meltdown – תהיה ללקוחות הנחתה רצינית מאוד בביצועים. כמה? אני יכול להמר בסביבות ה-5-40% תלוי כמובן כמה ה-Storage חדש או ישן. את הלקוחות לא יעניין שהחור קשור למעבדים של אינטל, הם יפנו אצבע מאשימה ליצרני ה-Storage ויצרניות ה-Storage יצטרכו להחליף לוח עם כמעט כל החומרה (למעט כרטיסים וספקי כח..) והמחיר לדבר כזה הוא אסטרונומי מבחינתם.

לסיכום: האם הטיעון של יצרני ה-Storage יחזיק משהו? אני בספק. לחברה הראשונה שיפרצו ותהיה הוכחה שהפורצים חדרו דרך הממשקים והשתמשו ב-Spectre/Meltdown, תהיה לדעתי גל תביעות נגד היצרנים. תזכרו: כלקוחות, ממש לא מעניין אתכם איזה מעבדים ואיזה ציוד נמצא על לוח האם של ה-Storage, אתם רוצים ביצועים נטו, וגם אם יהיה שם מעבדים של ARM זה לא ממש יעניין אתכם.