אחרי שנה וחצי של פיתוח, פרויקט OpenZFS 2.0 הושק המפתחת את הטמעת מערכת הקבצים ZFS עבור לינוקס ו- FreeBSD.
הפרויקט נודע בשם "ZFS ב- Linux" וקודם לכן זה היה מוגבל לפיתוח מודול לליבת הלינוקס, אך לאחר העברת התמיכה ב- FreeBSD, היא הוכרה כהטמעת OpenZFS העיקרית וזה הוסר מהאזכור של לינוקס בשם. כל פעילות הפיתוח של ZFS עבור מערכות לינוקס ו- BSD מרוכזת כעת בפרויקט אחד ומפותחת במאגר משותף.
OpenZFS כבר בשימוש ב- FreeBSD במעלה הזרם (רֹאשׁ) והוא כלול בהפצות דביאן, אובונטו, ג'נטו, סאביון לינוקס ו- ALT לינוקס. חבילות עם הגרסה החדשה יהיו מוכנות בקרוב לכל הפצות הלינוקס הגדולות, כולל דביאן, אובונטו, פדורה, RHEL / CentOS.
ב- FreeBSD הקוד מסונכרן עם בסיס הקוד OpenZFS נוֹכְחִי. OpenZFS נבדקה עם גרעיני לינוקס 3.10 עד 5.9 (גרעינים התואמים לגרסה האחרונה 2.6.32) וענפי FreeBSD 12.2, יציבים / 12 ו- 13.0 (HEAD).
אודות OpenZFS
OpenZFS מספק יישום של הרכיבים של ZFS הקשורים הן למערכת הקבצים והן למנהל עוצמת הקול. באופן מיוחד, הרכיבים הבאים מיושמים: SPA (מקצה בריכת אחסון), DMU (יחידת ניהול נתונים), ZVOL (נפח מדומה של ZFS) ו- ZPL (שכבת POSIX של ZFS).
בנוסף, הפרויקט oהוא מציע את היכולת להשתמש ב- ZFS כ- backend למערכת הקבצים המקובצים ב- Luster. עבודת הפרויקט מבוססת על קוד ה- ZFS המקורי המיובא מפרויקט OpenSolaris ומשופר באמצעות שיפורים ותיקונים מקהילת Illumos. הפרויקט מפותח בהשתתפות אנשי המעבדה הלאומית ליוורמור בחוזה עם משרד האנרגיה של ארצות הברית.
הקוד מופץ ברישיון CDDL בחינם, שאינו תואם ל- GPLv2, שאינו מאפשר לשלב את OpenZFS בליבת הלינוקס במעלה הזרם, מכיוון שאסור לערבב קוד תחת רישיונות GPLv2 ו- CDDL. כדי לטפל בחוסר תאימות רישוי זה, הוחלט להפיץ את המוצר כולו ברישיון CDDL כמודול נפרד להורדה שנשלח בנפרד מהליבה. היציבות של בסיס הקוד OpenZFS נחשבת להשוואה ל- FS אחרים עבור לינוקס.
התכונות החדשות העיקריות של OpenZFS 2.0
מבין השינויים העיקריים, זה שהכי בולט הוא תמיכה בפלטפורמת FreeBSD ובסיס הקוד מאוחד לתמיכה במערכות הפעלה שונות. כל השינויים הקשורים אליהם עם FreeBSD מפותחים כעת במאגר הראשי של OpenZFS ופרויקט זה נחשב ליישום העיקרי של ZFS עבור גרסאות עתידיות של FreeBSD.
חוץ מזה העברת FreeBSD ל- OpenZFS הסירה רבים מתנאי המירוץ ונעילת בעיות, והביא תכונות חדשות ל- FreeBSD, כגון מערכת מכסות מורחבת, הצפנת מערך נתונים, שיעורי הקצאה נפרדים, שימוש בהוראות מעבד וקטור כדי להאיץ את יישום RAIDZ וחישובי סכום הבדיקה, תמיכה באלגוריתם הדחיסה של ZSTD, מצב מארח מרובה ( MMP, Multiple Modifier Protection) וכלי שורת פקודה משופרים.
שינוי חשוב נוסף הוא זה הושם מצב ביצוע רציף של הפקודה "resilver" (resilver resilver), הבונה מחדש את הפצת הנתונים תוך התחשבות בשינויים בתצורת היחידה.
הדרך החדשה מאפשר בנייה מחדש של מראה vdev שנכשלה הרבה יותר מהר מאשר משחזר מסורתי: ראשית, יתירות האבדן במערך משוחזרת במהירות האפשרית, ורק אז פעולת ה"ניקוי "מתחילה אוטומטית לאימות כל סיכומי בדיקת הנתונים. המצב החדש מתחיל כאשר אתה מוסיף או מחליף כונן בפקודות «zpool החלף | צרף "עם האפשרות" -s ".
זה יושם מטמון קבוע ברמה השנייה (L2ARC), בו נשמרים נתונים ממכשיר המחובר למטמון בין אתחול מחדש של המערכת, כלומר המטמון לאחר ההפעלה נשאר "חם" והביצועים מגיעים מיד לערכים נומינליים, ועוקפים את שלב מילוי המטמון הראשוני.
נוסף תמיכה באלגוריתם הדחיסה zstd (Zstandard), המדגים מהירות דחיסה מהירה פי 3-5 בהשוואה ל- zlib / Deflate ופעמיים לחץ מהיר יותר, תוך שיפור רמת הדחיסה ב 10-15%.
חוץ מזה לספק רמות דחיסה שונות, הם מציעים איזון שונה בין יעילות הדחיסה לביצועים.
מקור: https://github.com