הסטטוס של ZFS החופשי

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

אנחנו בשנת 2018 ורציתי לתת סטטוס עדכונים לגבי ZFS על לינוקס, ומה קורה עם ZFS כשזה מגיע לחומרה חדשה כמו NVME SSD ועוד.

בחודש יולי שנה שעברה שוחררה גירסת 0.7.0 עם ערימות של תיקונים ופונקציונאליות חדשה שתוכלו לקרוא עליה כאן. חלק מהפונקציות ישמעו טריוויאליות לחלוטין אך צריך לזכור שכש-SUN שחררה את ZFS לפני 13 שנה, לקוד לא היה שום קשר ללינוקס, הכל היה בנוי ל-Solaris בלבד ובכל הקשור לתמיכה בחומרה, היתה תמיכה במה שסולאריס תמך, או בקיצור – למעט הפצות סולאריס פתוחות, הקוד לא רץ בצורה אופטימלית עם תמיכה טובה לאף מערכת לינוקס או BSD וכך כל צוות של מערכת הפעלה היה צריך לממש פונקציונאליות של ZFS עם תמיכת חומרה של אותה מערכת הפעלה. בלינוקס זה לקח זמן וסוף סוף בגירסה 0.7.0 יש תמיכת "ברזלים" טובה. כך לדוגמא, אם יש לך מערך של 6 דיסקים, הגדרת 5 דיסקים ל-RAIDZ כלשהו והגדרת דיסק כ-hot-spare והתקלקל דיסק, המערכת אוטומטית משתמשת בדיסק הנוסף שהוגדר hot-spare מבלי שאף אחד ירגיש במשהו.

פונקציונאליות נוספות מעניינות:

  • הקץ לשרשור פקודות בשליחת/קבלת snapshots! שימוש בפרמטר c- וה-snapshot יהיה דחוס בשליחה ובקבלה.
  • תמיכה מלאה בפונקציות SSE2 ואחרים של המעבדים, כך ששימוש בדחיסה יעשה עם הפונקציות הללו במקום הפונקציות הרגילות כך שהפעילות תהיה הרבה יותר מהירה.
  • Compressed ARC – זה אחת הפונקציות שממש אהבתי! אם לדוגמא ניקח מכונה ממוצעת שנריץ עליה ZFS, אז בברירת המחדל ZFS ישתמש לשם Cache (כ-ARC) במחצית הזכרון (זה כמובן ניתן לשנות), כך שאם במכונה יש לדוגמא 32 ג'יגהבייט זכרון, ה-ARC ישתמש ב-16 ג'יגהבייט. עם Compressed ARC, ה-ZFS כביכול "מכפיל" את ה-ARC להיות 32 ג'יגהבייט בכך שהוא דוחס את ה-ARC ופורס דינמית תוך כדי שהוא משתמש בליבות המכונה והמהירות היא מדהימה – הדחיסה/פריסה עובדים במהירות של 1-2 ג'יגהבייט לשניה פר ליבה (תלוי כמה ליבות יש). פתאום הביצועים יותר טובים 🙂
  • המשכיות send/recieve. שלחת snapshot ועצרת באמצע או שהיתה לך תקלת תקשורת. מעתה אפשר להמשיך את הסשן במקום להתחיל מחדש. מעולה למצב שהתקשורת בין DC ל-DC היא לא משהו עקב … חברת תקשורת מסויימת.
  • הקפאת "קרצוף" (scrub). סיטואציה שאישית אני סבלתי ממנה: אני מכין ללקוח הדגמת PoC אצלי בבית, רק שבדיוק ה-scrub נזכר "שבת היום" – והוא מתחיל לבצע "קרצוף" והביצועים נוחתים ב-80%. מעתה ניתן להקפיא את ה"קרצוף" ובסיום העבודה לחדש אותו.
  • קריפטוגרפיה יותר רצינית. עכשיו יש תמיכה ב-SHA-512, Skein, Edon-R כ-Checksum על כל בלוק וכו' (קחו בחשבון שדבר כזה מומלץ להפעלה אם יש לכם מעבדי Xeon V3 ומעלה)
  • "אני המחליט" – כחלק מתהליך ה"ריפוי עצמי" של ZFS, מעתה ZFS יכול להחליט אוטומטית מתי דיסק גרוע, להשבית אותו ולבצע rebuild לדיסק אחר. (בשלב הבא הבא הוא יצווה עליך להוציא שליח שיביא דיסק חדש 🙂 )
  • הסוף לשימוש ב-sudoers עבור דברים טריוויאליים – פקודות zpool, zfs וכו' שאינן משנות דברים ניתן מעתה לעשות ע"י משתמש רגיל ובכך להדק יותר את האבטחה.
  • ויש עוד פונקציות חדשות, כנסו ללינק לעיל.

מאז גירסה 0.7.0 תוקנה המון וכיום יש 0.7.5. גירסה 0.7.6 תצא בקרוב עם שיפור מהירות ה-ARC ועוד מספר תיקונים (ניתן לראות כאן) ומבחינת יציבות – המערכת הרבה יותר יציבה ממה שהיתה בגירסאות 0.6, כך שאני ממליץ לאלו שיש להם מערכת ZFS – לשדרג (או לחכות ל-0.7.6 ולקבל מהירות יותר גבוהה אחרי תיקוני ה-ARC miss).

עתה אני רוצה להתייחס לציוד המודרני שקיים כיום במחשבים ובלוחות אם. כיום בעזרת השקעה בינונית אפשר לקנות SSD NVME בחיבור M.2 כמו הסמסונג 960 EVO או PRO ולקבל ביצועי קריאה של 2.5 ג'יגהבייט וכתיבה של 1.5 ג'יגהבייט לשניה. האם כדאי עם מערכות כאלו לפרמט ולהתקין אותן ישירות עם ZFS עוד מה-Boot? (כאן לדוגמא הוראות מאוד מפורטות לאובונטו 17.10).

התשובה שלי לכך היא פשוטה: זה תלוי במשתמש. ZFS היא לא עוד מערכת של File System, היא הרבה הרבה יותר מזה. נכון, משתמש רגיל לא ישתמש ב-90% מהאפשרויות ש-ZFS נותן (ומה לעשות, בשביל להכיר טוב ZFS צריך להשקיע זמן), אבל דברים כמו snapshots לפני שדרוג, ביצוע snapshot אוטומטי כל רבע שעה או דברים כאלו (זה לא ממש עולה לך, snapshot ריק תופס 0 מקום), וכל העניין של "לחיות את ZFS" מצריך שינוי מחשבה מסוים ואם בעל המכונה/שרת מוכן לכך, אז בהחלט – כדאי ללכת על ZFS.

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

לסיכום: ZFS ממזמן נמצא במצב פרודקשן כשזה מגיע למערכות של אורקל, FreeBSD (לגבי FreeBSD ו-ZFS.. מומלץ לא לנסות להריץ על מעבדי Xeon-SP החדשים.. אלא אם בא לכם לתלוש שערות כשהמכונה בעומס. רק אומר..). עכשיו גם גירסת הלינוקס של ZFS יכולה לתת פתרונות מעולים הן כ-iSCSI, CIFS, NFS. יחד עם זאת, חשוב לזכור: בשביל ש-ZFS יתן ביצועים מעולים, הוא גם צריך חומרה מעולה, עם PCIe 3.0, עם UEFI טוב, עם SSD של Enterprise עם גיבוי קבל (לפחות אחד כזה) או Optane של אינטל, ועם המון RAM (שמשמש ב-ZFS כ-Cache ראשי). עוד משהו חשוב: להקים ZFS לוקח חצי-שעה עד שעה הקמה ראשונית. להגדיר ZFS עבור עבודות שונות כולל בחינות ביצועים – יכול לקחת ימים. אין כאן הוקוס פוקוס וכדאי לקחת זאת בחשבון.

Comments

comments

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

This site uses Akismet to reduce spam. Learn how your comment data is processed.