Network File System

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
Disambig RTL.svgהמונח "NFS" מפנה לכאן. לערך העוסק במשחק מירוצים פופולרי, ראו Need for Speed.
סיווג פרוטוקולים על פי מודל ה-OSI
שכבת יישום HTTP, SMTP, FTP, RTP, IRC, SNMP, SIP, DNS, DHCP
שכבת ייצוג MIME, ASCII, Unicode, SSL
שכבת שיחה ASP, PPTP, SSH, NFS, RPC
שכבת תעבורה TCP, UDP, SCTP, DCCP
שכבת רשת IP (IPv4, IPv6), ICMP, IPX , ניתוב
שכבת קו Ethernet, Token ring, FDDI
שכבה פיזית E1, 10Base-T, RS-232, DSL, SONET

מערכת קבצים ברשת (Network File System או בקיצור NFS) הוא פרוטקול שפותח במקור על ידי חברת סאן מיקרוסיסטמס בשנת 1984 והוגדר במסמכי RFC מספר: 1094, 1813, 3010, ו-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. יתרונה של התמיכה ב־TCP היא בכך שהמימוש של הפרוטוקול ברשתות WAN הוא יותר פשוט מאשר באמצעות UDP.

גרסה 4[עריכת קוד מקור | עריכה]

גרסה 4 (RFC 3010, בדצמבר 2000; תוקן ב־RFC 3530, באפריל 2003), הושפעה מפרוטוקולי AFS ו־CIFS וכוללת שיפורי ביצועים, חיוב אבטחה חזקה וכן פרוטוקול בעל מצב. גרסה 4 היא הגרסה הראשונה שפותחה על ידי IETF אחרי שסאן העבירה לידיו את הפיתוח של פרוטוקולי NFS.

הגרסה המשנית 1 (4.1) אושרה על ידי IESG אבל לא אושרה סופית (נכון לאוקטובר 2009) ולא קיבלה מספר RFC עדיין (המפרט החדש, ב־612 עמודים, הוא הארוך ביותר בין תקני IETF) מלבד תיקוני באגים, מטרת המפרט היא לספק תמיכה להרחבת לחלוקת מערכת קבצים בין מספר שרתים וזאת על ידי פרוטוקול pNFS.

הרחבות אחרות[עריכת קוד מקור | עריכה]

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):

  1. השרת מיישם תהליכי שרת NFS (רץ בברירת מחדל כ־nfsd) כדי להפוך את הנתונים שלה זמינים ללקוחות באופן כללי
  2. מפעיל השרת קובע את שמות הספריות המיוצאות ואת הפרמטרים שלהם (בדרך כלל באמצעות הפקודה exportfs המשנה את קובץ התצורה ‎/etc/exports)
  3. אחראי האבטחה של השרת מקנפג את השרת כך שיוכל לזהות ולאשר את זהות לקוחות
  4. תצורת הרשת של השרת נקבעת כך שהלקוחות הרצויים יכלו לתקשר עם השרת גם דרך חומות אש, אם קיימות
  5. הלקוח ניגש לנתונים המיוצאים, בדרך כלל על ידי ביצוע פקודת mount [הלקוח שואל את השרת (באמצעות rpcbind) באיזה יציאה תהליך ה־NFS משתמש, הלקוח מתחבר לתהליך nfsd שמעביר את הבקשה לתהליך mountd]
  6. אם הכל הולך כשורה, ניתן במחשב הלקוח להשתמש במערכת הקבצים על פי הפרמטרים שנקבעו בייצוא

ניתן לבצע אוטומציה של התהליך - באמצעות ‎/etc/fstab או באמצעות תכונות automount.

ראו גם[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]

  • RFC 3530 - NFS Version 4 Protocol Specification
  • RFC 1813 - NFS Version 3 Protocol Specification
  • RFC 1094 - NFS Version 2 Protocol Specification