Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tema3.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
422.91 Кб
Скачать

3.2. Распределенные файловые системы

Ключевым компонентом любой распределенной системы является сетевая файловая система, которая также является в этом случае распределенной.

3.2.1. Основные принципы построения

Распределенная файловая система поддерживается одним или более компьютерами, хранящими файлы. Эти компьютеры обычно называют файловыми серверами. Файловые серверы обрабатывают запросы на чтение или запись файлов, поступающие от других компьютеров сети, которые в этом случае являются клиентами файловой службы.

С программной точки зрения распределенная файловая система – это сетевая служба, включающая программы-серверы и программы-клиенты, взаимодействующие с помощью определенного протокола по сети между собой.

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

Соответственно программу, работающую на клиентском компьютере и обращающуюся к файловому серверу с запросами, называют клиентом файловой системы, как и компьютер, на котором она работает.

Сетевая файловая система в общем случае включает следующие элементы (рис. 3.4):

  • локальная файловая система файлового сервера;

  • интерфейс локальной файловой системы файлового сервера;

  • сервер сетевой файловой системы;

  • клиент сетевой файловой системы;

  • интерфейс сетевой файловой системы;

  • протокол клиент-сервер сетевой файловой системы.

Рис. 3.4. Структура сетевой файловой системы (ФС)

Клиенты сетевой файловой системы – это программы, которые работают на многочисленных компьютерах, включенных в сеть. В качестве таких программ часто выступают графические или символьные оболочки операционной системы, например Windows Explorer, а также любые другие пользовательские приложения.

Клиент сетевой файловой системы передает по сети запросы серверу сетевой файловой системы, работающему на удаленном компьютере. Сервер, получив запрос, как правило, передает его локальной файловой системе для обработки.

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

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

Клиент и сервер сетевой файловой системы взаимодействуют друг с другом по сети по определенному протоколу на прикладном уровне модели OSI. В случае совпадения интерфейсов локальной и сетевой файловых систем этот протокол может быть достаточно простым – в его функции будет входить ретрансляция серверу запросов, принятых клиентом от приложений, с которыми тот затем будет обращаться к локальной файловой системе. Одним из механизмов, используемых для этой цели, может быть механизм RPC (вызова удаленных процедур).

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

С другой стороны, с помощью одного и того же протокола может реализовываться удаленный доступ к локальным файловым системам разного типа.

В настоящее время в сетевых файловых службах применяются следующие протоколы клиент-сервер:

  • SMB (Server Message Block) – в операционных системах семейства Windows (его последние расширенные версии получили название Common Internet File System, CIFS);

  • NCP (NetWare Control Protocol) – основной протокол сетевой операционной системы NetWare компании Novell;

  • NFS (Network File System) – популярный протокол в различных вариантах операционных систем семейства UNIX.

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

В некоторых файловых системах (например, NFS или файловых системах семейства ОС Windows) на всех компьютерах сети работает одно и то же базовое программное обеспечение, включающее как клиентскую, так и серверную части, так что любой компьютер, которых захочет предложить услуги файловой службы, может это сделать. Для этого администратору ОС достаточно объявить имена выбранных каталогов разделяемыми, чтобы другие машины могли иметь к ним доступ

В некоторых случаях выпускается так называемая серверная версия операционной системы (например, Windows 2000/2003 Server), которая использует то же программное обеспечение файловой службы, но только позволяющее за счет выделения файловому серверу большего количества ресурсов (в основном оперативной памяти) обслуживать одновременно большее число пользователей, чем версии файлового сервера для клиентских компьютеров.

В других системах файловый сервер – это специализированный компонент серверной операционной системы, отсутствующий в клиентских компьютерах. По такому пути пошли разработчики сетевой ОС NetWare, создав операционную систему, оптимизированную для работы в качестве файлового сервера, но не поддерживающую работу в качестве клиентской ОС.

Файловый сервер может быть реализован по одной из двух схем: с запоминанием данных о последовательности файловых операций клиента, т. е. по схеме stateful, и без запоминания таких данных, т. е. по схеме stateless.

Серверы stateful работают по схеме, обычной для любой локальной файловой службы. Открывая файлы по соответствующим системным вызовам, сервер должен запомнить, какие файлы открыл каждый пользователь в своей внутренней системной таблице. Данные из этой таблице используются приложениями до закрытия файлов пользователями.

Серверы stateless не поддерживают в протоколе обмена с клиентами таких операций, как открытие и закрытие файлов. Они предоставляют клиентам только две команды: читать (read) и писать (write), поэтому для сервера stateless каждый запрос должен содержать всю информацию о файле.

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

Таким образом, можно сформулировать основные преимущества каждого из подходов.

Серверы stateless:

  • отказоустойчивы, так как таблицы открытых файлов хранятся распределено по клиентским машинам;

  • не нужно передавать по сети вызовы открытия/закрытия файлов;

  • меньше памяти сервера расходуется, так как не хранятся таблицы открытых файлов;

  • нет ограничений на число открытых файлов;

  • выход из строя клиента не создает проблем для сервера.

Серверы stateful:

  • формируются более короткие сообщения при запросах;

  • лучше производительность системы;

  • возможно опережающее чтение данных из файлов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]