Иногда известную аббревиатуру NFS (Network File System — сетевая файловая система) в сердцах раскрывают как Nightmare File System («кошмарная файловая система»), намекая на низкую производительность, или как No File Security («файлы без защиты»), имея в виду проблемы безопасности. Но скоро об этом можно будет забыть.

Как сообщает Бев Крейр, менеджер корпорации Sun Microsystems, файловая система NFSv4 поддерживает составные операции (то есть одновременную отправку на сервер сразу нескольких команд), механизм «агрессивного кэширования», расширенную интернационализацию имен и цепочек символов, предусмотренных протоколом и, впервые, поддержку атрибутов файлов.

Херб Хенсдорф, менеджер Sun по маркетингу продуктов, добавляет, что ко всему прочему NFSv4 будет совместима со всем разнообразием существующих диалектов NFS.

Технология NFS была предложена в середине 80-х и довольно быстро превратилась в фактический стандарт среды совместного использования файлов. Sun собиралась придать ей статус официального стандарта IETF еще до начала работ над NFSv4, но дело несколько затянулось. В начале текущего года эта спецификация была наконец представлена в IETF; в ближайшее время она должна быть принята в качестве предварительного варианта стандарта.

Для окончательного утверждения стандарта понадобится вторая эталонная реализация. В настоящее время Sun финансирует ведущийся в Университете штата Мичиган проект, в рамках которого, с одной стороны, будет создана требуемая эталонная реализация, а с другой — будет усовершенствована версия NFS для Linux, чего с нетерпением ожидают представители сообщества разработчиков этой операционной системы.

NFS в среде Linux

Эталонная реализация открытого кода NFS4 для Linux, финансируемая корпорацией Sun, должна помочь спасти репутацию NFS, точно так же — как спецификация ее четвертой версии должна улучшить саму систему NFS. Однако сообщество разработчиков Linux, чьи отношения с Sun нельзя назвать иначе как трудными, реагировало на недавние анонсы Sun со сдержанным энтузиазмом.

Эрик Реймонд, ключевая фигура движения сторонников открытого кода, поставил под сомнение адекватность лицензии на исходный код, в соответствии с которой распространяется основной компонент NFSv4 — TI-RPC (Transport Independent Remote Procedure Call — удаленный вызов процедур, независимый от транспорта). Тем не менее Джонатан Корбе, редактор еженедельника Linux Weekly News, приветствует открытый характер этой лицензии и называет ее «шагом в правильном направлении».

NFS: прошлое и будущее

Работы над контрольной реализацией NFSv4 для Linux возглавляет Уильям Адамсон, заместитель директора отдела разработок Центра информационных технологий в Университете штата Мичиган. Адамсон подчеркивает, что предстоящая доработка Linux будет представлять собой открытый код и что все программы, созданные в результате этих работ, ведущиеся по открытой лицензии GNU Public Licence (GPL), станут распространяться также по лицензии GPL. Вообще же программный код, разрабатываемый в Мичиганском университете, обычно распространяется по лицензии, аналогичной лицензии BSD (Berkeley Software Distribution), которая, в отличие от GPL, не требует, чтобы измененный код распространялся на условиях того же лицензионного соглашения, что и оригинал.

Как объясняет Питер Хонимен, директор Центра информационных технологий, надежды, питаемые в отношении версии NFSv4, связаны с тем, что она сможет обеспечить доступ к любым файлам в Internet с той же легкостью, что и к файлам в локальной сети.

«Сейчас в Internet немало сайтов, служащих хранилищами файлов, таких как SmartDrive.com и Riverfront Software, — рассказывает Крейр. — Pac Bell бесплатно предлагает возможность хранить файлы общим объемом 100 Мбайт. Обычно для обращения к таким ресурсам приходится пользоваться протоколом HTTP или FTP; но тогда нельзя говорить, что файлы действительно общедоступны.

Могут возникнуть проблемы с загрузкой, масштабированием, безопасностью, надежностью. Полная реализация NFSv4 должна помочь компаниям, предоставляющим услуги размещения файлов на Internet-сайтах, создавать гораздо более эффективное программное обеспечение совместного использования файлов — как отдельными лицами, так и организациями».

Среди других преимуществ Хонимен выделяет поддержку глобальных пространств имен. «Любой человек сможет войти в мой домашний каталог, который я сделал доступным. Это значительно удобнее, чем пользоваться нынешними пространствами имен, основанными на адресах URL, которые всем уже надоели. Сразу видно, что это придумал физик», — шутит Хонимен, намекая на создателя World Wide Web Тима Бернерса-Ли.

Хонимен утверждает, что сервер NFSv4, в отличие от предыдущих версий, будет вести учет пользователей, получивших файл, и обращаться к ним только в случаях изменения оригинала, а не поддерживать открытое соединение в течение всего времени.

Крейр отмечает, что помимо применения составных операций, которые позволят оптимизировать функционирование сетевой файловой системы, версия NFSv4 будет использовать механизм кэширования, или делегирования, прав на стороне клиента: «Когда вы открываете файл, клиент может запросить делегирование прав, и сервер передаст ему ответственность за управление файлом. После того как все необходимые манипуляции с файлом в локальной среде будут выполнены, ответственность за него вновь возлагается на сервер».

По словам Адамсона, в NFSv4 для большей согласованности предполагается использовать комбинацию алгоритмов делегирования и блокировки. Будут улучшены показатели масштабируемости, а в модель безопасности войдет поддержка универсальной службы безопасности GSS (Generic Security Services).

Протокол безопасности RPCSEC_GSS даст возможность задействовать такие технологии, как Kerberos или открытые ключи; это позволит проводить аутентификацию запросов и ответов, чтобы исключить вероятность подлога.

И вновь Linux впереди

Стандарт IETF для NFSv4 вот-вот обретет официальный статус. Реальное внедрение может начаться только после утверждения стандарта, однако ряд компаний, включая Hummingbird, IBM и Network Appliance, уже работают над своими собственными реализациями.

Как и в случае с проектом Trillian переноса Linux на платформу Intel Itanium, это можно рассматривать как очередной успех Linux. Судя по всему, Sun серьезно относится к Linux и концепции открытого кода и полна решимости укреплять плодотворное сотрудничество с сообществом Linux.


Coda: последнее слово в мире файловых систем?

Если согласованность, безопасность и масштабируемость уже воплощены в таких файловых системах, как AFS (Andrew File System) и Coda, то почему бы нам не перейти на одну из них, вместо того, чтобы ждать еще год или два, пока NFS не сможет обеспечить должный уровень функциональности? Хонимен признает, что AFS лучше, чем NFSv3, однако с выходом NFSv4, по его мнению (к которому присоединяется Питер Браам из Университета Карнеги-Меллона), NFS наконец сравнялась с системами AFS и Coda по уровню безопасности.

Хонимен полагает, что причина, по которой Coda не достигла широкого распространения, связана не столько с качеством продукта, сколько с другими аспектами: «Дороговизна развертывания новой системы и недостаточно активная официальная поддержка корпоративных структур — эти два фактора во многом способствуют тому, что Coda принимается на вооружение слишком медленно».

Браам соглашается, что подобные проблемы имеют место, и добавляет: «Если бы разработчиков Coda было хотя бы на десяток больше, дело двинулось бы вперед гораздо быстрее».

Хотя Браам находит архитектуру Coda практически безупречной (оттуда заимствованы многие идеи, на которых базируется создаваемая сейчас файловая система Intermezzo), он отмечает, что без проблем все же не обошлось: «Некоторые компоненты Coda проектировались еще в 1982 году, когда никто не мог и предположить, что появятся диски емкостью в 50 Гбайт». В связи с этим возникают, например, трудности с масштабированием (которые Браам надеется преодолеть в ходе разработки Intermezzo).

Простота NFS, которая приводит к тому, что Браам называет узостью представления, обернулась все искупающим достоинством, позволившим продлить срок службы данной технологии.

Браам рассчитывает сделать систему Intermezzo совместимой с NFSv4, надеясь, что это поможет его новой файловой системе — облегченному аналогу Coda — завоевать более широкую популярность в будущем.

Как заявляет Крейр, «API-интерфейс RPCSEC_GSS позволит подключать разнообразные механизме защиты — Kerberos, LIPKEY и так далее — в контексте RPC». Этот программный код можно действительно называть открытым.

Дэйв Диттрих, специалист по системам безопасности, занимающийся разработкой программного обеспечения в Университете штата Вашингтон, считает, что модульность, о которой говорит Крейр, изменит ситуацию только к лучшему. Эти усовершенствования, реализованные в ее четвертой версии, позволят NFS войти в категорию файловых систем, которой принадлежат Coda и AFS.

Однако Питер Браам, который участвовал в проектах Coda и AFS в Университете Карнеги-Меллона и сейчас работает там же над новым проектом Intermezzo, не видит будущее NFS таким безоблачным. Он не отрицает, что система NFSv4 станет работать быстрее и ее безопасность будет усилена, но при этом уверен, что она не снимет всех проблем, изначально присущих NFS, таких, как большие задержки и неумение работать в условиях крайне узкой полосы пропускания. «Версия 4 — шаг вперед, но это, увы, все та же NFS», — напоминает Браам.


NFSv4 и безопасность

Стандарт NFS, созданный Sun и переданный ею в IETF, позволяет различным операционным средам производить доступ и совместное использование удаленных файлов в сети. Улучшения NFSv4 направлены на повышение безопасности, производительности, интероперабельности и улучшение доступа к Internet. Для обеспечения повышенной безопасности протокола при его реализации необходимо позаботиться о следующем.

  • Поддержка Kerberos версии 5 и Public Key Infrastructures — посредством использования Low Infrastructure Public Key (LIPKEY)
  • Динамическая реакция клиента на изменения, происходящие на NFS-серверах
  • Совместимость именных пространств на всех платформах
  • Механизм кэширования файлов на клиенте, обеспечивающий достаточную производительность при работе как в Internet, так и в традиционных локальных сетях
  • Минимизация числа соединений на передачу при выполнении сложных операций

Источник: Sun Microsystems