July 21, 2004
מערכות קבצים ביוניקס\לינוקס. - חלק ראשון
מערכת הקבצים במערכת ההפעלה הינה אחת מהרכבים החשובים ביותר במערכת ההפעלה. מערכת קבצים שומרת ומנהלת את נתוני המשתמש על הכונן קשיח. תפקידה להבטיח שהמידע שנצפה מהכונן זהה למידע המקורי שנשמר. בנוסף לשמירת מידע בקבצים, מערכת הקבצים יוצרת ומנהלת את המידע על סוגי הקבצים. בנוסף אחראית על כל תקינות המידע. ממערכת הקבצים מצופה אמינות גבוהה וביצועים מצוינים.עד לפני מספר שנים, מערכת הקבצים Ext2 היתה מותקנת במרבית מערכות מחשב מבוססי יוניקס. Ext2 מערכת אמינה והותאמה למרבית פריסת לינוקס, עם כניסת מערכת לינוקס לשוק מערכות ההפעלה, הפופלריות שלה גדלה כשהיא מחליפה את יוניקס ומערכות הפעלה אחרות ומותקנת יותר ויותר על שרתים ומערכות חישוב, Ext2 הגיעה לקצה היכולת שלה כשנוצרו דרישות חדשות, למחיצות כונן קשיח מוגדלות יותר, איחזור נתונים מהיר מקריסת מערכת, ביצועים גבוהים של קריאת וכתיבת נתונים. הדרישה לשמירת אלפי קבצים ששוקלים טרהבייט של נתונים, שזה הרבה מעבר ליכולת של Ext2.
למרבה המזל, מספר מערכות קצבים המשיכו מהיכן ש Ext2 נעצרה. לינוקס הציעה אלטרנטיבה חדשה של ארבעה מערכות קבצים חדשות: Ext3, ReiserFS, XFS, וJFS (במערכות יוניקס AIX ו OS/2). בנוסף לכל מה שצוין למעלה מערכות הקבצים גם תומכות ב"תיעוד" (Journaling) מאפיין שחברות נזקקות לו, אך כמובן שמועיל גם למשתמשי קצה שמריצים לינוקס. מערכות קבצים מתעדות, מפחיתות את התרסקות הקבצים ומאיצות את זמן הקריאה והכתיבה. במערכות קבצים מתעדות אין צורך יותר ב Fscks.
במהלך הכתבה אסביר מה היא מערכת קבצים מתעדת, ואתיחס לכל אחת מהארבע מערכות הקבצים ללינוקס.
מה היא מערכת קבצים מתעדת?
הבעיה עם מערכות הקבצים הותיקות.
מערכת קבצים מתעדות קמה במטרה לפתור את בעית מערכות קבצים הותיקות, הבעיה במערכות אלו הינה במהלך כתיבת נתונים על הכונן הקשיח, מערכת הקבצים חיבת לכתוב Metadata, שזה מידע אודות הנתונים שעל הכונן, לדוגמא מקום הנתונים על הכונן או שמות הקבצים. במידה ובאמצע שמערכת הקבצים כותבת את ה metadata, נותק הכונן קשיח, או שנכבה המחשב, ה-metadata לא נשלם על הכונן מה שיכול להביא למצב של אי עקביות במערכת הקבצים. ביכולת מצב של תיאור שאינו תואם לקובץ עצמו.
אחד מהאפשרויות לטפל בבעיה היה להריץ תוכנה שתפקידה היה לסרוק את הכונן, ולתקן כל חוסר עקביות במערכת. כמו תוכנות Scandisk ששולבה במערת חלונות של מיקרוסופט, Fsck על יוניקס ומערכות דומות, ותוכנת Disk First Aid על מערכות אפל מקינטוש. אך לשיטה זו היו שני חסרונות. החיסרון הראשון, סריקת כל הדיסק בהפעלה דורשת זמן רב. החיסרון השני, ישנה אפשרות שתוכנת הסריקה תתקל בבעיה שלא תוכל לתקן והמידע ילך לאיבוד.
התשובה לבעיה: מערכות קבצים מתעדות.
מערכות קבצים מתועדות פנו לבעיה בכתיבת קובץ מיוחד שנקרא "מתעד" (Journal), מטרת התוכנה היא לעקוב אחרי דוחות של הכונן, ולעדכן לכונן במצב Atomic transaction.
(בחישוב, Atomic transaction זה אחת משני אפשרויות: התרחש לגמרי. או נכשל לגמרי להתרחש. (completely occurs, or completely fails to occur). למשל, כאשר בהעברת סכום מחשבון X לחשבון Y, אם התוכנה כבתה בתהליך ההעברה, הדבר הטוב ביותר הוא ששום חשבון לא ישונה, כך פועל עיקרון Atomic transaction. בצורה אופינית, ערכות גרעינית מיושם בהענקת מגנון התראה איזה דוח מותחל ואיזה דוח מסוים, או בשמירת עותק של נתונים לפני שנעשו בו שינוים. ReiserFS פיתחו שיטה שאינה מצריכה שמירת עותק של נתונים.)
אם הספק במחשב נותק, סט נתונים של עידכונים יהיה מותאם במלואו למערכת הקבצים, בכל מצב אינו בעיה, ומערכת הקבצים תוכל להשתמש בזה ישר, או שתסמן כטרם מותאם במלאו, בכל אחד מהמצבים מנהל התקן של מערכת הקבצים לקרוא את התיעוד ולתקן את אי העקביות. זה הרבה יותר מהר מסריקת הכונן, ונותן אחריות למבנה מערכת הקבצים שתוכל נאמנה לעצמה בכל מצב, גם במידה וספק הכוח נותק, או שמערכת קורסת בזמן אקראי. חלק ממערכות הקבצים שמתעדות, מתעדות רק את ה metadata , וחלקם מתעדות את כל הנתונים שבכונן.
בכתבה השניה אסביר איך עובד שמירת המידע על הכונן קשיח ומה ההבדלים בין מערכות הקבצים השונות.
Posted 4 years, 10 months ago on July 21, 2004
