Selectel Cloud Storage: היכן נשבר אחסון האובייקטים
אחסון אובייקטים נראה כמו שירות פשוט: העלית קובץ, קיבלת קישור. כל עוד בדלי יש עשרות אלפי אובייקטים, זה אכן כך. ברגע שהמניין עובר למיליונים, וכמה צוותים כותבים בו-זמנית, Selectel Cloud Storage חושף את אותם צווארי בקבוק כמו כל פלטפורמה תואמת S3.
הכשל הראשון — גידול בנפח. גרסאות והעלאות מרובות-חלקים שלא הושלמו צוברות עותקים בלתי נראים: רשימת האובייקטים בדלי מאטה, ונתונים שאיש לא פתח במשך חודשים ממשיכים לתפוס מקום ולהתחייב בתשלום.
השני — מדיניויות גישה שמתפצלות. כל עוד הרשאות ומפתחות מונפקים ידנית דרך הפאנל, צצים בדלי אובייקטים קריאים לציבור, כפילויות של מפתחות וגישות שנותרו מקבלנים שעזבו. שלילת גישה כזו אפשרית רק בסריקה מלאה.
השלישי — הידרדרות הייצוא בעומסי שיא. ריבוי אובייקטים קטנים, ייצואים במקביל ורישומים תכופים הופכים משימה שגרתית לשרשרת ניסיונות חוזרים וקטיעות בזמן; לא רק הכתיבה נפגעת, גם הקריאה.
הרביעי — פעולות ידניות במקום נוהל: ארכוב, רוטציה של מפתחות והעברת נתונים נשענים על הזיכרון של מהנדס מסוים. בהמשך נפרק כיצד סוגרים זאת בהגדרה: מדיניויות מחזור חיים, תפקידי גישה ונוהל משוחזר במקום פעולות ידניות.
מה משתנה בתשתית לאחר העברת הנתונים
מחלקת הכשל מחריגת מכסה נעלמת
כרכים מקומיים כבר אינם נתקלים בתקרה: נתוני העבודה מועברים לאחסון עמיד לתקלות, ובשרתים נשאר רק מה שנחוץ כאן ועכשיו. הצפת מחיצה מפסיקה להיות סיבת תקלה, כי גידול הנפח אינו תלוי עוד בגודלו של דיסק מסוים. ייצואי הלילה מגיעים לסיומם — ובעבר דווקא באמצע אבדו הגיבויים.
זמן שחזור הנתונים יורד משעות לדקות
ההחזרה מתבצעת מאחסון האובייקטים לפי הקידומת הנדרשת, ולא מסרט או באיסוף ידני מארכיונים מפוזרים. נוהל השחזור הופך לצפוי מראש: המהנדס יודע מראש איזה מערך אובייקטים להעלות ובאיזה סדר. עבור שירותים קריטיים זה ההבדל בין חלון מתוכנן לבין השבתה מלאה.
מחזור החיים של האובייקטים הועבר למדיניויות
כללי האחסון עצמם מעבירים נתונים בשימוש מועט למחלקה קרה ומוחקים כל מה שעבר את התקופה המוסכמת. מרשם הגיבויים מפסיק לגדול ללא גבול, וחזרה למצב קודם עדיין אפשרית. עלויות האחסון מפסיקות לגדול יחד עם הנפח.
פעולות שגרה בנתונים מבוצעות לפי לוח זמנים
העלאה, בדיקת שלמות, רוטציה וגיבוי לענן עוברים למשימות מתוזמנות ולסקריפטים. חלק הפעולות שמתבצעות ללא מעורבות המהנדס מגיע לרוב התרחישים הקבועים. האדם נשאר במקום שבו נדרשת החלטה: טיפול במצב לא שגרתי ובדיקת בקרה של השחזור.
כדי להבין איזו מהתוצאות תביא את הרווח הגדול ביותר בתשתית שלכם, יש להביט בנפחים ובנהלים הנוכחיים — מכאן נתחיל את הניתוח.
מחלקות אחסון ומצבי גישה: השוואת אפשרויות
מחלקות האחסון ב-Selectel Cloud Storage נבדלות לא רק במהירות הגישה לאובייקט, אלא גם בתקופת האחסון המזערית ובהשלכות של מחיקה מוקדמת. המחלקה החמה מוסרת נתונים מיד ומתאימה למה שנקרא כל הזמן; הקרה והארכיונית זולות יותר באחזקה, אך את האובייקט יש לשחזר לפני מסירתו.
המחלקה נקבעת במדיניות מחזור החיים: לאחר מספר ימים מוגדר מהכתיבה האחרונה האובייקט עובר אוטומטית לשכבה הקרה, ובסיום תקופת האחסון נמחק.
מחלקת האחסון ומצב הגישה נקבעים בנפרד: אובייקט יכול לשכב בשכבה ארכיונית ובכל זאת להימסר בקישור חתום. להלן הצירופים שמהם אנו מרכיבים תצורה לפרופיל עומס.
| אפשרות | מתי מתאימה | מגבלות |
|---|---|---|
| מחלקה חמה | ייצואים פעילים, מדיה של מדורים, גיבויים טריים | נפח האחסון הגדול ביותר גדל מהר מכולם |
| מחלקה קרה | לוגים, דוחות, snapshots בני יותר מחודש | השחזור נמשך דקות ואף יותר |
| אחסון ארכיוני | עותקים לפי דרישות רגולטור, מסמכים בעלי תוקף משפטי | גישה רק דרך בקשת שחזור, לוחות זמנים — שעות |
| גישה ציבורית לדלי | סטטיקה הנמסרת ישירות: תמונות, קובצי התקנה | האובייקט יגיע לכל מי שיודע את הכתובת |
| דלי פרטי ומדיניויות גישה | שירותים פנימיים, החלפה בין אפליקציות | תפקידים וכללים נכתבים לכל צרכן |
| קישורים חתומים | הורדה חד-פעמית בידי לקוח, העלאה משותף | הקישור תקף עד לפקיעתו, שלילה מוקדמת — רק בהחלפת מפתח |
| מטמון הגשה | הפצה ציבורית עם מספר גבוה של בקשות חוזרות | איפוס המטמון מתבצע לפי אובייקט מסוים, לא לפי תיקייה |
בהמשך אנו מקבעים את כללי מחזור החיים ואת הפרדת ההרשאות בתצורה, כדי שלא יהיה צורך לתקן מחלקות ומצבי גישה ידנית.
סדר ההטמעה: מביקורת ועד מסירה
הטמעת אחסון אינה יצירת דלי והנפקת מפתח, אלא רצף שבו כל שלב נשען על תוצאת קודמו. ביקורת שהוחמצה מתגלגלת לעבודה מחדש על המדיניויות כבר לאחר ההעברה, ושחזור שלא נבדק — להשבתה ברגע הכשל. הסדר שבו אנו מובילים פרויקטים כאלה, ובכללם Selectel Cloud Storage, מובא להלן.
- ביקורת התשתית. מה ואיפה נמצא כעת, גידול יומי, מי כותב וקורא, עומסי שיא, הגיבויים הנוכחיים ותקופות האחסון שלהם.
- תכנון הסכימה. פריסה לפי דליים וקידומות, מחלקות גישה למערכי נתונים חמים וארכיוניים, כלל שמות, מודל הרשאות.
- הגדרת האחסון והמדיניויות. גרסאות, כללי מחזור חיים, הצפנה, הגבלה לפי מקור הבקשות, תיעוד גישה לאובייקטים.
- העברת הנתונים. העברה בגלים עם השלמת שינויים; השוואה לפי מספר אובייקטים וסכומי ביקורת מציגה פערים לפני המיתוג.
- בדיקת שחזור. העותק נפרס בסביבה נפרדת: אנו מודדים את הזמן עד למצב עבודה ואת השלמות, ולא את עצם קיומם של קבצים.
- תיעוד. סכימות, נוהל רוטציה של מפתחות, הפרדת גישות, הוראות לתורכן — העבודה אינה נשענת על אדם אחד.
- מסירה לתפעול. גישות לצוות, פירוק פעולות שגרה ותרחישי תקלה, ליווי בהתחלה.
ההטמעה אינה מסתיימת כאן: אנו מגדירים ניטור נפח ושגיאות גישה, התראות על אנומליות, נוהל בדיקת שחזור. לכן הגדרת האחסון הופכת לתהליך מנוהל עם מסירה צפויה לתפעול.
מה נשאר בתשתית לאחר העבודה
לאחר העבודה נשאר לצוות הלקוח לא רק אחסון מחובר, אלא גם מערך ארטיפקטים מלא שלפיו אפשר לפתח ולתחזק אותו בלעדינו. כל סעיף נבדק בסביבה חיה: מהנדס הלקוח מבצע את הפעולה בעצמו, ואנחנו מפרקים לצידו מה קורה ולמה זה מוגדר כך.
- סכימת הפריסה: אילו קונטיינרים הוקמו, לאילו משימות, כיצד מופרדות הסביבות, היכן עוברים זרמי הנתונים בין השירותים לאחסון.
- תצורות האחסון: הפרמטרים של Selectel Cloud Storage, הגרסאות המופעלות, כללי מחזור החיים, הפיזור לפי מחלקות אחסון והגדרות ההצפנה.
- מדיניויות גישה ותפקידים: חשבונות שירות, עקרון ההרשאות המזעריות, הפרדה לפי קונטיינרים וקידומות, סדר הנפקה ושלילה של גישות.
- נוהל גיבוי: מה מגובה, באיזו תדירות, מה עומק האחסון וכיצד נבדק השחזור באופן קבוע.
- כללי רוטציה ותקופות אחסון: כמה זמן חיים גרסאות אובייקטים, מה עובר לארכיון, מה נמחק, מי אחראי לבחינה מחדש של התקופות.
- תיעוד האחסון: תיאור הארכיטקטורה, נקודות האינטגרציה עם האפליקציות, המגבלות הידועות וההתנהגות בעת כשלים.
- הוראות לצוות: פעולות שגרה — חיבור שירות חדש, הנפקת גישה, שחזור אובייקט, אבחון שגיאות כתיבה וקריאה.
- ניטור והתראות: מערך המדדים, ספי ההפעלה, האחראים וסדר הפעולות בעת הידרדרות.
בנפרד אנו מתעדים העברות ידע: מערך הארטיפקטים נמצא במאגר לצד תיאורי התשתית, השינויים עוברים סקירה, ולא עריכה ידנית בפאנל. כך התצורה אינה מתרחקת מהמציאות, ומהנדס חדש נכנס לעבודה לפי התיעוד, ולא לפי סיפורי הקולגות.
פירוק הטמעה: כיצד קיצרנו את זמן השחזור
איך זה היה לפני ההעברה
גיבויים וייצואים נאספו על דיסקים מקומיים של שלושה שרתים, ותקופת האחסון לא הוגבלה בידי איש. שחזור לאחר כשל בדיסק נמשך 4–6 שעות, וכל אותו זמן חלק מהקבצים והדוחות לא היו זמינים. כל ייצוא דרש השוואה ידנית: גודל הארכיון, הרכב האובייקטים, הנפקת גישה.
חלק הייצואים המוצלחים עמד על כ-80% — השאר נקטע בשל חריגה מזמן ההמתנה ובאובייקטים פגומים. מרשם הארכיונים גדל ללא גבול, וכבר איש לא יכול היה לומר בוודאות מה ניתן למחוק ומה צריך להחזיק לצורך חזרה לאחור.
מה שינו
האובייקטים הועברו ל-Selectel Cloud Storage בהדרגה, במנות, עם בדיקת סכומי ביקורת בכל מנה. הופעלו גרסאות — החזרה למצב קודם הפסיקה להיות תלויה בשאלה אם מישהו הספיק לדרוס את האובייקט.
כלל lifecycle מחזיק את הגרסאות האחרונות לכל מפתח ומנקה את השאר, וההרשאות מונפקות לתפקידים, ולא לאנשים מסוימים. הייצוא הפך לאוטומטי: את הרכב האובייקטים והשלמות בודקת המערכת, והמהנדס מתחבר רק לפי אות מהניטור.
מה יצא
| מדד | לפני | אחרי |
|---|---|---|
| שחזור | 4–6 שעות | 20–30 דקות |
| ייצואים מוצלחים | 80% | 99.9% |
| פעולות ידניות לשחרור | 18 | 2 |
| נפח המרשם | גדל ללא גבול | הצטמצם פי שלושה |
"בעבר כשל בדיסק סימן משמרת לילה ופירוק ידני של ארכיונים", אומר המהנדס שלנו שהוביל את ההעברה. "כעת השחזור מסתכם בחצי שעה". הלקוח מוסיף: "על התקלה אנחנו לומדים מהניטור, ולא מהמשתמשים".
במה שונה אחסון S3 ב-Selectel מדיסק בלוקים
אלה שתי מודלים שונים של גישה, ולא גרסה מהירה ואיטית של אותו דבר. דיסק בלוקים מתחבר לשרת ככרך, מעליו נוצרת מערכת קבצים, והאפליקציה עובדת איתו כמו עם אמצעי אחסון מקומי — עם נעילות, קריאות מבוססות-מיקום ויומן טרנזקציות. מסדי נתונים, תורים וכל מה שרגיש להשהיית תגובה חי על כרך כזה.
אחסון האובייקטים בנוי אחרת: מרחב מפתחות שטוח בתוך הדלי, גישה דרך ממשק תוכנה תואם S3. פעולה בודדת מגיבה לאט יותר, אך קנה המידה והמקביליות שונים — עשרות לקוחות קוראים בו-זמנית את אותו אובייקט. גרסאות, כללי מחזור חיים והעתקה בין אזורים מוגדרים בצד האחסון, ולא באפליקציה.
הבחירה נקבעת לפי המשימה, ולא לפי נפח הנתונים. קבצים, מדיה, ארכיונים, גיבויים, ייצואים לאנליטיקה — אחסון אובייקטים. נתונים שנכתבים שורה-שורה ודורשים נעילות — כרך בלוקים.
הסכימה המעשית היא לרוב היברידית: מסד הנתונים יושב על כרך בלוקים, וה-dumps וקובצי היומן שלו עוברים לאחסון האובייקטים של Selectel. שחזור מהגיבוי אינו תלוי אז בגודל הכרך ובשאלה היכן השרת ממוקם פיזית.
משמעותי גם שהממשק תואם S3 הוא נייד: כלי גיבוי וייצוא עובדים איתו ללא כתיבה מחדש. אך אין להעלות (mount) את הדלי כדיסק רגיל לנתונים טרנזקציוניים — סמנטיקת הפעולות שונה, ואת השלמות יהיה צורך להבטיח ידנית.
ספקות טכניים לפני הטמעת האחסון
לפני הכנסת Selectel Cloud Storage לסביבת העבודה, מהנדסים שואלים את אותן חמש שאלות: האם יהיה צורך לשנות קוד, כיצד יתנהג הייצוא תחת עומס, מה יקרה לגישות. להלן תשובות טכניות קצרות.
האם האחסון תואם לאפליקציות הקיימות?
אפליקציה על ממשק תואם S3 עוברת בשינוי כתובת נקודת הכניסה והמפתחות — ספריות ומערכות גיבוי מתחברות ללא שינוי בקוד. ממשק קנייני של ענן אחר דורש העברה של שכבת העבודה עם האובייקטים; את היקף השינויים אנו מעריכים לפי קוד המקור מראש.
מה יהיה עם השהיות בייצוא?
התגובה לפעולה על אובייקט היא שברירי שנייה בפנייה מאותו אזור; צוואר הבקבוק הוא לרוב הערוץ, ולא האחסון. קבצים גדולים אנו מעלים בחלקים במקביל — קטיעת החיבור אינה מפילה את הייצוא, ורק החלקים החסרים מושלמים.
האם אפשר להעביר נתונים ללא השבתה?
כן: תחילה מעתיקים את המערך ברקע, אחר כך ממיתוג הקריאה, והכתיבה נמשכת לזמן קצר לשני המערכים, ופערים משלימים לפי יומן השינויים. ההשבתה — שניות על מיתוג המצביע; חזרה לנקודת המוצא אפשרית עד לאישור השלמות.
כיצד מבודדים גישות של שירותים ואנשים?
לכל אפליקציה — חשבון נפרד עם הרשאות לקידומת שלה בלבד, המדיניויות מתוארות דקלרטיבית ונמצאות במערכת בקרת גרסאות. לעובדים אנו מנפיקים מפתחות זמניים לסשן, ולכן הגישה נשללת אוטומטית, והפניות נראות ביומן.
מה קורה באירוע תקלה באחסון?
הנתונים נשמרים ביתירות, ולכן כשל אמצעי אחסון אינו מביא לאובדן אובייקטים. התראות לפי ספי השהיה ושיעור שגיאות אנו מגדירים מראש, ואת סדר ההסלמה בצד הספק מקבעים בנוהל.
נדון במשימה: נתאים מצב אחסון ונעריך את העבודה
כדי שההערכה תהיה עניינית ולא "טווח בעין", די לנו בתיאור קצר של המשימה — אין צורך להכין אפיון מראש. פרופיל ה-payload חשוב יותר מן הפורמליות: Selectel Cloud Storage הוא אחסון תואם S3, ומכך היכן נמצאת ההפצה, היכן הגיבויים והיכן הארכיון תלוי גם מצב האחסון וגם היקף העבודה.
מה די לשלוח כדי להתחיל:
- נפח ואופי הנתונים: כמה תופס כעת, כמה מתווסף בחודש, הגודל הממוצע של אובייקט;
- תרחישי גישה: הפצה ציבורית של סטטיקה, מסירת מדיה, גיבויים, החלפה בין שירותים;
- דרישות לגישות: קונטיינרים פרטיים וציבוריים, הפרדת תפקידים, מפתחות נפרדים לפי סביבות;
- כללי מחזור חיים: כמה גרסאות להחזיק, מתי לעבור למחלקה קרה, מה למחוק ללא חזרה;
- מה כבר עובד: האחסון הנוכחי, האינטגרציות, סכימת העברה ללא השבתה;
- מגבלות: חלון העבודה, אזור הפריסה, דרישות לעמידות לתקלות.
בתגובה נחזיר הערכת עבודה על האחסון ותוכנית הטמעה: התאמת מצב אחסון לפרופיל העומס שלכם, סכימת קונטיינרים, מדיניויות גישה וסדר העברת הנתונים. אנו מאשרים קבלה בתוך יום עבודה ושואלים שאלות הבהרה; את הניתוח עם ההערכה נמסור בתוך כמה ימי עבודה לאחר התשובות.
בהמשך נתאם לוחות זמנים ונצא לבדיקה ראשונה: קונטיינר ניסיון, השוואת ההתנהגות בתרחישים אמיתיים, חזרה לאחור בעת סטייה. את הדיון במשימה נקיים ישירות עם המהנדסים שיבצעו אותה — תארו מה אתם מאחסנים וכיצד אתם משתמשים בכך, ונחזור עם תוכנית.







