מנגנון blksnap הוצע ליצירת צילומי מצב של התקני בלוק בלינוקס

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

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

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

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

Blksnap מבוסס על קוד מודול veeamsnap הכלול במוצר Veeam Agent for Linux, אך עוצב מחדש כדי לקחת בחשבון את הפרטים של המסירה בליבת לינוקס הראשית. ההבדל הרעיוני בין blksnap ל-veeamsnap הוא השימוש במערכת סינון המחוברת להתקן הבלוק, במקום רכיב bdevfilter נפרד שיירט את I/O.

מקור: OpenNet.ru