מי שעובד עם לינוקס בוודאי נחשף, אפילו אם רק לרגע, לנושא ה-filesystem. לכל מי שאין לו מושג מה זה, הדיסק הקשיח שומר מידע ביחידות שנקראות block, יחידות ממוספרות בגודל קבוע. תפקיד מערכת הקבצים הוא למפות את יחידות העבודה כמו שאנחנו מכירים אותן (קבצים, מגירות וכו’) לאותו עולם של block-ים. בחלונות מקובלות שתי מערכות קבצים. הראשונה, FAT, נמצאת שם כמעט אך ורק עקב סיבות היסטוריות. השניה היא NTFS, והיא תומכת גם בקבצים גדולים יותר, הרשאות ועוד דברים.
בלינוקס המצב הוא קצת אחר. כל מערכות הקבצים שקיימות ללינוקס (למעט אלו שנכתבו במטרה לתמוך במערכות אחרות, כמו FAT ו-NTFS) תומכות באותן תכונות בסיסיות. עדיין, יש כמות די גדולה של מערכות קבצים נתמכות, בעיקר בגלל שמקורן במערכות שונות. לינוקס התחיל את דרכו עם מערכת בשם ext2, שלימים התפתחה ובגרה למערכת בשם ext3. יש מערכת בשם JFS שמקורה בפיתוח של IBM, מערכת בשם XFS שמקורה במערכות יוניקס של Sillicon Graphics, וכו’. כמו כן, יש מערכת שנכתבה במיוחד עבור לינוקס ע”י קבוצה שבמקור היתה חיצונית לחלוטין. למערכת קוראים ReiserFS, על שם ממציאה – האנס רייזר.
ל-Reiserfs יש כמה יתרונות מעניינים. ראשית, היא היתה אחת ממערכות הקבצים הראשונות ללינוקס שתמכה במושג שנקרא Journalled file system. בלי להיות טכני מידי, מדובר בדרך לכתוב קבצים שבה לא צריך לעשות בדיקות מאוד מאוד ארוכות למערכת אחרי נפילת חשמל. בעוד שהיא אכן היתה הראשונה, בכורה זו כבר מזמן נלקחה ממנה. השכתוב של ext2 ל-ext3 נועד בדיוק כדי להוסיף תכונה זו. כמו כן, בנתיים שיכתבו מערכות כמו XFS ו-JFS ללינוקס, שגם הן תומכות בתכונה חשובה זו.
מלבד תכונה זו, אבל, יש לרייזר עוד כמה תכונות מעניינות. אחת מהן היא תמיכה בכמות מאוד גדולה של קבצים קטנים באותה מגירה, ללא אובדן ביצועים משמעותי. השניה היא היכולת לשמור כמה קבצים קטנים באותה יחידת איכסון (block), מה שמקטין את כמות המקום שהמערכת דורשת מהדיסק. בקיצור, מערכת קבצים שיודעת להתמודד טוב עם כמות גדולה של קבצים קטנים.
בגלל סיבה זו, כאשר הקמנו שרת חדש לדואר שלי ולאתרים (מה שאיפשר לי גם להתקין, סוף סוף, WordPress ולעזוב את ישראבלוג סופית), בחרתי ב-Reiserfs בתור מערכת הקבצים לכל קבצי המייל. מבחינת ביצועים ומבחינת נפחי אכסון זו נראתה כמו הבחירה המתבקשת.
אלא שבשבוע האחרון קרו שתי נפילות די רציניות של השרת. אחת מהם היתה תוצאה של panic במערכת הקבצים. השניה היתה panic לא ידוע, אבל בשני המקרים אחרי הרמת השרת היו בעיות שדרשו תיקון יסודי של מערכת הקבצים. להזכירכם, עם מערכת journaled זה לא אמור לקרות, אף פעם.
הנפילה של היום היתה הסדן ששבר את גב הגמל. העברתי את כל הקבצים הרלוונטיים ל-XFS, ואני מקווה שבזאת נסתיימו הבעיות. במהלך הימים הקרובים אני אעביר את שאר מערכות הקבצים החוצה מ-Reiserfs.
בצער רב אני אומר לך, להתראות, Reiserfs.
שחר
צירוף מקרים אני מניח שגם OpenSuSe החליטו לזנוח את ReiserFS ולעבור ל ext3.
http://linmagazine.co.il/suse/opensuse-10-2-dumps-reiserfs-for-ext3-28575
איזה קרנל אתה מריץ שחר? תוכל לפרט קצת יותר על הקונפיגורציה? יש לי ReiserFS על LVM שאני מתקין עכשיו בשביל לבדוק את SCALIX. לא הייתי רוצה שיקרה לי אותו הדבר. אשמח לדעת יותר פרטים, האם יתכן כי הנפילות שאתה חווה הן תקלות חומרה ולא תוכנה?
אגב, אם זה באג :
25$ gets you an answers
http://www.namesys.com/support.html
OT: http://en.wikipedia.org/wiki/Comparison_of_file_systems
מקסים.
הקונפיגורציה:
Debian Etch
Kernel 2.6.16 (קרה לי גם אם 2.6.17) כפי שמגיע מההפצה.
המערכת היא Reiserfs בגודל של קצת מעל 90GB, מותקן על LVM שמכסה כ-130GB, מעל Raid-1 בין שני דיסקים באמצעות MDAdm (כלומר, raid תוכנה). הכוננים הם כונני SATA. לא היתה סגירה לא מבוקרת של המחשב לפני הנפילה.
בשני המקרים, היה צריך לעשות reiserfsck –build-tree כדי לפתור את הבעיה. הבעיה עצמה היתה שונה בשני המקרים.
אי אפשר לפסול את האפשרות של בעיית חומרה, אבל קצת קשה לי להאמין שמדובר בבעיית דיסק. המערך מבוקר באמצעות SMART, כולל בדיקות offline של הדיסק עצמו, ולא מדווח על אף שגיאה (וגם לא על אף מקרה של מיפוי סקטור). בנוסף על כך, כמו שציינתי, הדיסקים נמצאים בתצורה של Raid 1.
האפשרות של זכרון לא תקין יותר סבירה, אבל השרת נמצא באירוח, כך שקשה לי מאוד להריף עליו memtest. אני אעשה את זה יותר מאוחר, אם אני אצטרך. כך או כך, השרת חדש לחלוטין, ונקנה מחברה ידועה (Dell).
שחר
תאמין או לא, אפילו אני התחלתי להרהר בנטישת ווינדואס.
בינתיים זה רק להרהר, אבל אתה יודע, כל מסע מתחיל בהרהורים.
שיהיה לך בהצלחה.
🙂
יפה שמכל הדברים שכתבתי, זה היה פוסט שמסביר איך אני אוכל חרא מהמערכת שגרם לך לכתוב את זה :-). כמו שנאמר: “Timing is everything”.
אם תחליטי שאת רוצה עזרה, את יודעת את הטלפון שלי.
שחר
גם אני נטשתי reiserfs על LVM2 (ב-FC5 שהגרעין 2.6.14 עד 2.6.17) – יש בו בגים, ובעיקר – המערכת נתקעה כמה פעמים כשהשתמשתי במנגנון ה-snapshot של ה-LVM והיו הרבה גישות לדיסק (זהו שרת קבצים – גישה ב-NFS בלבד), שיניתי ל-ext3 ולא ראיתי ירידה בביצועים.
על אותו LVM היו מוגדרים שני FS, שניהם בגודל 700GB, ורק בזה שהיה מסוג reiser היו בעיות.
זה לא כל כך פשוט. אני לא יודע מה היה פרופיל השימוש שלך.
השימוש אצלי הוא דוא”ל בגישה ב-IMap בתצורת Maildir. במילים אחרות – הרבה קבצים קטנים. בהעתקה מ-reiser ל-XFS הנפח בשימוש עלה בכמעט 5%. ההעתקה עצמה לקחה הרבה יותר זמן מאשר היתה לוקחת על reiser. במילים אחרות, עומדות להיות השלכות פה. כמובן שכאשר משווים לשרת שנתקע, ההשלכות זניחות.
שחר
יכול להיות שאתה קצת אופטימי מדי? שיטוט קצר בלינמגזין בעקבות הקישור המקורי מעלה עוד דוגמאות מעניינות:
http://linmagazine.co.il/debian/xfs-not-for-laptops
גם אני נטשתי reiserfs לאחרונה עקב kernel panics בלתי מוסברים. עברתי ל-ext3.
— אריק
Reiserfs actually worked great for me for a few years on my home desktop. It survived quite a few sudden power failures but trying to shrink it lost almost all data on it.
I eventually switched to ext3 when I installed Debian Etch.
החלפת מערכת קבצים בדיוק בזמן
סליחה, שכחתי את הלינק
http://www.theregister.com/2006/10/11/hans_reiser_arrested_in_missing_woman_case/