Кіріспе
Таратылған файл жүйесі протоколы – нақты бір протокол. Желілік файл жүйесі (NFS) 1984 жылы Sun Microsystems (Sun) компаниясымен әзірленген, клиенттік компьютердегі пайдаланушыға компьютер желісі арқылы файлдарға қол жеткізуге мүмкіндік береді, бұл жергілікті дискіге қол жеткізумен бірдей. NFS, көптеген басқа протоколдар сияқты, Ашық желілік есептеулердің қашықтықтан процедура шақыру (ONC RPC) жүйесіне негізделген. NFS – ашық IETF стандарты болып табылады, ол пікір алмасу үшін сұрау (RFC) құжатында сипатталған, және кез келген адамға осы протоколды жүзеге асыруға рұқсат береді.
a specific protocol
Network File System (NFS) is a distributed file system protocol originally developed by Sun Microsystems (Sun) in 1984, allowing a user on a client computer to access files over a computer network much like local storage is accessed. NFS, like many other protocols, builds on the Open Network Computing Remote Procedure Call (ONC RPC) system. NFS is an open IETF standard defined in a Request for Comments (RFC), allowing anyone to implement the protocol.
Версиялар мен нұсқалар
Sun компаниясы 1-ші нұсқаны тек ішкі тәжірибелік мақсаттар үшін қолданды. Даму тобы NFS 1-ші нұсқасына маңызды өзгерістер енгізгеннен кейін оны Sun компаниясының шегінен тыс шығарды, сонда олар жаңа нұсқаны v2 ретінде шығаруды шешті, осылайша нұсқалардың өзара үйлесімділігі мен RPC нұсқасының резервтік режимде жұмыс істеуін сынауға болады. Виртуалды файлдық жүйе интерфейсі модульдік іске асыруға мүмкіндік береді, бұл қарапайым протоколға көрініс тапқан. 1986 жылдың ақпанына қарай, Eunice қолданылып, System V 2 нұсқасы, DOS және VAX/VMS сияқты операциялық жүйелерде іске асырылғандығы көрсетілді. және каталогты қарау кезінде файл атауларымен бірге атрибуттар; сондай-ақ, басқа да түрлі жақсартулар енгізілді. Sun Microsystems компаниясының NFS Version 3 ұсынысы NFS Version 2 шығарылғаннан кейін көп ұзамай жасалды. Басты себеп – NFS 2-ші нұсқасындағы синхронды жазу операциясының өнімділігімен байланысты мәселені азайтуға жасалған тытыс болды. 1992 жылдың шілдесіне қарай, іске асыру тәжірибесі NFS Version 2-нің көптеген кемшіліктерін шешті, тек үлкен файлдарды қолдаудың болмауы (64 биттік файл өлшемдері мен ығысулар) маңызды мәселе болып қала берді. Бұл Digital Equipment Corporation үшін, олардың жаңа 64 биттік RISC процессорын – Alpha 21064-ті қолдау үшін Ultrix-тің 64 биттік нұсқасын енгізуімен байланысты өткір қиындыққа айналды. 3-ші нұсқаны енгізу кезінде TCP-ні тасымалдау қабаты протоколы ретінде қолдау көбейе бастады. Бірнеше сатушылар NFS 2-ші нұсқасын TCP-мен бірге қолдаған болатын, ал Sun Microsystems 3-ші нұсқаны қолдаумен бірге NFS үшін де TCP қолдауын қосты. TCP-ні тасымалдау ретінде пайдалану WAN желісі арқылы NFS-ті пайдалануды ыңғайлырақ етті және пайдаланушылық Datagram протоколымен белгіленген 8 КБ шегінен асатын үлкен оқу және жазу көшіру өлшемдерін пайдалануға мүмкіндік берді.
assorted other improvements. The first NFS Version 3 proposal within Sun Microsystems was created not long after the release of NFS Version 2. The principal motivation was an attempt to mitigate the performance issue of the synchronous write operation in NFS Version 2. By July 1992, implementation practice had solved many shortcomings of NFS Version 2, leaving only lack of large file support (64 bit file sizes and offsets) a pressing issue. This became an acute pain point for Digital Equipment Corporation with the introduction of a 64 bit version of Ultrix to support their newly released 64 bit RISC processor, the Alpha 21064. At the time of introduction of Version 3, vendor support for TCP as a transport layer protocol began increasing. While several vendors had already added support for NFS Version 2 with TCP as a transport, Sun Microsystems added support for TCP as a transport for NFS at the same time it added support for Version 3. Using TCP as a transport made using NFS over a WAN more feasible, and allowed the use of larger read and write transfer sizes beyond the 8 KB limit imposed by User Datagram Protocol.
WebNFS-тің атауы
WebNFS – NFSv2 және NFSv3-тің кеңейтілген нұсқасы болды, ол Portmap және MOUNT протоколдарының күрделілігінсіз шектеулі өрт қабырғаларының артында жұмыс істеуге мүмкіндік берді. WebNFS-те белгілі бір TCP/UDP порт нөмірі (2049) болды және әрбір файлдық жүйенің бастапқы файл дескрипторын анықтау үшін клиенттің MOUNT RPC қызметімен байланысуын қажет етудің орнына, бастапқы нүкте ретінде қолданылатын ашық файл дескрипторы (NFSv2 үшін бос, NFSv3 үшін нөлдік ұзындығы) тұжырымын енгізді. Бұл екі өзгеріс кейіннен NFSv4-ке қосылды.
NFSv4
4-ші нұсқа (RFC 3010, 2000 жылдың желтоқсаны; RFC 3530-да 2003 жылдың сәуірінде және RFC 7530-да 2015 жылдың наурызында қайта қарастырылды), Эндрю файлдық жүйесінен (AFS) және серверлік хабарлама блогынан (SMB, сондай-ақ CIFS деп те аталады) әсер етіп, өнімділікті жақсартуды қамтиды, күшті қауіпсіздікті талап етеді және күйлі протоколды енгізеді. 4-ші нұсқа Sun Microsystems NFS протоколдарын әзірлеуді IETF (Интернет-инженерлік жұмыс тобына) тапсырғаннан кейін әзірленген алғашқы нұсқа болды. NFS 4.1 нұсқасы (RFC 5661, 2010 жылдың қаңтары; RFC 8881, 2020 жылдың тамызында қайта қарастырылды) кластерлік серверлерді орналастыруды қолдау үшін протоколдық қолдауды қамтамасыз етуді мақсат етеді, соның ішінде бірнеше серверде таратылған файлдарға масштабталатын параллельдік қол жеткізуді қамтамасыз ету мүмкіндігін (pNFS кеңейтуі) қамтиды. 4.1 нұсқасында сессияны біріктіру механизмі (NFS Multipathing деп те аталады) бар және ол кейбір корпоративтік шешімдерде, мысалы VMware ESXi ретінде қолжетімді. NFS 4.2 нұсқасы (RFC 7862) 2016 жылдың қарашасында жаңа мүмкіндіктерімен бірге жарияланды: серверлік клондау және көшіру, қолданбалық I/O кеңесі, сирек файлдар, орынды резервтеу, қолданбалық дерек блогы (ADB), кез келген MAC қауіпсіздік жүйесіне бейімделген белгілі NFS және pNFS үшін екі жаңа операция (LAYOUTERROR және LAYOUTSTATS). NFSv4-тің алдыңғы нұсқаларына қарағандағы басты артықшылығы – қызметті іске қосу үшін тек бір UDP немесе TCP порты (2049) қолданылады, бұл протоколды брандмауэрлер арқылы пайдалануды жеңілдетеді.
Платформалар
NFS көбінесе Unix операциялық жүйелерінде (мысалы, Solaris, AIX, HP UX), Apple-дің macOS және Unix сияқты операциялық жүйелерде (мысалы, Linux және FreeBSD) қолданылады. Ол сондай-ақ Acorn RISC OS, AmigaOS, классикалық Mac OS, OpenVMS, MS DOS, Microsoft Windows, OS/2, ArcaOS, Novell NetWare және IBM i сияқты операциялық жүйелерде де қолжетімді. Басқа қашықтықтан файлдарға қол жеткізу протоколдарына Серверлік хабар алмасу блогы (SMB, сондай-ақ CIFS), Apple Filing Protocol (AFP), NetWare Core Protocol (NCP) және OS/400 File Server файлдық жүйесі (QFileSvr.400) жатады. SMB және NetWare Core Protocol (NCP) Microsoft Windows жүйелерінде NFS-тен жиі кездеседі; AFP Apple Macintosh жүйелерінде NFS-тен жиі кездеседі; ал QFileSvr.400 IBM i жүйелерінде жиі қолданылады. 2012 жылы Haiku Google Summer of Code жобасы аясында NFSv4 қолдауын қосты.
Хаттаманы әзірлеу
ONC протоколын (сол кезде SunRPC деп аталған) әзірлеу кезінде Apollo-ның Network Computing System (NCS) ғана сомен салыстыруға болатын мүмкіндіктерді ұсынды. Екі бәсекелес топ екі қашықтықтан процедура шақыру жүйесіндегі түбірлі айырмашылықтарға байланысты пайда болды. Тартыстар деректерді кодтау әдісіне қатысты болды. ONC-тің сыртқы деректерді көрсетуі (XDR) әрқашан бүтін сандарды үлкен эндиандық тәртіппен көрсетті, тіпті егер қосылымның екі жағы да кішкентай эндиандық машина архитектурасын қолданса да, ал NCS әдісі екі жақ машина архитектураларында ортақ эндиандықты бөліскен жағдайда байт алмасудан қашуға тырысты. Желілік есептеу форумы деп аталатын салалық топ 1987 жылдың наурыз айында (әдетте сәтсіз аяқталатын) екі желілік есептеу ортасын келісуге тырысты. 1987 жылы Sun және AT&T бірлесіп AT&T UNIX System V Release 4-ті әзірлейтіндерін жариялады. Бұл AT&T-тің UNIX жүйесінің басқа лицензиаттарын Sun артықшылықты жағдайға ие болады деп алаңдатты, және нәтижесінде Digital Equipment, HP, IBM және басқалар 1988 жылы Open Software Foundation (OSF) құруға келді. Қызығы, Sun және AT&T бұрын Sun-ның NFS және AT&T-тің Remote File System (RFS) арасында бәсекелестікке түскен еді, ал Digital Equipment, HP, IBM және көптеген басқа компьютер өндірушілердің RFS-ті жылдам қабылдауы пайдаланушылардың көпшілігін NFS жағына итерді. NFS өзара жұмыс істеуіне 1986 жылдан бастап өткізілген "Connectathons" деп аталатын іс-шаралар көмектесті, олар сатушыларға бір-бірімен жүзеге асыруды бейтарап түрде сынауға мүмкіндік берді. OSF Sun/ONC RPC және NFS-ке қарағанда Distributed Computing Environment (DCE) және DCE Distributed File System (DFS) жүйелерін қабылдады. DFS RPC ретінде DCE-ді пайдаланды, ал DFS Эндрю файлдық жүйесінен (AFS) туындады; DCE өзі технологиялар жиынтығынан, соның ішінде Apollo-ның NCS және Kerberos жүйелерінен алынған.
1990 жылдар
Sun Microsystems және Internet Society (ISOC) ONC RPC-нің "өзгертулерді басқару құқығын" беру туралы келісімге келді, соның арқасында ISOC-тің инженерлік стандарттар органы, Интернет-инженерлік жұмыс тобы (IETF), ONC RPC протоколдарына қатысты стандарттар құжаттарын (RFC) жариялай және ONC RPC-ді кеңейте алатын болды. OSF DCE RPC-ді IETF стандартына айналдыруға тырысты, бірақ өзгертулерді басқару құқығынан бас тартуға келмейтінін көрсетті. Кейіннен IETF, протокол стандарттарының қауіпсіздік талаптарына сәйкес келу үшін, Generic Security Services Application Program Interface (GSSAPI), RPCSEC GSS негізінде жаңа аутентификация механизмін қосып, ONC RPC-ді кеңейтуді жөн көрді. Соңынан Sun және ISOC ұқсас келісімге келіп, ISOC-ге NFS-тің өзгертулерін басқару құқығын берді, бірақ келісімшартты NFS нұсқалары 2 және 3-ті қоспау үшін мұқият жасады. Оның орнына ISOC NFS протоколына жаңа нұсқаларды қосу құқығын алды, нәтижесінде IETF 2003 жылы NFS 4-ші нұсқасын бекітті.