stringtranslate.com

Сетевая файловая система

Сетевая файловая система ( NFS ) — это протокол распределенной файловой системы, первоначально разработанный Sun Microsystems (Sun) в 1984 году [1], позволяющий пользователю клиентского компьютера получать доступ к файлам через компьютерную сеть, подобно тому, как осуществляется доступ к локальному хранилищу. NFS, как и многие другие протоколы, основан на системе удаленного вызова процедур открытых сетевых вычислений (ONC RPC). NFS — это открытый стандарт IETF, определенный в запросе комментариев (RFC), позволяющий любому реализовать этот протокол.

Версии и вариации

Sun использовала версию 1 только для собственных экспериментальных целей. Когда команда разработчиков внесла существенные изменения в NFS версии 1 и выпустила ее за пределами Sun, они решили выпустить новую версию как v2, чтобы можно было протестировать взаимодействие версий и откат версии RPC. [2] [3]

НФСv2

Версия 2 протокола (определенная в RFC 1094, март 1989 г.) первоначально работала только через протокол пользовательских дейтаграмм (UDP). Его разработчики намеревались сохранить серверную часть без сохранения состояния , с блокировкой (например), реализованной вне основного протокола. В создании второй версии NFS участвовали Рассел Сэндберг, Боб Лайон, Билл Джой , Стив Клейман и другие. [1] [4]

Интерфейс виртуальной файловой системы допускает модульную реализацию, отраженную в простом протоколе. К февралю 1986 года были продемонстрированы реализации для таких операционных систем, как System V Release 2, DOS и VAX/VMS с использованием Eunice . [4] NFSv2 позволяет читать только первые 2 ГБ файла из-за 32-битных ограничений.

НФСv3

Версия 3 (RFC 1813, июнь 1995 г.) добавлена:

Первое предложение NFS версии 3 в компании Sun Microsystems было создано вскоре после выпуска NFS версии 2. Основной мотивацией была попытка смягчить проблему производительности операции синхронной записи в NFS версии 2. [6] К июлю 1992 года реализация была реализована. практика устранила многие недостатки NFS версии 2, оставив насущной проблемой только отсутствие поддержки больших файлов (64-битные размеры файлов и смещения). Это стало острой проблемой для Digital Equipment Corporation с появлением 64-битной версии Ultrix для поддержки их недавно выпущенного 64-битного RISC- процессора Alpha 21064 . Во время выпуска версии 3 поддержка поставщиками TCP как протокола транспортного уровня начала расширяться. Хотя несколько поставщиков уже добавили поддержку NFS версии 2 с TCP в качестве транспорта, Sun Microsystems добавила поддержку TCP в качестве транспорта для NFS и в то же время добавила поддержку версии 3. Использование TCP в качестве транспорта с использованием NFS через глобальную сеть . более осуществимо и позволяло использовать большие размеры передачи для чтения и записи, превышающие предел в 8 КБ, установленный протоколом пользовательских дейтаграмм .

ВебНФС

WebNFS был расширением NFSv2 и NFSv3, позволяющим ему работать за ограничительными брандмауэрами без сложностей протоколов Portmap и MOUNT. WebNFS имел фиксированный номер порта TCP/UDP (2049), и вместо того, чтобы требовать от клиента связываться со службой MOUNT RPC для определения начального дескриптора файла каждой файловой системы, он ввел концепцию общедоступного дескриптора файла ( нулевой для NFSv2, нулевой длины). для NFSv3), который можно использовать в качестве отправной точки. Оба эти изменения позже были включены в NFSv4.

НФСv4

Версия 4 (RFC 3010, декабрь 2000 г.; пересмотрена в RFC 3530, апрель 2003 г. и снова в RFC 7530, март 2015 г.), на которую повлияла файловая система Эндрю (AFS) и блок сообщений сервера (SMB, также называемый CIFS), включает улучшения производительности, требует строгой безопасности и вводит протокол с отслеживанием состояния . [7] [8] Версия 4 стала первой версией, разработанной совместно с Инженерной группой Интернета (IETF) после того, как Sun Microsystems передала разработку протоколов NFS.

Версия NFS 4.1 (RFC 5661, январь 2010 г.; пересмотрена в RFC 8881, август 2020 г.) направлена ​​на обеспечение поддержки протокола для использования преимуществ развертывания кластерных серверов, включая возможность предоставления масштабируемого параллельного доступа к файлам, распределенным между несколькими серверами (расширение pNFS). Версия 4.1 включает механизм транкинга сеансов (также известный как NFS Multipathing) и доступен в некоторых корпоративных решениях как VMware ESXi .

NFS версии 4.2 (RFC 7862) была опубликована в ноябре 2016 года [9] с новыми функциями, включая: клонирование и копирование на стороне сервера, рекомендации по вводу-выводу приложения, разреженные файлы, резервирование пространства, блок данных приложения (ADB), помеченный NFS с помощью sec_label. который поддерживает любую систему безопасности MAC, а также две новые операции для pNFS (LAYOUTERROR и LAYOUTSTATS).

Одним из больших преимуществ NFSv4 по сравнению с его предшественниками является то, что для запуска службы используется только один порт UDP или TCP, 2049, что упрощает использование протокола через брандмауэры.

Другие расширения

WebNFS , расширение версий 2 и 3, позволяет NFS более легко интегрироваться в веб-браузеры и обеспечивать работу через брандмауэры. В 2007 году Sun Microsystems открыла исходный код своей клиентской реализации WebNFS. [10]

С NFS стали ассоциироваться различные протоколы боковой полосы. Примечание:

Платформы

NFS часто используется с операционными системами Unix (такими как Solaris , AIX , HP-UX ), macOS от Apple и Unix-подобными операционными системами (такими как Linux и FreeBSD ). Он также доступен для таких операционных систем, как Acorn RISC OS , [15] AmigaOS , классическая Mac OS , OpenVMS , [3] MS-DOS , [16] Microsoft Windows , [17] OS/2 , [18] ArcaOS , [19] Novell NetWare , [20] и IBM i . [21] Альтернативные протоколы удаленного доступа к файлам включают блок сообщений сервера (SMB, также называемый CIFS), Apple Filing Protocol (AFP), NetWare Core Protocol (NCP) и файловую систему файлового сервера OS/400 (QFileSvr.400).

SMB и NetWare Core Protocol (NCP) встречаются чаще, чем NFS, в системах под управлением Microsoft Windows; AFP встречается чаще, чем NFS в системах Apple Macintosh ; и QFileSvr.400 чаще встречается в системах IBM i. В 2012 году Haiku добавила поддержку NFSv4 в рамках проекта Google Summer of Code.

Сравнение производительности NFS SPECsfs2008 по состоянию на 22 ноября 2013 г.

Типичная реализация

Предположим, что это сценарий в стиле Unix, в котором одному компьютеру ( клиенту ) требуется доступ к данным, хранящимся на другом компьютере ( сервере NFS ):

  1. Сервер реализует процессы демона NFS , запускаемые по умолчанию как nfsd, чтобы сделать свои данные общедоступными для клиентов.
  2. Администратор сервера определяет, что сделать доступным, экспортируя имена и параметры каталогов , обычно используя /etc/exportsфайл конфигурации и exportfsкоманду.
  3. Администрация безопасности сервера гарантирует, что она может распознавать и утверждать проверенных клиентов.
  4. Конфигурация сети сервера гарантирует, что соответствующие клиенты смогут взаимодействовать с ним через любую систему межсетевого экрана .
  5. Клиентский компьютер запрашивает доступ к экспортированным данным, обычно путем ввода mountкоманды. (Клиент спрашивает у сервера (rpcbind), какой порт использует NFS-сервер, клиент подключается к NFS-серверу (nfsd), nfsd передает запрос mountd)
  6. Если все пойдет хорошо, пользователи клиентского компьютера смогут просматривать и взаимодействовать с смонтированными файловыми системами на сервере в пределах разрешенных параметров.

Обратите внимание, что процесс монтирования NFS может быть автоматизирован — возможно, с использованием средств /etc/fstab и/или автоматического монтирования .

Разработка протокола

Во время разработки протокола ONC ( в то время называемого SunRPC ) только Network Computing System (NCS) компании Apollo предлагала сопоставимую функциональность. Две конкурирующие группы возникли из-за фундаментальных различий в двух системах удаленного вызова процедур. Аргументы были сосредоточены на методе кодирования данных - внешнее представление данных (XDR) ONC всегда отображало целые числа в порядке с прямым порядком байтов , даже если оба узла соединения имели машинные архитектуры с прямым порядком байтов , тогда как метод NCS пытался избежать замены байтов. всякий раз, когда два одноранговых узла имеют общий порядок байтов в своих машинных архитектурах. Промышленная группа под названием «Форум сетевых вычислений» сформировалась (март 1987 г.) в попытке (в конечном итоге безуспешной) согласовать две среды сетевых вычислений.

В 1987 году Sun и AT&T объявили, что они будут совместно разрабатывать UNIX System V Release 4 для AT&T. , HP, IBM и другие, сформировавшие Фонд открытого программного обеспечения (OSF) в 1988 году. По иронии судьбы, Sun и AT&T ранее конкурировали за NFS от Sun и удаленную файловую систему AT&T (RFS), а также за быстрое внедрение NFS вместо RFS цифровым оборудованием, HP, IBM и многие другие производители компьютеров склонили большинство пользователей в пользу NFS. Функциональной совместимости NFS способствовали мероприятия под названием «Connectathons», начавшиеся в 1986 году, которые позволили независимо от поставщика тестировать реализации друг с другом. [23] OSF внедрила распределенную вычислительную среду (DCE) и распределенную файловую систему DCE (DFS) поверх Sun/ONC RPC и NFS. DFS использовала DCE в качестве RPC, а DFS производна от файловой системы Эндрю (AFS); Сама система DCE основана на наборе технологий, включая NCS Apollo и Kerberos . [ нужна цитата ]

1990-е годы

Sun Microsystems и Internet Society (ISOC) достигли соглашения о передаче «контроля за изменениями» ONC RPC, чтобы орган ISOC по инженерным стандартам, Рабочая группа по инженерным разработкам Интернета (IETF), мог публиковать документы по стандартам (RFC), относящиеся к ONC RPC. протоколов и может расширить ONC RPC. OSF попыталась сделать DCE RPC стандартом IETF, но в конечном итоге не захотела отказываться от контроля над изменениями. Позже IETF решила расширить ONC RPC, добавив новый вариант аутентификации на основе общего программного интерфейса служб безопасности (GSSAPI), RPCSEC GSS, для удовлетворения требований IETF о том, что стандарты протоколов имеют адекватную безопасность.

Позже Sun и ISOC достигли аналогичного соглашения о предоставлении ISOC контроля над изменениями NFS, однако тщательно прописали контракт, чтобы исключить NFS версии 2 и версии 3. Вместо этого ISOC получила право добавлять новые версии в протокол NFS, что привело к созданию IETF. указание NFS версии 4 в 2003 году.

2000-е

К 21 веку ни DFS, ни AFS не достигли какого-либо серьезного коммерческого успеха по сравнению с SMB-CIFS или NFS. IBM, которая ранее приобрела Transarc , основного коммерческого поставщика DFS и AFS , в 2000 году передала большую часть исходного кода AFS сообществу свободного программного обеспечения. Проект OpenAFS продолжает жить. В начале 2005 года IBM объявила о прекращении продаж AFS и DFS.

В январе 2010 года Panasas предложила NFSv4.1 на основе своей технологии Parallel NFS (pNFS), утверждая, что она улучшает возможности параллелизма доступа к данным [24] . Протокол NFSv4.1 определяет метод отделения метаданных файловой системы от местоположения данных файла; он выходит за рамки простого разделения имени и данных, распределяя данные по набору серверов данных. Это отличается от традиционного сервера NFS, который хранит имена файлов и их данные под единым сервером. Некоторые продукты представляют собой многоузловые NFS-серверы, но участие клиента в разделении метаданных и данных ограничено.

Сервер pNFS NFSv4.1 представляет собой набор серверных ресурсов или компонентов; предполагается, что они контролируются сервером метаданных.

Клиент pNFS по-прежнему обращается к одному серверу метаданных для обхода или взаимодействия с пространством имен; когда клиент перемещает данные на сервер и с него, он может напрямую взаимодействовать с набором серверов данных, принадлежащих коллекции серверов pNFS. Клиенту NFSv4.1 можно разрешить напрямую участвовать в точном местоположении файловых данных и избежать одиночного взаимодействия с одним сервером NFS при перемещении данных.

Помимо pNFS, NFSv4.1 предоставляет:

Смотрите также

Рекомендации

  1. ^ аб Рассел Сэндберг; Дэвид Голдберг; Стив Клейман; Дэн Уолш; Боб Лайон (1985). «Проектирование и реализация файловой системы Sun Network». CiteSeerX  10.1.1.14.473 .
  2. ^ NFS Illustrated (2000) Брента Каллагана - ISBN 0-201-32570-5 
  3. ^ ab «Службы HP TCP/IP для управления OpenVMS». h41379.www4.hpe.com . ХП . Проверено 24 сентября 2016 г.
  4. ^ аб Рассел Сэндберг. «Файловая система Sun Network: проектирование, реализация и опыт» (PDF) . Технический отчет . Сан Микросистемс.
  5. ^ Арпачи-Дюссо, Ремзи; Арпачи-Дюссо, Андреа (март 2015 г.). Операционные системы: Три простых части (PDF) (9-е изд.). Книги Арпачи-Дюссо. п. 5 . Проверено 8 ноября 2017 г.
  6. ^ Брайан Павловски; Чет Ющак; Питер Штаубах; Карл Смит; Диана Лебель; Дэвид Хитц (1994). «Проектирование и реализация NFS версии 3». УСЕНИКС .
  7. ^ «NFS Версия 4». УСЕНИКС . 14 апреля 2005 г.
  8. ^ Брайан Павловски; Спенсер Шеплер; Карл Бим; Брент Каллаган; Майкл Эйслер; Дэвид Новек; Дэвид Робинсон; Роберт Терлоу (2000). «Протокол NFS версии 4» (PDF) . В СВОЕМ УМЕ.
  9. ^ Хейнс, Томас (1 ноября 2016 г.). NFS версии 4, дополнительная версия 2. doi : 10.17487/RFC7862 .
  10. ^ yanfs.dev.java.net [ постоянная мертвая ссылка ]
  11. Том Талпи (28 февраля 2006 г.). «Обновление реализации NFS/RDMA» (PDF) . Network Appliance, Inc. Архивировано из оригинала (PDF) 12 мая 2011 г.
  12. Брент Каллаган (28 января 2002 г.). «NFS через RDMA» (PDF) . Сан Микросистемс.
  13. ^ Сингх, Каран (2016). «4: Работа с файловой системой Ceph». Поваренная книга цефов. Бирмингем: Packt Publishing Ltd., с. 110. ИСБН 978-1-78439-736-4. Проверено 21 марта 2017 г. NFS-Ganesha — это сервер NFS, работающий в пространстве пользователя и поддерживающий CephFS FSAL (уровень абстракции файловой системы) с использованием libcephs.
  14. ^ Гловер <[email protected]>, Фред. «Спецификация расширений доверенного протокола NFS (TNFS)». Ietf Datatracker .{{cite news}}: CS1 maint: numeric names: authors list (link)
  15. ^ «Сетевые программы» .
  16. ^ «Другое программное обеспечение от SUN Microsystems». www.computinghistory.org.uk . Центр истории вычислений . Проверено 24 сентября 2016 г.
  17. ^ «Введение в службы Microsoft Windows для UNIX 3.5». technet.microsoft.com . Майкрософт. 5 декабря 2007 года . Проверено 24 сентября 2016 г.
  18. ^ «Плагин NTFS для NetDrive» . ecsoft2.org . Проверено 22 сентября 2020 г.
  19. ^ «NetDrive для OS/2». arcanoae.com . Проверено 22 сентября 2020 г.
  20. ^ «Шлюз NFS для NetWare 6.5» . www.novell.com . Новелл . Проверено 24 сентября 2016 г.
  21. ^ «Поддержка сетевой файловой системы OS / 400» (PDF) . publib.boulder.ibm.com . ИБМ . Проверено 24 сентября 2016 г.[ постоянная мертвая ссылка ]
  22. ^ Кэрол Паттон (26 октября 1987). «AT&T лицензирует чип SPARC Sun Microsystems». Инфомир . п. 37 . Проверено 16 июля 2019 г.
  23. ^ «Что такое Коннектатон?». Оригинальный веб-сайт Connectathon.Org . Архивировано из оригинала 28 января 1999 года.
  24. ^ "пНФС". Панасас . Проверено 4 августа 2013 г.

Внешние ссылки