יום שישי, אוגוסט 01, 2014

systemd

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

תקציר - לפני זמן מה הרבה הפצות החליטו שהן שוברות את כל מה שידוע ועוברות ל systemd.
לא שזה כזה נורא מהצד, רק שsystemd עובר על כלל החוקים לאחזקה שהיו קיימים בהפצות gnu/linux.

כלל ישן בעולם שלנו אמר
This is the Unix philosophy: Write programs that do one thing and do it well. 

או בעברית תוכנה אחת - משימה אחת, אבל systemd מנסה להחליף הכול במקום להתעסק רק בניהול של שדים הוא גם מחליט עבורך:
  1. איך תנהל את הלוגים
  2. שובר איך מודולים אחרים אמורים לעבוד לדוגמה מונע blocking כברירת מחדל (אז מה אם צריך להכניס סיסמא בשביל לפתוח את מחיצת ה swap או מחיצה אחרת אני פשוט אדלג על זה).
  3. ממציא שפה חדשה לאיך אפשר לנהל שדים.
  4. בעל דרישות קדם להתקנה (dbus)  
  5. מחליף VTs
  6. מחליף את cron
  7. מחליף ניהול משתמשים
 או כמו שאמרו בדביאן בעת ההחלטה לבחור בו:
Systemd is not just init. It unifies, in fewer lines of code, everything that is related to starting services and managing session groups: user login, cron jobs, network services (inetd), virtual TTY management… Having a single system to handle all of that allows us to remove a lot of cruft, and to use less memory on the system.

התיאור שניתן למלא מזמן החלפת שם ההפצה מ Debian Gnu/Linux ל Debian Systemd/Linux.

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



ובגלל זה יש מי שכבר אומר שsystemd הוא ה svchost של גנו/לינוקס וזה לא לחינם ,שניהם זה אותו הכאב ראש לניהול.

היכולת שלנו לקרוא לוגים -
 Write programs to work together. Write programs to handle text streams, because that is a universal interface. 

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

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

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

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

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

בעקבות זאת systemd גם מקשה את החיים כאשר יש תקלה לאנשים עם מערכת desktop -

למה ? כי systemd בא להחליף את מנהל הinit וכל מה שהוא יכול לגעת מסביב ולא רק את ניהול הלוגים אם אני כותב לוג שאדם יכול לקרוא (לא בינרי) זוהי היכולת היחידה שלי לקרוא את המידע - אחרת אין לי סיכוי למצוא בעייה עם טסריטים ישנים. כן zless או grep לא רואים את המידע. האופציה היחידה שאני רואה נכון לעכשיו זה
  journalctl -b --no-pager  ו journalctl -o export שזה לא ממש פתרון.

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

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

systemd מנסה לגרום ל /etc/fstab להפוך ללא נדרש.

systemd דורש dbus ,עושה קולות של הולך לנהל את כלל ההרשאות במערכת.

לא מעלה VTs כמו שצריך (עד ש KDM לא עולה אין VT אחרים). (כנראה באג של המערכת שלי)

הדברים הטובים שלו הם ש:

עד כמה שאני מבין systemd עדיין לא שבר את מנגנון הpam הישן והטוב.

נכון להיום עד שירות ה HTTP לא מגיע כברירת מחדל (אנחנו לא מריצים apache כ root אבל לתת שירות ווב בPID 1 זה בסדר ...)

קצת פרטים -

https://wiki.archlinux.org/index.php/systemd

http://www.freedesktop.org/wiki/Software/systemd/journal-files/

http://www.freedesktop.org/wiki/Software/systemd/export/

http://blog.gerhards.net/2011/11/journald-and-rsyslog.html


http://linux.slashdot.org/story/14/08/25/1730245/choose-your-side-on-the-linux-divide

אין תגובות:

הוסף רשומת תגובה