פתרון GlusterFS – היכן הוא מתאים לכם?

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

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

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

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

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

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

סיטואציה ראשונה
כאחד שנותן שרותי תמיכה ל-vSphere לגרסאותיו השונות, יש לי מילים חמות לאמר על VSAN. זהו פתרון אמין מאוד עם שרידות גבוהה מאוד ללא צורך בסטורג'. עם VSAN אפשר להגדיר פונקציות שונות כמו פונקציית שרידות מאוד גבוהה כך שמתוך קבוצה של 3 שרתים פיזיים, 2 נכבים, אפשר להגדיר ש-VM קריטי עדיין ישרוד.
הבעיה המרכזית עם VSAN אינה טכנית, אלא בעיה כספית. במחיר של $2500 לרשיון פר מעבד, על קבוצה של 3 שרתים פיזיים, אנחנו מדברים על 15,000$ וזה לא כולל את הרשיון היעודי של vSphere ולא כולל תמיכה של 3 שנים (שזה עוד 15,000$) ועוד לא הגענו בכלל למחירי הדיסקים – במיוחד שעם VSAN חובה ללכת בתצורת קבוצות של 2+1 (כלומר 2 דיסקים מכניים ו-1 SSD אם כי אפשר ללכת בתצורה היותר יקרה של 3 SSD ונוסיף לכך שאתה צריך שרתים מהדור האחרון או לפניו כדי להריץ את כל הדברים. מחיר כזה, לדעתי, אינו מוצדק עבור Dev, stage, testing, POC וכו'. במחיר כזה חברות כבר יחשבו על קניית אחסון יעודי.

במקום זה, אנחנו יכולים לקחת 3 מכונות שדווקא אינן חדשות (כל עוד בקר הדיסקים שלהם תומך ב-6 ג'יגהביט SATA/SAS, אם זה תומך רק ב-SATA 2.0, אז אפשר להכניס כרטיס בקר צד ג') כמו דור 7 של HP, דור 11 של DELL, דור 3 של LENOVO, ולמלא אותן בדיסקים. ניקח דוגמא: 10 דיסקים SATA של WD RED PRO (מחיר של 319$ באמזון פר דיסק, המחיר קצת יותר יקר אצל המפיץ בארץ) או WD GOLD Enterprise בגודל 10 טרה שעולה $361 פר דיסק, או Seagate מסידרת EXOS ל-Enterprise בגודל 10 טרהבייט שגם עולה $360. סה"כ עד כה – בערך $3600 (פר שרת). נוסיף עוד 2 דיסקים SSD – אם מחפשים זול וטוב, אז 2 דיסקים מה-850 PRO של סמסונג יוכלים לעבוד טוב (סה"כ 418$)ואם המכונה היא 2U, אז 2 כרטיסי SSD PCIE מסוג אינטל 900P 280GB AIC בתצורת PCIE (סה"כ 780$) יכולים לתת Cache די רציני למכונה.

ניקח את הבקר (ואת כרטיסי ה-PCIE) ונצמיד את כולם למכונת VM, נצמיד לה 32 ג'יגהבייט זכרון ו-4 ליבות, ועליה נרים GlusterFS (אם אתם מעוניינים בדחיסה, Dedup ושאר תפנוקים – יש צורך להקים עליה ZFS ועל זה GlusterFS), נחבר את המכונות ברשת פרטית וברשת "ציבורית") (כלומר 2 כרטיסי רשת וירטואלית פר VM של GlusterFS) והרי לנו תחליף ל-VSAN שיכול לתת לנו iSCSI, CIFS, NFS, אחסון אובייקטים (Object Storage) ועוד ועוד. בשביל ביצועים ושרידות נצטרך עוד מכונה כזו (עדיף עוד 2) – ויש לנו אחסון עם שרידות חזקה וביצועים גבוהים, ובו זמנית אפשר להריץ על השרתים עוד מכונות VM, ואת כל זה נעשה דרך ה-vSphere, כך שמבחינת עלות – שילמנו רק על החומרה ולא הפכנו את השרתים היעודיים לסטורג' בלבד (כך שלא נצטרך לבזבז שרתים). מבחינת גיבוי – זה VM ואפשר לגבות בכל תוכנה שמשתמשים בחברה (רק שחשוב לזכור לא לגבות את כל ה-VM שמריצים GlusterFS אלא רק אחד, חבל לשמור את הנתונים באותו גיבוי 3 פעמים).

סיטואציה שניה – אפליקציות
קונטיינרים הם ה"שוס" בשנתיים האחרונות ורבים מעבירים חלק מהמערכות לרוץ בקונטיינרים, שזה מעולה, אבל בחלק מהמקרים עדיין מעדיפים להריץ אפליקציות מסויימות בהכפלה וכו', לדוגמא MySQL על 2-3 מכונות VM, שרתי Front ו-Back על מספר מכונות VM ועוד. בכל המקרים הללו, באותם שרתים ניתן להקים GlusterFS כ-VM כמו שתיארתי לעיל (עם פחות דיסקים, רק חשוב שיהיה לפחות SSD אחד שישמש כ-Cache) ואז ה-DATA של האפליקציה (לדוגמא עם MySQL התיקיה var/lib/mysql/) תשב ב-GlusterFS (איך עושים? עוקבים אחרי ההוראות כאן), ה-WWW של שרת ה-Web ישב ב-GlusterFS וכו' וכו'. יהיו מספר שינויים קטנים שצריך לבצע (אולי להשתמש ב-HAProxy), וכך נוכל לקבל שרידות רצינית ומהירות משופרת בהרבה מכיוון שכל שרת אפליקציות יכול לקבל נתונים משרת GlusterFS קרוב וסינכרון הנתונים הוא מיידי – מבלי להשקיע כספים רבים.

סיטואציה שלישית – קונטיינרים/Kubernetes/Openshift
קונטיינרים רצים בד"כ על שרתי VM וקבצי ה-YAML, קבצי קונפיגורציות יושבים על דיסקים מקומיים אך ניתן להגדיר את ה-VM שירוצו על דיסקים וירטואליים שה-vSphere יקבל מ-GlusterFS דרך NFS או iSCSI. בנוסף, ניתן להגדיר Volumes עבור ה-Pods שישתמשו ב-GlusterFS (גם Kubernetes וגם אפליקציות שמריצות את Kubernetes כמנוע כמו Rancher, OpenShift וכו' תומכים ב-GlusterFS החל מ-Kubernetes 1.5). ואנחנו יכולים להשתמש לדוגמא ב-Volume מסויים במספר Pods במקביל, ועם GlusterFS ניתן לוותר על הרצת קבצי YAML/JSON ליצור את ה-Volumes ולגשת ישר ל-Volume Claim, המערכת תיצור את ה-Volume אוטומטית.

סיטואציה רביעית – בענן
מכיוון של-GlusterFS לא אכפת מה נמצא מתחתיו (דיסק מסכן, EBS וכו'), אפשר להקים את GlusterFS גם בענן. כל מה שאנחנו נצטרך הם מספר Instances (מומלץ 3 ומעלה לפרודקשן, 2 לטסטים) ולאותם Instances (שישמשו כ-Nodes) נחבר 2-3 אחסוני EBS ונתקין את GlusterFS ומשם אנחנו יכולים להשתמש ב-GlusterFS כפתרון אחסון לצרכים שלנו.

סיטואציה חמישית – קרוב רחוק
הקמה של GlusterFS זה דבר טוב ועוזר, אולם לפעמים אנחנו צריכים את הנתונים בחוץ, בחוות שרתים אחרת בארץ או בחו"ל. לשם כך, החל מ-GlusterFS 3.8 ומעלה ניתן להריץ Geo Replication לסנכרן בין מספר Volumes (בשיטת Master/Slave), ואפשר גם לספק צרכים "מופרעים" כאלו:

סיטואציה 6 – פתרון אחסון ל-VDI
הקמת VDI למאות עובדים זה פרויקט מורכב עם עלויות אסטרונומיות. (בימים אלו אני מנסה בבית להקים פתרון VDI עם דגש על מחירים נמוכים, ברגע שאצליח, אפרסם פוסט על כך). יש צורך לשלם למיקרוסופט, ל-VMWare וכמובן כל נציג מכירות יאמר לך – All Flash Array, כך שאם תרצה פתרון VDI טוב, תחשוב על כך סכום של 7 ספרות.

האם GlusterFS יכול לחסוך כאן במחיר? התשובה היא בהחלט. נתחיל בגירסה הזולה: זוכרים שהמלצתי על השרתים הישנים להרצת GlusterFS? אנחנו נשתמש בכאלו בגודל 2U עם פאנל קידמי של כונני 2.5 אינטש כך שאפשר יהיה להכניס בין 16 ל-24 דיסקים 2.5". לתוכם נכניס דיסקים 850 PRO של סמסונג בגודל שתבחרו, יש עד 2 טרהבייט (יש לוודא שהבקר דיסקים תומך במצב JBOD ושהוא תומך ב-SATA-3, אם לא – יש צורך בבקר אחר) ונכניס את הדיסקים הנ"ל למגירות ונצטרך לרכוש או אינטל 900P בגודל 480 ג'יגה או 2 כרטיסי אינטל 900P בגודל 280 ג'יגה, הכל לפי התקציב (עם 2 כרטיסים השרידות הרבה יותר גבוהה). על כל שרת כזה נקים ZFS עם Hot Spare ל-2 דיסקים SSD. כל ה-RAID יוגדר דרך ה-ZFS (כלומר RAIDZ לפי תצורה שמחליטים) ועל זה נקים את GlusterFS. את החיבור בין השרתים נחבר ב-10 ג'יגהביט (נחושת, SFF, FC – החלטה שלכם) ואת הזכרון נמלא ב-ECC 3 8500R (שהוא פחות מהיר אבל המהירות אינה ממש חשובה כשהשרת משמש Node ל-Gluster, הזכרון משמש בראש וראשונה כ-Cache ב-ZFS) עד המקסימום. המחיר לא כזה יקר: 2000 שקל (תלוי מהיכן אתם קונים) ל-192 ג'יגהבייט זכרון. נצטרך 3 מכונות. שימו לב: בשרת כזה נרוץ "על הברזל" ללא וירטואליזציה כלל ונוכל לגבות אותו כמו כל תחנת לינוקס (אם כי צריך לגבות רק אחד מהם, לא את שלושתם).

אם יש לכם כמה וכמה שרתים ישנים, אפשר לפצל את כמות הדיסקים לפי כמות השרתים הישנים שלכם (לדוגמא – 6 דיסקים בשרת 1U) ובכך לקבל ביצועים יותר גבוהים הואיל ולא מדובר בסיטואציית Active/Passive אלא עבודת קריאה/כתיבה מקבילית לכל המכונות.

אם מצד שני יש תקציב – אפשר לרכוש 3 שרתים כשהפאנל הקדמי שלהם הוא NVME ונרכוש דיסקים NVME U.2 – גם סמסונג וגם אינטל מוכרים דיסקים מעולים, והעלות משתנה לפי גודל הדיסק והפירמה שקונים ממנה. מבחינת רשת, תצטרכו לחשוב איך לחבר את הכל מכיוון שברוטו, תעבורת הקריאה מגיעה בין 40-60 ג'יגהבייט לשניה. אפשרי לצמד מס' כרטיסי רשת 10 ג'יגהביט או לרכוש כרטיסים ו-Switch של 40 ג'יגהביט (מלאנוקס, אינטל וכו' ישמחו למכור לכם). עם ההצעה הזו, המחיר שתצטרכו לשלם בהשוואה לפתרון אחסון מבוסס AFA (כלומר All Flash Array) יהיה נמוך יותר ב-50-70% מפתרון קופסא, וגם יש לכם שרידות יותר גבוהה.

בכל שאר הפרמטרים (וירטואליזציה, רשיונות וכו') – הכל נשאר אותו דבר.

ומה עם תמיכה? רד האט מוכרת את פתרון ה-GlusterFS כמוצר (Red Hat Gluster Storage) עם תמיכה מסביב לשעון.

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

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

חנות באינטרנט

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

זו שיטה נחמדה, אבל בעייתית מכמה סיבות.

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

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

כלקוח, כשאתה בוחר לפתוח חנות באחד העסקים שמציעים חנויות, במקרים רבים אתה תשלם הרבה יותר מכל הצעת אחסון שתמצא בישראל או בחו"ל. כמה יותר? אם נאמר שחבילת אחסון קטנה בארץ תעלה לך בסביבות ה-30-70 שקלים, אתה תשלם אצל אותו עסק 120 שקלים ומעלה לחודש, וזה על "תחזוקת האתר ושרתים", למרות שבמקרים רבים לא תראה שום שינוי.

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

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

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

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

בהצלחה

מבוך מבלבל בהבטחות

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

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

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

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

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

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

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

בהצלחה