מה קורה עם ZFS? עדכון מצב

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

נתחיל בחלק הפחות טכני ויותר "פוליטי". זה לא סוד שעקב חשש מעורפל מרשיון שאינו תואם GPL, אנשים וחברות רבות היססו להתקרב ל-ZFS על לינוקס, אולם היו מספיק אנשים שהבינו שגם אם אין תואמות מבחינת רישוי, אין שום מניעה להתקין SPL/ZFS על לינוקס ולהנות מ-ZFS.

הויכוח שנוצר קשור דווקא לחלק שאנשים שוכחים מה שקשור בליבת (Kernel) של לינוקס: במהלך "אורך חיים" של הפצת לינוקס אתה תקבל לפחות 5-10 עדכוני kernel שאמנם הם תואמים בינארית 100% אולם אתה חייב לקמפל מודולים חיצוניים מול ה-Kernel החדש. במערכות לינוקס מודרניות משתמשים בדבר כמו DKMS שעושה את העבודה אוטומטית ברגע ש-kernel חדש מותקן במערכת ואתה עושה reboot למכונה (יש גם אפשרות לגרום ל-DKMS לקמפל עבור kernel חדש גם מבלי לעשות reboot אולם לא ניכנס לכך בפוסט זה). בשביל ש-DKMS יוכל לגרום למודולים של ZFS לעבוד, הוא חייב את הקוד מקור כדי לקמפל את המודולים שנותנים את התאימות ל-SUN (מה שנקרא SPL) ולאחר מכן לקמפל את ה-ZFS. מה הרשיון CDDL V1 שתחתיו נמצאים SPL ו-ZFS מבקש? (לחצו להגדלה)

cddl

כלומר אנחנו ממלאים אחר הרשיון בכך שאנחנו משתמשים ב-DKMS שמצריך את החבילות קוד מקור, וזה גם מה שחברת קנוניקל עושים. הם לא מכניסים את zfs.ko (המודול) לתוך חבילת ה-kernel בכלל וזה גם לא מותקן במכונה כברירת מחדל, ואתה לא יכול להקים מכונת אובונטו 16.04 שתהיה כולה ב-ZFS כי ההתקנה לא מאפשרת ליצור מחיצות ZFS. החבילות נמצאות בנפרד ואותם אתה יכול להתקין. הצעד הזה גם עודד את Debian לעשות אותו דבר ברמת חבילות קוד מקור ב-Beta של ההפצה.

הכנסת ה-ZFS לאובונטו 16 ודביאן (גם ב-BETA) החלה לגרום לתהליך שיש יותר ויותר אנשים שמנסים את ZFS. מי שרוצה לנסות את ZFS אהלן וסהלן אבל מי שרוצה להשתמש בזה בפרודקשן, אני ממליץ לעבוד עם ה-REPO הרשמי (לדוגמא: ב-Wheezy יש את גירסה 0.6.5.6 בזמן שהגירסה הרשמית היא 0.6.5.7) של ZFS On Linux ואפשר כבר לראות issues שנפתחו ע"י משתמשי דביאן ואובונטו כאן. כמו כן, אם אתם משתמשים ב-RHEL או CentOS, השתמשו בגרסאות האחרונות של ההפצה (6.7 או 7.2) ולא גירסאות ישנות יותר (אלא אם אתם רוצים להיתקל בבאג כמו זה)

מבחינת יציבות (שאלה שאני שומע שוב ושוב): כן, ZFS יציב מאוד כשזה מגיע לשרתים. כשזה מגיע לדסקטופים/לאפטופים, יש באגים (כמו זה) אבל אם אתם מחפשים File System לדסקטופ, פתרונות כמו EXT4 יתאימו הרבה יותר (במיוחד עם LVM) ולמען האמת לא נראה לי כי אלו שעובדים על קוד ה-ZFS מתעניינים במשתמשי דסקטופ. האם ZFS יותר יציב מ-btrfs? התשובה פשוטה: כן.

מבחינת פיתוח: ZFS על לינוקס מתפתח במקביל ל"אחיו" בגרסאות IllumosOS, FreeBSD וכו'. כיום אם אתה משתמש בכלי אוטומציה (Ansible, Puppet, Chef) אתה יכול להקים לך שרת שכולו יהיה על ZFS (לא מומלץ לשים את ה-boot/ על ZFS) ולאחרונה גם נכנס קוד להצפנה של ZFS (עדיין לא יציב!). כלל אצבע הוא: רוצה יציבות? תשתמשו ב-0.6 האחרון. רוצים להשתולל ולא אכפת לכם שהמערכת תיפול? תשתמשו ב-0.7 (רק שימו לב לבעיות).

ולבסוף, כמה טיפים אם אתם הולכים להשתמש ב-ZFS:

  • זכרון – כמה שיותר, יותר טוב. יש "כלל אצבע" של 1 ג'יגהבייט על כל 1 טרהבייט מקום בדיסק (לפני RAIDZ), מומלץ יותר אם אתם הולכים להשתמש בדחיסה, Dedup ועוד. בד"כ אני ממליץ על מערכת כבדה מינימום 32 ג'יגה זכרון ומעלה.
  • ZFS אינו יודע לעשות קסמים. הכנסתם דיסקים SSD שישמשו כ-Cache "לפני" דיסקים SATA? אל תצפו לביצועים גבוהים. ה-Cache ב-SSD (למעט ZIL) מיועד לשימוש כ-Read Cache. רוצים ביצועים? SAS SSD ומעלה (M.2, PCIe Express). לא SATA.
  • הגדלת שטח – במקום לעבור את המסלול של להחליף דיסק דיסק ביותר גדולים, מומלץ להוסיף דיסקים למערכת. יש JBOD, יש PCIe Express, יש המון אפשרויות להוסיף אחסון.
  • טעות נפוצה: לא צריך בקרי RAID משוכללים, לא צריך Cache על ה-RAID, לא צריך סוללה, ולא להגדיר שום מצב RAID אלא אך ורק מצב JBOD בבקר. בקרים פשוטים (M1015 לדוגמא) מספיקים בהחלט. תשקיעו את הכסף בדיסקים.
  • אם אין כסף למערכת שכוולה SSD SAS, אפשר להסתפק ב-SSD SATA אולם יש לכך מחיר – SATA הוא פרוטוקול שיתופי, אין ערוצים נפרדים, כך שאם המערכת צריכה לכתוב כמות רצינית, הביצועים ירדו באופן רציני מאוד. כשזה מגיע לדיסקים מכניים, עדיף את ה-15K RPM אולם גם NL-SAS יכולים לעבוד טוב כל עוד לא מדובר בשימוש מכונה כסטורג' ל-VM (שם – רק SAS SSD ומעלה).
  • טיפ קטן אם אתם משתמשים במכונת ZFS כסטורג' ל-VM: אין לכם כסף ל-VEEAM או תוכנת גיבוי רצינית? ZFS Snapshots יכול לשמש כפתרון גיבוי ושחזור מעולה (מתוך הנחה שאתם מייצאים החוצה NFS, לא iSCSI).
  • בבירת המחדל ZFS על לינוקס נותן אפשרויות ליצור snapshots כל פרק זמן שתרצו ואין בעיה להכניס זאת ל-crontab, רק קחו בחשבון שזה לוקח מקום בדיסק, ולכן מומלץ לעיתים לנקות snapshots).
  • אם אתם רוצים להשתמש ב-ZFS כ-iSCSI target, מומלץ לעבור ל-LIO במקום TGT. מומלץ לקרוא את המאמר הזה. אגב, אם אתם הולכים לתת שרותי iSCSI ל-vSphere, אז LIO יתן לכם האצת VAAI, לא משהו להקל בו ראש.

כתיבת תגובה

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