Вход:  Пароль:  
FreeSource: TZ/СерверИнтеграции/СетеваяФайловаяСистема ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

Общее описание

Одной из отличительных особенностей планируемой файловой системы является то, что для нее не будет требоваться монтирование каждого сетевого ресурса. Вместо этого вся сеть будет доступна через единую точку монтирования, например, /net. Каталог /net будет содержать папки с именами компьютеров домена, эти папки в свою очередь будут содержать имена общих папок соответствующего компьютера. Доступность компьютеров и их ресурсов будет отслеживатся автоматически, и, таким образом, папка /net всегда будет содержать актуальный список доступных компьютеров. Кроме того, атрибуты доступа к файлам также будут прозрачно применяться. Это возможно благодаря тому, что 1) в пределах домена идентификаторы пользоваетелей уникальны и 2) для аутентификации пользователя во всех случаях используется kerberos.

Краткое описание предполагаемой реализации

Файловая система есть программный интерфейс, состоящий из набора функций доступа к файлам: open, read, write, close и т.д. Для реализации своей собственной файловой системы необходимо написать свой модуль для ядпа Linux. Однако проще воспользоваться модулем FUSE, позволяющем перенести всю логику работы ФС из пространства ядра в пространство пользователя. Это не только проще, это также позволит воспользоваться более развитыми средствами для организации RPC, в частности, библиотекой ICE. Фактически, сетевая файловая система будет представлять собой модуль для FUSE, обеспечивающий при помощи ICE RPC вызов функций интерфейса ФС на удаленном ядре. Поскольку для аутентификации пользователя используется kerberos, то RPC-сервер имеет достоверную информацию о идентификаторе пользователя и соответственно выполнение каждого запроса выполняет от имени этого пользовтеля (путем смены эффективного идентификатора пользователя для текущего потока). Так обеспечивается прозрачная работа через сеть стандартных средств разграничения доступа к файлам.
Некоторые ограничения накладываются тем, что при работе в сети возможны проблемы как с качеством соединения, так и со стабильностью работы компьютеров сети. Например, из-за этого возможны негативные эффекты при блокировках файлов: клиент блокирует файл и соединение с ним теряется – и файл остается заблокированным навечно. Для решения таких проблем стандартным методом является учёт ресурсов, используемых клиентским подключением и автоматическое освобождение этих ресурсов при обнаружении разрыва соединения.

Аутентификация

Как и для всех остальных служб, главным средством аутентификации будет являться kerberos, и для пользователья залогинившегося для работы на компьютере, для использования сетевых ресурсов не нужно будет вводить никаких паролей или иных аутентификационных данных – для подлкючения будет использоваться тикет kerberos, полученный при входе в систему.
При работе в одноранговой сети в качестве основного средства аутентификации также будет использоваться kerberos, и фактически на каждом из компьютеров одноранговой сети будет работать свой сервер kerberos. При таком режиме работы для доступа к ресурсам другого компьютера необходимо авторизоваться на kerberos-сервере этого компьютера. FUSE-модуль файловой системы будет автоматически определять необходимость ввода авторизационной информации, и соответственно выводить приглащение на соответствующий терминал или X-сервер. После завершения аутентификации на клиенте будет получен соответствующий kerberos-тикет. Стоит отметить также то, что предполагается внести модификацию в клиентскую часть библиотеки kerberos, обеспечивающую хранение не одного, а множества аутентификационных тикетов. Это обеспечит поведение, схожее с поведением аналогичных программ в ОС Windows – один раз аутентифицировавшись на удаленном компьютере, пользователь получает доступ к любой из сетевых служб ОС – файловой системе, принетрам, удаленному реестру и т.п. Разумеется, эта аутентификационная информация также будет использоваться и для аутентификации при подключении к другим службам, не только ФС.

Сравнение с существующими сетевыми ФС

Наиболее близким функциональным аналогом предполагаемой файловой системы является сетевая файловая система ОС Windows, а точнее, ее поведение именно в ОС Windows.
<..тут будет сравнение с Samba и NFS>
Одним из достоинств сервера предложенной сетевой ФС является его предельная простота, что позволяет рассчитывать на относительно небольшие сроки реализации этого подпроекта.

Клиент для Windows

Поскольку ОС Windows занимает большую часть рынка настольных компьютеров, необходимостью является реализация клиента и/или сервера этой сетевой ФС для этой платформы. Портировать сервер предположительно будет просто, основным вопросом будет вопрос о трансляции Windows ACL в модель разрешений UNIX. Сложную задачу представляет собой портирование (или, возможно, еще одну реализацию) клиента этой ФС. Дело в том, что для Linux задача облегчается наличием фреймворка для разработки ФС в user-mode, под ОС Windows аналогичного фреймворка нет (есть закрытый проект Callback FS, но он не подходит ввиду высокой стоимости и собственно закрытости). Для реализации собственных ФС в Windows предусмотрен механизм под названием Installable File System. Для реализации именно сетевых ФС предусматривается написание собственно так называемого network redirector. Реализовав клиент ФС в таком виде, мы получим такие важные свойства, как доступность сетевых ресурсов через имена UNC (имена вида \\ComputerName\ShareName), корректную работу команды net (в частности, net use для подключения так называемых сетевых дисков). Т.е. с точки зреня пользователя такой ФС все будет работать также (или почти так же), как при использовании клиента для сетей Windows.
На этом этапе будет две возможности для реализации:
1) Исследовать возможность работы рантайма ICE в режиме ядра в составе драйвера Windows;
2) Реализовать фреймворк, совместимый с FUSE, после этого портирование клиента станет простой задачей.
Более предсказуемым и предпочтительным видится второй вариант. В первом варианте, скорее всего, будут проблемы с работой библиотеки ICE в связи с невозможностью или сильными ограничениями по использованию потоков и прочих системных объектов внутри драйвера режима ядра. Второй вариант по трудоемкости представляется примерно равным первому, одако он обладает большей универсальностью. Кроме того, предварительные исследования показывают, что необходимость сообщества программистов в подобном FUSE фреймворке под ОС Windows есть и весьма сильна. Поэтому лучшим вариантом видится старт нового открытого проекта с большим количеством добровольных участников, заинтересованных в его развитии.


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]