על Windows ומעבדים מעל 16 ליבות

בשנים האחרונות אנחנו רואים יותר ויותר מעבדים חדשים מ-AMD עם יותר ויותר ליבות במחירים מאוד מפתיעים, הן לתחנות עבודה והן לשרתים. להלן 2 דוגמאות:

  • מעבד AMD Threadripper 2990WX עם 32 ליבות ו-64 נימים עולה 1700$ (מיועד לתחנות עבודה)
  • מעבד AMD EPYC 7551P עם 32 ליבות ו-64 נימים עולה $2700 (מיועד לשרתים בעלי תושבת מעבד יחידה)

לשם השוואה: המעבד לתחנות עבודה ושרתים הכי זול עם 16 ליבות מאינטל (Xeon SP Gold 6130) עולה נכון להיום $1932. ההצעה הזולה ביותר מעל 16 ליבות של אינטל היא מעבד Xeon Gold 6140 וכיום מחירה הוא $2500, כך שבמחיר של מעבד אחד מאינטל אפשר לקנות מעבד עם כמות כפולה של ליבות לתחנות עבודה, ובתוספת של 200$ אפשר לרכוש מעבד לשרת עם כמות כפולה של ליבות (בהשוואה ל-6140 של אינטל).

אם נרצה להקים מכונה כזו להריץ מכונות וירטואליות, לא חשוב איזה פתרון וירטואליזציה נבחר (למעט Hyper-V) – המעבדים של AMD יתנו תוצאות מצוינות וסקירות שונות הראו זאת. אם נרצה להשתמש במעבדים כאלו כתחנות עבודה מבוססות לינוקס, כל עוד יש לנו את העדכונים האחרונים להפצת הלינוקס שנבחר – הכל ירוץ מצוין.

אך מה יקרה אם נרצה לקנות מכונה כזו להריץ אותה כתחנת עבודה או כשרת Windows (לא וירטואלי)? צפו לביצועים נמוכים ב-30-50% בהשוואה ללינוקס עם אותם מעבדים.

כשאינטל שחררה את משפחת Xeon SP, אינטל הציגה בגאווה כמה המעבדים לשרתים (אז לא היה Threadripper) שלה הרבה יותר מהירים ממעבדי EPYC של AMD. סקירות עצמאיות הוכיחו שאינטל פחות או יותר צודקת (יש מספר מבחנים די תמוהים של אינטל ועל כך הופיע פוסט ב-Anandtech). רוב הסוקרים ציינו כי הבעיה של הביצועים קשורה לארכיטקטורת ה-NUMA של AMD.

שנתיים חלפו מאז ש-AMD הוציאה את משפחת מעבדי EPYC לשרתים. AMD הוציאה באותו זמן את משפחת ה-Threadripper דור ראשון (עד 16 ליבות) ואת משפחת ה-Threadripper דור שני (מבוסס על ארכיטקטורת +ZEN). עם הדור השני, AMD הוציאה את המעבדים 2970WX ואת 2990WX -האחד עם 24 ליבות והשני עם 32 ליבות. ההבדל בין מעבדים אלו לבין המעבדים ממשפחת EPYC – היא שמעבדי Threadripper משתמשים ב-4 ערוצי זכרון ולחלק מהליבות אין גישה ישירה לזכרון, בשעה שמעבדי EPYC מקבלים גישה ל-8 ערוצי זכרון.

המחיר הזול גרם ללא מעט אנשים להתעניין לראשונה במעבדים עם 24 ו-32 ליבות ולא מעט אנשים רכשו אותם. המעבדים עובדים מצוין אולם מי שבחן אותם על Windows קיבל "הפתעה" – גם כאן, Windows הציג ביצועים נמוכים ב-30-50% בהשוואה ללינוקס (הבעיה אינה קיימת בדגמים כמו 2950X שהם עם 16 ליבות).

ואז מספר אנשים מקצועיים החליטו לחקור מדוע הביצועים ב-Windows יותר איטיים. בהתחלה האשימו את המעבדים בכך שלא כל הליבות מקבלים גישה לזכרון, אולם אז מספר אנשים לקחו מעבדי EPYC שאין שם את הבעיה בעניין הליבות והזכרון – והתוצאות נשארו בעינם, Windows פשוט יותר איטי בהרבה.

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

למי שראה את הוידאו ולא הבין: הבעיה נמצאת עם ה-Windows Scheduler, ה"מתזמן" של Windows שמקים תהליכים (Processes) על ליבות שונות לפי העומסים שלהם, ועם המעבדים המוזכרים לעיל וכמות הליבות הגדולה, ה-Scheduler של Windows – "מתחרפן", ומה שיותר גרוע – מיקרוסופט לא עושה סימנים שהיא עובדת על תיקון הבעיה, ומה שהכי גרוע – זה קורה בכל גרסאות ה-Windows, כולל Windows Server.

אחד הדברים שוונדל מזכיר בוידאו זה אפליקציה בשם Coreprio שעוזרת למגר חלק מהבעיה. ב-Phoronix מנהל האתר בדק כמה זה עוזר. התוצאה: בחלק מהמקרים זה עוזר במעט, בחלק הרבה, אבל עדיין – ישנה בעיה שמצריכה שינוי קוד פנימי ב-Windows ע"י מיקרוסופט.

לכאורה ניתן להחליט משהו פשוט: לא רוכשים מעבדים של AMD אם מריצים Windows כמערכת הפעלה מרכזית "על הברזל", ואני יכול בהחלט להבין החלטה כזו, אולם הבעיה המרכזית אינה רק במעבדים של AMD. גם אינטל הולכים להוציא מעבדים חדשים עם אותה ארכיטקטורה כמו של AMD (הם יתחילו להופיע תחת משפחת Cascade Lake שתצא השנה). הבעיה היותר גדולה שקיימת בצד של מיקרוסופט היא תמיכה במעבדים מעל 16 ליבות ולא חשוב מי היצרן (גם אינטל). הסיבה שאף אחד לא התלונן עד כה? אף חברה שרוכשת שרת עם מעבדים מעל 16 ליבות לא מריצה ישירות Windows "על הברזל". עם Scheduler יותר טוב, גם מעבדים של אינטל ירוויחו מכך.

לסיכום: אין מנוס מלציין משהו פשוט. מיקרוסופט נרדמה בעמידה. מיקרוסופט עם Windows 2019 בהחלט מעוניינת שתריצו Kubernetes וקונטיינרים, אבל אם נסתכל לדוגמא במבחנים של Phoronix על מכונה עם 40 ליבות שמריצה Windows Server בגרסאות שונות ("על הברזל") מול הפצות לינוקס שונות – לינוקס ברוב המקרים פשוט "בועט" ב-Windows, גם כשלא מדובר כלל במעבדים של AMD. מישהו שם צריך להתעורר.

תקלות בפלאפון ומה כולם יכולים ללמוד מכך

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

אז קודם כל – אכן, אני לא מכיר אחד לאחד את המערכות הנוכחיות של פלאפון. בעבר, כשכל חברה סלולרית (פלאפון, סלקום, פרטנר, פלטל) הקימה את התשתית הראשונית, הציודים היו פחות או יותר אותו דבר (מחברות כמו נוקיה או אריקסון. כן – החברות הנ"ל מייצרות ציודים מאוד רציניים לתקשורת סלולרית, ללא קשר לפעילות עבר לייצור מכשירים סלולרים – אלו חברות שונות), תוכנות ה-SMS וה-Billing היו זהות (של אמדוקס) והיו כמובן מערכות אחרות יחודיות לכל חברה. פה ושם הייתי מתעדכן יותר על דברים משיחות עם כל מיני אנשים שעבדו שם, שיחות עם מנהלים בכל מיני כנסים וכו'. אני רוצה להדגיש: יש לי המון הערכה מבחינה טכנולוגית לחברות הסלולר בארץ ולאנשים העובדים שם, ולא הייתי לי שום כוונה לזלזל בהם (מצד שני, על החלק של ה-ISP של אותם ספקים .. יש לי לא מעט ביקורת אך לא לאנשים הטכניים, יותר לכיוון ההנהלה, במיוחד בכל מה שקשור לרוחבי פס).

פלאפון עדיין לא חשפה מה התקלה או התקלות שיש, והנקודה שלי היא: לא משנה מה התקלה. תקלות כאלו ורבות אחרות יכולות לקרות בכל חברה, גם כשלא מדובר בשום חברת תקשורת, לא חשוב מה גודל החברה, החל מסטארט-אפ ועד חברות ענק Multi National.

בכל חברה שיש שרתים, בין אם בענן או מקומית, יהיה צורך אחת לזמן מה לבצע שדרוג. זה יכול להיות שדרוג למערכת הפעלה, ל-VM, יכול להיות שדרוג לאפליקציה, ל-Appliance, למתג או לכל ציוד אחר. אין מה לעשות – באגים מתוקנים, פונקציונאליות נוספת, יש צורך בהרחבה, לא חסר סיבות וצרכים לשדרג.

וכאן מגיעה הבעיה שנמצאת אצל חברות רבות (שוב, לא מדבר ספציפית על פלאפון או על כל חברה אחרת): אין תכנון מספק ל-Roll Back. אני בערך 26 שנה בתחום, והיו לי מאות מקרים שבהם שדרוגים שברו מערכות פרודקשן, גם כשב-LAB הכל עבד פרפקט. מה לעשות, דברים כאלו מתרחשים גם כשעושים את כל המאמצים למנוע את התקלות.

בעבר הרחוק, אמצעי העזר שעמדו לרשותך היו קבצי TAR (בלינוקס, יוניקס) שהכנת לפני השדרוג (אם כמובן גיבית את הכל והתוכנה לא זורקת איזה קובץ so באיזה חור נידח והוא לא כלול בקובץ TAR) או גיבוי לקלטת. עם מערכות Solaris היה אפשר להשתמש ב-Veritas Volume Manager כדי ליצור Snapshot, בלינוקס בזמנו היה LVM אבל לא היה Snapshot וב-Windows (לפני שנות ה-2000) המצב לא היה טוב יותר.

עכשיו ב-2018 דברים השתנו. הרוב רץ על VM כיום אז אין בעיה ליצור Snapshot לכל המכונות המושפעות משדרוג ואם יש תקלה, אפשר לחזור אחורה. כל DB מאפשר לעשות dump שבמקרה הצורך ניתן לשחזרו, ובכל מערכת DR ניתן לעשות את הסינכרון הדו כיווני המתמשך כשעושים עבודת שדרוג.

כיום, גם מבחינת מערכות ההפעלה השדרוגים יותר נוחים. בתחום הלינוקס, כל מערכת ניהול חבילות מאפשרת שדרוג ושנמוך בקלות, וב-Windows אתה יכול לעשות Blacklist ל-KB מסויימים שה-QA של מיקרוסופט, כרגיל, עשה עבודה גרועה בבדיקת תאימות ושחררו זאת בכל זאת.

לכן, שדרוגים לא צריכים רק להיבדק רק על המכונה (או על רפליקציה של המכונה ב-LAB) אלא גם על המכונות שמושפעות מכך, ויש צורך לעשות גיבוי או snapshot לכל דבר שמושפע, כך שאם רכיב מסויים דופק דברים, צריך לעשות rollback לא רק לרכיב, אלא גם למכונות שהושפעו מכך (אם הושפעו). Snapshot, אני מעוניין להזכיר, שומר רק את ה-Delta (שינויים) בין המצב של המערכת לפני ה-Snapshot ולמצב הנוכחי, כך שלא מדובר במקום רב בדיסק, כך שאין צורך לחשוש לגבי מקום בדיסק בגלל Snapshot (כמובן שמומלץ כמה ימים אחרי השדרוג לבטל את ה-Snapshot ואם צריך לשחזר – להשתמש בגיבוי).

לסיכום: לא באתי לאמר שאנשי ה-IT בפלאפון אינם מבינים במה שהם עושים. בטוחני שהם בהחלט מבינים, אבל תקלות כאלו במערכות שונות יכולות לקרות בכל מקום, בכל עסק, בכל חברה. החוכמה היא לדאוג ל-rollback מלא להכל לפני שמריצים את פקודת השדרוג.

על המו"מ מול מיקרוסופט, וקוד פתוח בממשלה

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

אז מה קרה הפעם שהממשלה, שכמו שעון שוויצרי רוכשת את הרשיונות כל שנה החליטה לפוצץ את המו"מ הפעם? כמה דברים:

  • Windows Server 2016/2019 – מיקרוסופט מודעים היטב לכך שאינטל ו-AMD מוציאים שורת מעבדים שבכל דגם יש כמות מסויימת של ליבות ונימים (Threads). זה מתחיל ב-4 ליבות ו-8 נימים וגנמר (במקרה של אינטל) ב-28 ליבות ו-56 נימים או 32 ליבות ו-64 נימים (במקרה של AMD). עד גירסת Windows Server 2012R2, זה שיש לך מעבד עם 4 ליבות או 32 ליבות – לא ממש שינה ברשיון. הנה החלק הרלוונטי ב-License Datasheet של Windows Server 2012 – שימו לב לשורה האחרונה המתחילה ב-Note בסוגריים:

עם Windows Server 2016 – למיקרוסופט "נפתח התאבון". זה נחמד שבכל שרת שלך יש 2 ליבות, עכשיו בוא נספור כמה ליבות (לא נימים) יש לך בכל מעבד, כך שאם לדוגמא חושבים להתקין שרת Windows Server 2016 (להריץ אפליקציות "על הברזל", Hyper-V וכו') – אתה תשלם החל מפי-4 על Windows Server 2016 בהשוואה ל-Windows Server 2012R2 (פתאום כל אלו שהשוויצו כמה Hyper-V "יותר זול" רואים שעכשיו פתאום העיסקה על vSphere יותר זולה בהשוואה למחיר Windows Server 2016 ו-Hyper-V).

  • הבעיה המהותית השניה קשורה יותר ל-Office. מיקרוסופט עושה הכל כדי לדחוף את הלקוחות משתמשי אופיס שלה לענן כך שהם ישלמו תשלום חודשי או שנתי כמנוי. הסיכוי שהחשכ"ל והרגולטור וגופי אבטחת מידע יאשרו לעבוד בענן שווה בערך לסיכוי שלי להיות ראש ממשלת ישראל בקדנציה הקרובה. מיקרוסופט מצידה מעלה כבר באוקטובר הקרוב את מחירי אופיס (הרגילים, לא 365) ב-10% (וזה בארה"ב, באירופה וישראל המחיר יעלה יותר). כשקונים 20 רשיונות זה כואב טיפה, שאתה מדבר על מאות אלפי רשיונות – העצבים מתחילים לרתוח.

אז מה לגבי תחליפים מבוססי קוד פתוח?

כאחד שביקר בכמה וכמה גופים ממשלתיים, אני יכול לאמר שכיום יותר מתמיד, אין כמעט התנגדות לכלים מבוססי קוד פתוח. לא מעט שרתי לינוקס כבר רצים במשרדים ממשלתיים ותוכנות לביצוע CI/CD קיימים (אם כי הדבר שהכי קשה להכניס שם הם שרתים ל-GIT כמו Gitlab, Bitbucket וכו' – הם "מכורים" ל-TFS ולא רוצים לרדת מזה) – כך שכניסת כלים מבוססים קוד פתוח למשרדים ממשלתיים – בעיצומה (בצבא זה הרבה יותר חזק בפנים).

אבל כשזה מגיע לדסקטופ, האפשרות שכלים מבוססי קוד פתוח יכנסו למשרד של הפקידה רבקה ממס הכנסה או רויטל במשרד הבריאות – קלוש (טוב, למעט Web Application, וגם זה – רק אם זה רץ על אקספלורר!).

מדוע? הסיבה נורא פשוטה ונראה לי שרבים מאנשי לינוקס המקצועיים (גם אצל מפתחים בהפצות לינוקס שונות) מפספסים אותה: אלו שחושבים בראש של מהנדסים ומפתחים, חושבים על פונקציונאליות, API, סקריפטים וטרמינל, שזה מעולה – אבל מפספס לגמרי את אותם משתמשי קצה. קחו לדוגמא את אופיס, יש את LibreOffice – זה יכול להחליף? מבחינת פונקציונאליות, כן ברוב המקרים, אבל לא מבחינת ויזואליות. ל-LibreOffice יש ממשק שמזכיר את אופיס מלפני 11 שנה ואנשים רוצים ממשק שהם מכירים כיום, הם רוצים החלקת פונטים בדיוק כמו שיש להם ב-Windows (דבר ש-LibreOffice עדיין עושה בצורה די עקומה) ואלו שמעל אותן פקידות, אלו שמפתחים כל מיני כלים סביב ה-Office מחפשים את האינטגרציה בין האופיס ל-Access (ישמרנו האל!), למאקרו, לטפסים האוטומטיים וכו'. אנחנו מדברים על שנים על גבי שנים של עבודת אינטגרציה, ושום LibreOffice לא יכול להחליף את זה בלי חתיכת עבודה רצינית וכבדה מאוד.

נוסיף על כך את העניין שבמשרדים ממשלתיים הכל מתקדם לאט והם עדיין משתמשים ב-Windows 7, עם אקספלורר (כמו הבנקים), ונוכל להבין שפתרון קוד פתוח לדסקטופים לא הולך לקרות בקרוב מהסיבה הפשוטה שלמשרד האוצר יהיה הרבה יותר זול "לבלוע" את התוספת במחיר לרשיונות אופיס מאשר לממן פרויקט מבוסס LibreOffice או החלפת דפדפן ושכתוב מאסיבי של קוד עתיק או בכלל לינוקס על דסקטופ.

כך שלסיכום: לינוקס בשרתים? מקובל מאוד ברוב המקרים. לינוקס לצרכי דסקטופ? אין מצב. צר לי, זו המציאות.

מעבר דסקטופ ללינוקס אצלי

אינני הטיפוס שמתייחס למערכות הפעלה כ"דתות". אין לי שום בעיה להודות שעד לפני זמן לא רב, מערכת ההפעלה העיקרית בדסקטופ שלי היתה Windows 10, וכשאני רוצה לעבור מערכת הפעלה, אני לא עושה זאת כצעד "אנטי מיקרוסופטי" אלא פשוט בגלל נוחות: 90% מהזמן שאני משתמש במחשב לעבודה או לבדיקות, אני נמצא מול חלון טרמינל או דפדפן, וב-Windows די נמאס לי להפעיל Putty, להשתמש ב-WSL ולגלות שהחלון "טרמינל" מתחרפן לו כשאני מגדיל אותו, ואני גם לא אוהב את המעקב של Windows אחרי.

אבל כמו שאומרים: יש רצוי ויש מצוי, והסיבה שנשארתי עד כה עם Windows 10 היו התוכנות, ובמיוחד תוכנת Camtasia Studio ותוכנת Premiere Pro של אדובי. אני רוצה להתייחס לשתיהן והתחליפים שלהן בלינוקס.

למי שלא מכיר את Camtasia Studio, זו אחת התוכנות המעולות ביותר שקיימות להקלטת מסך, עריכת הוידאו ופרסומו. היא לא תוכנה שיכולה להתחרות ב-Premiere מבחינת כלים לטיפול בוידאו, אבל יש בה מספיק פונקציונאליות להקליט מסך, לערוך, להוסיף טקסטים וגרפיקה פשוטה/אנימציה, והיא משלבת העלאת וידאו ישירה ליוטיוב.

בלינוקס קיימים מספר כלים להקלטות מסך (כולל OBS Studio המפורסם), אך הקידוד שהם מקודדים את הוידאו מתאים יותר לשידור מאשר לעריכת וידאו (קידוד של H.264, WebM, OGG וכו') כך שוידאו כזה שאקליט מסך ולאחר מכן אערוך ואוסיף אפקטים, שינוי צבעים וכו' – יעבוד בצורה מאוד איטית בתוכנות כמו Premiere. עם Camtasia Studio לעומת זאת, הם משתמשים במקודדים שלהם (TSCC, TSC2) כך שהעריכה בתוך התוכנה היא לא רק קלה, הקובץ המיוצא קטן ב-90% מכל קובץ שיוצא בתוכנת הקלטת מסך בלינוקס. מדוע זה משנה? מכיוון שאני מחובר ב-ADSL וזמן ההעלאה שונה משמעותית, בין 3-4 דקות (וידאו שהוקלט ונערך עם Camtasia) לבין כל וידאו שנוצר בתוכנה אחרת (40-50 דקות). בנוסף, שום תוכנת הקלטת וידאו לא מאפשרת באופן רציני הקלטה עם Codec מקצועי (Apple ProRes, DNxHD, DNxHR) ו-OBS שכן מאפשר – נותן עיוות בוידאו או חונק את המעבד.

ויש גם את Premiere Pro ועם כל הכבוד למתחרים שלו מבוססי קוד פתוח, הם לחלוטין מחווירים לעומת ה-Premiere, קלות עבודה, תוספים ועוד. אני מכיר את Kdenlive ואת Openshot, ועם שתיהם לא הצלחתי להסתדר. שלא תבינו אותי לא נכון, אני מלא טענות כרימון כלפי אדובי – היא אינה משפרת מהירות רינדור וידאו (בין אם יש לכם כרטיס GTX 1080Ti יקר או GTX 980 – תקבלו את אותם ביצועי רינדוד אחד לאחד!), אינה יודעת לתמוך במעבדים מרובי ליבות, ושיטת המנוי שלה לא ממש מעודדת אנשים (כמוני) שלא משתמשים ב-Cloud של אדובי ולשלם 175 שקל לחודש רק בשביל הזכות להשתמש בתוכנה נשמע לי חסר פרופורציות. אם אני צריך תוכנה מסחרית, אני אשלם אליה תשלום חד פעמי וזהו. בלי מנויים ובלי הקפצות מחיר בדרך.

להלן הפתרונות שמצאתי:

  • הקלטת וידאו של מסך: אני אשתמש בתוכנות כמו Green Desktop ואחרים. נכון, זה לא יתן וידאו בגודל קטן של קבצים, ולכן אנצל את הוידאו להמרה (עם FFMPEG) ל-DNxHD על מנת לאפשר עריכת וידאו יותר קלה ל-Process מצד תוכנת עריכת הוידאו.
  • תוכנת עריכה מקצועית: אין Premiere Pro? ברוך הבא Davinci Resolve 15 ללינוקס (שמתקן את הבאגים של אודיו ללינוקס שהיה בגירסה 14). יש גירסה חופשית ויש גירסה מסחרית, אני כנראה ארכוש את המסחרית. יש בתוכנה כמעט כל מה שיש ב-Premiere ו-After Effects ומבחינת לימוד התוכנה היא נראית מקליפים שצפיתי – די קלה ללימוד.
  • פתרונות VPN: מי שאינו פרילאנסר אולי לא מכיר זאת, אבל כאן בישראל חברות רבות משתמשות ב-VPN מסוים ואינן זזות ממנו גם כשהמערכת יצאה לגמלאות. חלק מהחברות עדיין משתמש ב-VPN שמצריך ActiveX (אללה יוסטור), חלק משתמשות ב-JAVA, וחלק בכלל קיימות רק כ-Native ל-Windows. לזה אין ממש פתרון בלינוקס, ולכן אצטרך להשתמש כנראה ב-VM או Dual Boot, צריך להחליט..
  • מיקרוסופט אופיס: יש גוגל Docs ולמי שלא נוח, שיעביר קובץ PDF. ביי אופיס.

עם איזו הפצה אעבוד? כמו תמיד, אותה הפצה: Fedora האחרונה.

לסיכום: האם אני ממליץ למשתמשים לנטוש את Windows לטובת לינוקס? לא, אלא אם הם מוכנים להשקיע בלימוד לינוקס בצורה רצינית דרך טרמינל ופקודות. לי יש איזו דקה וחצי נסיון עם לינוקס אז אני יכול לעבור לשם ולהישאר שם רוב הזמן. מדוע אני עובר? כי סוף סוף יש לי פתרונות לרוב הדברים שאני צריך. אם לא היו לי פתרונות, לא הייתי עובר למרות שאני מחבב מאוד את לינוקס. יש לי עוד דברים לפתור (Kodi לא מעוניין להפעיל וידאו בחלון השני, מציג מסך שחור – תיקנתי בזמן שאני כותב את הפוסט הזה) אבל אני מאמין שעם השקעה פה ושם, אצליח להתגבר על הבעיות.

אז אתם רוצים ללמוד על לינוקס

אנחנו נמצאים בשנת 2018 וחדירת מערכת הלינוקס לחברות השונות נמצאת בעיצומה. כל סטארטאפ יודע מהיום הראשון שככל שמדובר בשרתים, הוא מהר מאוד יצטרך לעבוד על לינוקס. תחום מתודות ה-Devops והכלים שמשתמשים? סביר להניח שחלק גדול מהכלים יצטרכו שרת לינוקס לעבוד עליו. קונטיינרים? ב-Windows יש אבל זו בדיחה לא מצחיקה (שם זה בכלל VM) – אתם תצטרכו לינוקס להריץ את זה ואם אתם עובדים על עננים ציבוריים עם כלי אוטומציה, סביר להניח שהחיים יהיו יותר קלים עם טרמינל לינוקס (כן, מיקרוסופט משפרת את הקונסולות של ה-CMD וה-PowerShell אבל מספיק להריץ פקודת TOP ולהגדיל את החלון כדי לראות את הקונסולה Freak out ופתאום לא רואים כלום. במקרים כאלו פקודת reset תעזור, אגב).

בקיצור, לא חשוב איך נסתכל על זה, לינוקס נכנס כמעט לכל מקום אפשרי, כולל מקומות שהיו שמורים בעבר אך ורק למערכות מיקרוסופט. ב-Enterprise הכניסה הרבה יותר איטית – אבל היא מתרחשת.

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

אז קודם כל, הדבר הכי חשוב שצריך לזכור לגבי תחום הלינוקס – זה שהתחום מתפתח בקצב רצחני. אנשים לומדים עכשיו קונטיינרים על Docker ו-Kubernetes? הגיע הזמן שתכירו את ה"אח" שלו – cri-o. משתמשים בפתרונות של Docker ל-Enterprise? זה מת, תעברו ל-Kubernetes או OpenShift (תלוי בסביבה ובכל מיני פרמטרים).

בשביל להתחיל ללמוד לינוקס, מתחילים תמיד בבסיס, ומומלץ כמה שפחות להיות "תלוים" בממשק הגרפי, כי כשתגיעו לנהל שרתי לינוקס כלשהם, לא תמצא שם ממשק גרפי (ואם תתקין דבר כזה, בוא נאמר שצוות ה-IT לא יתפוס ממך כאיש לינוקס רציני), ולכן הדבר הראשון זה להכיר בצורה הכי קרובה את המסוף (Terminal). להכיר את מערכת הקבצים בלינוקס, להכיר הרשאות, פקודות, ואם אפשר – להכיר כמה הפצות לינוקס. אובונטו זה נחמד ודי פופולרי בענן, לא ממש פופולרי ב-Enterprise, שם RHEL (של רד-האט) או CentOS עדיין שולטים. הפצות לינוקס כמו Debian ו-Arch או Gentoo הן טובות – למי שרוצה להשקיע ממש לעומק בלינוקס.

אחרי שמכירים הרשאות קבצים ותיקיות, sudo, כדאי להכיר דברים כמו הפניות (redirection) כמו > | < שמאפשרות לקחת פלט מסוים ולהעביר אותו לפקודות/אפליקציות אחרות, כדאי להכיר גם פקודות המאפשרות לבצע מניפולציות לקבצים, פקודות כמו SED, AWK, GREP ועוד. יש כמובן לא מעט פקודות, ותמיד לכל פקודה ניתן למצוא את ה"מדריך" שלה עם פקודת man, כך שלדוגמא אם אין לי מושג ירקרק מה לכל הרוחות עושה awk, פקודת man awk תתן לך הסברים. חלק מה-manuals ארוכים מאוד ומפורטים מאוד (תסתכל על man awk כמה הוא ארוך!) וחלק מאוד קצרים וחיפוש בגוגל יוכל לעזור.

אחרי שנלמד כמה וכמה פקודות, יגיע הזמן שנצטרך שפת סקריפטים כדי להריץ את הפקודות ביחד מתוך קובץ. למי שמגיע מעולם מיקרוסופט, מכיר בוודאי קבצי Batch או PowerShell. בלינוקס כיום הדבר הכי פופולרי זה BASH, ועם BASH תוכלו לכתוב סקריפטים קצרים או ארוכים. השפה עצמה די קלה ללימוד אך מצד שני BASH מאוד פדנטי לגבי רווחים. יהיו לכם הרבה מקרים שתשברו את הראש מדוע סקריפט לא עובד ורק אחרי שעות חיפוש תגלו ש… ששכחתם רווח בין פקודה לסוגריים או שחסר איזה ; ואחד החסרונות הגדולים של BASH הוא שאין לך debug אמיתי.

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

בשביל לכתוב סקריפטים ואפליקציות רציניות, נצטרך משהו יותר "כבד" מ-BASH, ואחת ההמלצות הכי פופולריות היא שפת Python. עם Python אנחנו יכולים לכתוב דברים שיכלנו גם לכתוב ב-BASH, אבל היתרון הגדול של Python זו הכמות העצומה של הספריות שאנחנו יכולים להתממשק אליהם ולבצע דברים. כמעט כל אפליקציה או שרות שקיימים ללינוקס תומכים ב-API כלשהו ו-Python יכול לעזור לנו להתממשק ולבצע דברים. אגב, לפי מאמר שפורסם מלפני מס' ימים, Python היא שפת התכנות הכי פופולרית כיום, כך שמאוד מומלץ להכיר אותה.

ברגע שאנחנו מכירים לא רע את שפת Python ו-BASH, מכירים פקודות פופולריות של לינוקס ואנחנו מרגישים די נוח עם הטרמינל, יהיה כדאי להכיר כלי אוטומציה, כלים אלו יעזרו לכם לבצע דברים שונים בשרתים אחרים כך שלא תצטרכו להמציא את הגלגל מחדש בכל פעם ולא תצטרכו להריץ פקודה 20 פעם רק כי יש לכם 20 שרתים שונים. כלי האוטומציה שאני ממליץ עליו הוא Ansible שמאפשר לעשות כמעט כל דבר תוך כתיבת Playbook (שזה בעצם ה"תסריט") בפורמט YAML ומודולים ב.. Python. יש גם כלים אחרים ואם אתם עובדים עם עננים ציבוריים, סביר להניח שימליצו לכם לעבוד על consul או עם terraform. כל חברה והעדפותיה, כך שאם אתם חושבים לעבוד בתפקיד "Devops", כדאי שתכירו גם את terraform ותלמדו איך להתחבר לעננים כמו AWS כדי לעשות דברים שונים דרך ה-API של אמזון לדוגמא. עוד תחום שכדאי ללמוד, הוא ניהול קוד (כן, גם לדברים הקטנים שלך) עם כלי כמו GIT. אתה יכול להרים לעצמך בבית לדוגמא את GOGS, מנהל GIT קטן וחמוד שיכול לעזור לך הרבה.

דבר נוסף שחשוב הם השרותים שנמצאים בלינוקס. תכירו את SystemD, תכירו כלי כמו TOP (למפונקים שביניכם – htop), תכירו איך לנהל דיסק עם Volume Management, ועוד ועוד. כל קורס טוב שמדריך לינוקס מסביר פחות או יותר על הדברים רק שחשוב לזכור: הקורסים מסבירים דברים בצורה בסיסית בלבד וה"חבר" הכי טוב שלך הם פקודת ה-man לפקודות השונות.

מכאן – הכל תלוי לאן אתם רוצים לקחת את ההכרות שלכם עם לינוקס. תכנות? תכירו את השפות והכלים, ויש מאלו המון. כך לדוגמא אם אתם רוצים ללמוד על Kernel, פיתוח דרייברים וכו', תצטרכו להכיר עמוק את ה-GNU Chaintools ואת GCC, את GDB כ-Debugger ואת ה-proc filesystem, ניהול זכרון, scheduling, ועוד ועוד. שפות כמו PHP? תכירו את השפה וערימות המודולים שלה ואת הדרך להטעין דינמית מודולים, וכו' וכו'.

לסיכום: אם אתה רציני לגבי לימוד לינוקס, תתחיל בדברים שתיארתי לעיל. זה לוקח זמן ותרגול, זה לא MCITP של מיקרוסופט! חשוב שתגדיר לעצמך מה אתה רוצה ללמוד בלינוקס. חושב ללמוד על הכל בלינוקס? שכח מזה. הצצה לדוגמא בגירסאות Fedora שונות יכולה להראות לך כמה דברים משתנים בחודשים ספורים כך שמדובר ב"מטרה נעה". לכן חשוב להתפקס בדברים שאתה רוצה ו/או צריך ללמוד. את השאר תלמד בזמנך החופשי לפי הצרכים שלך.

לינוקס כדסקטופ בשימושים אצלי

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

מבחינתי, אצלי בבית יש לי כמה עשרות מכונות וירטואליות, לאפטופ ודסקטופ, בנוסף לכמה שרתים פיזיים. כמות מכונות ה-Windows שיש לי היא 3: מכונת הדסקטופ הראשית שלי היא Windows 10, יש לי מכונה וירטואלית שהיא גם Windows 10 (שמשמשת לצרכי חיבור VPN כשיש צורך להתחבר ללקוחות ממערכת נפרדת), ושרת וירטואלי (VM) שמריץ Windows 2012R2 שמשמש כשרת AD לצרכי בדיקת תאימות של תוכנות שונות. השאר – לינוקס, FreeBSD ומדי פעם אפילו Solaris כשצריך לבדוק אפליקציות כלשהן.

מי שלא מכיר אותי – יש לי איזה דקה ורבע של נסיון בלינוקס. אני לא הטיפוס שאם משהו לא עובד אז מיד נכנע ורץ להתלונן כמה לינוקס לא ידידותי. אישית, עוד מאז הימים שהתחילה מהפכת ה-ADSL בארץ, ישבתי לשבור את הראש כדי לגרום למודמי ADSL בחיבור USB שבזק חילקו – לעבוד בלינוקס, כך שעקשנות – לא חסרה לי. אחרי הכל, זו הפרנסה שלי כפרילאנסר ואני לא יכול לזרוק עבודה/פרויקט של לקוח, רק בגלל אתגרים במערכות לינוקס…

יחד עם זאת, לעניות דעתי, צריך להכיר בעובדות קיימות.

הסיבה שלי שאני מריץ Windows 10 על המכונת דסקטופ שלי היא די פשוטה: יש לא מעט תוכנות שאני צריך שקיימות רק ל-Windows ושום אמולציה או שימוש ב-Wine לא יעזרו. כך לדוגמא, כשאני מפרסם הדרכות/הדגמות תוכנות/אפליקציות/שרותים – אני משתמש בתוכנת Camtasia להקלטה, עריכה ויצוא הוידאו לפורמט H.264. האם אפשר להקליט מסך עם לינוקס תוך שימוש במיקרופון? בהחלט, אבל הקידוד של Camtasia ב-Windows יוצר קבצים שהם בגודל 10% בהשוואה להקלטת מסך בלינוקס. במקרים אחרים כשאני מקליט וידאו שבו אני מופיע, אני משתמש בתוכנת digicamControl שהיא בקוד פתוח ששולטת על מצלמת ה-Nikon (המעפנה) שלי ואת הוידאו אני עורך ב-Premiere. נכון, קיימות תוכנות עריכת וידאו בלינוקס, אבל את פרמייר Pro אני מוצא הכי נוחה (וכן, ניסיתי את Kdenlive ואחרות). פה ושם אני עובד טיפה עם פוטושופ לערוך תמונות, ואני פשוט לא מסתדר עם GIMP.

בלאפטופ שלי לעומת זאת מותקנת הפצת Fedora 28 עם KDE. אין שם Windows ואני כותב עם הלאפטופ כרגע את הפוסט הזה, ואני משתמש שם רק בלינוקס כי כל הצרכים שלי יכולים להתבצע בקלות על לינוקס. אני לא אערוך וידאו על הלאפטופ גם אם אדובי מחר תוציא את חבילת התוכנות שלה ללינוקס מהסיבה הפשוטה שאותו לאפטופ לא נוח מספיק (והמסך באיכות זוועה!), אבל בשבילי רוב העבודה על הלאפטופ זה טרמינל ודפדפן, וברוב המקרים, אפילו כרומבוק מספיק בשביל זה.

לאלו ששואלים אותי אם לעבור ללינוקס, אני אומר משהו פשוט: בדוק מה התוכנות שאתה צריך, האם תוכנות חליפיות יכולות לספק אותך והאם אתה מוכן לבצע Multiboot או להשתמש בוירטואליזציה. לינוקס לא יכול להחליף ב-100% כל מערכת Windows ואפליקציות שרצות עליה. לינוקס מבחינת שימושיות כדסקטופ עשתה צעדים גדולים בשנים האחרונות והפצות לינוקס מודרניות יודעות לתמוך ברוב הציוד מבלי שתצטרך להגדיר משהו, אבל מבחינת אפליקציות – יש אלטרנטיביות ראויות לתוכנות שונות ויש אלטרנטיבות גרועות ויש מקרים שאין אלטרנטיבות ואז יש צורך להגדיר את המכונה כ-Multiboot או להשתמש בוירטואליזציה (אם אין צורך בשימוש רציני ב-GPU ע"י האפליקציה – כמו באפליקציות של אדובי), והכי חשוב זה להכיר במציאות: דברים אינם שחור או לבן. אין שום דבר רע בשימוש ב-Windows כמו שאין שום דבר רע בשימוש בלינוקס.

על מצלמות אבטחה ופרצות

בשנים האחרונות יש טרנד מאוד אופנתי שנקרא "הבית החכם". מדובר בשוק פוטנציאלי ענק שכל חברה מנסה לתפוס בו איזו תפיסת רגל. המכשירים הכי ידועים שנמצאים כבר בבתים רבים הם ה"עוזרים הדיגיטליים", כמו Alexa של אמזון עם Google Home של גוגל שמאפשרים לך לא רק לשאול שאלות ולקבל תשובות, אלא גם לשלוט בציודים בבית. רוצים להדליק אור איך שאתם נכנסים הביתה? פקודה אחת והאורות דלוקים ואפשר לעשות דברים שונים.

אספקט אחר שתופס יותר ויותר מקום הם ה"עזרים הדיגיטליים" ששם נמצאים כל שאר הציודים לבית, החל מתוארה, מתגים חכמים שיכולים לשלוט על ציוד "טיפש", מזגנים ושאר ציודים שכוללים חיבור ל-WIFI והשימוש נעשה דרך אפליקציה יעודית בטלפון שלך ועד מערכות אזעקה מתוחכמות שמאפשרות לך לנטר מה קורה בבית ולבצע פעולות שונות.

ב-3 שנים האחרונות נכנסות גם המצלמות האבטחה החכמות הביתה. המצלמה לא דורשת מחשב אלא רק חיבור ל-WIFI, אפשר להגדיר אזורים "חמים" שאם בהם תהיה פעולה (כמו מישהו שנכנס הביתה והמצלמה מצלמת את אזור הכניסה לבית) – תקבל התראה, הוידאו עולה לענן ולא נשמר למחשב או ל-NAS בבית כך שגם אם פורץ חודר הביתה ומנסה להזיק למצלמה – רוב הסיכויים שעד שהוא יזיק – תמונתו עולה לענן וגם אם הוא ישבור את המצלמה לרסיסים – תמונתו תהיה קלה לשחזור.

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

אבל מי שנכנס לשוק ב-3 שנים האחרונות בצורה מאסיבית הן מצלמות האבטחה הסיניות. מבחינת חומרה במקרים רבים היא נותנת תוצאת וידאו בינונית פלוס. גם שיאומי נכנסה לשוק עם מצלמות כמו זו בתמונה משמאל (יש גם דגם מכני שהמצלמה מסתובבת) עם וידאו/תמונות באיכות מעולה, ממשק די קל לשימוש, ושמירה בענן של הוידאו והתמונות לשבוע בענן של שיאומי בחינם.

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

אז מה ניתן לעשות בנידון?

מי שקורא את הבלוגים שלי יודע שאני האחרון שימליץ לדוגמא לזרוק את הטלפון הסלולרי מקומה עשירית לאחר 2-3 שנות שימוש. בעזרת חבר שמבין טוב במחשבים ניתן (בטלפונים מבוססי אנדרואיד) להחליף מערכת הפעלה וכך לקבל את רוב הפונקציות החדשות במכשיר הישן שלכם ולהמשיך להשתמש בו עוד שנתיים שלוש ויותר בלי בעיה. אותו דבר ניתן לעשות עם המצלמות הללו (אגב, התמונה שמשודרת לענן של שיאומי מוצפנת, היא מוצפנת במכשיר ואז נשלחת).

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

מה קורה בעולם הכרומבוקים (עדכון)

זה היה ב-4/10/2017. גוגל שחררה לעולם את ה-Pixelbook שלה. ערוצי המדיה השונים קיבלו את המחשב לסקירה וכולם כתבו את אותו דבר: מבחינת חומרה, מדובר במחשב מעולה, מקלדת נוחה, עט טוב, משטח trackpad מעולה ובקיצור – מחשב נוח שעובד מעולה. הבעיה מתחילה עם מערכת ההפעלה – כרום OS שלא נותנת לך הרבה: לגלוש ברשת ולהפעיל אפליקציות מבוססות Web ולהריץ אפליקציות של אנדרואיד, ואת כל זה אתה יכול לעשות במחשבי כרומבוק אחרים בפחות ממחצית המחיר, אז מדוע גוגל מוציאה מחשב כזה ובמחיר כה גבוה?

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

אז מדוע גוגל עשו זאת?

גוגל מודעים לכך שהפעלת אפליקציות Web ואפליקציות אנדרואיד על כרומבוק לא תסייע לה בחדירה לשוק (מעבר לשוק הלימודים בכיתות ה'-י"ב), אבל גוגל כן רוצים לחדור לשוק, ולהיכנס לדוגמא לשוק המפתחים (שם המק כבש מקום מאוד רציני, לכו לכל כנס ותראו במה הקהל משתמש). נכון, אפשר להריץ crouton ולהתקין את הפצת הלינוקס החביבה עליך, אבל לשם כך תצטרך להעביר את הכרומבוק שלך למצב developer mode ובדרך תאבד חצי מההגנות שיש בכרומבוק, שלא לדבר על כך ששילוב אפליקציות לינוקס גרפיות במסך הכרום OS הוא כרגע דבר די גרוע (עם תוסף XIWI). בקיצור אם אני רוצה להריץ כל אפליקציה גרפית עם האצה גרפית, האפשרות היחידה שלי היתה להריץ crouton ולהחליף בין סביבת כרום OS לסביבה מבוססת X.org.

הערה: כל הדברים הבאים לא זמינים לכרומבוקים, אלא רק ל-Pixelbook וגם זה רק בערוץ dev

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

מכאן אנחנו מגיעים לסביבה הגרפית. גוגל לקחה את ה-GTK ויצרה עבורו Theme שמבוסס על Material Design כך שאפליקציות מבוססות GTK יראו כאילו נוצרו עבור אנדרואיד/כרום OS. הנה דוגמא (לחצו להגדלה):

מה עם אפליקציות שמבוססות QT? אל דאגה. להם יש כבר Material, וזה נראה כך (יש בצורה בהירה וגם בצורה כהה, להלן הצורה הבהירה:

הצעד הבא שהמהנדסים בגוגל עובדים עליו ממש בימים אלו הוא האצה גרפית (בכל זאת, אם אני רוצה להריץ VLC, אני מעוניין לקבל את כל הפריימים בקליפ, לא 5 פריימים בשניה), כך שאפליקציות מבוססות לינוקס יוכלו לרוץ במהירות טבעית ולהראות גרפיקה בדיוק באותם ביצועים כאילו הרצת אותם על סביבת Xorg רגילה.

הצעד הבא שגוגל עובדת עליו כרגע נקרא ALTOS (כן, ALT OS) וכשמו כן הוא – לראשונה תוכל באופן רשמי גם להתקין Windows על הכרומבוק שלך, רק שבניגוד למחשבים אחרים, אין יותר BIOS, ואין Management Engine שמלאים חורי אבטחה כרימון. יש את Core boot ועדיין יש את מנגנון העדכונים האוטומטי שמתעדכן ומאפשר לך גם לעשות roll back.

ומה בעתיד? בשלב זה אני יכול רק לנחש שגוגל תכניס את KVM ואת העבודה שאינטל עשתה (ה-GVT) כך שתוכל להפעיל מערכת הפעלה (כמו WIndows) בחלון וירטואלי ולקבל האצה גרפית רצינית (הרבה יותר ממה ש-VirtualBox או VMware workstation מציעים כיום!).

אני מאמין שלקראת אוקטובר, גוגל תצא בהכרזה יחד עם יצרני המחשבים השותפים שלה (כולם בתוכנית השותפות) עם כרומבוקים הכוללים מפרט הרבה יותר משמעותי: 8-32 ג'יגהבייט זכרון, דיסקים SSD בגודל 128-1024 ג'יגהבייט ועם הכרום OS האחרון הכולל שיפורים אלו. חשוב לזכור, שיפורים אלו ירוצו על חלק נכבד מהכרומבוקים הזמינים היום בשוק, רק שלצערי כרומבוק, כמו מק – לא ניתן להרחבה.

לסיכום: לא מעט אנשים מעוניינים לקפוץ למערכת הפעלה אלטרנטיבית וכשהם מתקינים אובונטו או פדורה הם במקרים רבים מתאכזבים – אי אפשר להגדיר כך וכך, זה לא עובד ואין את אפליקציה XYZ שהמשתמש רוצה. נכון, בלא מעט מקרים חיפוש בגוגל וקצת השקעה ואפשר להמשיך לעבוד עם אותה הפצת לינוקס, אבל לא כולם מוכנים להשקיע בכך. כרום OS מצד שני היא מאוד קלה לשימוש (תאמינו לי, חילקתי כרומבוקים למשתמשים שבקושי מצליחים עם Windows ואני לא שומע מהם תלונות) ואני בטוח שגוגל תעשה את הכל כדי להוסיף תמיכה קלה בלינוקס (אני משער שהם גם ירחיבו את החנות שלהם לאפליקציות לינוקס כך שההתקנה והסרה יהיו קלים וקל יהיה למצוא אפליקציות) ובכך סוף סוף שוק הלינוקס בתחום הדסקטופ יוכל רק לגדול ואולי חברות תוכנה אחרות שלא כתבו עד היום אפליקציות למשתמשי לינוקס (היי אדובי) יתחילו להמיר אפליקציות כך שהשוק רק יגדל.

ה-LAB הבא פרק 10: חסימת פרסומות למכשירים בבית

קוראי בלוג זה הותיקים בוודאי יודעים על דעתי על פרסומות באתרים (אין לי בעיה עם פרסומות, כל עוד הם לא קופצים לך על הפרצוף ומפעילים מוסיקה בווליום בגלל שהעברת את העכבר בטעות ליידם ובוודאי לא פרסומות שגורמות למחשב לעבוד בצורה איטית!), ולכן החלטתי הפעם להדגים התקנה של אובונטו LTS עם PiHole, תוכנה בקוד חופשי שהופכת את המכונה שהיא רצה עליה לשרת DNS פנימי בבית/LAB כך שכל המשתמשים בבית שמשתמשים ברשת הפנימית/WIFI יוכלו לגלוש ללא פרסומות (כמעט).במילים אחרות, Pi Hole הוא מעין "פרוקסי" למכשירים/מחשבים בבית  שלך שמונע את הפרסומות מבלי שתצטרך להגדיר כל מכשיר/מחשב עם כל מיני חוסמי פרסומות.

לשם כך יש צורך ב-VM אבל למי שאין LAB או מערכת וירטואליזציה בבית, גם פתרון של Raspberry Pi-3 יעודי (ב-69$ כולל כל מה שצריך) יכול להיות פתרון מצוין לכך.

בעקרון מה ש-PiHole עושה הוא בעצם משמש כשרת DNS פנימי ויש צורך להגדיר בנתב הביתי את כתובת ה-DNS לשרות ה-DHCP אל ה-Pi Hole עצמו כך שכל בקשת DNS תעבור דרך האפליקציה ואם האתר מבקש גישה לשרת פרסומות, שרת הפרסומות חסום, וכך מקבלים גלישה טובה נטולת פרסומות (טוב, ברוב המקרים, לא כולם, במיוחד באתרים ישראליים ובפייסבוק). אם יש לכם שרת DNS פנימי כחלק מה-LAB, תוכלו להגדיר את ה-Pi Hole שיפנה אל שרת ה-DNS הפנימי הנוכחי שלכם ואם אתם רוצים שרת DHCP במקום שרות ה-DHCP של הנתב שלכם, אפשר לבטל שרות זה בנתב ולהפעיל זאת ב-Pi Hole.

בוידאו כאן תוכלו לראות הדגמה של הקמת שרת אובונטו LTS, הקמה והגדרות של Pi Hole.

ה-LAB הבא פרק 8: רשת 10 ג'יגהביט?

כשאנחנו בונים LAB לבית שלנו, אחת הנקודות החשובות היא חיבוריות בין אמצעי האחסון (NAS ברוב המקרים) לבין השרתים שלנו. אחרי הכל, לא חשוב איזו מערכת הפעלה השרתים יריצו, צריך לחבר אותם ל-NAS כדי להעביר נתונים, להתקין מכונות VM או קונטיינרים, להעביר נתונים וכו'. יש לנו בעצם 2 "רשתות" – הרשת האחת היא בין השרתים ל-NAS, והשניה היא בין השרתים (והשלישית זה תקשורת כניסה/יציאה לאינטרנט). בד"כ אנחנו נשתמש במתג (Switch) כלשהו כדי לחבר את הכל כך שכל מכונה תקבל כבל תקשורת אחד במהירות 1 ג'יגהביט או שנחבר מספר חיבורים פיזיים ב-Teaming כדי לקבל מהירות יותר גבוהה מ-1 ג'יגהביט.

נשאלת השאלה: האם אנחנו צריכים מהירות יותר גבוהה מ-1 ג'יגהביט? הבה נראה:

נתחיל ב-NAS שלנו (לא חשוב איזו מערכת הפעלה או איזה File System יש על ה-NAS). סביר להניח שהוא יכלול לפחות 4 דיסקים ומעלה. בואו נסתכל לדוגמא על דיסקים Red Pro של Western Digital (המתחרים נותנים את אותם נתונים). לחצו על התמונה להגדלה:

כפי שאתם יכולים לראות, דיסק קשיח שמעביר כמות נתונים גדולה ברציפות, מעביר אותם במהירות החל מ-164 מגהבייט לשניה ועד 240 מגהבייט לשניה במקרה של דיסק 10 טרהבייט. סביר להניח שנשתמש ב-RAID כלשהו (או RAIDZ ב-ZFS) כך שאם נעביר קובץ שמתחיל אפילו בג'יגהבייט אחד, מהר מאוד נגלה שצוואר הבקבוק שלנו הוא חיבור הרשת. אם תסתכלו אצלכם בעבודה, החיבור בין ה-SAN לשרתים כלל אינו מבוצע על כבל רשת נחושת אלא על סיב אופטי במהירות 8 ג'יגהביט ומעלה (או בחיבור SFF-8088 או SFF-8640, תלוי בסטורג'). מכיוון שלרובינו לא יהיה SAN בבית נצטרך בעצם למצוא דרך לבצע חיבור מהיר בין ה-NAS לבין השרתים. יש כמובן את שיטת ה-Teaming לחבר מס' כבלי נחושת Ethernet ביחד ליצור רוחב פס של 4 ג'יגהביט, אבל ישנו פתרון יותר טוב ומה שחשוב – יותר אמין.

לשם כך נצטרך 3 כרטיסי רשת 10 ג'יגהביט +SFP כאשר 2 מהם עם כניסה יחידה וכרטיס אחד עם כניסה כפולה. כאן לדוגמא אפשר לקנות 2 כרטיסים וזה יעלה בסביבות ה-240 שקלים (יכול להיות פחות), וכאן יש לנו כרטיס עם כניסה כפולה במחיר של 208 שקל (כדאי לדבר עם המוכר, הוא ישראלי). כדי לחבר בין הכרטיסים, מומלץ להשתמש בכבל DAC (כלומר Direct Attach Cable) בין ה-NAS לשרתים, נצטרך לפחות 2 כבלים (אם יש לך 2 שרתים) או יותר (אם יש לך יותר). כאן אפשר לרכוש חבילה של 10 כבלים (באורך 2 מטר) מסוג TwinAx Copper במחיר של 660 שקל + משלוח. אם לעומת זאת אתה רוצה לרכוש בבודדים, אתה יכול להציץ כאן ולרכוש ב-20$ כבל באורך 3 מטר. לאחר רכישה והתקנה, כל מה שנשאר לעשות זה להגדיר חיבוריות 10 ג'יגה, הגדרת Jumbo Frames ולהגדיר ב-DNS כתובת IP שונה כדי שקבלת/שליחת קבצים במכונות תהיה דרך ה-10 ג'יגהביט ולא דרך ה-1 ג'יגהביט.

לסיכום: חיבור 10 ג'יגהביט אינו כה יקר בין המחשבים והשרתים ל-NAS (יוצא בסביבות ה-600 שקל פלוס מינוס) והיתרון הגדול בחיבור כזה הוא מהירות תעבורת הנתונים ללא צורך במתג 10 ג'יגהביט וללא צורך בידע רציני כיצד להגדיר זאת. אם לדוגמא אתם עובדים עם "מדף" או עם JBOD שמחובר לשרת כלשהו, אז מחברים כרטיס כניסה כפולה לשרת ומגדירים את הכל כרגיל.