הכל התחיל במייל שכתב לינוס טורבאלד, ה"אבא" של ליבת לינוקס (אוקיי, יש כאלו שיתעקשו שנקרא לזה GNU/LINUX) – הוא התייחס לנקודה ישנה וקצת כואבת, שאי אפשר להכניס קוד של ZFS ללינוקס על ה-Kernel של לינוקס. הרשיונות לא ממש תואמים. (בעיה ידועה שאנשים מעשיים לא מתייחסים אליה כיום, למען האמת: אם לקוח מגיע אליי ומבקש ממני לבנות לו מפרט לשרת לצרכי AI, מטבע הדברים אני אכלול כרטיסים של nVidia אבל הדרייבר ל-NVIDIA הוא בינארי לחלוטין, האם לפסול את הכרטיסים בגלל שהדרייבר הוא כזה? כמובן שלא, כי הכרטיסים המתחרים מציעים בערך מחצית מהביצועים).
לינוס מוסיף בסוף המייל כי ZFS זה "באזז" והוא מבקש "אל תשתמש ב-ZFS".
זכותו המלאה, כמובן, של לינוס להביע את דעתו, אבל כדאי לפעמים שהוא קצת יעדכן את דעתו היקרה..
נתחיל מהמציאות הפשוטה: ZFS על לינוקס אינו פרויקט נסיוני. גם בגירסה הנוכחית (0.8.2 נכון לכתיבת שורות אלו) ובגירסה הקודמת (0.7.13) אין שום באג ידוע שגורם לקריסת מערכות. המערכת יציבה ונמצאת במקומות שונים פה בישראל ובעולם כמובן – בפרודקשן. לא מדובר באיזה פרויקט שמורכב מ-2 אנשים שמתחזקים אותה בשעות הפנאי שלהם ועושים טובה לאנושות שהם עונים לפוסטים/מיילים. יש לא מעט חברות מעורבות בפרויקט שתורמות קוד ותיקוני באגים נון סטופ, וזו אחת הסיבות שעמותת OpenZFS החליטה יחד עם כל החברות המשתתפות בפיתוח ZFS לפני שנתיים – להעביר את כל הקוד לגירסה חדשה שתיקרא OpenZFS ושתהיה מבוססת על ZFS for Linux עם כל השינויים שקיימים לפלטפורמות אחרות (BSD, Illumos, Mac OS וכו') כך שברגע שתצא גירסת OpenZFS 1.0 – היא תהיה תואמת לכל הפלטפורמות וכל קוד שיכנס יקומפל אוטומטית מול כל הפלטפורמות ואם הקוד לא רץ על אחת מהפלטפורמות, מגיש הקוד יצטרך לתקן זאת.
ZFS היא, בניגוד למערכות File systems אחרות בלינוקס – אינה רק file system, היא הרבה יותר, היא מייתרת את הצורך בהגדרות Partitions, מייתרת את הצורך בהגדרות ושימוש LVM, מפשטת תהליכים בשיתופים דרך NFS, iSCSi, CIFS/SMB, מאפשרת snapshots בצורה הרבה יותר טובה ממה ש-LVM נותן, הוא כולל מערכת Cache טובה וכשזה מגיע לתחזוקה שוטפת, זו המערכת היחידה שיודעת לעשות תהליך resilver (תהליך בו המערכת עוברת על כל המידע בסקטורים השונים בדיסק, בודקת אם הכל תקין ומה שהיא מוצאת לו תקין – היא מעתיקה למקומות אחרים תקינים, והכל ברקע), ויש ל-ZFS עוד פונקציות רבות שלא תיארתי ופונקציות בהחלט מעניינות שמפותחות בימים אלו, והכי חשוב – הכל רץ על לינוקס.
יש כאלו שיציינו שיש את BTRFS שזו מערכת מעולה. צר לי, היא לא כזו מעולה, גם כיום, בכל מה שקשור ל-RAID-5/6 ויש רק הפצה אחת שמתקינה אותה כברירת מחדל: SuSE. הפצות שמקובלות בגופים גדולים כמו RHEL, CentOS, Ubuntu או שלא כוללים תמיכה ל-BTRFS (כל מה שמבוסס על רד-האט) או שתצטרך לעבוד ידנית כדי להגדיר BTRFS. בהפצה כמו אובונטו 18 ומעלה, תצטרך לעבור חתיכת תהליך (בהצלחה עם זה, ואגב, והתהליך לא כולל שום שימוש בכל הפונקציות הרציניות של BTRFS כמו sub volumes במאמר) כדי לבנות מערכת עם BTRFS.
יש כמובן גם FIle systems אחרים כמו EXT4 ו-XFS שהן טובות, אבל כשיש בעיות כלשהן שהמערכת לא מוכנה לעבוד עם ה-Journaling – הסיוטים מתחילים (במיוחד ב-XFS. רק לפני מס' שבועות קיבלתי פניה מיצרן שרתים שהתקין ללקוח שלו מערכת SAP כשכל המערכת וה-DATA יושבים מקומית ולאחר כמה חודשים, המערכת קרסה. הוא ביקש ממני להציץ, והמצב מבחינת XFS היה כל כך קטסטרופלי, שההמלצה שלי היתה פשוטה: תפרמט ותשחזר מאפס מגיבוי) וכאן ל-ZFS יש יתרון בכך שהוא בודק אחת לשבוע או אחת לחודש (כפי שתגדיר ב-crontab) את תהליך ה-resilver ואפשר תמיד לראות את המצב עם פקודת zpool פשוטה.
אינני טוען ש-ZFS מתאים לכל שימוש. על מכונות וירטואליות, על מכונות דסקטופ/לאפטופ עם דיסק יחיד – אין ממש יתרון גדול ל-ZFS (חוץ מהפונקציונאלית של snapshots אם אתה רוצה לשדרג חבילות או את כל המערכת לגירסה חדשה ומעוניין לחזור אחורה אם יש בעיות, דבר שדי בעייתי לעשות עם LVM – במיוחד בהפצות כמו ubuntu, Debian ששם כברירת מחדל בהתקנה לא משתמשים ב-LVM) ויש בהחלט מקום ל-File systems כמו EXT4 או XFS.
לסיכום: ZFS זו מערכת רצינית שמצריכה מעט למידה של המושגים. הפצה כמו אובונטו 19 מאפשרת לך לראשונה להתקין מערכת לינוקס עם ZFS ב-root עם הצפנה, העברת snapshots מוצפנים, אבל חשוב לשים לב שזה נסיוני (בגלל זה החלוקה המוזרה לשני pools – התמיכה ב-GRUB2), יש קהילה משגשגת ויש גם חברות שמוכרות מוצרים ותמיכה ל-ZFS על לינוקס (והפצות אחרות). ZFS לא מתאימה לכולם ולא מתאימה לכל מצב, אך יחד עם זאת, ZFS זה לא buzz.
עוד לא קראתי הכל, אבל אני רק אגיד, שאף אחד לא יאמר שלינוס הוא האבא של גנו/לינוקס, כי הוא האבא רק את הקרנל… אני לא אגיד בלבד, כי נדמה לי שהוא עשה גם את גיט, אבל בעיקר. גנו לינוקס מתייחס למבנה השלם, אבל הקרנל הוא לינוקס בלבד
צודק, תוקן, תודה 🙂
אודה אם תוכל להתייחס לטענות הספציפיות שלו:
1. [היות ובגלל בעיית הרישוי הקוד לא יכנס לקרנל, ZFS היא רכיב צד ג ולכן] הוא לא מתחייב לא לשבור את תאימות הקרנל [כפי שכבר קרה], מי שמתחזק את המודול יצטרך להתמודד בכל פעם כזו.
2. בהתחשב בטבע של אורקל אי אפשר לצפות את ההתנהגות שלה ומי שמשתמש ב ZFS מסכן את עצמו משפטית, ע"ע JAVA.
3. לא ראה יתרונות משמעותיים בבנצ'מארקים.
4. לטענתו אין תחזוקה רצינית מאחורי ZFS.
1. זה כבר קרה – המעבר לקרנל 5 שבר תאימות, מי שטיפל בזה היה צוות ZFS for Linux. במקרים אחרים שזה קורה, אפשר לעשות חלופת מיילים קצרה, לבדוק האם באמת צריך לשנות מצד אחד, האם הצד השני חייב להשתמש בפונקציונאליות הזו וכו'. שת"פ תמיד עוזר.
2. זהו, שלא. אפשר לשנות רשיון למוצר נוכחי או מוצר חדש. אפשר לשנות לרשיון יותר "ליברלי" (GPL) לדוגמא כהצהרה, אבל אם אורקל תנסה לשנות רשיון לקוד מהעבר ולהצהיר נניח שהוא סגור – הרבה חברות יתבעו את אורקל עם טענה מוצדקת: המוצר בזמנו שוחרר ברשיון CDDL שאיפשר להטמיע אותו בשורת מוצרים ומערכות הפעלה (BSD, Illumos וכו') ואם החברה רוצה לשנות ולסגור את הקוד, תתכבד אורקל להתחיל לשלם פיצויים לעשרות אלפי אנשים וחברות שמשתמשים במוצר שהקוד שהיה בעבר של SUN משולב בו. בגלל זה, אורקל לדוגמא שינתה רשיון ב-JAVA לגירסה הנוכחית והעתידית, לא לגירסאות 1.7 ומטה.
3. הכל תלוי בציוד שיש לך (כמו Optane לצרכי ZIL), כמות RAM והגדרות. כפי שציינתי, דברים כמו resilver לא קיימים לאף file system (תנסה לעשות fsck כולל תיקונים למערכת חיה) מה שמייתר סיוטים כש-file system לא עובד.
4. יש, המון, תסתכל זמנים שגירסאות משוחררות, כנסים של OpenZFS, הרצאות על הכנסת פיצ'רים חדשים, שת"פ של חברות שבעבר כתבו בעבר פונקציונאליות נפרדת – הכל עכשיו נהיה מסביב ללינוקס קודם כל, אחרי זה למערכות אחרות. זה שמישהו מעדיף להתעלם, זו זכותו, אבל המציאות היא אחרת לגמרי.
מעניין, תודה.
לא חשבתי שלינוס הוא טהרן קוד פתוח ברמה הזו, תמיד אמרו שסטולמן הוא הבעייתי…
אני מלמד עליו זכות שכנראה הוא ראה מספיק אינטרסים מסחריים שגרמו לדברים להשתבש (JAVA עצמה מספיקה לצורך הדוגמה) אז הוא חשדן.
ZFS היא טכנולוגיה וותיקה וטובה שאמורה להיות בשימוש מסיבי בשטח הIT, אבל יש סיבה טובה שאנשים חוששים מהטמעת ZFS, לסיבה הזאת קוראים "אורקל", אנשים פשוט רוצים לישון בשקט בלילה ולא מוכנים לקחת סיכון מיותר.
בקיצור , טכנולוגיה מצוינת, אבל יש גם סיכון , ומי שמכיר את אורקל מקרוב יודע בדיוק על מה אני מדבר.
הם לא. אם הם היו יכולים, הם היו עושים
אתה יכול לשנות רשיון על קוד נוכחי או מעכשיו והלאה, לא משהו ששוחרר לפני 10 והיום שונה מהקצה לקצה.