2002מרץ 1
מערכות קבציםFile Systems
2002מרץ עמוד2
נושאים
מבואמטרת מערכת קבצים–
מנשק למערכת קבציםפעולות על קבצים–סמנטיקה –ארגון קבצים–הגנה–
מבנה מערכות קבציםתכונות בסיסיות של דיסקים–מיפויי קבצים בסיסיים–שמירה על אמינות הנתונים והתאוששות מנפילות–מבנים מתקדמים–
2002מרץ עמוד3
מטרת מערכת קבצים
מטרה(non-volatile)שמירת מידע לטווח בינוני וארוך –
תכונות רצויותהפשטה מתכונות ספציפיות של ההתקן הפיזי–
, טייפ, ...CD-ROM, DVDגישה דומה לדיסק, •
זמן ביצוע סביר–protectionהפרדה בין משתמשים שונים – –securityהגנה – –ארגון נוח של הנתונים–
2002מרץ עמוד4
מבנה לוגי של מערכת קבצים
אוסף של קבציםכל קובץ מכיל מספר בתים/שורות/רשומות –
בגודל קבוע/משתנהקובץ יכול להכיל מידע מטיפוס מסויים–
בינרי,טקסט, ...•
2002מרץ עמוד5
(Attributes)תכונות קבצים
לקובץ בד"כ מצמידים מספר תכונותתכונות מערכת
גודל–זמן גישה אחרונה–זמן שינוי אחרון–זמן יצירה–שם )???(–
תכונות משתמש <attr_name, string> ניתן להצמיד לקובץ זוגות OS/2למשל, ב-–
GB2כאשר אורך המחרוזת יכול להגיע ל-
2002מרץ עמוד6
מנשק למשתמש
פעולות בסיסיות create, delete יצירה/השמדה של קובץ:– read, writeקריאה/כתיבה:–repositioningמיקום: –
פעולות נוספות–open, close
למה הן דרושות?•
–append, rename, copy… ,ניתן לממשן בעזרת פקודות אחרות...•
נעילה–עדכון תכונות הקובץ–
2002מרץ עמוד7
מנשק למשתמשגישה לקובץ
גישה סדרתיתבד"כ מהירה יותר–לא מחיבת לציין מהיכן לקרוא–prefetchingמאפשר למערכת לבצע –
גישה אקראית/ישירההגישה יכולה להיות אקראית לפי מיקום או לפי –
מפתחלפעמים ניתן לזהות תבניות גישה–
2002מרץ עמוד8
מנשק למשתמשסמנטיקה
?מהי הסמנטיקה של פקודה?readמהן תוצאות הלוואי של פקודת –מתי תוצאות הכתיבה של תהליך יכולות להיראות אצל תהליכים –
אחרים?מתי כתיבה הופכת יציבה )מגיעה לדיסק(?–האם מותר ליותר מתהליך אחד לכתוב בו-זמנית לאותו קובץ?–האם כתיבות אטומיות?–מה עם עדכון התכונות?–
נכונות של תכנית תלויה בהנחות על סמנטיקת מערכתהקבצים
של תכניותportabilityסמנטיקות שונות מקשות על –
2002מרץ עמוד9
מנשק למשתמש כדוגמאPOSIXסמנטיקה –
במשך השנים, התפתחו גרסאות שונות שלUnixלפעמים הבדלים גדולים בסמנטיקה–
•SunOS, AIX, BSD, FreeBSD, Linux… ,
-גוף סטנדרטים של הIEEE יזם הגדרת סמנטיקה אחידה )סטנדרטית(
רחבה יותר מאשר מערכת הקבצים–כוללת ניהול תהליכים, חוטים, וכו'•
-יותUnixיכולה להיתמך )חלקית( ע"י מערכות הפעלה לא –POSIX-compliant כוללת סביבה Windows NTלמשל •
compliantחלקים של מערכת ההפעלה עשויים לא להיות –Network File System )NFS( version 3למשל •
2002מרץ עמוד10
ארגון מערכת קבצים
מטרהברוב המערכות, מספר הקבצים מגיע לאלפים–
ישנן מערכות שמכילות מיליארדי קבצים•
נדרשת שיטה לארגן את הקבצים–שיטות מקובלות
– בד"כ לפי התקנים(partitions)מחיצות – – טבלאות הקבצים (directories)מדריכים –
בתוך המחיצה
2002מרץ עמוד11
פעולות על מדריכים
ניתן להתיחס למדריך כמבנה נתונים מופשטעם הפעולות הבאות
מציאת קובץ )לפי שם(–יצירת כניסה–מחיקת כניסה–קבלת רשימת הקבצים בתוך המדריך–החלפת שם של קובץ–וכו'–
?מהו המבנה של מדריך
2002מרץ עמוד12
מבנה מדריכים
מדריך בעל רמה אחתמבנה פשוטמסורבל כאשר יש מספר רב של קבציםמחייב שמות יחידיים, אפילו בין משתמשים שונים
מדריך בעל שתי רמות
לכל משתמש, מדריך פרטי עם כל קבציו–מפריד בין משתמשיםמקשה אם רוצים שיתוף קבצים בין משתמשים
pgm test data1 data2 out
usr1 usr2 usr3 usr4 usr5
f1 f2 test o1 o2 p1 test p2 cat foo
2002מרץ עמוד13
מבנה מדריכיםעץ מכוון
הרחבה לעץ בעל מספר רמות שרירותי(MS-DOS)
current directoryמלווה במושג מדריך נוכחי – –קובץ מזוהה ע"י מסלול מהשורש )מוחלט( או –
מהמדריך הנוכחי )יחסי(d1 d2 d3 d4 d5
d1-1d1-2 f1 f2 f3 d2-1d2-2 f1
d1-1d1-2 f1 f2
2002מרץ עמוד14
מבנה מדריכיםגרף אציקלי
בגרף אציקלי, מאפשרים למספר כניסות במדריכים )אולי(Unix)שונים( להצביע לאותם העצמים
– כניסה שמכילה את המסלול לעצם(symbolic link)קשר סימבולי –
– לא ניתן להבדיל בינה לבין הכניסה המקורית(hard link)קשר חזק –
?מתי נמחק קובץקשר סימבולי אינו מונע מחיקת הקובץ–
משאיר מצביע באוויר•
קשר חזק מחייב מחיקת כל הכניסות–אבל גם זה לא מספיק...•
?למה לא כדאי לאפשר גרף מסוג כלשהו
2002מרץ עמוד15
Unixמבנה מדריכים ב-
אבחנות כלליות תכונה של קובץאינושם )מסלול מלא( –
לאותו קובץ ניתן להגיע דרך מסלולים שונים•
שמאפשר לדעת מתי למחוק קובץuse-counterמחזיקים –תהליך יכול ליצור קובץ, לפתוח אותו, למחוק את הכניסה •
)היחידה( שלו מהמדריך ולהמשיך לעבוד עליו
כל תהליך מחזיק מבנה נתונים לקבצים פתוחים–בד"כ כולל מידע על מיקום נוכחי בקובץ וכו' שאינו משותף עם •
פתיחות אחרות של אותו קובץ, כולל של אותו תהליך
ישנן תכונות גלובליות שמוחזקןת בנפרד– של בעל הקובץ, הרשאות, וכו'useridזמן נגיעה אחרון, •
2002מרץ עמוד16
הגנה
המטרהלמנוע ממשתמש/ים מסויים/ים לבצע פעולות ספציפיות –
על הקובץלמשל קריאה, כתיבה, ביצוע, שינוי שם, וכו'•
– רשימות גישהAccess Listנרשום לכל אוביקט למי מותר לבצע מה–בעיה–
הרשימות עלולות להפוך לארוכות מדי וקשות לתחזוקה•
פיתרון– owner, groupנקבץ משתמשים למחלקות שונות: למשל •
universe ומספר מוגבל של פעולות read, write, execute
2002מרץ 17
מבנה פנימי של מערכת קבצים
2002מרץ עמוד18
מבוא
נתרכז בדיסקים כהתקן המועדף לאורך זמןonlineלשמירת מידע
גישה אקראית מהירה–קיבולת יחסית גבוהה–
מערכת קבצים בד"כ שומרת מידעבבלוקים באורך קבוע
כפולה של סקטורים – כאשר גודל סקטור נע בין –512B – 4KB
2002מרץ עמוד19
מבנה הדיסק
headsector
track
cylinder•מבנה כתובת • CHS - Cylinder, Head, Sector
או• LBA – Logical Block Array
2002מרץ עמוד20
שימו לב!• זמן ממוצע לגישה לסקטור אקראי:•: 4KB זמן העברה פנימי של סקטור •
ביצועים של דיסק "שרת"Seagateדוגמא -
• r סיבובים – לדקה
• l זמן ממוצע – עד trackמהגעה ל-
להגעה לסקטור• s – זמן ממוצע
להזזת זרוע track ל-trackמ-• tr קצב העברת –
נתונים פנימי
sec6.526.3 mls sec45/4 trKB
)2/(1 rl
2002מרץ עמוד21
ביצועים של דיסק "מחשב שולחני" IBMדוגמא -
sec67.1217.45.8 mls
2002מרץ עמוד22
תכונות של דיסקים
כתובותLBA מול CHS ניתן להסתיר סקטורים לא תקינים ע"י LBAב-–
הפניה כתיבות/קריאות לסקטורים רזרביים תוצאות כתיבה בעת נפילת מתח אינה
(stability)אטומית תוכן הסקטור שבכתיבה עלול להשתבש–
בקרים מתקדמים של דיסקים כולליםמטמון
2002מרץ עמוד23
מבנה מערכת קבציםדוגמא
Application
Application
Application
Application
File System API
System-call Interface
Logical File System
Virtual File System Interface
PhysicalFile
System 1
PhysicalFile
System 2
PhysicalFile
System 3
PhysicalFile
System 4
Device Driver Device Driver Device Driver
IBM
Device DriverDevice Driver
Seagate
2002מרץ עמוד24
מבנה מערכת קבציםדוגמא
Logical File Systemקטע קוד כללי, בלתי תלוי במערכת קבצים ספציפית–
קוד שמקבל מסלול, ומחזיר את קובץ היעד•ניהול מידע כללי עבור קבצים פתוחים, כמו מיקום בקובץ, וכד'•
Virtual File System interfaceמנשק אחיד לכל מערכות הקבצים הספציפיות–
, …vfs_read, vfs_write, vfs_seekכולל •
Physical File System עבור מערכת קבצים ספציפיתVFSמימוש מנשק ה-–
, וכו‘RAM, CD-ROMלמשל, מעל דיסק, דיסקט, •
בהמשך, נתרכז בו–Device Driver
קוד שיודע איך לפנות להתקן ספציפי–
2002מרץ עמוד25
מיפוי קבצים לדיסקיםהקצאה רציפה
איפיוניםהמשתמש מצהיר על גודל הקובץ בעת היצירה–מחפשים בלוקים רצופים שיכולים להכיל את –
הקובץהכניסה במדריך מצביעה לבלוק הראשון בקובץ–
יתרונות/חסרונותגישה מהירה )סדרתית וישירה(–שיברור חיצוני–קשה להגדיל קובץ–
file1file2file3 5
66
2002מרץ עמוד26
מיפוי קבצים לדיסקיםהקצאה משורשרת
איפיוניםכל בלוק מצביע לבלוק הבא–הכניסה במדריך מצביעה לבלוק הראשון בקובץ–
יתרונות/חסרונותקל להגדיל קובץ–גישה איטית, בעיקר לגישה ישירה–שימוש בבלוקים גדולים עשוי להקל, אך יגרום לשיברור –
פנימישיבוש מצביע בבלוק יגרום לאיבוד חלקים רחבים של –
קובץוריאציה
MS-DOSהחזקת שרשרת המצביעים בנפרד כמו ב-–•File Allocation Table )FAT(
file1
2002מרץ עמוד27
מיפוי קבצים לדיסקיםשימוש באינדקס
איפיוניםהמשתמש מצהיר על גודל קובץ מקסימלי–המצביעים לבלוקים מרוכזים בשטח רצוף–
יתרונות/חסרונותדומה להקצאה משורשרת, אך משפר את זמן הגישה –
הישירהצריך להצהיר מראש על גודל קבץ–
file1
2002מרץ עמוד28
מיפוי קבצים לדיסקים Combinedשימוש באינדקס –
Multilevel
modeownerstimestamps#blocksref-count
inodedirectoryfile1file2file3file4
directblocks
single indirectiondouble indirectiontriple indirection
datadatadata
datadata
datadatadata
data
data
data
data
data
2002מרץ עמוד29
מיפוי קבצים לדיסקיםUnix BSD 4.2
מאפיינים–Combined Multilevel indexfree block bitmapבלוקים פנויים – מחזיקים –
מאפשר לזהות בקלות בלוקים פנויים רצופים•
2002מרץ עמוד30
ניהול בלוקים פנוייםרשימה מקושרת
מציאת בלוק פנוי מהירה–מבנה נתונים שברירי אם בלוק באמצע הרשימה השתבש–הקצאת בלוקים המרוחקים זה מזה לאותו קובץ–
bitmapעם סיבית לכל בלוק – הבלוק תפוס; אחרת הוא פנוי0–מקל על מציאת מספר בלוקים פנויים רצופים–
הקבצהשימוש ברשימה מקושרת של בלוקים, כאשר כל בלוק מכיל טבלה –
של מצביעים לבלוקים הפנוייםמאפשרת למצוא בצורה יעילה מספר גדול של בלוקים פנויים –
ורציפים
2002מרץ עמוד31
אמינות-המידע בדיסק מתחלק ל
–user data)נתוני המשתמש )בתוך הקבצים – –metadataנתונים על ארגון הקבצים –
•inode, block tables, etc.
-איבוד/שיבוש הmetadata עלול לגרום לאיבוד user dataרב זיכרו! נפילת חשמל באמצע כתיבה עלולה לשבש את הסקטור שכעת –
נכתבהמצב מחמיר בגלל שימוש במטמון במספר רמות
בקר הדיסק, מטמון סקטורים/בלוקים בזיכרון הראשי–?מתי כתיבות יורדות מזיכרון מטמון לדיסק
–write-throughכל כתיבה יורדת מיידית לדיסק – –write-back עדכון בדיסק נעשה אסינכרונית, ללא שמירה על סדר –
בהכרח
2002מרץ עמוד32
אמינות נתוני המשתמשUnixמערכות
במערכותUnix משתמשים במדיניות write-back
נתוני המשתמש יורדים באופן מחזורי לדיסק–POSIXתואם את סמנטיקת – אשר מאלצות fsync, syncקיימות פקודות –
לכתוב את הבלוקים המלוכלכים לדיסק
2002מרץ עמוד33
metadataאמינות ה- משתמשים במדיניותwrite-through
עדכונים יורדים מידית לדיסק– לגבי נתונים מסויימים, לא נבצע כתיבהin-place
מבטיח קיום גרסא במקרה של נפילה––version numberמאפשר לדעת מהי הגרסא העדכנית
נתונים מסויימים נשמרים במספר עותקיםfile systemלמשל, שורש ה-–
כאשר מערכת הקבצים עולה אחרי נפילה, מתקניםאת מבני הנתונים
במערכות קבצים מסויימות, זה דורש מעבר על כל הדיסק–•ScanDisk, fsck )file system check(
2002מרץ עמוד34
metadataאמינות ה-loggingשימוש ב-
-שיטה יעילה לתחזוקת הmetadatajournalingמוכרת גם כ-–
•Journaled File System
מאפיינים metadata סדרתי את העדכונים על ה-logרושמים ב-–
לפני שהם נכתבים לדיסק•Write-ahead logging
לאחר מכן, הבלוקים שהשתנו יכולים להיכתב לדיסק–ייתכן אפילו לא לפי הסדר•
ניתן לקבץ מספר שינויים ולכתוב אותם בכתיבה אחת–logעדכונים שירדו לדיסק ניתן למחוק אותם מה-–
2002מרץ עמוד35
metadataאמינות ה-)המשך( loggingשימוש ב-
התאוששות מנפילהlogעוברים על כל כניסה ב-–בצע את הפעולה–
ביצוע נוסף של פקודה שהתבצעה במלואה או •חלקית נותן תוצאה שקולה לביצוע הפעולה
(idempotent)המקורית
אינה שלמה, logאם הכניסה האחרונה ב-–מתעלמים ממנה
2002מרץ עמוד36
metadataאמינות ה-)המשך( loggingשימוש ב-
יתרונות–Metadata - יכול להכתב בצורה אסינכרונית
יעילהתאוששות יעילה–
תלויה במספר השינויים שלא ירדו לדיסק, ולא בגודל •מערכת הקבצים
חסרונותדורש כתיבות נוספות–
2002מרץ עמוד37
log-structuredמערכת קבצים
מאפיינים סדרתי של כתיבותlog כ-data blocksמתייחסים ל-–log )חדש או ישן( נעשה תמיד בסוף ה-data blockכתיבה של –
ולכן העותק הישן של הבלוק לא תקף•
log ב-metadata blocksניתן גם לכתוב –יתרונות
הכתיבות הן סדרתיות )ולכן יעילות יותר(–בכתיבה סדרתית של קובץ, סיכוי טוב שהבלוקים של הקובץ יהיו –
רצופיםחסרונות
איסוף הבלוקים אשר מתפנים–logהזזת הבלוקים התפוסים לתחילת ה-–
2002מרץ עמוד38
log-structuredמערכת קבצים supermap
supermap
supermap
לפני:
אחרי שינוי בלוק:
אחרי הוספת בלוק:
Top Related