מחשבות על AWS Virtual SAN

בסוף 2020, במסגרת re:invent, החברים באמזון השיקו סוגי דיסקים חדשים. הדיסק הכי מהיר בהיצע שלהם io2 block express שעליו כתבתי בלינקדאין וגם דיסק לשימוש כללי בשם GP3 עליו כתבתי כאן בבלוג של החברים שלי בסילק.  

בדיוק לפני שנה, בינואר 2021, הזכרתי ממש כאן בפוסט הזה את שני הפוסטים הקודמים שציינתי למעלה ותיארתי בקצרה את אחד האתגרים הטכניים להם אין מענה איכותי מובנה בפלטפורמות הענן וספציפית התייחסתי לאתגר בהעברת אפליקציות Enterprise Tier-1 אל הענן, אפליקציות המקבלות בחדר השרתים שלנו שירות ממערכת SAN המספקת מענה איכותי ויציב לעשרות או מאות טרה של מידע ולעשרות או מאות אלפי IOPS בזמני תגובה קצרים וקבועים.

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

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

בפוסט שפורסם מוקדם יותר החודש, AWS חשפה ארכיטקטורה קרובה. הפוסט מתאר שימוש בשרתי R5b לייצוג "בקרים" וה"בקרים" מקושרים למספר דיסקי io2 block express. ניתן להעלות ולהוריד באופן דינאמי את כמות ה"בקרים" בהתאם לדרישת הביצועים ויש תמיכה בפיצ'רים כמו EBS Snapshot או AWS Backup. גולת הכותרת היא כמובן ביצועים והם מדברים על עד מיליון IOPS בתצורה של 5 "בקרים" או חמישה מליון IOPS בתצורה של 8 "בקרים". אלו מספרים מאד מרשימים והם מלווים גם בעשרה עד ארבעים ג'יגה רוחב פס! נשאלת השאלה כמובן למה הגידול לא לינארי (אימוג'י של פרצוף חושב) ?

בכל מקרה כמובן שפתרונות יעודיים כמו סילק או פיור מוסיפים יכולות מתקדמות ומרשימות כמו יכולות של חסכון בנפח, סנפשוטים יעילים יותר, Thin Provisioning וכו' אבל השאלה היא עד מתי היתרונות האלו ישארו יחודיים והאם אמזון תוסיף יכולות כדוגמאת deduplication או Compression שקצת נוגדים את המודל הכלכלי של "הענן" שנשען כולו על Over provisioning?

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

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

הקורא היותר עירני אולי שואל את עצמו עכשיו למה עדיין לא הזכרתי את הפתרונות של NetApp כמו CVO וזו שאלה מאד הוגנת. לדעתי, דבר ראשון, הפתרונות של סילק ושלר פיור הם פתרונות SAN ולכן מדובר בתחרות ישירה, סילק תומכים בסאן בלבד ואילו פיור תומכים בפרוטוקולים נוספים אבל הם ידועים בפתרונות הסאן שלהם. דבר שני, שני הפתרונות גם מתמקדים בעולם עתיר ביצועים, זה הטיקט העיקרי עליו רצים סילק ואחד הבולטים של פיור ומכאן שהארכיטקטורה הזו שמפורסמת עכשיו על ידי אמזון מכוונת ישר אליהם וזאת לעומת CVO למשל שעדיין מספק בידול משמעותי מספיק בעולמות שירותי הקבצים עד שאמזון מריצים גרסא משלהם למוצר המבוססת אותו קוד בדיוק, FSxO/N שעליה כתבתי כאן.

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

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

image credit:By Whit Welles Wwelles14 – Own work, CC BY 3.0, https://commons.wikimedia.org/w/index.php?curid=2821387

כמו תמיד, אשמח לשמוע מה דעתכם?

שלכם,

ניר מליק

Got Silk?!

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

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

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

אפשר לראות שיש קשר ישיר בין גודל הדיסק ב GB וכמות ביצועי ה IOPS העומדת לרשותו. אפשר לראות בהערות גם שיש כמות ה CPU וכמות ה IOPS בגלל ששרתים עם יותר CPU יכולים לגבל הקצאת תקשורת נדיבה יותר, Network egress caps. משמעות הדברים היא שיתכנו מצבים בהם לקוחות צריכים לשלם על נפח דיסק ריק כדי לקבל יותר משאבי ביצועים ועל מעבדים מיותרים כדי לקבל יותר משאבי תקשורת אל הדיסקים.

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

אמזון קצת יותר מתוחכמים וקצת יותר קרובים למערכות All Flash של העשור האחרון כי הם אומרים ללקוחות שלא צריך לקנות עוד נפח בשביל ביצועים, אפשר לשלם ישירות על הביצועים. הם קוראים לזה Provisioned IOPS (io1), הלקוח במקרה הזה צריך לשלם פרמיה גם על הנפח וגם על הביצועים אבל לא צריך לשלם על "נפח ריק".

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

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

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

כלי שימושי נוסף שאנחנו מאפשרים ללקוחות הוא סנפשוטים רזים. תהליך יצירת סנפשוט בענן הוא תהליך ארוך ויקר. ב AWS למשל, בתהליך יצירת הסנפשוט מועתק המידע אל S3 ובכל סנפשוט נוסף יש להעתיק מידע נוסף, את המידע החדש. אנחנו מאפשרים ליצור סנפשוטים מידיים, מבוססי הצבעות בלבד, כך שאין צורך להזיז מידע או לשלם על נפח מידע נוסף ולכל סנפשוט ניתן לייצר View כלומר להשתמש בסנפשוט כהעתק עצמאי של המידע לשרתים אחרים, test/dev או אנליטיקה וכו'.

אנחנו רואים בבמוצע חסכון של 3:1 בשימוש ביכולות חסכון בנפח ולפחות עוד 30% חסכון על ידי שימוש בThin Provisioning וזה אומר שרק על ידי זה שריכזנו את המידע של הלקוח והכלנו עליו את היכולות האלו, הלקוח צורך עכשיו פחות מרבע מהנפח שהוא צרך קודם ובגלל שאנחנו לא נסנכים על ביצועי הדיסקים של תשתית הענן הרבע הזה הוא בדיסקים זולים יותר מהדיסקים הקודמים!

בפעם הבאה נדבר קצת על ביצועים, בתקווה ועד אז אבין את זה מספיק טוב בעצמי 😊

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

עדכון לפוסט!

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

כבונוס, יש שם הדגמה של יכולות של blktrace. ביחד עם blkparse, btt ועוד סקריפט פייטון קטן (כן כן הרבה חלקים זזים) אפשר ממש להציג באופן קריא ונוח עד כמה ה IO שהשרת שלכם עושה הוא Sequential או Random, נתון שהרבה פעמים חסר לנו כשאנחנו באים לעשות סייזינג מסודר למערכות סטורג', אם אתם מאלו שעוד עושים כאלו דברים 🙂

credit AWS: https://youtu.be/wsMWANWNoqQ
credit AWS: https://youtu.be/wsMWANWNoqQ

כמו תמיד אשמח מאד לשמוע מכם!

שלכם,

ניר מליק