כאב ראש: התקנת אפליקציות כבדות וממשקי משתמש בהווה

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

אחת הבעיות היותר מתסכלות בכל מיני אפליקציות כבדות – היא התקנה במערכות לינוקס (ואני לא מדבר על התקנת אפליקציות ב-DEB או RPM שבהם פקודת yum או apt עושה לך את העבודה). תרשו לי לתת 2 דוגמאות להקמת מערכת POC של אפליקציות כבדות כאלו.

נתחיל עם OpenStack. חברת קוקי יבואני נעליים (כן, שם מהסרטים) החליטה ש-Openstack זה יכול להיות אחלה פתרון בשבילם, אבל הם קודם רוצים ללמוד בכלל מה זה, ואם אפשר – שיקימו על VM את המערכת שהחבר'ה יוכלו להתרשם וקצת לשחק עם זה. בשום מקרה ה-VM לא הולך להיות שרת פרודקשן. במקרה כזה אם מישהו מחברת קוקי יצור איתי כפרילאנסר קשר לגבי זה, אשמח לדוגמא להפנות אותם לדף פרויקט ה-RDO כדי להקים את ה-OpenStack. כל איש סיסטם, גם אחד כזה שאין לו הרבה נסיון עם לינוקס יוכל לעקוב אחר ההוראות הכי פשוטות ולהקים מערכת. אחרי הכל, כל מה שאיש הסיסטם יצטרך לעשות זה להקים VM עם מערכת הפעלה CentOS 7, עם 32 ג'יגהבייט זכרון ועם 4 ליבות, לבצע SSH למערכת, לוודא ששם ה-hostname הוא אכן תקין ומופיע ב-DNS של החברה, ולהריץ את הפקודות. משם הכל יבוצע באופן אוטומטי ולבסוף גם יופיעו לו הוראות איך להתחבר למערכת.

האם זה שנתתי לו את הלינק, גרם לי בעצם כפרילאנסר להפסיד עבודה? לא ממש. כלל מס' 1 כאינטגרטור הוא שעצם ההתקנה לא ממש תתן לך רווח רציני (כמה רווח תעשה מ-1-4 שעות?). מה שכן יוצר רווח הוא חוזה תמיכה/בנק שעות לתמוך ב-OpenStack. זיכרו: התקנת OpenStack כוללת יותר מ-1700 חבילות ומאות הגדרות שונות במערכת שרצה על מספר שרתים. תקלה קטנה בקוד – וחלק מהשרותים פשוט לא פעילים ושום מערכת אוטומציה לא ממש תעזור. מישהו צריך להסביר לחברה על החלקים הגדולים השונים מה הם עושים ואיך עושים, מה צריך לעשות וכשצריך – גם לטפל בתקלות וכמובן לחברות לא מומלץ להשתמש בגירסה החופשית אלא בגירסה המסחרית כדי לקבל עדכוני תוכנה.

ויש גם דוגמאות הפוכות: אותה חברת קוקי, נניח שהיא קראה בבלוג העסקי שלי על OpenShift והיא רוצה להקים אותו אצלה כדי "לשחק" עם הפלטפורמה. בחברה יש כבר נסיון עם קונטיינרים והם שוב פונים אליי, ואני אשמח להפנות אותם לדף הזה אם הם משתמשים במערכות Red Hat או לדף הזה אם הם משתמשים ב-CentOS וספציפית לחלק של הקונטיינרים עם Docker. הפקודה שם לא תעבוד כי מישהו שכח להוסיף פרמטר
(v /sys/fs/cgroup:/sys/fs/cgroup:rw-) ורק אחרי הוספת הפרמטר הקונטיינרים יעלו והמערכת תעבוד, אבל אחרי שהם יכנסו למערכת הם יראו שיש מספר "הפתעות" לא נעימות כמו:

  • אין Templates. למה? שאלה טובה. אפשר להשלים את זה כשעוקבים אחר ההוראות בדף הזה (ההוראות שם לא תמיד עובדות, יש צורך בידע ב-BASH) כדי להתגבר.
  • על מנת להקים קונטיינרים ולאכסן אותם – יש צורך ב-Container Registry. הפתעה! יש קונטיינר עם Registry אבל הקונטיינר של ה-OpenShift והוא "לא מדברים", בהצלחה עם השילוב ביניהם.

אז אולי יש דרך אחרת להקים OpenShift? כן, יש Installer כלשהו וזה זמין כאן אך מכיוון שרובנו עובדים עם CentOS ולא עם RedHat אז עדיף לך ללכת לקישור לדף העליון שמוזכר לגבי CentOS, רק שאל תבנה על כך יותר מדי, רד-האט הוציאו את ה-Installer הזה לפנסיה מוקדמת. פתרון חלופי ל-Installer? רעיון טוב, בינתיים אין משהו. יש כמובן את הדרך של ההתקנה עם Ansible, רק שהיא מצריכה ידע כלשהו ב-Ansible והיא דרך די מעולה… לגרום לך להוציא שערות מהאף (אם אתה לא מכיר Ansible). יש כמובן דוגמאות באינטרנט איך אתה יוצר קובץ הגדרות די מינימלי ומריץ אותו מול תיקיה מסויימת ב-openshift-ansible (שאותו אתה צריך לשכפל מה-GIT) עם קובץ מה-GIT בשם openshift-ansible/playbook/byo/config.yml רק ש.. הפתעה, הקובץ config.yml לא קיים, ואף אחד לא טרח לעדכן את זה וגם כשאתה מצליח למצוא פתרון חלופי (כאן) תקבל כמה שגיאות בהרצת ה-playbook (הנה הטיקט שלי על כך) כאן.

(אגב, מי שמחפש להקים על הלאפטופ שלו את OpenShift, יש את minishift שהוא באמת קל להתקנה ולחובבי Kubernetes יש את minikube – הכל רץ על Windows, Mac ולינוקס כל עוד מותקן לכם פתרון וירטואליזציה בלאפטופ, אם כי יש בעיה להקים את זה על ESXI, המערכת מקימה בתוכה VM פנימי עם NAT ואז אינך יכול לגשת לשם ממשק web או לאפליקציות שלך. שינוי מ-NAT ל-Bridge לא עוזר).

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

  1. לבנות ממשק Web או ממשק טרמינל עם ncurses (זוהי ספריה שמאפשרת לך ליצור "GUI" טקסטואלי, משהו שמזכיר בעבר הרחוק את Magic ב-DOS למי שזוכר) שאיתם ניתן לבנות ממשק ששואל את המשתמש קבוצת שאלות כל פעם.
  2. ממשק ה-Web/GUI אמור לבדוק את הפרמטרים מיידית. הכנסת שם FQDN לא נכון? כתובת לא נכונה? פורט לא נכון? תיקיה לא נכונה? המערכת אמורה מיידית לסמן שהפרמטר בשדה זה שגוי (בד"כ עם מסגרת מלבנית אדומה סביב אותו שדה) ולא לתת למשתמש להמשיך הלאה עד שזה יתוקן.
  3. אפשרות חביבה שקיימת ב-oVirt היא שמירת קובץ תשובות, כך שאפשר במסגרת ממשק ההתקנה לאפשר למשתמש להעלות קובץ תשובות קודם, כך שאם צריך להקים את המערכת בשרת אחר, הדברים יהיו קלים ומהירים בהרבה.
  4. התקנה אוטומטית דרך SALT או Ansible הכלולים בחבילה אמורה להוציא גם פלט קריא אנושית כך שגם מישהו שאינו מומחה אוטומציה יוכל להבין מה בדיוק התקלה ואולי יוכל לתקן אותה. אחרי הכל – אם מישהו נמצא במסגרת Trial, הוא לא תמיד זכאי לתמיכה.

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

ה-LAB הבא: פרק 5, בחירת File system ורשת (חלק ראשון)

בפרק הקודם הזכרתי את עניין קנית JBOD או הקמת שרת קבצים, חיבור ב- +SFP. הפעם נרחיב קצת יותר לגבי אותו חיבור, אבל נתחיל במשהו פשוט. להלן צילום מסך מתוך מכונת VM עם Windows 10 בשרתים שלי:

מה שאתם רואים זה הרצת תוכנת בדיקת מהירות דיסק בשם CrystalDiskMark 6 והתוצאות … לא נראות מי יודע מה, בלשון המעטה. דיסק SSD פשוט ב-400 שקל יתן ביצועים פי 5 מזה ואם תבדקו בתשתית שלכם בעבודה, הביצועים יהיו הרבה יותר גבוהים. (מדוע? כבר אסביר).

נכון להרגע, מכונת ה-ZFS שיש לי היא מכונה די צנועה:

  • מעבד I5 דור שלישי
  • 16 ג'יגהבייט זכרון
  • 4 דיסקים, 2 דיסקים של 2 טרה ו-2 דיסקים של 4 טרה, והם ב-Mirror. הדיסקים כולם של Western Digital מסידרת RED (לא RED PRO) – טעות שעשיתי…
  • 2 דיסקים SSD ממש ישנים בגודל 256 ג'יגה של SANDISK, הם משמשים ל-Cache ול-Log

בקיצור – מכונה מהסוג המאוד נמוך.

ובכל זאת, מה שאנחנו רואים פה, הוא שלמרות שהציוד בקצה המאוד נמוך, המכונה נותנת תוצאות מרשימות. 1 ג'יגהביט בקריאה וכתיבה Sequence, כלומר צוואר הבקבוק איננו מכונת ה-ZFS, אלא התקשורת בינה לשרתים, כלומר לא חשוב איזה מכונה תקנה או תקים, כל עוד היא מחוברת בתקשורת 1 ג'יגהביט, זה מה שתקבל. אפשר כמובן לעשות Teaming ל-2 או 4 חיבורי רשת (לא מומלץ, מקבלים לא מעט נפילות, תלוי בציוד, כבלים) ולקבל תוצאות יותר טובות, אבל עדיין בהשוואה להטמעת ESXI בחברה גדולה – התוצאות יהיו נמוכות יותר.

אז איך נגיע לביצועים טובים מבלי לקחת משכנתא?

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

האפשרויות שלפנינו הן (אם נצא מתוך הנחה שיש לנו 2 שרתים שמריצים VM/קונטיינרים ושרת קבצים יחיד או שרת עם JBOD):

  • קניית 3 כרטיסי רשת: כרטיס אחד עם זוג פורטים 10GB בחיבור RJ45 ו-2 כרטיסים עם פורט RJ45 במהירות 10 ג'יגה. הכרטיס עם זוג הכניסות ישב בשרת הקבצים ומשם נחבר כבל רשת CAT6 (או 6E) לכל שרת בכרטיס רשת 10GB החדש שרכשנו והתקננו.
  • אופציה נוספת היא רכישת 3 כרטיסי רשת כמו מקודם, רק שהפעם במקום RJ45 אנחנו נקנה כרטיסים שהם +SFP שתומכים ב-Copper (או TwinAx) ונבצע את אותם חיבורים. היתרון? כבלי +SFP הרבה יותר חזקים והחיבור הרבה יותר טוב מ-RJ45.
  • אפשרות נוספת היא כמו האופציה הקודמת, רק עם סיבים אופטיים. אפשר לקנות כרטיסים עם חיבור אופטי (או כרטיסי CNA שמתאימים לעבודה גם עם אופטי וגם עם כבלי Copper). בנוסף לכרטיס ולכבלים יש צורך לרכוש Transceivers על מנת לחבר את הסיבים אליהם ואז לחבר לכרטיס. יש צורך בידע כיצד להגדיר את החיבורי סיבים.
  • אפשרות נוספת וקצת יותר מורכבת היא Infiniband. יש לרכוש כבלים מיוחדים וכרטיסים יעודיים לכך, ויש צורך בידע כיצד להגדיר זאת למערכות הפעלה אחרות.

מבחינת מחירים, כל האופציות שנתתי כאן הם פחות או יותר אותו מחיר (בהבדלים של 100-250 שקל) ואני ממליץ לערוך קצת סקירות שוק ב-eBay לפני קניה.

אם יש לנו יותר מ-2 שרתים שיריצו VM/קונטיינרים, אז אפשר להוסיף לשרת הקבצים עוד כרטיס עם זוג פורטים או לרכוש מלכתחילה כרטיס מרובע פורטים. אם לעומת זאת ה-LAB שלך הוא רחב וכולל 8-10 שרתים פיזיים, כדאי בהחלט לחשוב על Switch לאותו סוג חיבור שאתה רוצה לעבוד איתו.

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

וכאן שוב נחזור לעניין ה-Storage ובמיוחד ל-File system: שום NAS מוכן שתקנו (למעט אלו של iXsystems) לא יתנו ביצועים כמו ש-ZFS נותן. ZFS משתמש ב-RAM וב-SSD בצורה מאוד חכמה ובשעה שפתרונות סטורג' "ביתיים" משתמשים ב-SSD לשם האצת כתיבה/קריאה, ZFS משתמש קודם כל ב-RAM, בשיטת הטרנזאקציות ולוגים ועוד (אפשר לקרוא על כך כאן) ולכן אם אתם רוצים להקים כמה שרתים ועליהם עשרות VM או קונטיינרים, ZFS מתאים לכך הרבה יותר, חוץ מהעובדה שהרבה יותר קל ליצור איתו Snapshots שכוללים לדוגמא את כל מכונות ה-VM או קונטיינרים או תיקיות מסויימות והמערכת יוצרת אוטומטית snapshots יעילים וקטנים לפי מה שמגדירים אותה (אצלי לדוגמא יש snapshots כל רבע שעה, כל שעה, כל יום, כל שבוע, כל חודש וכל רבעון, וכל מה שיש לי ב-ZFS זה דיסקים של 6 טרה, ותתפלאו, כל ה-snapshots לא תפסו הרבה מקום ויחסית קל מאוד לשחזר קובץ/קבצים או תיקיה/תיקיות בעזרת פקודות shell פשוטות מאוד).

בנוסף, מכיוון ש-ZFS עושה המון שימוש ב-RAM כ-Cache רמה ראשונה (רמה שניה, L2 מבוצעת על SSD) – כמה שיותר זכרון שתתנו לו, הביצועים יהיו יותר גבוהים ועם שרתים יד שניה המחירים לא כאלו גבוהים. אם לדוגמא שרתי R610 שרכשתי, אם אכניס להם זכרון שירוץ במהירות 1 ג'יגהרץ אך עם 192 ג'יגהבייט זכרון, עלות הזכרון כולו (12 מקלות של 16 ג'יגהבייט) תעלה לי … 2000 שקלים, שזה פחות או יותר המחיר של .. 32 ג'יגהבייט DDR4. אגב, על R710 (ה"אח" היותר גדול של R610 – אותו דור) אפשר להלביש 288 ג'יגהבייט זכרון מאפס (כלומר ללא המקלות הקודמים ב-3130 ש"ח (פלוס משלוח ומסים לארץ). שוב, לשם השוואה – 64 ג'יגה זכרון DDR4 עולה יותר מ-5000 שקל.

בפרק הבא נדבר על רשתות, VLAN, ציוד מומלץ וכו'.

ה-LAB הבא פרק 4 – בניית Storage חלק שני

בפוסט הקודם דיברתי על בניית Storage ל-LAB שלכם, ודיברתי יותר על תוכנה (OS וכו') מאשר חומרה. הפעם אשלים את הפערים לגבי חומרה.

טכנית, הפתרון הכי פשוט ל-LAB קטן זה לקחת שרת 1U, למלא אותו בדיסקים, להקים בשרת VM, ולייעד חלק מה-Datastore שיהיה שרת iSCSI/NFS/CIFS וכו'. זה לא יתן את הביצועים הכי טובים (בכל זאת, אתם לא יכולים למפות את הכרטיס RAID ל-VM כי המערכת משתמשת בו, אלא אם תפרידו פורטים של SAS מהכרטיס RAID הפנימי לטובת כרטיס RAID אחר) – אבל כשהתקציב מצומצם וצריך משהו פה ועכשיו – זה יכול להיות פתרון.

אבל יש עוד פתרונות.

אחד הפתרונות הפופולריים הוא קניה של JBOD (כלומר Just a Bunch Of Disks, יש גם הסברים אחרים ל-JBOD). בעקרון JBOD הוא דבר די "טיפש" שאינו מכיל מחשב X86 בתוכו אלא בקר יעודי שכל תפקידו הוא להתחבר לחיבורי המיני SAS ב-Backplane (חיבור עם כבל SFF 8087) ולהוציא אותם החוצה, כך שאם יש לך לדוגמא ב-JBOD כ-3 שורות של 4 דיסקים לדוגמא, תצטרך לחבר 3 כבלי SFF-8088 (בתמונה מימין) בין ה-JBOD לבין המכונה שתריץ ה-OS שיתן שרותי קבצים.

ישנם קופסאות עם JBOD עם כרטיסים יותר חכמים שמוציאים את כל תעבורת הדיסקים שלכם על SFF-8088 יחיד ויש עוד כניסה שמאפשרת שרשור מתמשך של קופסאות JBOD (כך ניתן לשרשר עד 1024 דיסקים SATA או SAS), כך שבסופו של דבר, שרת 1U שמריץ פתרון וירטואליזציה, כרטיס RAID עם כניסות חיצוניות שממופה ל-VM – ותוכלו להרים יופי של פתרון שרת קבצים.

ויש כמובן את הפתרון שהרבה יעדיפו – לרכוש מארז 2U גנרי לשרת כמו Chenbro, iStarUSA, NorcoTek ואחרים, להכניס שם לוח אם דסקטופ עם מעבד פשוט וכמות זכרון צנועה וכרטיס רשת, לדחוף דיסקים ולבנות שרת קבצים כמכונה יעודית או לרכוש פשוט שרת 2U יעודי יד שניה. החסרון ברכישת שרת יעודי יד שניה זה שאתה עלול למצוא את עצמך עם ביצועים מופחתים ב-50%, הואיל ושרתים רבים הם ישנים ועדיין עובדים עם SATA 2, כלומר מחצית מהמהירות של SATA-3. במקרים כאלו אם מחליטים לרכוש שרת כזה, קנו כרטיס RAID יעודי וחברו אותו ל-Backplane במקום כרטיס ה-RAID שנמצא בשרת, רק תוודאו שהוא תומך ב-SATA-3.

לסיכום: ה-LAB שלך יכול לתת ביצועים טובים או גרועים – תלוי בפתרון Storage שתבחר להקים/לרכוש. אם בחרת לדוגמא להכניס דיסקים מכניים 2.5 אינטש של לאפטופים (כי מצאת בזול) – יהיה מצב שה-VM יעלו לאט וכל פעולה שדורשת שימוש בדיסקים תהיה איטית בגלל שמהירות הדיסקים הזו היא איטית יחסית (5400 סיבובים לדקה מול 7200 בדיסק טוב). לעומת זאת, אם תבחר דיסקים קשיחים במהירות 7200 RPM ותוסיף דיסק או 2 SSD שישמשו כ-Cache, הביצועים שלך יהיו (יחסית) טובים. נכון, זה רק LAB ביתי, אבל חוק מרפי אומר שלפעמים כשאתה בדיוק צריך לבדוק משהו ועכשיו – ביצועים טובים מאוד יעזרו לך.

ה-LAB הבא פרק 3 – בניית Storage

בפרק השלישי אנחנו נדבר על Storage. אם יש משהו שאנחנו צריכים ל-LAB – זה Storage. זה יכול להיות משהו קטן וצנוע, וזה יכול להיות 4 שרתים ב-Cluster שמריצים CEPH עם כרטיסים של 10 ג'יגהביט או GlusterFS עם 3-4 שרתים שיתנו לנו מה שאנחנו צריכים. בקיצור – הטווח רחב.

אז לפני שנשלוף את כרטיס האשראי, נרוץ ל-eBay ולאמזון לרכוש ציוד – צריך לבדוק מה הצרכים שלכם. אם לדוגמא אתם רק רוצים לבנות איזה NAS קטן לארח קבצים (ISO, סרטים, סדרות, כמה VMDK קטנים וכו') אז כל מה שאתם צריכים זה לוח אם עם מעבד בינוני (מעבד i5 או i7 מלפני דור או 2), 8-32 ג'יגה זכרון, וכמובן – דיסקים קשיחים. לצרכים כמו שתיארתי לעיל, ערימת דיסקים קשיחים מכניים + כונן SSD יספיקו. אם לעומת זאת אתם רוצים להריץ את כל ה-VM/קונטיינרים שלכם דרך NFS או iSCSI, אז נצטרך משאבים יותר רציניים כמו SSD מכובד (סידרת ה-PRO של סמסונג היא בחירה מעולה, גם Crucial MX300 זו בחירה טובה). אם לעומת זאת אתם רוצים לחבר את כל המכונות (ויש לכם יותר מ-20 מכונות VM רצות) לאותו Storage בחיבור 10 ג'יגהביט (RJ45 או +SFP) – אני ממליץ על 2 כרטיסי Intel Optane 900P בגודל 280 ג'יגה בתצורת RAID-0 שישמשו כ-Cache.

שאלת השאלות כמובן היא – מה להתקין מבחינת OS? יש לכך כמה תשובות:

  • אם אתה לא אוהב לינוקס/שונא לינוקס/לא מכיר לינוקס/פוחד מלינוקס – אתה יכול להתקין את XPEnology של Synology. גירסה זו אינה מקבלת תמיכה רשמית (ולא תמיד היא עובדת על מעבדי AMD בלי לבצע כמה שינויים) – אבל אתה מקבל את מה ש-Synology מוכרים: יצירת RAID, ווליומים, הרמת קונטיינרים ומכונות וירטואליות, שיתוף קבצים ותיקיות, שימוש ב-SSD כ-Cache ועוד ועוד. למעוניינים לראות איך להתקין את זה, כאן הוידאו שמדגים ומסביר בקצרה.
  • אם אתה מחפש לבנות NAS יותר רציני (עם חיבור ל-Active Directory, עם iSCSI יותר רציני, עם ביצועים יותר גבוהים וכו') ואתה לא רוצה להתקרב ללינוקס – FreeNAS יכול להיות פתרון מעולה בשבילך. חשוב מאוד – מכיוון ש-FreeNAS מבוססת על FreeBSD ו-FreeBSD לא מתעדכן תדיר כמו פדורה ואובונטו, אז עדיף להשתמש בלוח אם ומעבד דור או 2 אחורה ולאו דווקא משהו חדש שיצא לפני כמה חודשים (אחרת המערכת אפילו לא תפעל).
  • אם לעומת זאת, אתה רוצה ביצועים מאוד גבוהים ואתה מכיר לינוקס טוב והסטורג' שלך הוא מכונה אחת, לך על ZFS שרץ על לינוקס. תקים מכונת אובונטו 16 LTS (הגירסה לשרת, לא לדסקטופ), תתקין עליה ZFS ותתחיל להגדיר דברים. לא מכיר ZFS טוב או בכלל ויש לך סבלנות? קנה את הספר הזה ותתחיל ללמוד אותו.
  • רוצה לא רק ביצועים ויציבות אלא גם שרידות חומרה? הקם 2 שרתים, תתקין עליהם ZFS ומעל זה הקם לך GlusterFS. לאחר הקמת ה-GlusterFS (הוא לא מצריך מעבד עם 16 ליבות ו-128 ג'יגה זכרון. מעבד עם 4 ליבות, ו-8 או 16 ג'יגה זכרון יספיקו) תוכל להקים שרותים כמו NFS, iSCSI ו-CIFS כדי לשתף. על מנת לקבל שרידות, יהיה צורך להתקין חבילות Corosync ו-PaceMaker שאיתן תוכלו להגדיר VIP. מומלץ להשתמש בגירסת GlusterFS 3.8 (ב-3.10 ו-3.12 יש בעיות שמטופלות בימים אלו). אה … המערכת תהיה Active/Active 🙂

אם אתם משתמשים ב-Storage שלכם למערכות VM/קונטיינרים/Open Stack וכו' – גיבוי יהיה חשוב לכם. במקרה כזה, קנו שרת יד שניה, מעאפן ככל שיהיה, הכניסו בו דיסקים ו-SSD, תתקינו איזו מערכת מההמלצות למעלה, ותייצאו ממנו SHARE ב-NFS (או CIFS) ותגבו לשם, ולמי ששואל – Veeam עובד עם זה מעולה, מנסיון.

אחרי שהקמתם את ה-Storage שלכם, דחפו למכונה (אם אין) כרטיס רשת עם 2 או 4 כניסות (חוץ מהכניסה שאתם משתמשים כרגע) ויצאו את ה-Share פר כניסה או פר זוג (Teaming וכו'). לשם כך תצטרכו מתג טוב שיודע לתמוך טוב ב-VLAN, Tagging, 802.11q ושאר ירקות. איזה? אין לי המלצות קונקרטיות, שאלו חברים 🙂

לסיכום: אם אתם מקימים LAB כדי ללמוד דברים חדשים על מנת לשפר את הקריירה והידע המקצועי שלכם, כדאי לכם מאוד להקים Storage מקומי ולא להשתמש באחסון המקומי בתוך השרתים. לכל חברה שתלכו שמכבדת את עצמה – יש פתרון Storage כלשהו ועדיף שתלמדו איך ליישם פתרונות עם Storage דרך כניסות רשת נפרדות, איך משתמשים ב-Multipath וכו' וכו'.

ה-LAB הבא שלי

מי שקורא את הבלוג הזה בוודאי קרא בעבר על ה-LAB שלי. למען האמת, עד היום היו לי בערך 3 LABS שהורכבו ממחשבים שונים, חלקם היו PC רגילים עם מפרט נמוך, בחלק מהזמן ה-LAB היה מורכב משרתים של HPE ובשנתיים האחרונות היה לי מיקס של מכונות החל ממיני PC ו-Raspberry Pi ועד צמד שרתים עם 8 מעבדי Xeon בכל מכונה (הושאל ע"י לקוח לטסטים עבורו).

אחד הדברים שאני מתכנן לבצע בשנת 2018 זה להקים LAB חדש מאפס, לעשות קונסולידציה (לוותר על הנתב שלי ולאחד את זה עם דברים אחרים), לעבור לפלטפורמה אחידה ואם יהיו פרויקטים רווחיים – להקים Storage חדש (כמובן שמבוסס ZFS) ושכל המכונות יהיו במבנה שרתים (1U, 2U).

אבל לפני שעושים את הדברים האלו, חשוב לדעתי לבדוק מהי הסביבה שכל זה ישב. אם מאן דהוא שוכר/רכש בית של 2 קומות ומעלה עם חיבור חשמל גדול ועתיר אמפרים/וואט, אז הוא יכול לרכוש לעצמו כמה שרתי מותג יד שניה, NAS כמו Synology, להוסיף נתב, להקים את הכל בארון 20U/40U, לאחסן את זה בממ"ד, להקים כמה נקודות AP בבית, אולי להוסיף מזגן (במקרה הצורך, בהתאם לטמפרטורות) ולסגור עניין. משם עושים את כל ההגדרות דרך SSH/RDP/דפדפן מבלי לסבול מהרעש של המכונות.

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

אז מה הולך להיות לי ב-LAB הבא: (התכנון כמובן אינו סופי ודברים עוד ישתנו)

  • מבחינת מעבדים – כל המכונות (למעט נתב) יהיו מבוססים Ryzen 7-1700. הסיבה? מעטפת חשמלית נמוכה (65W) יחד עם 8 ליבות ו-16 נימים. לינוקס רץ על זה מעולה, וגם vSphere 6.5U1 תומך ב-Ryzen.
  • מבחינת שרתים – 3 מכונות, 64 ג'יגה זכרון, דיסק SSD של 250 ג'יגה פר ESXI (לשימוש כ-Cache). יהיו 2 שרתי vSphere כ-Cluster שיופעלו מ-Disk on Key ועוד מכונה שתריץ לינוקס "על הברזל" כדי להריץ עליה דברים שמצריכים וירטואליזציה כמו VirtualBox (פרויקטים כמו MiniKube, MiniShift ועוד)
  • מבחינת תקשורת – יש לי כל מיני רעיונות בראש. התקשורת המרכזית תהיה על 1 ג'יגהביט אך התקשורת בין ה-ZFS למכונות הוירטואליות תהיה ב-10 ג'יגהביט. מבחינת מכונה שתשמש כנתב אני כנראה אבנה זאת מ:
    • קופסא 2U (או 3U) עם לוח רגיל ומעבד i3-7100T (מעטפת 35W) או לוח עם מעבד ATOM C3XXX. למי ששואל מדוע צריך מעבד כזה – 2 חיבורי VPN, אפליקציה כמו Suricata או כל פתרון IPS/IDS, ניתוב 10G, והמעבד נצרך במלואו.
    • 2 כרטיסי רשת – 1 עם 4 פורטים של ג'יגה והשני 4 פורטים של 10 ג'יגה +SFP כך שאוכל לחסוך רכישת נתב +10G SFP (כן, יש יד שניה זולים כמו של Quanta, תצרוכת החשמל שלהם בשמיים).
  • מבחינת Storage – בהתאם לתקציב ורווח, אני אקנה מארז 2U ל-12 דיסקים 3.5", פלוס 2 דיסקים SSD + מקל M.2 PCIE שישמש ל-SLOG ו-ZFS שנותן את כל השרותים שירוץ על אובונטו LTS או פדורה.
  • הכל ישב בארון 20U עם 2 דלתות ואולי מאוורר פנימי, בהתאם לצורך.

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

כרומבוק (2017): לאן מתקדמים מכאן?

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

בשנה האחרונה יותר ויותר חברות החליטו לעבור ממצב "לסמן ✔ ברשימת המחשבים שאנחנו מציעים לשווקים" ליצירת כרומבוקים שעולים הרבה יותר מה-200$ ומצד שני איכות המכשירים יותר טובה, והם פחות נראים כמו חיקוי מחשב נייד שקנית ב-Ali express בעודף מ-50$. איכות הבניה יותר טובה, כבר לא שמים מסכי TN (אלו המסכים שכשמסתכלים מהצד, התמונה המוצגת בעלת צבעים מעוותים) אלא IPS, אין יותר 16 ג'יגהבייט אחסון מקומי אלא 32 או 64 ג'יגהבייט, ומבחינת RAM – הסטנדרט היום הוא 4 ג'יגהבייט.

גוגל מתחילה לצאת בקרוב עם מושג חדש שנשמע אותו בחודשים הקרובים (כולל סלוגן, קמפיין פרסומי, פרסומות וכו') שהכותרת שלו תהיה: Apptop (כאן תוכלו לראות את הסימן הרשום שגוגל ביקשה).

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

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

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

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

איך בעצם יראה ה-Apptop פיזית? הוא יראה במבט ראשון כמו מחשב נייד רגיל, אולם אם תשימו לב בדגמים השונים של הכרומבוקים החדשים, תוכלו לראות שהרמקולים הוזזו הצידה (לא מתחת למחשב אלא בצדדים), כפתור ה-Power גם נמצא בצדדים וכל החיבורים החיצוניים הוחלפו בחיבורי USB-C (כולל טעינה, חיבור למסך חיצוני ועוד) והמסך מגיע עם תמיכת מגע, כך שתוכל להשתמש ב-Apptop הן כלאפטופ, והן כ"טאבלט" בגדלים של 12 אינטש ומעלה וכמובן יש תמיכה למצבי Landscape ו-Portrait. מבחינת אחסון, הם יהיו עם 64 ג'יגהבייט אחסון ו-4 ג'יגהבייט זכרון.

המכשירים הללו כבר החלו להופיע בשוק. סמסונג יצאו עם דגם אחד (Samsung Chromebook Plus – בתמונה לעיל) וחודש הבא הם יצאו עם דגם Pro (ההבדל היחידי: ב-Plus מדובר על מעבד ARM, ב-Pro מדובר על מעבד Core-M3 של אינטל ותוספת מחיר של $50). אסוס יצאה עם ה-C302 (מבוסס אינטל), וחברות כמו HP ו-Acer כבר משווקים דגמים עם המפרט החדש.

אבל גוגל לא עוצרת כאן. גוגל פוזלת גם לכיוון יותר גבוה – שוק המפתחים. אם נסתכל במפרט שתיארתי לעיל, זהו מפרט "בדיחה" למפתחים. היכן בדיוק תתקין אפליקציות מקומיות, קומפיילר ואת הקוד שהמפתח כותב? גוגל רוצה קטגוריה חדשה (שבשלב זה היא לא מפרסמת רשמית עליה כלום) שמזכירה את הכרומבוק Pixel – רק שהפעם היא לא תלך לבד אלא עם יצרנים: מחשב נייד עם מעבד i5 או i7, עם 8/16 ג'יגהבייט זכרון ועם SSD של 256 ג'יגהבייט (או יותר). הרמז הראשון לכך שהתקבל נמצא בקוד של כרומיום OS (זו הגירסת קוד פתוח של כרום OS) – גוגל עובדת על כך ש-Android Studio (שהוא צרכן משאבים לא קטן!) ירוץ טוב על כרום OS, והוא יהווה בעצם "מקדם מכירות" לדגמים יותר "גבוהים" של כרומבוקים. אם גוגל תצליח לשכנע את הציבור לרכוש את הדגמים הגבוהים, היא תוכל ללחוץ על שותפים להתחיל להמיר אפליקציות דסקטופיות לכרום OS.

לסיכום: שוק הכרומבוקים משתנה. המחירים מתחילים עתה ב-400$ מצד אחד אולם המפרטים נהיים יותר ויותר רציניים. אפליקציות של אנדרואיד על כרום OS יהוו Boost רציני מאוד למכירות של כרומבוקים ושימוש בהם מעבר להיותם "דפדפן וזהו". שוק התוכנות שעדיין מנגיש את עצמו ללקוחותיו בתצורת אפליקציה להתקנה על WIndows/Mac יוכל לנצל את ההזדמנות "לערוק" לפלטפורמה יותר פתוחה (וכרום OS שיופיע עד סוף השנה יכלול לא רק אנדרואיד בגירסה עדכנית אלא גם טכנולוגיות כמו WebAssembly להרצת קוד בצורה טבעית על המעבד, Vulkan לגרפיקה ועוד ועוד) ובכך להרוויח מלקוחות חדשים או לקוחות קיימים.

אין ספק, זמנים מעניינים מחכים לנו 🙂

המעבר מ-Digital Ocean לאמזון Lightsail

בלוג זה התארח עד היום בבוקר אצל Digital Ocean וכלקוח שלהם, אני יכול לאמר שהם אחד הספקים שמעולם לא אכזבו אותי. שרתים יציבים, אפס תקלות חומרה, והמערכת עובדת כמו שעון שוויצרי, ובקיצור איך אומרים אנשי לינוקס רבים: ה-Uptime חוגג 🙂

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

אם יש משהו אחד שאני ממש לא אוהב, זה הפתעות בחשבוניות, אז החלטתי להישאר ב-Digital Ocean. המחיר קבוע, זה עובד, אין הפתעות.

אמזון לאחרונה הכריזה על שרות LightSail שמתחרה בדיוק ב-Digital Ocean, Linode וספקי VPS רבים אחרים. היתרון בחבילה זו: המחיר קבוע, גודל המכונה קבועה (מבחינת ליבות, זכרון וגודל דיסק SSD מקומי) ויש לך כמה טרהבייט תעבורה החוצה כלולים במחיר. מכיוון שקיבלתי לאחרונה כמה דולרים בקרדיטים, החלטתי היום להעביר את הכל מהמכונה ב-Digital Ocean למכונה חדשה באמזון LightSail. המכונה הישנה רצה על אובונטו 15, החדשה על 16 וחשבתי שזה לא יהיה מורכב: rsync להעברת קובץ tar (של האתרים עצמם), קובץ dump של ה-SQL, סקריפטים והגדרות שונות – ונגמור עניין. לא אמור להיות מסובך.

מסובך זה לא היה, אבל תקלות – היו גם היו. הנה רשימה חלקית:

  1. האזור היחיד שאפשר להקים בו כרגע מכונה ב-Lightsail – זה אזור צפון וירג'יניה, שום מקום אחר. תרגום: תתכוננו לעוד 150 מילישניות Latency (אלא אתם משתמשים ב-CDN והקבצים הראשונים הם HTML/CSS).
  2. החלטתי לעשות dump ל-mysql כולו, כלומר all-databases ולהרים אותו על MariaDB החדש במכונה באמזון. הפקודה עברה בשלום, אבל restart ל-mysql הוציא הודעה על unix_socket plugin – לא נטען. מי שמקבל את התקלה הזו – יש פתרון כאן. מה שהפתרון לא מזכיר, זה שיש להקים לאחר עצירת ה-mysql תיקיה בשם /var/run/mysql/ כאשר לתיקיית mysql ההרשאות הן mysql:root אחרת לא תצליחו להפעיל את ה-MySQL כי הוא לא יכול לכתוב קובץ PID וההפעלה תיכשל.
  3. אם אתם משתמשים ב-Wordpress, תשמחו לדעת שהוא עובד מעולה עם PHP-7, ומאוד מומלץ לעבוד עם ה-FPM של PHP-7. ההבדל בין גירסה 5.6 של PHP לבין גירסה 7 – מהירות כפולה בלי לשנות אפילו שורת PHP אחת.
  4. המכונה שתקימו ב-LightSail לא תראו אותה ב-Instances או ב-VPC שלכם. אם אתם רוצים להשתמש בשרותים האחרים של אמזון דרך כתובות פנימיות, תצטרכו להפעיל שרות VPC Peering וכאן זה תלוי מתי נרשמתם לאמזון. במקרה שלי, מכיוון שאני רשום ל-AWS בערך מ-2009 אז כל נסיון VPC Peering נכשל, ויש לפתוח קריאה לתמיכה שיסדרו מהצד שלהם את הבעיה מהצד שלהם.
  5. מבחינת בניית חוקים ל-Security Groups/חומת אש – יש באג ב-LightSail: יש לך רשימת שרותים מאוד מצומצמת ש-Lightsail מכיר. רוצה להוסיף דברים כמו ICMP, SMTPS ודברים אחרים? אתה יכול לבחור Custom ולציין את מספר הפורט ואז … החוקים שיכתבו זה פתיחה של כל הפורטים. כרגע, מכיוון שאינך יכול לראות את מכונות ה-Lightsail בתוך VPC כלשהו, אינך יכול להגדיר Security Groups לאותו VPC ומכיוון שאינך רואה את ה-Instance בשום מקום (זולת האתר של LightSail) אינך יכול להגדיר גם שם את ה-Security Group למכונה שיצרת ב-LightSail. בקיצור – רוצה פורטים פתוחים/סגורים? תעשה זאת מתוך ה-VM.
  6. מבחינת השוואת מעבדים בין מה ש-Digital Ocean נתנו לי (המכונה שלי הראשית ששירתה את הבלוגים הוקמה שם לפני 4 שנים) המעבד היה XEON E5 דגם L (כלומר מהירות שעון נמוכה יותר – 1.8 ג'יגהרץ, וכמות ה-Cache היתה כמחצית ממה שיש ב-E5 ממוצע). באמזון דגם ה-E5 היה יותר חדש עם Cache מלא.
  7. מבחינת הפצות לינוקס – אינך יכול להקים מכונות מה-Market או מ-AMI שאתה בנית בעבר. יש לך רק מה שאמזון בנו שזה אמזון לינוקס (תואם CentOS בערך…), ואובונטו 16. לבחירתך ההפצות הללו כ"ערומות" או כהפצות + תוכנות קוד פתוח מוכנות, אבל שום דבר מעבר לזה. תשכחו מרשתות מורכבות וכו'.

לסיכום, המחיר עבורי הוא פחות או יותר אותו מחיר (רק שהפעם יש לי קרדיטים אז אני מאמין שה-3-4 חודשים הקרובים העלות היא על אמזון) – שזה במקרה שלי 40$ על אותה מכונה לחודש (2 ליבות, 4 ג'יגה זכרון, 60 ג'יגה דיסק, 5 טרה תעבורה בחודש החוצה). יש ל-LightSail פה ושם עדיין "מחלות ילדות" (בכל הקשור ל-VPC Peering) אבל אם שיחקת בעבר עם AWS, אתה תצליח להסתדר.

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

קצת על IPXE

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

מבחינה טכנית – PXE הוא די פשוט: יש שרת TFTP שמגיש קבצים ב-UDP דרך פורט 69. אתה מקים שרת כזה, מוודא שיש שרת DHCP שיתן כתובות IP זמניות (או קבועות אם אתה נותן כתובות לפי MAC) למכונה שעושה BOOT PXE וכל מה שנשאר לך זה לוודא שתוכנת ה-PXE Client (יש כל מיני ללינוקס ו-Windows) יודע איך להעלות את המערכת שאתה רוצה להעלות.

הפתרון הזה הוא פתרון נחמד למעבדת מחשבים או למקום שצריך PXE פה ושם. אחרי הכל – תן לשרת TFTP להגיש קבצים ל-100 מכונות בו זמנית ותראה את השרות זוחל.

אני רוצה להכיר לכם את IPXE.

אם אנחנו מסתכלים היום על Data Center – בין אם ה-DC מורכב מחצי ארון עם 3 שרתים ועד לאולם שלם שמפוצץ שרתים – הדברים השתנו לחלוטין בעשור האחרון. שיטת העברת הקבצים הכי פופולרית היום היא HTTP, אנחנו יותר משתמשים ב-iSCSI וב-NFS, בחלק מהמקומות יש Infiniband, ועוד ועוד טכנולוגיות מודרניות, ובכלל – כיום כל VM יושב על iSCSI או על NFS והתקנה אוטומטית דרך פרוטוקולים אלו יכולה לסייע מאוד.

היחוד של IPXE הוא בכך שהוא לוקח את PXE המוכר ומקדם אותו לעידן של היום תוך מתן תמיכה טבעית ל-NFS ו-iSCSI והעברת קבצים עצמה יכולה להתבצע דרך HTTP (ולכולם יש כיום מערכות לנטר ולכוון תעבורת HTTP). מה עם שרת ה-TFTP? אותו עדיין נצטרך אך ורק להעביר קובץ יחיד (UNDIONLY.KPXE) ואולי עוד קובץ למערכות UEFI. את השאר אפשר להעביר בפרוטוקולים אחרים.

IPXE נותן לנו במכונה שעושה BOOT PXE גם אפשרויות של סקריפטים בשפה די פשוטה שיקח לכם זמן מאוד קצר ללמוד אותה. אפשר להכניס תנאים, לשרשר קבצי IPXE, וכמובן – יש תמיכה ל-NFS, iSCSI, Infiniband ופרוטוקולים אחרים. כך לדוגמא אם מרימים מערכת ESXi או לינוקס, אפשר להכניס פרמטרים להטענת kickstart להתקנה אוטומטית, להשתמש ב-WIM של Windows ועוד. צריכים מכונות דסקטופ ל-Windows? אתם יכולים לעקוב אחר ההוראות כאן לגבי פתרון שיכול להתאים לכם.

הנה לדוגמא מערכת שאני מקים אצלי ב-LAB בבית (מאז הוספתי עוד כמה שורות). לא משהו מורכב, אבל עם הסקריפט הסופר-פשוט שכתבתי – אני יכול להתקין מגוון מערכות הפעלה לכל VM חדש שאני יוצר מבלי לחפש כל פעם היכן ה-ISO. כל קבצי ההתקנה וסקריפט ה-IPXE יושבים אצלי על שרת NGINX (שרת Web) וסקריפט ה-IPXE פשוט מוריד את כל מה שהוא צריך בהתאם למערכת שבחרתי ולבסוף מריץ פקודת boot. משהו לא עבד? לחיצה על CTRL-B תתן לי "shell" נחמד שאיתו אני יכול לנסות את הפקודות ידנית או לראות את השגיאות לפרק זמן ארוך כדי לתקן אותם ולהפעיל את המערכת מחדש.

ipxe

מערכת נוספת שהכנסתי לתפריט היום (לא מופיע בתמונה) היא מערכת GParted שהיא מערכת לניהול Partitions. נניח שאני צריך לגבות Partitions מסויימים לפני שינוי והשרת עצמו הוא פיזי (ב-VM יש snapshots, במכונות פיזיות – זה קצת יותר מסובך). אני יכול להתקין תוכנת גיבוי ולעשות זאת ולקוות שהגיבוי הצליח, או שאני פשוט יכול למפות iSCSI Volume זמני דרך ה-iPXE, להפעיל את IPXE, לבחור את GParted ולגבות את ה-Partitions. אותו דבר אני יכול לעשות עם NFS ושאר טריקים לאחסון – כל זה מבלי להתקין שום תוכנה נוספת, לרכוש רשיונות וכו'.

הפתרון של IPXE הוא פתרון שמנצל את הכלים שלנו לשימוש מודרני ב-DC, הפתרונות שיש כיום להפצת קבצים יכולים יפה מאוד לעמוד בעומס של עשרות או מאות מכונות שרוצות PXE ועכשיו. בהמשך הדרך, כש-VDI יכנס יותר ויותר לתמונה, ה-Thin Client יוכל לקבל את המערכת שצריכה לרוץ עליו דרך PXE במקום לעדכן קושחות, לבצע טסטים על כל שינוי קטן וכו'.

לסיכום: גם אם יש לכם פתרון PXE, מומלץ להכיר יותר את IPXE. ה-IPXE נותן לנו פתרון שמשתמש בטכנולוגיות של היום ובדרך גם חוסך בכל מה שקשור לתחזוקה והתקנות של מחשבי דסקטופ, שרתים, מכונות VM ואחרים. לא חייבים לשנות כל 3 דקות את הגדרות ה-DHCP (יש ProxyDHCP ותמיכה לזה ל-IPXE) ובטווח הארוך זה חוסך הרבה עבודה. מנסיון.

המעבר ל-MINI PC

לאלו שעוקבים אחרי הבלוג הזה – פירסמתי כאן לאחרונה פוסט על מיני PC, והיתרונות מול PI-3. הזמנתי את ה-Wintel Pro CX-W8 ואחרי שבוע הוא הגיע אליי. בדיוק הגיע אליי גם וירוס מדבק (לא של מחשבים, אלא כזה שדופק את הגרון ומיתרי הקול) כך שהייתי ב"מעצר בית", אז אם כבר – אז כבר. התחלתי לשחק עם הצעצוע.

screenshot-gloimg-gearbest-com-2016-09-17-13-26-01לפני שניכנס לעניינים טכניים, אני רוצה לאמר כמה דברים בנושא "פוליטי טכנולוגי". הצעצוע משמאל (זה שרכשתי) מבוסס על משפחת ה-Cherry Trail של אינטל, וכשזה מגיע ללינוקס, אינטל דווקא עושה עבודה מעולה בכל הקשור לכך שהציוד יפעל ויפעל טוב על הציוד שהם מוכרים, בין אם זה מעבדים, כרטיסי רשת, כונני SSD וכו'. לאינטל יש מספר צוותי לינוקס ובד"כ הדרייברים ללינוקס מופיעים מספר חודשים לפני שהציוד עצמו בכלל קיים בשוק ומפיצי הלינוקס מכניסים אותם לתוך ה-Kernel ומכירים בהם במסגרת ההפצה.

עד שזה מגיע ל-Cherry Trail. אין לי מושג ירוק מדוע, כאן אינטל החליטה לחזור 20 שנה אחורה לזמנים אפלים בהם אינטל תמכה רק ב-Windows, פה אינטל החליטה שה-Cherry Trail יתמך רק ב-Windows 10 ותו לא. אחת התקלות הידועות עקב החלטה תמוהה זו היתה שאנשים ניסו להריץ Kodi בגירסת OpenElec לדוגמא – הם היו מצליחים להתקין ולהריץ, אבל לא היה אפשרי לשמוע Audio דרך חיבור ה-HDMI. גם דרייברים ל-WIFI לא ממש עבדו, אבל בלינוקס כמו לינוקס – יש קהילה שלמה של מפתחים שיש להם פה ושם זמן פנוי והם הצליחו לבצע "השלמות" לתמיכה ב-Cherry Trail כך שהוא עובד די טוב עם לינוקס, למעט בעיה שעליתי עליה ושאינני מוצא לה פתרון – אם אתה מפעיל את הציוד עם לינוקס אך ללא שום חיבור USB לקופסא — הלינוקס עולה, אבל אינך יכול להתחבר אליו. ה"פתרון"? מצא איזה USB דונגל כלשהו שאינך משתמש ותקע אותו במכשיר – עכשיו הכל יעבוד.

ומ"פוליטיקה" נעבור לשלב הטכני.

מכיוון שמשפחת הרכיבים Cherry Trail היא די חדשה (ולמען האמת החל מלפני חודשיים אינטל הכריזה שכל משפחת Atom "מתה" והם פשוט עכשיו מוכרים את המלאי שהם יצרו) – הפצות לינוקס שונות מכירות חלקית בציוד, מכירות בצורה מלאה וכלל לא מכירות. (השימוש שלי במיני PC הזה הוא כ"שרת" ראשי שאמור להחליף כמה מכונות VM קטנטנות ועל כך פוסט זה), אז ניסיתי כמה הפצות לינוקס. מבחינתי הדברים החשובים לי שזה יכיר ב-eMMC (שזה ה"דיסק קשיח" בגודל 32 ג'יגה שנמצא על הלוח אם), וביציאת ה-LAN בצורה טובה ובחיבור ה-USB-3 שקיים בקופסא במצב USB-3. כל השאר לא ממש עניין אותי.

להלן הפצות הלינוקס שניסיתי והערותיי:

  • אובונטו 16.04.01 – ההפצה מכירה בכל הציודים שקיימים בקופסא והיא מתקינה את עצמה בצורה לא רעה, אולם כפי הנראה ישנן בעיות עם דרייבר ה-LAN, התקנת העדכונים היתה מאוד איטית (למרות שלפי ההודעות מערכת הוא עבר ל-Mirror ישראלי). מכיוון שהמערכת התקינה את כל הדסקטופ + אופיס + 1001 דברים שאין לי צורך בהם, הפעלתי tasksel כדי לבחור רק התקנה של שרת SSH. בתגובה ה-tasksel מחק ערימות של דברים וביניהם גם את ה-kernel image (נו באמת, למה צריך שיהיה boot..). מי שמכיר Debian ו-Ubuntu בצורה עמוקה מכיר בוודאי את ה-preseed אבל לי לא היה שום חשק להתחיל לשחק עם זה. עברתי הלאה.
    מסקנה: אם אתה מחפש לך לינוקס דסקטופ על המיני PC ואתה מכיר רק אובונטו – לך על זה.
  • אובונטו 16.04.01 גירסת Server – פה הדברים היו פשוטים. ההפצה לא מכירה לא ב-wifi, ולא ב-LAN. קצת מרגיז שקנוניקל לא יודעת לשחרר את אותם גרסאות קבצים בינאריים של הקרנל בצורה זהה לדסקטופ ולשרתים כמו שאר ההפצות לינוקס.
  • OpenSuSE – לא מכיר ב-LAN. נקסט!
  • Debian Jessie – כנ"ל.
  • CentOS 7.2 – התחיל לעשות Boot ואחרי 5 שניות … Kernel Panic.
  • Fedora 24 Workstation – עובד יפה, אם כי לא בדקתי Wifi (בין כה לא מומלץ לסמוך על ה-Wifi בקופסא – הוא בקושי קולט אות וגם אז – רק 2.4 ג'יגהרץ) אך כמו אובונטו דסקטופ – הוא מתקין יותר מדי שטויות שאני לא צריך.
  • Fedora 24 Server – עובד יפה, התקנה של Minimal עבדה חלק.

החלטה שלי: לעבוד עם Fedora 24 Server. הכנסתי כתובת IP קבועה, DNS של גוגל ויאללה – לעבודה מרחוק.

במהלך היומיים עבודה (חולה, נו…) הרמתי על הקופסא את השרותים הבאים:

  • שרות Active Directory עם שרות DNS פנימי. החלטתי ללכת "על הקצה" ולהשתמש ב-Samba 4.5 שיצא לפני ימים ספורים ובחבילות שקיימות כאן ל-Fedora 24 (שלא תעיזו להרים דבר כזה לפרודקשן או למקום אחר אם אין לכם הבנה טובה בלינוקס, אפילו הפעלת השרות מצריכה ידע בלינוקס, זה לא systemctl start smb!). אחרי כמה משחקים ונסיונות, ה-Samba הוכיח את עצמו כשרת AD מעולה ומכונות Windows 10,7, Server 2012R2 קיבלו אותו בשמחה מבלי לשנות מאומה. גם מבחינת DNS הוא הוכיח את עצמו כעובד מעולה ולעצלנים מבינינו – אפשר לנהל את ה-DNS דרך RSAT של Windows ואת ה-AD גם דרך Windows (אני מעדיף סקריפטיאדה בלינוקס)
  • שרת Mail – הגדרתי SMTP לחשבון שלי בגוגל, אפשרתי קבלת מיילים מ-Class כתובות שלי בבית וגם הצלחתי עם mailx (בלי להתקין sendmail או postfix) בתחנות לשלוח מיילים.
  • שרת NGINX – לשרת דברים סטטיים (בלי PHP או דברים כאלו)
  • שרת TFTP – לשימוש PXE
  • מערכת iPXE – ל-PXE יותר מתקדם (מה לעשות, TFTP די איטי, ואם משתמשים ב-UEFI אז הוא בכלל "זוחל" ו-iPXE מאפשר סקריפטיאדה נחמדה וקלה מאוד.
  • שרת Transmission כולל ממשק Web – טורנטים, אתם יודעים
  • NFS Client – הקבצים הסטטיים והטורנטים ישבו בשרת קבצים אחר, חבל להרוג את המיני PC באירוח קבצים מקומי עם mount ב-fstab כולל אופטימיזציה ל-NFS-3
  • שרת NTP – שיהיה שעון מרכזי

בהמשך אני מתכנן:

  • חיבור למודם סלולרי וסקריפטיאדה אם אין תקשורת דרך ה-DSL
  • מעקב מצלמות (זה הולך להיות כאב ראש בכל הקשור ל-Detection. שום Detection לא מסתדר עם אור חלקי ו-2 חתולים משתוללים בבית) ו-Upload לענן + אפשרות שידור ישיר לפי דרישה.
  • מיני קונטיינר קטן עם SSH שפועל עם מפתחות בלבד ו-Port Knocking – לחיבור מרחוק בעת הצורך.

סה"כ אחרי העבודה הזו נשאר במכונה 14 ג'יגה פנוי ומבחינת RAM יש פחות או יותר 1 ג'יגהבייט זכרון פנוי (תלוי בשרותים שמופעלים, יש כבר 14 סקריפטים ב-crontab).

מסקנות
קופסא שעולה 75$ עושה את העבודה בצורה לא רעה. יש לה UEFI מהגהינום (אין שם אפילו פונקציה להפעיל את הקופסא אוטומטית במקרה שהחשמל הפסיק וחזר) אבל נו .. זה יצרן סיני. האם הייתי קונה קופסא עם יותר RAM? אולי, אך לצערי כל קופסא שראיתי עם אותו מעבד או מעבד Atom X7 מכפילה את המחיר ל-150$ ומעלה ואני לא מוכן לשלם כפול בשביל עוד 2 ג'יגה זכרון.

האם אני ממליץ? כן, אם יש לך סבלנות וידע בלינוקס. האם Windows Server 2012R2 יעבוד על קופסא כזו? לא חושב, במיוחד עם כמות זכרון קטנה ודרייברים שאני לא בטוח שיהיו מוכנים להיות מותקנים על מערכת הפעלה כזו.

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

כרומבוק לדודה והדוד?

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

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

הרעיון של כרום OS הוא להריץ את כרום כ"מערכת ראשית" ובהמשך אפליקציות אנדרואיד שיהוו השלמה לדברים שלא קיימים כאפליקציות מבוססות WEB. ישנן גם אפליקציות שהם "חצי WEB" שהן בעצם אפליקציות שהודרו לעבוד עם המערכת של גוגל שנקראת NaCL (כלומר Native Client) שנותנות מקסימום ביצועים אך הן רצות בתוך הדפדפן.

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

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

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

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

עתה נסתכל לגבי אפליקציות:

  • אם אתם מחפשים להשתמש ספציפית בסקייפ. יש אפשרות להתקין את אפליקציית האנדרואיד של סקייפ על הכרומבוק ולהשתמש, אולם ההתקנה מצריכה ידע טכני מהצד שלך וזה עדיין לא יציב לגמרי. מהצד השני – מיקרוסופט עובדת כרגע על יישום סקייפ שירוץ דרך הדפדפן ללא צורך בתוספים, כך שהוא גם ירוץ על כרום OS. ישנן אלטרנטיבות כמו Hangouts וישנם גם שרותים מבוססי Web שנותנים צ'אט אודיו/וידאו.
  • אופיס – לגוגל יש Google Docs שנותן למשתמש אפשרות לכתוב מסמכים, גליונות עבודה, מצגות ועוד דברים רבים (ישנו שוק עשיר של תוספים לגוגל Docs), אך גם למיקרוסופט יש פתרונות מבוססים Web שעובדים בצורה מעולה על כרום OS בדפדפן, כך שאם המשתמש צריך להשתמש באופיס -הוא יכול להשתמש בשרותי ה-Web של מיקרוסופט ללא בעיות.
  • תוכנות מסרים מיידיים – אם המשתמש אוהב להשתמש בשרותים כמו WhatsUP או Viber וכו' – הוא יוכל להשתמש בממשקי ה-Web כדי להמשיך לשוחח, לקבל ולשלוח קבצים (כרום OS תומך בכרטיסי SD ובכל המכשירים יש קורא SD מובנה).
  • גיבויים – בכרום OS אין מה לגבות.

מכיוון שישנן לא מעט כרומבוקים/כרומבוקסים בחוץ – כדאי ללכת לפי הכללים הבאים:

  • אם המשתמש מוכן להשקיע במסך חיצוני – כדאי לרכוש כרומבוקס ולא כרומבוק. הם גם יותר קלים לפריקה ולשינוי (זכרון, SSD וכו'). אם המשתמש אוהב לעבוד עם הרבה טאבים פתוחים, כדאי להגדיל את הזכרון ל-4 ג'יגהבייט (זכרון DDR3L). אני ממליץ על ASUS ChromeBox עם מעבד Celeron.
  • אם מחליטים על תצורת נייד – כדאי לקחת את הגירסה של ה-4 ג'יגהבייט.

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

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