מרקוס הולנד-מוריץ (מהנדס תוכנה בפייסבוק) הודיע על כך באמצעות פרסום הגרסאות הראשונות של DwarFS, מערכת קבצים לקריאה בלבד שנועדה למקסם את הדחיסה ולהפחית נתונים מיותרים.
מערכת קבצים זו משתמש במנגנון FUSE ורץ במרחב המשתמשים, הקוד כתוב ב- C ++ ומופץ ברישיון GPLv3.
אודות DwarFS
גמדים דומה למערכות קבצים כמו SquashFS, cramfs ו- CromFS במשימות שלך, ובאמצעותן ניתן ליצור תמונות חיות ולהפחית את גודל הקבצים עם מספר רב של כפילויות ונתונים כפולים (למשל, אחסון תמונות של מכונות וירטואליות או אוספים של גרסאות שונות של תוכניות).
מבחינת מהירות גישה לנתונים, DwarFS הוא בערך באותה רמה כמו SquashFS, אך כמה פעמים לפני ה- FS הזה מבחינת יעילות הדחיסה ומהירות ההדמיה.
הפרויקט פותח בכדי לפתור את בעיית מיטוב האחסון בגרסאות שונות של פרל (מחבר DwarFS משתתף בתחזוקת קובץ ה- CPAN).
בתחילה ניסינו להשתמש ב- Cromfs לדחיסה, אבל לקח יותר מדי זמן לבנות את התמונה והיציבות השאירה הרבה מה להיות רצוי. SquashFS עבד ביציבות וזה העביר תמונות בצורה מהירה יותר, אבל רמת הדחיסה לא הייתה מקובלת.
רוב קוד DwarFS נכתב בשנת 2013. השנה מצא המחבר זמן להביא את הקוד לציבור ולכתוב תיעוד. DwarFS משתמש בספריות Boost ו- Folly.
ספריית הסניף הקפואה של חברת Thrift הקפואה משמשת לאחסון מטא נתונים. תלות אחרות כוללות את FUSE3 וספריות הדחיסה lz4, zstd ו- liblzma.
DwarFS עשתה פי 8 את ביצועי SquashFS מבחינת קצב הדחיסה, ומבחינת מהירות יצירת התמונה 4 פעמים בעת יצירת תמונה הכוללת 1139 התקנות פרל שונות, מתוכן 284 גרסאות לפרל.
גמדים הצליחה לכווץ את המדד מ- 47GB ל -582 MB (1,1% מהגודל המקורי), ואילו גודל התמונה של SquashFS שהתקבל היה 4,7 GB. 69 דקות לקח ל- SquashFS ליצור את התמונה, ואילו DwarFS השלימה את העבודה תוך 15 דקות.
שתי מערכות הקבצים השתמשו באלגוריתם ZSTD לצורך דחיסה. באמצעות LZMA, גודל התמונה של DwarFS צומצם ב -18% נוספים (כ -479 מגה-בייט), אך מהירות הגישה לתמונה זו הופחתה משמעותית.
בדיקות עם נתונים עם פחות כפילויות הראו יתרון לא כל כך משמעותי, אבל עדיין מדהים, מ- DwarFS. לדוגמא, גודל התמונה עבור שורש FS של Paspberry Pi OS היה 298MB עבור DwarFS ו- 364MB עבור SquashFS, וזמן הבנייה היה דקה 1 שניות ו דקה 36 שניות בהתאמה.
של תכונות עיקריות של DwarFS הדברים הבאים בולטים:
- יכולת כוח מבטלת יתירות על ידי קיבוץ נתונים דומים (ללא קשר לגבולות הקבצים) באמצעות פונקציות חשיש LSH לזיהוי אובייקטים דומים.
- ניתוח פילוח חסימת מערכת הקבצים כדי להפחית את גודל מערכת הקבצים הלא דחוסה ולהגביר את היעילות של שימוש במטמון המעבד בשל העובדה שנכנסים יותר נתונים נדרשים.
- יישום רב-הברגה של כלי ההדמיה ומודול ה- FUSE, שיכול להשתמש בכל ליבות המעבד הזמינות בזמן הריצה.
- תמיכה ניסיונית ביכולת לחבר בקרי Lua שבאמצעותם ניתן לסנן ולמיין תוכן.
- מצב אריזה מחדש המאפשר לשנות את אלגוריתם הדחיסה של תמונה שכבר נוצרה (לדוגמא, ניתן לארוז מחדש באמצעות LZMA או LZ4 במקום ZSTD).
- תמונות נוצרות באמצעות כלי השירות mkdwarfs ומותקנות באמצעות כלי השירות הגמדים.
לבסוף, אם ברצונך לדעת יותר על מערכת קבצים זו או מעוניין להיות מסוגל לקמפל את קוד המקור שלה, תוכל להתייעץ במידע או להשיג את קוד המקור. בקישור הבא.