מייסד NetApp, דייב היץ, כתב ספר נהדר בשם "איך לסרס פר". אני באמצע הקריאה ונהנה מכל רגע. בתחילת דרכה של NetApp התמקדה החברה במערכות NAS זולות. התכנית העיסקית בשלבי הייסוד, עוד לפני גיוס ההון העיקרי, היתה לבנות מוצר אמין זול ופשוט על מנת להתחרות בקטגוריה חדשה בה לא היתה ליצרנים הגדולים והותיקים יותר כל נוכחות. כתוצר לוואי של הפשטות המערכת החדשה של NetApp, היא היתה גם מהירה, מאד מהירה. כל המוצרים המתחרים בשוק היו מוצרים ענקיים, שידעו לטפל במאות ואלפי משתמשים וכללו הרבה מאד פיצ'רים ויכולות אבל לא תוכננו לספק תגובה מהירה לפעולה בודדת. היץ מדמה את נושא הביצועים לאוטובוסים מול מכוניות פרארי. אם אתה צריך להסיע 50 תלמידים לבית הספר אוטובוס הוא פתרון מעולה אבל אם אתה צריך להסיע רק ילד אחר לבית הספר והוא מאד ממהר, אוטובוס יקח אותו לשם באותה המהירות כאילו יש עליו 50 תלמידים לעומת פרארי שתיקח ילד אחד מאד מהר לבית הספר אבל 50 מכוניות פרארי עבור 50 תלמידים זה לא רעיון פרקטי מבחינה כלכלית.
דימוי האוטובוס והפרארי משמש את היץ להסביר את ההבדל בין רוחב הפס, Throughput, ובין זמן התגובה, Latency. אני עובד בחברת ווי-אנקור ואנחנו מוכרים מערכות אחסון של 3 יצרנים עם התמקדות מאד ברורה ומובהקת במוצרי NetApp. לחברת NetApp לבדה 3 קווי מוצר עיקריים של מערכות אחסון וסה"כ 5* מוצרי אחסון שונים, FAS, All Flash FAS, E-Series, All Flash E-Series, SolidFire. מדובר במוצרים שפותחו על ידי שלוש חברות שונות, במקומות שונים בעולם, בשלבים שונים באבולוציה של עולם האחסון ובפניה לקהל יעד שונה לחלוטין. לכולן יש "מגבלה" משותפת, עבור כולן אין מספר זהב, אין תשובה חד ערכית לשאלה "כמה IOps המכונה נותנת". אין קסמים בעולם הזה, אופי הפעולה מול מערכת האחסון משפיע על כמות הפעולות שהמערכת תדע לספק בפועל, קריאה וכתיבה אינן פעולות זהות, פעולה קטנה אינה זהה לפעולה גדולה.
כדוגמא לעבודה ש"מגבלה" זו אינה "מגבלה" של מערכות האחסון של יצרן ספציפי אפשר לחשוב פשוט על רשתות תקשורת. קישור יחיד של 10Gb יכול, באופן די ברור, להעביר מקסימום 10Gb. אם משתמשים ב jumbo frames אז כמות הפעולות שנדרשות להעביר 10Gb קטנה יותר ולכן כל הרכיבים "מתאמצים" פחות אבל רוחב הפס לא עולה. כתוצר לוואי, מה שכן יכול לעלות זו נצילות רוחב הפס הידועה בכינוי Goodput, להבדיל מרוחב הפס, Throughput. רוחב הפס מגדיר את כמות המידע המקסימלית שעוברת בקו בכל רגע נתון, הנצילות מגדירה את כמות המידע האפקטיבי העוברת בקו אחרי שהורדנו Error, discard, re-transmit וכו'.
דוגמא נוספת היא בעבודה של מעבד בודד, CPU. המדד הנפוץ לעוצמת המעבד הוא מהירות השעון הנמדד ב GHz וכמות הליבות כלומר מעבד של 12 ליבות 3Ghz נחשב חזק יותר מאשר מעבד בעל 8 ליבות במהירות 2.5GHz. לפעמים משמיטים את העובדה שגם כאן, לא כל הפעולות זהות, לא כל פעולות החישוב זהות במורכבותן ויש משימות שלוקחות יותר זמן מאחרות ולכן המדד של מהירות השעון מגדיר כמה המעבד חזק אבל כנתון יחד זה נתון לא מספק לגלות כמה פעולת חישוב נקבל.
כל המידע הזה רלוונטי כשאנחנו מבצעים אפיון למערכת אחסון, מערכת תקשורת שרתים וכו'. מערכות מבוססות Flash הינן מערכות עתירות ביצועים וכל יצרן שולח את מיטב המהנדסים שלו להריץ את מיטב החומרה שלו במבחני השוואה כדוגמת SPC על מנת לשבור את תקרת ה IOps וה Throughput אבל החכמה מאחורי המבחנים האלו הוא פרסום של סטנדרט הבחינה, המספר מפורסם לצד תיאור של מה בוצע בפועל כדי להגיע למספר הזה וזו כל החכמה כולה. יצרנים שמפרסמים מספרים ללא "מקרא" לא מספרים את כל האמת. אם נחזור לדוגמא של פרארי ואוטובוס ולא נדבר על הדרך לבית הספר אלא על צומת עירונית צפופה. נגיד ששני כלי הרכב חוצים את הצומת באותה המהירות בדיוק, הרי שהפרארי תסיים את חציית הצומת לפני האוטובוס, אורכה שליש מאורכו. המשמעות היא שלא ניתן בפועל לספק את אותו זמן התגובה לשני גדלי בלוק שונים. ניתן לספק זמני תגובה מהירים עד כדי כך שההבדל יהיה זניח או חסר משמעות מבחינה פרקטית אבל הוא לא יהיה זהה.
הדבר נכון גם לכלים בתוך מערכות האחסון, גם לכלי תוכנה יש את אותה "מגבלה", מה שעושים איתם גוזר את התפוקה שלהם בפועל. יחס של ביטול כפילויות למשל, De-duplication, או של דחיסה, Compression, הינו פועל יוצא של סוג המידע המאוחסן. מידע דחוס מראש לא יהיה ניתן לדחיסה ביחס של 1:4 גם בשימוש באלגוריתם דחיסה מאד אגרסיבי, מידע שרובו מכיל תמונות לא יכיל בלוקים כפולים ביחס של 1:6 גם בשימוש באלגוריתם מאד אגרסיבי עם גודל בלוק קבוע או משנה.
אין לי פואנטה מאד מתוחכמת לפוסט הזה, המטרה היעקרית שלי היא לשחרר קיטור אחרי תחרות מאד קשה מול יצרן אחסון חדש יחסית, שמציע טכנולוגיה מאד מעניינת אבל יש לו רק דגם אחד של מערכת אחסון וזו אחת הסיבות שהנציגים שלו מספרים ללקוחות שהמערכת עושה קסמים וכשפים. אולי היא מאד מרשימה אבל קסמים וכשפים היא לא עושה, גם לה יש "מגבלות". אלא אם היצרן המציע מחדש גם את פרוטוקולי התקשורת (הוא לא), גם את אופן הפעולה הבסיסית של מעבדים (הוא לא) וגם את אופן הפעולה הבסיסי של דיסקי SSD (הוא לא), אז לא משנה כמה טובה מערכת ההפעלה שלו, גם לה יש "מגבלות" וגם היא יכולה להוציא מהחומרה רק מה שהחומרה מסוגלת לספק.
אחת הקלישאות היא שהפעולה הכי מהירה היא פעולה שלא מבצעים, זה נכון בהחלט אבל גם לזה יש תקורה מסויימת, מישהו צריך לקבל את ההחלטה שלא לבצע את הפעולה וההחלטה היא גם פעולה, גם אם היא פעולה קלה ונעשית in-line, היא עדיין פעולה.
שלכם,
ניר מליק
*ל NetApp יש עוד מוצרי אחסון אבל אלו החמישה שאפשר לקנות כקופסא פיזית מוטמעת מראש