לינוס, ZFS וכמה נקודות בנושא

הכל התחיל במייל שכתב לינוס טורבאלד, ה"אבא" של ליבת לינוקס (אוקיי, יש כאלו שיתעקשו שנקרא לזה 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.

סקירה: MINI PC מבוסס אינטל

מי שעוקב אחרי שוק המולטימדיה בכל מה שקשור למזרימים (סטרימרים) והתקני מדיה קטנים שמתחברים לטלויזיה, יודע שאינטל לא ממש שולטת בשוק זה. ישנם כל מיני פתרונות כמו של ROKU, אפל TV ועוד שדי תפסו חלק נכבד מהשוק. בשנים האחרונות אחד הסגמנטים שתפס יותר חלק מעוגת הסטרימרים ופתרונות מולטימדיה לסלון היה אנדרואיד לא רשמי שנמכר כ"מקל" שמתחבר ל-HDMI תחת הכינוי Mini PC (ויש כמובן גם גרסאות של קופסאות קטנות). היתרון הענק שלהם בהשוואה למתחרים היה המחיר המאוד מאוד זול. גם עניין הפתיחות (זה אנדרואיד לכל דבר ועניין) וגם שוק ענק של אפליקציות היווה נקודה שעזרה לשכנע רבים לרכוש, גם כשכולם ידעו שאין לך ממש תמיכה של יצרן מסודר ואף אחד גם לא ישחרר בצורה רשמית עדכונים.

אינטל לטשה עיניים לשוק זה כבר מספר שנים, אולם כל פתרון שלה היה עם 3 בעיות מרכזיות:

  1. מחיר גבוה מאוד למעבד + ערכת שבבים
  2. הצורך בפתרון קירור
  3. מערכת הפעלה

מבחינת מערכת הפעלה, אינטל כבר המירה את אנדרואיד עוד מגירסה 4 לעבוד עם X86, אבל המחיר שהם רצו מהיצרנים עבור מעבד+ערכת שבבים ופתרונות הקירור שהיו צריכים לשם כך – הניאו יצרנים סיניים מלהשתמש ולמכור פתרון זה. אחרי הכל, למה להתאמץ כשחברות כמו MediaTek, AllWiner, RockChip ואחרות מציעות לך פתרון מלא (כולל מערכת אנדרואיד מוכנה, כולל תכנון לוח אם וכניסות/יציאות) שעולה ליצרן לא יותר מכמה דולרים בודדים?

אז באינטל הלכו לעשות שיעורי בית וחשבו כיצד לתקוף את השוק הזה ע"מ למכור בו כמה שיותר שבבים מבלי להוריד את המכנס.

במסגרת המאבק של אינטל בכל מה שמעבדים, אינטל הוציאו מספר שבבים תחת הם ATOM, רק שבניגוד לעבר, הפעם לא מדובר על חיתוך מאסיבי של המהירות והורדת פונקציות רבות (כמו הדורות הראשונים של ATOM), אלא פתרון שיתן ביצועים טובים עם אנדרואיד, גרפיקה מואצת למשחקים ובמיוחד – תמיכה במקודדי וידאו כך שהכל יעבוד חלק ומהר.

כמו תמיד, כשאינטל מוציאה מעבדים, הם מוציאים שורה שלמה של מעבדים שנבדלים בתכונות קטנות אחד מהשני, ואינטל הכריזה על חלק מהסידרה בפני כל העולם ואחותו בכנס ב-CES שנה שעברה וקצת לפני כן. הפעם אינטל באו מוכנים בסיוע שותף בכיר – מיקרוסופט. האג'נדה של מיקרוסופט שונה מהאג'נדה של אינטל. לאינטל ממש לא אכפת איזה מערכת הפעלה תריץ על הברזל כל עוד אתה רוכש את הברזל. למיקרוסופט יש כאב ראש שנקרא "כרומבוק" שנמכר כמו לחמניות חמות עד היום, אז מיקרוסופט יחד עם אינטל יצאו בהכרזה על נטובוקים גירסה 2: מעבד ATOM עם 1 או 2 ג'יגהבייט זכרון, 16 או 32 ג'יגהבייט זכרון נדיף (Flash), ו-2 חיבורי USB וכניסת כרטיס SD או מיקרו SD (היצרן בוחר). כל זה ישווק כ-Netbook (תחת השם Notebook על מנת שלא להזכיר טראומות נשכחות למשתמשים) עם Windows 8.1 עם מנוע החיפוש בינג – במחיר זול ליצרנים וזול לצרכנים – בסביבות ה-200 ומשהו דולר לצרכן הסופי.

אינטל ערכה גם כנס נפרד שמיועד רק ליצרנים הסיניים, שם הם הכריזו על מעבד  Quad Core Z3735F BAY TRAIL TCR 1.33-1.83GHZ. אינטל החליטה להעתיק את אותם תנאים שיצרני ה-ARM הסיניים הזולים נתנו ליצרנים, והם סיפקו לאותם יצרנים הכל, כולל דיארגמות וסכמות ללוח האם, פתרון קירור, כניסות/יציאות וכו'. היצרן רק צריך להשתמש במה שאינטל נותנת, להתחיל לייצר ולמכור. המחיר הסופי יהיה קצת יותר יקר מפתרון זהה מבוסס ARM – בסביבות ה-100-130 דולר וכפיתוי ללקוח הסופי, ה-MINI PC יגיע גם עם אנדרואיד "וגם" עם Windows 8.1. מדוע שמתי מרכאות? כי ה"גם" כולל כוכבית קטנה – ה-Windows 8.1 מגיע ללא רשיון, כך שהלקוח יצטרך לשלשל למיקרוסופט עוד 120 דולר על רשיון (אפשר לרכוש את אותו רשיון דרך getsoftwarekey ברבע מהמחיר של מיקרוסופט). המשתמש כמובן יכול לוותר על ה-Windows ולבצע Boot ישירות לאנדרואיד ולשכוח מה-Windows, אבל כמה ירצו לוותר על Windows בשעה שיש לו כל כך הרבה אפליקציות מולטימדיה, סקייפ ו-1001 דברים אחרים? כך גם אינטל מרוויחה וגם מיקרוסופט שמרוויחה מחיר מלא לרשיון ולא מחיר קצוץ שהיא מוכרת ל-OEM.

pngה-MINI PC עם המעבד הנ"ל החל לצאת לפני מספר ימים בצורה רשמית, והזמנתי אחד לבדיקות. כמו תמיד, הנציגה של היצרן הסיני גם אצלי הצליחה לבלבל בין הגירסה שהזמנתי לגירסה שהיא שלחה לי, כך שאת שלי קיבלתי עם 16 ג'יגה זכרון נדיף ו-2 ג'יגה זכרון, עם Windows 8.1 ובלי אנדרואיד. את התקנת האנדרואיד אני אקבל עוד כמה ימים ואעדכן פוסט זה, כך שכרגע אני אתייחס ל-Windows וגם ללינוקס.

מבחינת חומרה וכניסות: יש כניסת USB 2.0 גדולה, כניסת מיקרו USB 2.0, כניסת חשמל בחיבור מיקרו USB, כפתור הפעלה, וכניסת כרטיס מיקרו SD שתומך עד 64 ג'יגהבייט (יכול להיות יותר, לא ניסיתי). יציאת ה-HDMI רגילה (לא ניסיתי לחבר למסך עם רזולוציה מעבר ל-FULL HD).

נתחיל ב-Windows.

גירסת ה-16 ג'יגהבייט של ה-MINI PC לא תשאיר לך הרבה מקום להתקנת אפליקציות (זיכרו, אפליקציות PC שוקלות הרבה יותר מאפליקציות אנדרואיד). כך זה נראה אצלי (תתעלמו מכרטיס המיקרו SD שהכנסתי ל-MINI PC):

10407044_832405393468497_929425930803267858_n

כן, 5.5 ג'יגהבייט מקום פנוי. אפשר כמובן להזמין את גירסת ה-32 ג'י'גהבייט (ואז יהיה פנוי לכם בערך 15 ג'יגהבייט מקום). אפשר כמובן "להצמיד" כרטיס מיקרו SD ככונן "משלים", אולם הביצועים יהיו נמוכים מאוד. כמה נמוכים? הכנסתי כרטיס של 64 ג'יגהבייט הכי מהיר שקיים בשוק (Exterme Pro) והמהירות שקיבלתי היא 20 מגהבייט לשניה בקריאה, בהשוואה ל-100 מגהבייט של הזכרון הנדיף במכשיר.

מבחינת קליטה אלחוטית – לצערי המכשיר לא מכיר את טווח ה-5 ג'יגהרץ, מה שאומר שתצטרכו להשתמש בתדר 2.4 ג'יגהרץ על כל הבעיות. מצד שני, יש לו יכולת קליטה מצויינת ובניסויים שלי בחדרים אחרים בביתי (עם דלתות סגורות כשהנתב נמצא בסלון) קיבלתי קליטה של 90-120 מגהביט לשניה (כך ה-Windows טוען) והוא לא סובל מאותן בעיות ש-MINI PC מבוססי אנדרואיד ישנים שהיו ללא אנטנה חיצונית – סבלו.

מבחינת הרצת סרטים/סדרות: לא נצפתה שום בעיה בהזרמה של 720P ו-1080P על wifi עם כולל מיני קידודים וקונטיינרים כולל Quicktime ו-MKV. הקידוד היחיד שכן "חונק" את ה-MINI PC זה קידוד HEVC, שם המעבד משתמש ב-80% מהמשאבים וישנם לא מעט Frame Drops. (השתמשתי בנגן VLC 2.1)

סה"כ התרשמות חווייתית משימוש ב-Windows על ה-MINI PC: יש לו Boot מהיר (תודות ל-Windows 8.1) כך שתוך שניות ספורות תוכל להתחבר. (לגבי מקלדת ועכבר – אפשר לחבר כמובן, אך כיום היצרנים מספקים אפליקציית אנדרואיד שתאפשר לך להשתמש בטלפון/טאבלט כדי להעביר תנועות עכבר ומקלדת). אך הדיסק הפנימי הוא איטי בהשוואה ל-PC רגיל (המהירות שהוא נותן במבחנים שבדקתי – בסביבות 100 מגהביט, כמו דיסק קשיח מהסדרות של 5400 RPM), כך שעדכוני Windows יקח להם זמן להיות מותקנים.

כעת – לינוקס:

לצערי אינטל עשתה חצי עבודה בפיתוח הצ'יפ והסביבה החומרתית שלו. ישנם טלאים להוספת המעבד וה-Chipset לקרנל 3.15, אולם לצערי אינטל לא שחררה חבילת תוכנה שתוכל להתקין את הלינוקס המועדף עליך ואז להתקין את החבילה ולקבל את כל הפונקציונאליות. ה-UEFI שקיים ב-MINI PC הוא חדש ובמקרים רבים הוא לא נתמך ע"י שום הפצה (ובנוסף ישנו באג ב-UEFI שמשום מה לוחץ על מקש רנדומאלי, גם אם תנתק מקלדת, אני אשלח להם את הבאג מחר), כך שאם אתה מעוניין להתקין לינוקס על ה-MINI PC, תתכונן "לבלות" קצת מול גוגל ועדיף שתצטייד בחיבור רשת עם מתאם USB (ה-WIFI בלינוקס לא עובד אלא אם תתקין כמה טלאים). אני מאמין שגרסאות עתידיות של לינוקס כבר יתמכו ב-MINI PC ישר מהקופסא ואני אכתוב על כך פוסט נפרד. בכל מקרה, ניסיתי גירסת אובונטו עתידית (vivid) ושם עדיין אין תמיכה ל-WIFI, אם כי הגרפיקה נתמכת, והדיסק הקשיח מוכר.

ה-MINI PC הזה הוא בסך הכל מקל נחמד אך הוא אינו מתאים למשתמש קצה שאינו מכיר מספיק טוב חומרה ו-Windows. יש לו באג קצת מעצבן שלפעמים הוא לא הכיר לי את המיקרו SD (ניסיתי גם מיקרו SD אחר בגודל קטן – אותה בעיה), וישנו באג שלא מאפשר לך להשתמש במקלדת ב-UEFI Shell (לחיצה על מקש Enter אחרי פקודה אחת וכל מה שתקליד ימחק מיד, כאילו מקש backspace תקוע, או ב-GRUB אי אפשר לבחור מהתפריט כי זה נראה כאילו משהו ממשיך ללחוץ כל הזמן את מקש חץ עליון), אבל אלו באגים שיתוקנו כבר אם לא תוקנו בגירסאות שתיקנו (ב-Windows עצמו אחרי שאתה מפעיל את המערכת אין זכר לבאג של המקלדת). אפשר להעיף את ה-Recovery Partition (אם יש לך גיבוי לזה או שאתה מתקין בעצמך Windows) ובכך לקבל עוד 4 ג'יגהבייט מקום ובסופו של דבר אם תשקיע קצת ותגגל את המעבד הזה, תמצא כל מיני פוסטים של אנשים שפתרו בעיות עם מחשבים דומים בכל הקשור ללינוקס. אם אתה מעדיף להשתמש באנדרואיד, אז כל העניין לא רלוונטי ואתה יכול לתקוע את ה-MINI PC באחד מכניסות ה-HDMI שלך, לעשות Boot לאנדרואיד, לבצע login לשם המשתמש שלך בגוגל ומיד להתקין את האפליקציות שלך ולהנות.

מי שמעוניין ב-MINI PC הזה לרכוש על מנת לנסות אותו כפתרון VDI או כ-Thin Client במסגרת Corporate, הייתי ממליץ להמתין עד שאחת מהיצרניות הגדולות תוציא מקל כזה, כך שיהיו לך עדכונים רשמיים ותמיכה רשמית.