סקירה: רד-האט 7 (בטא) – חלק שני

בהמשך לחלק הראשון של הסקירה על רד-האט 7 (בטא), בחלק זה נצלול יותר לעומק הדברים תוך התבססות על ה-Release Notes ש-רד האט שחררו והתייחסות שלי לכל מיני נקודות. הערה: היכן שכתבתי RHEL-7 מדובר כמובן גם בגירסת CentOS-7 שתצא תוך ימים ספורים לאחר השחרור הרשמי של גירסת RHEL-7.

מבחינת תמיכה בברזלים, רד-האט 7 תומכת ביותר מעבדים וליבות, עד 5120 ליבות במערכת אחת (מישהו ברד-האט שכח שהם חתומים ב-NDA מול AMD וזו הסידרה הבאה של מעבדים ש-AMD הולכת להוציא בקרוב, כל מעבד עם 32 ליבות). מבחינת זכרון יש תמיכה שנוסתה עד 3 טרה בייט ותאורתית המערכת תומכת עד 64 טרה בייט של זכרון. כשמדובר על מערכות מבוססות Power, דרישת המערכת לכל VM מבחינת זכרון עולה מחצי ג'יגה ל-2 ג'יגה בייט של זכרון.

מערכת הקבצים: כפי שציינתי בחלק הראשון, שונתה ל-XFS (גירסאות EXT4 ו-BTRFS גם קיימות בזמן ההתקנה, אם כי אינני ממליץ על התקנת BTRFS למערכת פרוקדשן גם כשרד-האט 7 תצא מ-בטא. היא פשוט מערכת חדשה מדי, תנו לה זמן עד שהיא תהיה יציבה, סופית ונקייה מבאגים קריטיים). מערכת הקבצים EXT4 שופרה ועתה ניתן לאכסן קובץ בגודל מקסימלי של 50 טרהבייט. בגירסת XFS שמגיעה עם RHEL 7 ומבחינת File system, הגודל ש-XFS תומך בהשוואה ל-RHEL-6 גדל פי 5 וכעת ניתן להקים File System בגודל של עד חצי פטה-בייט (500 טרה בייט). ב-BTRFS ב-RHEL-7 ניתן רשמית להרים File system עד לגודל 50 טרהבייט וגודל מקסימלי של LUN עתה הוא 50 טרה-בייט. הכל גדל, רק תביאו דיסקים 🙂

תוכנות שהוחלפו: כמו תמיד, ברד-האט זורקים החוצה תוכנות ישנות ומכניסים תוכנות חדשות כשיוצאת גירסה חדשה להפצה, מה שמתורגם כמובן להרבה עבודה של מיגרציה (ומיגרנות לפעמים…!) כשרוצים להטמיע את RHEL-7 לכשתצא. עובדים עם sendmail? תתחילו להתרגל ל-postfix. אין יותר acpid, יש systemd. מנהלים מערכות עם sblim? תכירו את Pegasus של Open Group. גם חבילות Kerberos (במיוחד krb5-appl) עברו שדרוג ובמקומם את תפקיד Kerberos תתן חבילת openssh. מי שמשתמש ב-LVM1 (מישהו עדיין משתמש??) מחליפה חבילת LVM2 כשהפעם סוף סוף יש תמיכת Thin Provisioning כך שאפשר להרים הרבה מכונות מבלי לצרוך מיידית את כל הדיסק/Storage. גם חבילת gcj (איכסה!) הוחלפה סוף סוף ב-OpenJDK נורמלי (גירסה 7).

פונקציונאליות שנזרקה לפח: ברד-האט לא מתביישים לזרוק דברים יותר ישנים לפח כולל חומרה. כך לדוגמא אם אתם משתמשים במערכות Power6, רד האט מודיעה שתמשיכו להשתמש ב-RHEL-6, אין יותר תמיכה למעבדים הללו. עובדים עם matahari? (אתם כן? למה???), רד האט ממליצה שלא לעבוד איתה יותר.  מצפינים עם encryptfs? תפתחו את ההצפנה ותצפינו עם dm-crypt.אלו שהשתמשו ב-TurboGears2 – צר לי, החבילה נזרקה מ-RHEL-7. מקמפלים אפליקציות שיש להן זקן ארוך ו-MOTIF? (כן CDE אני מסתכל עליך!) – סוף סוף Motif האמיתי הוא קוד פתוח וגירסה 2.3 כלולה בהפצה. אין יותר צורך ב-lesstif. התרגלתם ל-webalizer? חפשו חבילת אנליזה חדשה כי הוא לא כלול יותר ואם אתם חושבים להשתמש ב-RHEL-7 לדסקטופ ורוצים להמשיך להנות מאפקטים של Compiz, אז ב-gnme-shell יש אפקטים וגם הם נמצאים מובנים בתוך KDE שאותו אני תמיד תמד ממליץ. 

לעצלנים שבינינו שהשתמשו ב-system-config-services, מעתה יש את systemadm. צ'אטים עם pidgin? תתרגל ל-empathy. לחובבי perl שמשתמשים (משום מה) ב-perl-suidperl – הוא מת (כן, גם בגירסת perl המעודכנת בחוץ). תוספי pam כמו pam_passwdqc ו-pac_cracklib הוחלפו בתוסף בשם pam_pwquality. ספריית HAL (כולל ה-daemon) נזרקו לפח ומעתה חוזרים (כן, חוזרים) ל-.. UDEV. 

מבחינת הגדרת רשתות, משחקי ההגדרות ב-etc/sysconfig/network-scripts/ifcfg-eth/ נגמרו (אם כי הם עדיין נתמכים, כמדומני שבגירסת RHEL-8 הם יהפכו להיסטוריה) ובמקומם יש את NetworkManager (כן, החבילה שרבים מאיתנו הקפידו להעיף בסוף התקנה ולהפעיל את שרות network, זוכרים?) והדברים צריכים להיות מבוצעים עם פקודת nmcli (קחו דוגמאות של שימוש ב-nmcli). על מנת קצת להקל, רד-האט מוסיפים את nm-connection-editor כדי לערוך חיבורים (מנסיון: הגדרת שרת עם 24 פורטים לרשת עם nmcli זה לא כיף!). 

חבילות נוספות שעפו: taskjuggler = היסטוריה. thunderbird? זוכרים אותו? אם אתם מתגעגעים, תורידו אותו מהאתר היעודי כי מה שיש עכשיו זה רק evolution. חבילת vconfig להגדרות VLAN מתה ובמקומה יש iproute (בלי רווח). לאלו שאוהבים לכתוב ב-perl אפליקציות web, אין יותר mod_perl, יש mod_fcgid (ומכיוון ש-RHEL-7 מגיע עם אפאצ'י 2.4. לאלו שאוהבים להריץ prelink כדי לקבל ביצועים יותר טובים – החבילה והפונקציונאליות נכללת ב-RHEL-7 אבל היא ב-disable בברירת מחדל (רמז של רד האט שבעתיד – גם זה יעוף). חבילת module-init-tools גם עפה לטובת kmod ולסיום – חבילת kernel-firmware שמגיעה עם כל גירסת kernel מההפצה, שמה שונה ל-linux-firmware, כך שמומלץ לעדכן את הסקריפטים שלכם אם אתם הולכים להטמיע RHEL-7.

דרייברים שהולכים לעוף: רד-האט מצהירה על דרייברים מסויימים (שהם לציוד ממש ישן למען האמת… Cirtus Logic, Mach64) שהם deprecated כך שאם יש לכם ציודים כאלו והמערכות הללו ישודרגו על אותו ברזל, כדאי שתמצאו להם פתרונות. בד"כ מדובר על דרייברים לציוד גרפי ישן (כן, כולל מטרוקסים ישנים מאוד) וגם ציוד מבוסס צ'יפים ישנים של VIA. ניתן יהיה להמשיך להשתמש בציוד רק שבמקום דרייברים רגילים, תצטרכו להשתמש בדרייבר KMS ואפשר לקרוא איך להשתמש ב-KMS כאן. אני ממליץ לגבי מערכות כאלו להעביר אותם P2V להיות מערכת וירטואלית. גם דרייבים לכרטיסי RAID ישנים עומדים לפוג, כולל כרטיסי Adaptec (זוכרים אותם?) עם הדרייבר aic79xx, כרטיסי 3ware עם דרייבר 3w-9xxx וכמובן arcmsr (שעשה לי אישית המון צרות, ברוך שפטרנו!).

דרייברים שלא קיימים יותר: בלינק שנתתי ל-Release Notes ישנה רשימה שלמה של דרייברים שעפו מ-RHEL-7, כולל cciss (לחובבי שרתי HP), דרייבים כמו aic ו-i2o, דרייבר שהרבה חברות השתמשו בו (megaraid_mbox), ה-mptlan, mptfc וכל הדרייבים של 3ware (דרייבר: 3W-XXXX). גם כרטיסי רשתות עפים, וכל מה שלא ג'יגהביט או משהו יותר ישן מ-3-4 שנים – פשוט עף החוצה. אני ממליץ להסתכל ברשימה (עמודים 11-14 בלינק למעלה). העפת הדרייברים הללו מחסלת את האפשרות להשתמש ב-RHEL-7 על שרתים ישנים ועל כך אתייחס בסוף הפוסט.

התקנה:בקצרה, אם השתמשים באחת מגירסאות ה-Fedora האחרונות, אז אין הבדל. בהשוואה ל-RHEL-6 ההבדל הוא בין שמיים לארץ. ההתקנה כבר יודעת לזהות את ציודי ה-Storage שלך אוטומטית (טוב נו, יש עדיין מקרים שצריך להזין פרטים..). לחובבי הקינקיות בינינו (אני מדבר על S/390) יש תמיכה בטרמינלים טקסטואליים מונוכרומטיים בזמן התקנה. ניתן עתה להקטין פרטישנים קיימים (בחלק מהמקרים, אם לא, תמיד אפשר לפני ההתקנה להשתמש ב-gparted), אפשר להגדיר thin provisioning ב-LVM, אפשר לפרמט ישירות ציודים ללא פרטישנים, וסוף סוף גם ניתן להשתמש ב-tmpfs במהלך ההגדרות להתקנה. ניתן במהלך ההתקנה מבחינת כרטיסי רשתות להגדיר teaming, bonding, NTP ושאר ירקות. 

תהליך Boot: ב-RHEL-7 ה-Boot Manager שמגיע הוא GRUB-2, מה שהיה בעבר אפליקציה קטנה ונחמדה שהפכה עכשיו למפלצת שתומכת כמעט בכל דבר במה שקשור לדיסק/פרטישנים/מערכות קבצים שונות. כמו כן ישנה תמיכה מלאה ב-UEFI, OpenFirmware וכמובן BIOS רגיל. ישנה תמיכה מלאה גם ב-MBR וגם ב-GPT ומבחינת מערכות קבצים, יש תמיכה ל-NTFS, ולחובבי המק – גם +HFS.

תמיכה ב-Storage: ב-RHEL-7 שוב החליפו את מערכת ה-Storage מ-tgtd ל-LIO. הסיבה? תמיכה הרבה יותר רחבה בציודים כמו FCoE, iSCSI, iSER וכמובן SRP (אהלן לחברים ממלאנוקס הישראלית, תוזילו כבר מחירים!). ניתן לנהל את כל העניינים דרך פקודת targetcli.

רד האט כוללת את תוכנת dm-cache שמאפשרת לך לעשות משהו שחובבי ZFS עם מערכות רציניות מכירים ממזמן: אם יש לך מערך דיסקים מכניים ואתה רוצה יותר מהירות, אתה מוסיף דיסק SSD שישמש ל-Cache וכך תקבל ביצועים יותר גבוהים. התוכנה שרד-האט ממליצה עליה היא נחמדה, אבל אני ממליץ במקומה את EnhanceIO שנותנת ביצועים יותר גבוהים בהשוואה ל-dm-cache.

kernel: ערימות של שיפורים הוספו ל-kernel, הנה כמה מהם:

  • ניתן לדחוס זכרון SWAP כך שכמות הקריאה/כתיבה היא נמוכה בהרבה מהמצב הרגיל.
  • תמיכה בוירטואליזציה של APIC, כך שמכונה וירטואלית תהיה כמה שיותר "טבעית" בהשוואה למכונה פיזית (את הפוקנציונאליות הזו ניתן לקבל רק במעבדי XEON ו-Opteron חדשים). 
  • עד היום מבחינת דיווח על בעיות חומרה בשרת היו מספר כלים שלא תמיד נתנו לוגים מפורטים ומסבירים מספיק מה התקלה שהמערכת חווה (זוכרים kernel panic למרות שלא רואים לפני כן כלום בקובץ log? העיקר שכל הנורות LED מהבהבות על המקלדת, מעולה!) ב-RHEL-7 ההפצה כוללת את HERM (ר"ת Hardware Event Reporting Mechanism) שכוללת daemon בשם raddaemon שיודע לנהל את כל מה שקשור ל-RAS (ר"ת Reliability, Availability, Serviceability) ורושם את הכל ללוג. HERM כולל כלים לדיווח, בדיקה וכו'. 

וירטואליזציה: ישנם שיפורים רבים ל-KVM מאוד בהשוואה לוירטואליזציה שקיימת ב-RHEL-6, ושוב, אציין רק כמה מהם שנראים חשובים:

  • שיפור רציני תעבורת נתונים ב-VM: ב-KVM יש פונקציונאליות חדשה (עדיין בשלב Preview) שנקראת virtio-blk-data-plane שפותחת שרשור (thread) משלה שמיועד אך ורק לתעבורת נתונים, כך שהמכונה עצמה עובדת ב-thread אחד והעברת הנתונים ב-thread אחר. 
  • עד כה QEMU (שהוא חלק גדול מ-KVM) תמך ב-32 כניסות PCI. בגירסה החדשה (שוב, Preview) יש יותר מ-32
  • מעתה ב-KVM ישנה פונקציונאליות חדשה שנקרא QEMU Sandboxing, כך שישנם פילטרים שמפרידים ומבצעים פילטרים לקריאות מה-Guest ל-Host ומאפשרים הגנה יותר חזקה.
  • מעתה ניתן במערכות אורחות להוסיף מעבד ל-VM רץ כך שאין צורך לכבות אותו (שימו לב שעל מנת לבצע זאת, סוג המכונה הוירטואלית ב-QEMU אמור להיות pc-i440fx-rhel7.0.0)
  • מספר "תורים" לכרטיסי רשתות ולמעבדים: עד היום, כל תעבורת הרשת של ה-VM נעשתה תחת אותו Queue. מעתה, כל כרטיס ו-Queue שלו.
  • דחיסה בזמן מיגרציה חיה – מעתה ניתן לבחור אפשרות לדחוס את דפי הזכרון של המכונה האורחת שמועברת בצורה חיה, ובכך לחסוך זמן למיגרציית המכונה.
  • תמיכה ב-VM מבוסס Hyper-V: וירטואליזציית KVM יודעת לתמוך גם במכונות VM שהיו רצות תחת HyperV, כך שניתן להעביר מכונות וירטואליות ממערכות Hyper-V אל KVM.
  • תמיכה ל-USB-3 – מעתה יש גם תמיכה לציודים מבוססים USB-3 כ-Guest
  • תמיכה ל-Windows 8 ו-Windows Server 2012 – המערכות הנ"ל נתמכות באופן מלא על RHEL-7 כאורחות.
  • הקטנת משאבים ל-VM: ניתן להגביל מכונות VM מבחינת משאבים אם המכונה האורחת לדוגמא "משתוללת" (מתאים במיוחד ל-Hosting)
  • מיגרציה "חיה" בין שרתים: מעתה ניתן לבצע Live Migration בין מערכות RHEL 6.5 ל-RHEL-7 (כך שאם רץ אצלכם KVM על RHEL 6.5 ואתם מקימים שרתי RHEL-7, תוכלו להעביר את המכונות האורחות בצורה חיה).
  • תמיכה בכרטיסי גרפיקה מקצועיים: ניתן למפות מעתה כרטיסים גרפיים מקצועיים (Quadro, GRID, Tesla K) של nVidia ישירות למערכת VM, כך שהכרטיס הפיזי יהיה הכרטיס הגרפי השני (הראשון הוא הוירטואלי).
  • תמיכה ב-AER: אם הלוח שלך תומך ב-PCI AER (רוב לוחות האם עם PCI Express, לא כולם) ומיפית כרטיס PCI אל VM ויש תקלה בכרטיס PCI, רק ה-VM מופסק, ולא כל המערכת הפיזית.
  • תמיכה ב-Q35 Chipset: (עדיין ב-Preview) – מעתה ניתן להקים VM מבוסס Q35 מה שיתן למערכת האוכלת פונקציונאליות כמו AHCI. מצוין אם אתם רוצים להקים VM שיריץ Windows עדכני.
  • תמיכה ב-Large Pages עם VT-d: אם המכונה שלכם כוללת מעבד עדכני עם תמיכת VT-d, ניתן להגדיר ב-KVM שהוירטואליזציה תשתמש ב-2 מגה זכרון שישמשו כ-Buffer לתרגום פעולות I/O בין המערכת האורחת למערכת האמיתית (host) ובכך לשפר ביצועי דיסק/רשת בוירטואליזציה.
  • תמיכה ב-QCOW V3 (נקרא גם QCOW3): אחת התלונות הכי גדולות על KVM (ועל פתרונות וירטואליזציה אחרים, אגב) היא איטיות בכל מה שקשור לדיסק בהשוואה למערכת "טבעית". QCOW2 V3 בא לתת פתרון עם ביצועים מאוד קרובים למהירות "טבעית". ניתן לקרוא על QCOW2 V3 בהרחבה כאן.
  • מיגרציה חיה בשרשור – מעתה Live Migration יהיה במקום Process יחיד – כ-Thread (פר מיגרציה)
  • תמיכה בחיבור חי של ציוד: מעתה ציודים כמו USB או סריאליים ניתן לחבר באופן "חי" ישירות ל-VM (הגיע הזמן, אצל המתחרים זה קיים ממזמן).
  • תמיכה בטכנולוגיות החדשות של מעבדי אינטל (כמו 256 ביט integer vectors), פקודת MOVBE ועוד.
  • תמיכה בוירטואליזציה אחרת: ניתן להשתמש במערכות VM שהוקמו על HyperV ישירות ללא צורך בהמרה.
  • תמיכה משופרת ב-libguestfs: מעתה ניתן להשתמש בדיסקים וירטאליים (שרצו על מכונת VM) במכונה אחרת (או במכונת ה-host) עם הגנה של sVirt (כך שאפליקציות זדוניות מהמערכת האורחת לא ירוצו על מערכת אחרת שבוצע אליה mount לדיסק). ניתן מעתה להשתמש בדיסק האורח כ-block device דרך NBD. בנוסף ניתן לחבר בצורה "חמה" דיסקים כאלו.

וירטאליזציה מתחרה: RHEL-7 מאפשר להריץ עליו מכונות וירטואליות, אך יהיו רבים שירצו להריץ את המערכת כ-VM, ורד האט השקיעו בגירסה הזו את המקסימום:

  • יש תמיכה מלאה ב-XEN (כך שאין צורך להתקין/לשנות את המערכת על מנת שתרוץ כמערכת אורחת תחת XEN)
  • משתמשים ב-Hyper-V? תשמחו לדעת ש-RHEL-7 יכולה להיות משומשת כמכונה מסוג "דור שני" על ה-Hyper-V (ללא התקנת דרייברים נוספים) תחת Windows Server 2012 R2.

וירטואליזציית אפליקציות: RHEL-7 כוללת את LXC שמוכר יותר כ-Linux Containers. הקונטיינרים הללו הם מה שיש בסולאריס ומוכר כ-Zones, מה שהיה בעבר ב-OpenVZ: מערכת שיכולה להקים מכונות וירטואליות אך ללא כל הטרראם של מערכת וירטואליזציה מלאה. אין כאן דרייברים, חיבור ציודים חיצוניים כמו USB, PCI וכו'. המטרה היא לאפשר לך מערכות אחרות קטנות כדי להריץ עליהן אפליקציות לשם Build, לשם ניסויים וכו'. אחת האפליקציות הכי פופלריות לשימוש יחד עם LXD הוא ה-Docker שנותן לך את כל הכלים להקים ולתחזק קונטיינרים כאלו (ויש גם ממשק WEB אם אתם רוצים). אפשר, אגב, עם LXC להתקין מערכות לינוקס מתחרות על אותו לינוקס שאתם מריצים (אך לא מערכות שאינן לינוקס).

Clusters: ב-RHEL-7 האשכולות (Clusters) מוגדרים ומנוהלים ע"י Pacemaker. ביי ביי luci, ricci, ccs ושלום ל-pcs. כלי לא כל כך קל, כך שאם אתם רוצים, גם לזה יש ממשק WEB.

פיתוח: כמיטב המסורת של Red Hat, גם הפעם הכלים בהפצה מעודכנים לגירסה האחרונה היציבה. GCC בגירסה 4.8, עם שיפורים ותוספות, תמיכה למעבדים חדשים, תמיכה ב- ++C בסטנדרט 11++C ותמיכה חלקית ב-C11, תמיכה משופרת ב-OpenMP. גם GLIBC קיבל עדכונים והוא בגירסה 2.17, עם שיפורים ואופטימיזציות רציניות למעבדי אינטל ו-AMD (גירסת 64 ביטכמובן), תמיכה משופרת ב-SSE ו-SSSE3, SSE4.2, AVX. גם התמיכה ב-PowerPC וב-Power7 שופרה וכמו כן יש תמיכה משופרת בהרבה ל-S/390, Z10, zEnterprise 196.

גירסאות מעודכנות לשפות תכנות: Ruby 2.0, פייתון מגיע ב-2 גרסאות, כאשר גירסה 2 שמגיעה (2.7.5) תואמת קדימה לפייתון 3, מודול I/O מהיר יותר, ומודול sysconfig (נו, זה רד האט, החברה שכל הכלים וההתקנה שלה כתובים בפייתון). גירסת JAVA היא 7 ויש תמיכה מלאה למספר גרסאות JAVA במקביל שיותקנו על המערכת (השתמשו בפקודת alternatives כדי לשנות/להציג איזו גירסת JAVA אתם רוצים להשתמש אם התקנתם יותר מגירסה אחת). 

רשת: כפי שציינתי לעיל, RHEL-7 משתמש בברירת המחדל לכל אורך הדרך ב-NetworkManager ואיתו ניתן להגדיר רשת כחיבור יחיד או יותר, Teaming, Bonding, VPN, חיבור DSL, WIFI ועוד, כלומר הכל תחת כלי אחד. מבחינת חומת אש, RHEL-7 משתמשת ב-firewalld, שזו חומת אש דינמית עם תמיכה ל-Zones. מבחינת DNS, המערכת מגיעה עם DNS Client שתומך ב-DNSSEC על מנת לבצע אותנטיקציה ולוודא שנתונים עברו בהצלחה ללא הפרעה.

כלי נוסף ש-RHEL-7 מגיעה איתו הוא ה-OpenLMI, שהוא כלי לניהול שרתים כאשר התוצאה אינה ידועה (בניגוד ל-Puppet שהכל ידוע מראש). על ההבדלים בין Puppet/Chef ל-OpenLMI ניתן לקרוא בהרחבה כאן.

אותנטיקציה: ב-RHEL-7 רד האט די "נכנעים" לשוק וקל יותר לצרף מכונות ושרתי לינוקס ל-Active Directory (בין אם מדובר על ה-Active Directory של מיקרוסופט, או אם אתה משתמש במימוש SAMBA). ישנו Trust חדש ב-RHEL-7 וקל מאוד (בעזרת פקודת realm) לחבר מכונת RHEL-7 לשרת Active Directory. שימו לב: חשוב שיהיו POSIX Attributes ב-AD על מנת לאפשר למשתמשי לינוקס להתחבר למכונות RHEL אם האותנטיקציה מבוצעת על AD.

אבטחה: ב-HREL-7 נעשו מספר שינויים רציניים לאבטח יותר חזק את המערכת, להלן חלק מהשינויים:

  • מעתה ניתן להגדיר ChrootDirectory יחד עם משתמשים מסויימים שאתם רוצים שיכנסו, והם יהיו תחת ה"השגחה" של SELinux (בדף ה-MAN זה מופיע תחת: selinuxuser_use_ssh_chroot). 
  • אבטחה משופרת יותר ל-SSH: מעתה ניתן להגדיר מספר "אתגרים" לחיבור. עד כה לדוגמא היה אפשר לבקש מהמשתמש מפתח או סיסמא, מעתה ניתן להגדיר שמשתמש יוכל להיכנס רק ע"י מענה ל-2 האתגרים או יותר (מפתח, סיסמא, כרטיס חכם)
  • חבילת ה-NSS שודרגה ומעתה אלגוריתמים ישנים כבר לא מתקבלים.

דסקטופ: אין הרבה מה לחדש: GNOME 3, עם מראה Gnome Classic (מראה רשימת חלונות למטה, ותפריטי Applications ו-Places למעלה). +GTK שודרג ל-3 והוא מותקן אוטמטית במקביל עם גירסה 2, כך שאפליקציות ישנות אמורות לרוץ ללא בעיה. בונוס: אפליקציית GNOME Boxes ליצירת מכונות וירטואליות על המכונה שלך וניהול (קליל) של מכונות וירטואיליות על KVM מקומי או רחוק.

מבחינת KDE – גירסה 4.10 מגיעה עם RHEL 7 עם Plasma Workspaces. אפליקציה נחמדה שמגיעה איתה: KScreens לניהול דינמי של חיבור מסכים למחשב.

שרתי אפליקציות: להלן שרתי האפליקציות שמגיעים עם RHEL-7 והערותיי:

  • Apache 2.4 – שרת ה-HTTP הכי ידוע בעולם מגיע בגירסה 2.4. בגירסה זו שונו מספר דברים וכתוצאה מכך נשברו (מבחינת תואמות בינארית) מספר מודולים. תוכלו לקרוא עליהם כאן. מבחינת CGI, יש לאפאצ'י 2.4 מודול Native כ-FastCGI שנמצא תחת mod_proxy
  • MariaDB 5.5 – מעתה במקום לאמר MySQL Server, אימרו MariaDB Server. אותה הגברת בשינוי אדרת. עוד פרטים לגבי השינוי והיתרונות – כאן.
  • PostgreSQL 9.2 – עוד אפיקציית בסיס נתונים ידועה.

לסיכום: RHEL-7 זו הגירסה שבעצם משלימה פער גדול מסוף שנת 2010 (הזמן שרד האט 6.0 יצאה לשוק), הרבה דברים משתנים ומשתפרים ורד-האט מנצלת את ההזדמנות גם להיפטר מדברים ישנים. 

האם כדאי להטמיע את RHEL 7 לכשתצא? כן אבל לאט. קודם כל, חשוב להבין שרד-האט זורקת המון דברים ודרייברים החוצה, כך שיכול להיות שלמשך זמן מסויים תצטרכו לתמוך ב-2 הפצות בארגון שלכם (גירסה 6 ו-7), זו תהיה הזדמנות טובה עבורכם להעריך מחדש מה האפליקציות שרצות, על מה הן רצות, האם כדאי לעשות לאותן מערכות P2V?, האם כדאי להתחיל לבדוק אלטרנטיבות לאפליקציות ישנות? כל ארגון והחלטותיו.

כדאי לתת את הדעת על עוד נקודה שלא רבים מתייחסים אליה: ישנם הרבה חלקים בהפצות לינוקס שמשתנים יותר מהר ממה שגירסאות Major משוחררות. כך לדוגמא PHP שמגיע עם RHEL 6 הוא 5.1, משהו ש-ZEND יצעקו עליך לא להריץ בשום מערכת ועדיף שתריץ את גירסה 5.4 או אפילו 5.5, אבל רשמית היא לא קיימת להפצת RHEL (היא קיימת ב-repository של צד ג', כמו remi), כנ"ל לגבי ספריות ואפליקציות נוספות (הדפדפן כרום לדוגמא לא קיים יותר ל-RHEL או CentOS אלא דרך טריקים ושפצורים) ורד-האט עדיין לא נתנה שום פתרון לכך. Fedora לא מומלץ שיכנס בשום ארגון ולשום מחשב שמייצר דברים של פרודקשן אלא למטרת טסטים. האם רד-האט תלך בעקבות Open SuSE והפצות אחרות ל-Rolling release? אני בספק. לקוחות רד-האט מצפים לדברים יציבים, גם אם הם לא הכי מעודכנים.

סקירה: רד-האט 7 (בטא) – חלק ראשון

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

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

אז למי שלא מכיר את רד האט מבחינת היסטוריה, הנה הסבר קצר: רד-האט היא חברה עם "ביצים של שור". כשהם מחליטים ללכת על משהו, הם עושים זאת (גם כשהם עושים שטויות. דוגמא? נסו לחפש ספר כלשהו על KVM באמזון או כל חנות ספרים אחרת, באנגלית. לא תמצאו והתיעוד של רד-האט לוקה בחסר). מי שעבד עם הפצות רד האט בעבר ראה איך בגירסה אחת החברה תומכת ב-X ובגירסה אחרת לאחר תקופה – החברה זורקת את אותה טכנולוגיה/תמיכה בטכנולוגיה ולפעמים חוזרת בה (לדוגמא: תמיכה ב-XEN), אבל אם יש משהו אחד שרד-האט שולטת בו ללא עוררין – הוא שוק ה-Corporate, במיוחד השוק האמריקאי עם קשרים מצויינים ליצרני חומרה, יצרני תוכנות CAD ואנימציה ולאחרונה גם קשרים טובים עם יצרני מעבדי ARM. רוב יצרני החומרה שולחים ציודים לרד-האט (או עובדים עם רד-האט) לקבל סרטיפיקציה שמערכת ההפעלה רצה בצורה חלקה עם גירסאות ה-RHEL למיניהן, כך לדוגמא שרתים של HP, IBM, DELL תמיד תומכים לחלוטין בהפצות רד-האט המסחריות (לא Fedora) ואותן חברות גם מנפיקות דרייברים ואפליקציות שירוצו תחת RHEL. לאחרונה גם נוספה חברה נוספת שאולי שמעתם עליה .. מיקרוסופט. הם גם עובדים עם רד-האט והם מממנים תמיכה של Hyper-V הן ל-KVM והן RHEL כ-Guest שנתמך רשמית עם דרייברים רשמיים "ישר מהקופסא".

רד-האט עובדים בצורה מאוד פתוחה עם הציבור וקהילת הקוד הפתוח. אחת לחצי שנה (בערך) משוחררת גירסת Fedora ובה נמצאים החידושים האחרונים מבחינת תמיכה בציוד, אפליקציות חדשות, גירסאות חדשות של תוכנות שונות, תמיכה בסטנדרטים ועוד. רד-האט גם לא מתביישת להעיף תמיכה מסטנדרטים ישנים והמושג Depricated מוכר היטב לכל איש לינוקס. לאחר בערך כמחצית השנה רד-האט משחררת גירסת Fedora חדשה ולאחר כשנה מיציאת 2 גרסאות אחורה, רד-האט מפסיקה לשחרר עדכונים לאותה גירסה ובאגים שנפתחים עליה נסגרים במהירות כ-WONTFIX. גירסאות ה-RHEL הן בד"כ שילוב של גירסה וגירסה לפני או גירסה לפני אחרונה + תיקונים (כך לדוגמא, רד-האט 7 מבוססת על Fedora 19 + עדכונים ותיקונים וקרנל 3.10), לאחר שרד-האט יוצרים פיצול (fork) – ואותה גירסה תהיה ה-RHEL הרשמי, אז מתחילים להגיע שפצורים ותיקונים שמגיעים באופן רציף במהלך ה-Updates וה-Live cycle מ-בטא עד מוצר רשמי.

רד-האט 7 שונה מאוד מגירסאות RHEL קודמות בכל מיני מובנים:

  • מערכת ההפעלה יודעת לתקשר בצורה הרבה יותר טובה עם הסביבות, בין אם זה סביבות מתחרות (מיקרוסופט) ובין אם זה ציודים וחיבורים שונים. מה שהיה בעבר נחשב כאב ראש להגדרה, בגירסה הקרובה העניין יהיה פשוט (כמו להתחבר ל-Active Directory וכו')
  • בגירסה זו רד-האט החליטה "לחסל" תמיכה בציוד ישן, כך שדרייברים לציודים ישנים (בני 4 שנים ומעלה לערך) פשוט לא נמצאים יותר בהפצה, ורשימת הדרייברים שהועפו – לא קצרה. דוגמא פשוטה: אתם חובבי שרתי HP וכתבת כמה סקריפטים שמשתמשים בדרייבר cciss לדיסקים ובקר? אם תעבור ל-RHEL-7 תצטרך לשכתב הכל מחדש, כי אין יותר cciss.
  • רד האט עוברת למערכות קבצים של "החבר'ה הגדולים", כך לדוגמא מערכת הקבצים (File System) בברירת המחדל תהיה XFS של סיליקון גרפיקס והפעם ישנה גם תמיכה ב-BTRFS (טמטום של אורקל: במקום לשחרר את ZFS עם רשיון פתוח וגירסת ZFS מעודכנת, הם משלמים לצוות מהנדסים לכתוב את BTRFS) כך שמבחינת Storage לא חשוב מה תזרוק על RHEL, ה-File System יתמוך בקלות.
  • רד-האט נוטשת את מערכות ה-32 ביט. תוכל כמובן עדיין לרכוש גירסה 32 ביט, אבל רד האט מודיעה רשמית: אם יש לך אפליקציות 32 ביט, תבצע להן Port ל-64 ביט או שתחפש אפליקציה 64 ביט אחרת שעושה אותה עבודה. גרסאות הבאות כבר לא יהיו קיימות יותר עם 32 ביט (אם כי כמובן תהיה תמיכה ב-32 ביט במערכות 64 ביט)
  • מערכות שלמות שליוו את גירסאות רד-האט למיניהן שנים רבות, אומרות "ביי ביי" ברד-האט 7. ביי לכל עניין ה-service/chkconfig וכו', ושלום ל-systemd וכדאי שתכירו טוב את journalctl אם אתם רוצים לדעת מדוע שרות כלשהו לא ממש רוצה לעלות ולפעול.
  • מבחינת וירטואליזציה, KVM קיבל שדרוג רציני מבחינת תמיכה בפונקציות חדשות עם תמיכה ליותר זכרון (עד 4 טרהבייט, לכו תמצאו מכונה כזו…), ותופינים נוספים.
  • לחברות בעלות מערכות POWER של IBM – אם תרצו לעבור ל-RHEL-7, תצטרכו לדסקס עם סמנכ"ל הכספים, מעכשיו התמיכה ל-Power7 ומעלה בלבד. (אגב, נקודה אישית: מישהו אולי מוכר מערכת Power5 שהיא Workstation? אם כן, אני מעוניין לרכוש, צרו קשר).
  • שאר השינויים והשינויים המוזכרים יופיעו בהרחבה בחלק השני של הפוסט.

רד-האט 7 במידה מסויימת בא לדרוך עם פטיש 10 קילו על רגל של חברה מסויימת. של אורקל וליתר דיוק על החלק של SUN שאורקל רכשה. בעבר היו לסולאריס יתרונות רבים על פני RHEL (הן מבחינת ברזל והן מבחינת מערכת הפעלה) אבל הפער מצטמצם במהירות. סתם דוגמא: חובבי סולאריס היו מאוד גאים ב-DTrace שמשמש לדיבאגינג אפליקציות בצורה דינמית מבלי לקלל כל 3 שניות את הבאגים. עכשיו יש DTrace ללינוקס (כולל קרנל מודול) ויש כמובן את Systemtap. מערכת קבצים כמו ZFS נחשבת לאחת המתקדמות ביותר שיש, אבל אורקל מפתחת את המתחרה (טמטום, זוכרים?) BTRFS שאמנם עדיין לא מגיע לרמה של ZFS (שאגב, קיים גם ללינוקס), אבל הוא בהחלט בדרך להיות שווה לה. מבחינת כמות אפליקציות ותאימות, דווקא SUN עושים Porting לאפליקציות לינוקס אל סולאריס עוד מסולאריס 10 (ומי שמשתמש בסולאריס 10 ומעלה, יכול להעיד שהמערכת כבר מאוד דומה להפצות לינוקס).

רד-האט, מבחינה "פוליטית", עובדת הפוך מחברות אחרות בכל הנוגע להפצות חופשיות (אההמ… קנוניקל ודביאן… אין שם ממש אהבה, לא שממש יכולה להיות שם משהו כשאדון סטולמן ומעריציו בדביאן). קהילת ה-CentOS קיבלו מיידית גישה עוד לפני שיצאה הבטא הראשונה של RHEL-7 ורד-האט עובדים במשותף עם קהילת ה-CentOS על מאגר (repository) שנותן תוספות שמסיבות שונות לא יכולות להיכנס ל-RHEL, אני מדבר על מאגר EPEL כמובן, ו-CentOS-7 בדרך לצאת ואפשר לעקוב אחרי ההתפתחות בדף מיוחד באתר של CentOS וכפי שנכתב שם, מהרגע שיצא בעתיד גירסת בטא חדשה וגירסה רשמית של RHEL-7, גירסת CentOS תצא תוך ימים ספורים אחריה, לרווחתם של אנשי סיסטם רבים.

ולבסוף, אני מעוניין להתייחס לנקודה שרבים שואלים מבחינת הפצות: אובונטו או רד-האט/CentOS? מבחינת דסקטופ, אין ספק שקנוניקל השתלטה על השוק הזה (רד האט פשוט לוקחים גירסאות Desktop כמו KDE ו-GNOME את הגירסה היציבה ופשוט זורקים אותה בפנים עם מספר תיקונים ותו לא), אבל בתחום שרתים רד-האט עדיין שולטת ללא עוררין. רוצים הוכחה? הנה הקטלוג חברות יצרניות שרד-האט נותנת תמיכה רשמית, והנה הקטלוג של קנוניקל, יצרנית אובונטו. רואים את ההבדל הענק? (רד האט גם רווחית, אובונטו עדיין לא), כך שאם אתם ניגשים ללמוד כדי להיות אנשי סיסטם, במיוחד על שרתים, עדיף שיהיה לכם VM עם CentOS האחרון עם נסיון טוב עליו (רד האט הרשמי יהיה קצר יקר בשביל זה, 800 דולר לשנה)

ההצעה שלי להתקנת Fedora

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

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

כיום בפדורה (ובמה שיהיה RHEL-7 בקרוב) יש התקנה גרפית שהיא פשוט זוועתית. כפתורים שנמצאים במיקומים מוזרים, חלקי הגדרות שפשוט לא עובדות (התקנתם לאחרונה CentOS 6 ושמתם לב שלמרות שהגדרתם כרטיס רשת והוא החליט שזה רעיון רע לכתוב את ההגדרות לדיסק?) ובכלל חוויית ההתקנה נותנת הרגשה מוזרה שאותם אנשים שבנו את GNOME-3 הזוועתי ("אסור לשים אייקונים על הדסקטופ") – ידם היתה גם שם. אפשרויות ההתקנה הטקסטואליות נזרקו החוצה והתקנה דרך VNC נעלמה לה אי שם. האפשרויות היחידות להתקנה הן האפשרויות הגרפיות שתיארתי לעיל, או להפעיל את ה-DVD במצב LIVE ומשם להריץ את ההתקנה.

הבוקר הייתי צריך להרים שרת VM נוסף לפרויקט שאני חושב עליו ובזמן ההתקנה חשבתי על הנושא ותהיתי: למה לא להתקדם הלאה?

תחשבו על זה: בין אם אתם מתקינים לינוקס בבית על Virtual Box או על VMWare או אפילו על (יאכס!) Hyper-V או גם אם אתם מקימים שרת פיזי, יש לכם אתכם תמיד מכשיר נוסף: מחשב נייד, או טלפון חכם או טאבלט, וכולם מסוגלים להציג דפי HTML בצורה יפה. מדוע שלא נשתמש בזה?

בכך נקבל בעצם כמה דברים:

  • מבחינת התקנה, ישנם אנשים רבים מוכשרים שישמחו לתרום עיצוב גרפי חדש ומודרני לפדורה שיפעלו על כל דפדפן סטנדרטי.
  • אם אתם נמצאים באיזו חוות שרתים קופאים מהטמפרטורות, תוכלו להמשיך את ההתקנה מבחוץ דרך המחשב נייד או טאבלט או הסמארטפון שלכם
  • סוף סוף תהיה גרפיקה ומראה ויזואלי יותר עשיר ועוזר יותר – להתקנה ולמתקין עצמו.
  • הקץ לזוועה הגרפית של כפתורים שנמצאים ב-תחפש-אותי-במקום-שאני-לא-אמור-להיות…
  • התקנה כזו יכולה להתקבל בברכה אצל הפצות אחרות כמו אובונטו, דביאן ואפילו ב-SuSE, ואולי סוף סוף תהיה חוויית התקנה אחידה להפצות לינוקס שונות..
  • אין צורך עוד להסתבך עם KVM שמציג חצי מסך התקנה ושכל כפתור שנוגעים בו מכפיל את הלחיצה פי 100 (אהלן נטויז'ן!)

הצעתי את הרעיון לרשימת תפוצת Devel ב-Fedora, נראה מה הם יאמרו.

מה דעתכם?