Network File System
![]() |
הערך נמצא בשלבי עבודה: כדי למנוע התנגשויות עריכה ועבודה כפולה, אתם מתבקשים שלא לערוך את הערך בטרם תוסר ההודעה הזו, אלא אם כן תיאמתם זאת עם מניח התבנית.
| |
הערך נמצא בשלבי עבודה: כדי למנוע התנגשויות עריכה ועבודה כפולה, אתם מתבקשים שלא לערוך את הערך בטרם תוסר ההודעה הזו, אלא אם כן תיאמתם זאת עם מניח התבנית. | |
סיווג פרוטוקולים על פי מודל ה־OSI | ||
---|---|---|
שכבת היישום | HTTP • SMTP • FTP • RTP • IRC • SNMP • SIP • DNS • DHCP | |
שכבת הייצוג | MIME • ASCII • Unicode • TLS | |
שכבת השיחה | ASP • PPTP • SSH • NFS • RPC • SOCKS | |
שכבת התעבורה | TCP • UDP • SCTP • DCCP | |
שכבת הרשת | IP (IPv4 • IPv6) • ICMP • IPX • ניתוב | |
שכבת הקו | אתרנט • Token ring • FDDI | |
השכבה הפיזית | E1 • 10Base-T • RS-232 • DSL • SONET |
מערכת קבצים ברשת (Network File System או בקיצור NFS) הוא פרוטקול שפותח במקור על ידי חברת סאן מיקרוסיסטמס בשנת 1984 והוגדר במסמכי RFC מספר: RFC 1094, RFC 1813, RFC 3010, ו-RFC 3050, כמערכת קבצים המאפשרת למחשב לגשת לקבצים המאוחסנים על מחשב אחר המחובר לרשת כאילו היו מאוחסנים על כונניו המקומיים.
היתרון הגדול בפרוטוקול הוא שרוב מערכות המחשוב כבר מחוברות בתשתית תקשורת TCP. ולכן החיבור שלהן לשרתי נתונים התומכים בפרוטוקול הינו פשוט ואינו מצריך תשתית תקשורתית נוספת. גם במקרים שבהם נדרשת תשתית נוספת הרי שהיא מאותה סוג של תשתית התקשרות הקיימת ולא מסוגים אחרים כגון סיבים אופטיים או SCSI.
גרסאות 2 ו־3 של הפרוטקול עשו שימוש ב־UDP (גרסה 3 תומכת גם ב־TCP) ונועדו לשמר את הפרוטקול חסר מצב, בעזרת ניהול נעילות (לדוגמה) אשר יושמו מחוץ לליבת הפרוטקול. גרסה 4 כוללת שיפורי ביצועים ומציגה פרוטוקול בעל-מצב.
NFS מקושר לרוב למערכות UNIX, למרות היותו ניתן לשימוש על-גבי כל מערכת הפעלה כגון Mac OS של מחשבי מקינטוש וחלונות של מיקרוסופט. גם התקני NAS כמו NetApp filer ו־Celerra של EMC תומכים בפרוטוקול זה.
המונח "מערכת קבצים ברשת" משמש בנוסף כמונח כללי — ראו מערכת קבצים לדוגמאות נוספות.
גרסאות ופרוטוקולים קשורים
גרסה 1
פרטי הביצוע הוגדרו ב־RFC 1094 אולם סאן השתמשה בגרסה זו רק עבור ניסויים בתוך החברה. במהלך הפיתוח של הגרסה צוות הפיתוח הוסיף שינויים מהותיים ולכן הוחלט לשחרר את הגירסה החדשה כגרסה 2, על מנת שתאימות בין גרסאות, תיאום לגרסה נמוכה יותר בהתאם לגרסה שבשימוש הצד השני ו־RPC בין גרסאות יוכלו להיבדק.
גרסה 2
גירסה 2 של הפרוטוקול (שהוגדרה ב־RFC 1094, במרץ 1989), השתמש במקור רק ב־UDP. העיצוב שלו נועד לשמור על פרוטוקול חסר מצב, כאשר נעילות (למשל) יושמו מחוץ לליבת הפרוטוקול. האנשים שהיו מעורבים ביצירת גרסה 2 כללו את ראסטי זנדברג, בוב ליון, ביל ג'וי, וסטיב קליימן.
גרסה 3
גירסה 3 (הוגדרה ב־RFC 1813, ביוני 1995) הוסיפה:
- תמיכה בקבצים הגדולים מ־2 ג'גה בייט ובמיקומים בתוכם
- תמיכה בכתיבה אסינכרונית על מנת לשפר את ביצועי הכתיבה
- הוספת החזרת תכונות הקובץ בתגובות רבות, כדי למנוע את הצורך בגישה נוספת לשרת
- תמיכה בקריאת READDIRPLUS, כדי לקבל מצביע לתכונות הקבצים יחד עם שמותיהם בעת סריקת ספרייה
- שיפורים נוספים שונים.
בזמן השחרור של גירסה 3 החלה גוברת תמיכת הספקים עבור שימוש בפרוטוקול מעל TCP. בעוד כמה יצרנים כבר הוסיפו לגרסה 2 תמיכה בפרוטוקול מעל TCP, הרי סאן הוסיפה תמיכה עבור TCP באותו זמן שזאת התווספה בגירסה 3. תמיכה ב־NFS ברשתות WAN היא יותר ריאלי באמצעות TCP.
גרסה 4
גרסה 4 (RFC 3010, בדצמבר 2000; תוקן ב־RFC 3530, באפריל 2003), הושפע מפרוטוקולי AFS ו־CIFS, כולל שיפורי ביצועים, חיוב אבטחה חזקה וכן פרוטוקול בעל מצב. גירסה 4 היא הגרסה הראשונה שפותחה על ידי IETF אחרי שסאן העבירה לידיו את הפיתוח של פרוטוקולי NFS.
הגרסה המשנית 1 (4.1) אושרה על ידי IESG אבל לא אושרה סופית (נכון לאוקטובר 2009) ולא קיבלה מספר RFC עדיין (המפרט החדש, ב־612 עמודים, הוא הארוך ביותר בין תקני IETF) מלבד תיקוני באגים, מטרת המפרט היא לספק תמיכה להרחבת לחלוקת מערכת קבצים בין מספר שרתים.
הרחבות אחרות
WebNFS היא הרחבה של גירסאות 3-2 של פרוטוקול NFS המאפשרת לשלב את התמיכה בפרוטוקול בקלות רבה יותר לתוך דפדפני האינטרנט ולאפשר שימוש בו גם דרך חומות אש.
פרוטוקולים נוספים שהפכו מזוהים עם NFS הם:
- NLM - ניהול נעילת ברשת, פרוטוקול המאפשר סימון טווח נעול בקובץ (נוסף כדי לתמוך בנעילת קבצים עבור ה־API של UNIX System V).
- RQUOTAD - פרוטוקול דיווח מכסת מקום מרחוק (על מנת לאפשר למשתמשים להציג את מכסות אחסון הנתונים שלהם בשרתי NFS).
פלטפורמות
השימוש הנפוץ ביותר ב־NFS הוא עם מערכות Unix אולם גם פלטפורמות תוכנה אחרות כגון Mac OS, OpenVMS, חלונות, NetWare, ו־AS/400 יכולות להשתמש גם הן בפרוטוקול. פרוטוקולים אלטרנטיביים לגישה מרחוק כוללים את SMB (הידוע גם בשם CIFS), AFP, NCP, ואת מערכת הקבצים של OS/400 (QFileSvr.400). הן SMB והן נפוצות יותר מ־NFS על חלונות; AFP נפוץ יותר מאשר NFS על מערכות מקינטוש; ו־ QFileSvr.400 נמצא בדרך כלל במערכות AS/400.
מימוש טיפוסי
בתרחיש שבו מכונת Unix אחת (הלקוח) דורשת גישה לנתונים המאוחסנים במחשב אחר (שרת ה־NFS):
- השרת מיישם תהליכי שרת NFS (רץ בברירת מחדל כ־nfsd) כדי להפוך את הנתונים שלה זמינים ללקוחות באופן כללי
- מפעיל השרת קובע מה אמור להיות זמין, קובע את שמות הספריות המיוצאות ואת הפרמטרים שלהם (בדרך כלל באמצעות הפקודה exportfs המשנה את קובץ התצורה /etc/exports)
- מנהל האבטחה של השרת מבטיח כי זה יכול לזהות ולאשר את אימות לקוחות
- תצורת הרשת של השרת נקבעת כך שהלקוחות הרצויים יכלו לתקשר עם זה גם דרך חומות אש, אם קיימות
- הלקוח ניגש לנתונים המיוצאים, בדרך כלל על ידי ביצוע פקודת mount [הלקוח שואל את השרת (באמצעות rpcbind) באיזה יציאה תהליך ה־NFS משתמש, הלקוח מתחבר לתהליך nfsd שמעביר את הבקשה לתהליך mountd]
- אם הכל הולך כשורה, ניתן במחשב הלקוח להשתמש במערכת הקבצים על פי הפרמטרים שנקבעו בייצוא.
ניתן לבצע אוטומציה של התהליך - באמצעות /etc/fstab או תכונות automounting.