Какой протокол используется для получения доступа к файлам хранящимся на серверах файловых архивов

Обновлено: 18.05.2024

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

Вопросы реализации сетевой файловой системы

Распределение клиентов и серверов по компьютерам

Размещение клиентов и серверов в операционной системе

Схема реализации файлового сервера

Практически все современные ОС являются сетевыми, т.е. позволяют пользователям получать доступ , как к локальным ресурсам, так и к ресурсам других компьютеров, подключенных к сети.

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

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

Функцией файловой системы является хранение программ и данных и предоставление доступа к ним по мере необходимости.

Распределенная файловая система поддерживается одним или более компьютерами, хранящими файлы.

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

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

Файловые серверы обычно содержат иерархические файловые системы.

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

В распределенной ОС пользователи не знают как реализована файловая система. Они не знают количество файловых серверов, их месторасположение и функции. Современные сетевые файловые системы еще не полностью соответствуют идеалу распределенности. В большинстве ОС пользователь должен явно указать имя файлового сервера при доступе к его ресурсам. В настоящее время продолжается работа по созданию истинно распределенных сетевых файловых систем. Экспериментальные ОС � Amoeba, Mach, Chorus (более прозрачные).

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

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

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

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

Клиент и сервер сетевой файловой системы взаимодействуют друг с другом по сети по определенному протоколу.

Основной протокол доступа к файлам и принтерам сетевой ОС NetWare компании Novell � NCP (NetWare Control Protocol).

В различных вариантах ОС семейства UNIX популярен протокол NFS � протокол сетевой файловой системы NFS (Network File System) компании Sun Microsystems.

Замечание. Для одной и той же локальной файловой системы могут существовать различные протоколы сетевой файловой системы. Например, к NTFS можно получить доступ с помощью протоколов SMB, NCP, NFS.

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

Вопросы реализации сетевой файловой системы

Распределение клиентов и серверов по компьютерам

Размещение клиентов и серверов в операционной системе

В современных ОС эти компоненты оформляются как высокоуровневые драйверы, работающие в составе подсистемы ввода-вывода.

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

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

Схема реализации файлового сервера

Файловый сервер может быть реализован по одной из двух схем:

Сервер stateless : клиент посылает запрос на сервер, сервер его выполняет, отсылает ответ, а затем удаляет из своих внутренних таблиц всю информацию о запросе. Таким образом, между запросами на сервере не хранится никакой текущей информации о состоянии клиента.

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

Рис. Сервер stateful

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

Рис. Сервер stateless

Преимущества серверов stateless :

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

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

Кроме того, применение серверов stateless затрудняет реализацию блокировок файлов, так как информацию о блокировке файла одним из пользователей необходимо запоминать на всех клиентах файлового сервера.

Скорость доступа к файлам, хранящимся на дисках, существенно повышает кэширование данных.

(Дисковый кэш � подсистема буферизации).

В сетевых файловых системах кэширование не только повышает скорость доступа к удаленным данным, но улучшает масштабируемость и надежность файловой системы.

Схемы кэширования, применяемые в сетевых файловых системах, отличаются решениями по трем ключевым вопросам:

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

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

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

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

Очевидно, что данные в кэше одного клиента становятся недостоверными, когда данные, модифицированные другим клиентом, переносятся в главную копию файла.

Þ необходимо проверять, являются ли данные в кэше клиента достоверными. В противном случае данные должны быть повторно считаны с сервера.

Существуют два подхода к решению этой проблемы

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

За счет репликации

Репликация поддерживается сетевой файловой системой в качестве одной из услуг для клиентов. Иногда репликацией занимается отдельная файловая служба.

Ключевым вопросом, связанным с репликацией, является прозрачность .

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

В других системах � репликация выполняется полностью автоматически. Система при этом наз. репликационно прозрачной.

Прозрачность репликации зависит от двух факторов:

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

Реализуется такая схема следующим образом.

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

Схема реализуется просто для неизменяемых файлов (реплики всегда идентичны).

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

В современных сетевых файловых системах реализована схема именования, при которой требуется явное указание имени сервера при обращении к файлу, т.е. непрозрачная система репликации.

Под управлением репликацией подразумевается определение количества реплик и выбор серверов для хранения каждой реплики.

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

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

Это один из наиболее важных вопросов при разработке системы репликации.

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

Существует несколько способов обеспечения согласованности реплик:

Пусть в сети существует n реплик некоторого файла.

Алгоритм основан на том, что при модификации файла изменения записываются в w реплик, а при чтении файла клиент производит обязательное обращение к r репликам. Значения выбираются так, чтобы w+r>n. При модификации файла наращивается номер версии реплики. Если при записи реплики имеют разные версии, то выбирается максимальное значениеверсии для наращивания и присваивания всем репликам. При чтении клиент имеет возможность сначала проверить версию каждой реплики, выбрать старшую и читать данные из нее.

При выполнении условия w+r>n среди любых выбранных произвольным образом r реплик всегда найдется хотя бы одна из w реплик, в которую записаны последние обновления.

В этой статье описывается функция SMB 3 в Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 и Windows Server 2012, а также практическое применение совершенно новой или обновленной функциональной возможности этой версии по сравнению с предыдущими, а также требования к оборудованию. SMB также является протоколом структуры для решений программно-определяемого центра обработки данных (SDDC), например для Локальных дисковых пространств, реплик хранилища и др. SMB версии 3.0 появился в Windows Server 2012 и постепенно улучшался в последующих выпусках.

Описание компонента

Протокол SMB — это сетевой протокол для общего доступа к файлам, который позволяет приложениям компьютера читать и записывать файлы, а также запрашивать службы серверных программ в компьютерной сети. Протокол SMB может использоваться поверх протокола TCP/IP или других сетевых протоколов. С помощью протокола SMB приложение (или использующий его пользователь) может получать доступ к файлам и другим ресурсам удаленного сервера. Это позволяет приложениям читать, создавать и обновлять файлы на удаленном сервере. SMB может также обмениваться данными с любой серверной программой, которая настроена на получение клиентских запросов SMB. SMB — это протокол структуры, который используется вычислительными технологиями программно-определяемых центров обработки данных (SDDC), такими как Локальные дисковые пространства и реплики хранилища. Дополнительные сведения см. в статье Windows Server software-defined datacenter (Программно-определяемый центр обработки данных Windows Server).

Практическое применение

В этом подразделе описан ряд способов использования нового протокола SMB 3.0.

  • Хранилище файлов для виртуализации (Hyper-V™ через SMB) . С помощью протокола SMB 3.0 Hyper-V может хранить в файловых ресурсах общего доступа файлы виртуального компьютера, например файлы конфигурации, файлы виртуального жесткого диска (VHD) и снимки. Этот способ может использоваться как для изолированных файловых серверов, так и для кластерных файловых серверов, которые используют Hyper-V вместе с общедоступным хранилищем файлов для кластера.
  • Microsoft SQL Server через SMB. SQL Server может хранить файлы базы данных пользователей в файловых ресурсах SMB. Сейчас эта возможность поддерживается SQL Server 2008 R2 для изолированных серверов SQL. В будущих версиях SQL Server будет добавлена поддержка кластерных серверов SQL и системных баз данных.
  • Традиционное хранение данных пользователя. Протокол SMB 3.0 предоставляет дополнительные возможности для рабочих нагрузок клиентов или сотрудников, работающих с информацией. Эти возможности включают сокращение задержек приложений при получении пользователями филиала доступа к данным через глобальную сеть и защиту данных от перехвата злоумышленниками.

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

Новые и измененные функции

В следующих разделах описываются функциональные возможности, добавленные в SMB 3, и последующие обновления.

Функции, добавленные в Windows Server 2019 и Windows 10 версии 1809

Функции, добавленные в Windows Server версии 1709 и Windows 10 версии 1709

Компонент или функция Новинка или обновление Сводка
Гостевой доступ к общим папкам отключен Создать Клиент SMB больше не разрешает следующие действия: доступ учетной записи гостя к удаленному серверу; откат к учетной записи гостя после ввода недопустимых учетных данных. Дополнительные сведения см. в статье Гостевой доступ в SMB2 отключен по умолчанию в Windows.
Глобальное сопоставление SMB Создать Сопоставляет удаленную общую папку SMB с буквой диска, доступного всем пользователям на локальном узле, включая контейнеры. Это необходимо, чтобы включить операции ввода-вывода для контейнера в томе данных для прохода через удаленную точку подключения. Учтите, что при использовании глобального сопоставления SMB для контейнеров всем пользователям на узле контейнера предоставляется доступ к удаленной общей папке. Все приложения, работающие на узле контейнера, также получат доступ к сопоставленной удаленной общей папке. Дополнительные сведения см. в статье Container Storage Support with Cluster Shared Volumes (CSV), Storage Spaces Direct, SMB Global Mapping (Поддержка контейнера хранилища с общими томами кластера (CSV), Локальными дисковыми пространствами и глобальным сопоставлением SMB).
Управление диалектом SMB Создать Теперь можно задать значения реестра, чтобы управлять минимальной (диалектом) и максимальной версией SMB. Дополнительные сведения см. в статье Controlling SMB Dialects (Управление диалектами SMB).

Функции, добавленные в SMB 3.11 с Windows Server 2016 и Windows 10 версии 1607

Дополнительные сведения см. в статье What’s new in SMB 3.1.1 in the Windows Server 2016 Technical Preview 2 (Новые возможности SMB 3.1.1 в Windows Server 2016 (техническая версия 2)).

Возможности, добавленные в SMB 3.02 с Windows Server 2012 R2 и Windows 8.1

Компонент или функция Новинка или обновление Сводка
Автоматическая повторная балансировка клиентов масштабируемого файлового сервера Создать Увеличивает масштабируемость и управляемость масштабируемых файловых серверов. Клиентские подключения SMB отслеживаются для каждого общего файлового ресурса (а не для каждого сервера), после чего клиенты перенаправляются в узел кластера с оптимальным доступом к тому, используемому общим файловым ресурсом. Это повышает производительность, снижая трафик перенаправления между узлами файлового сервера. Клиенты перенаправляются после начального подключения при перенастройке системы хранения данных кластера.
Производительность в глобальной сети Обновлено В Windows 8.1 и Windows 10 улучшена работа CopyFile SRV_COPYCHUNK благодаря поддержке SMB при использовании проводника для удаленного копирования из одного расположения на удаленном компьютере в другую копию на том же сервере. Вы скопируете только небольшой объем метаданных через сеть (передается 1/2 КиБ на 16 МиБ данных файла). Это приводит к значительному увеличению производительности. Для SMB — это различие на уровне операционной системы и проводника.
SMB Direct Обновлено Улучшает производительность нагрузок малого ввода-вывода, повышая эффективность при размещении нагрузок с малыми вводами-выводами (например, база данных оперативной обработки транзакций (OLTP) в виртуальной машине). Эти улучшения заметны при использовании более быстрых сетевых интерфейсов, таких как Ethernet 40 Гбит/с и InfiniBand 56 Гбит/с.
Ограничения пропускной способности SMB Создать Теперь можно использовать Set-SmbBandwidthLimit, чтобы задать ограничения пропускной способности в трех категориях: VirtualMachine (трафик Hyper-V по протоколу SMB), LiveMigration (трафик динамической миграции Hyper-V по протоколу SMB) или по умолчанию (все остальные типы трафика SMB).

Дополнительные сведения о новых и измененных функциях SMB в Windows Server 2012 R2 см. в статье What's New in SMB in Windows Server (Новые возможности SMB в Windows Server).

Функции, добавленные в SMB 3.0 с Windows Server 2012 и Windows 8

Компонент или функция Новинка или обновление Сводка
Прозрачная отказоустойчивость SMB Создать Позволяет администраторам обслуживать аппаратное и программное обеспечение узлов кластерного файлового сервера, не прерывая работу приложений сервера, хранящих данные в этих файловых ресурсах. Кроме того, при сбое оборудования или программного обеспечения в узле кластера клиенты SMB подключатся к другому узлу кластера, не прерывая работу приложений сервера, хранящих данные в этих файловых ресурсах.
Масштабирование SMB Создать Поддержка нескольких экземпляров SMB на масштабируемом файловом сервере. С помощью версии 2 общих томов кластера (CSV) администраторы могут создавать файловые ресурсы, предоставляющие одновременный доступ к файлам данных с прямыми операциями ввода-вывода через все узлы кластера файлового сервера. Это улучшает использование пропускной способности сети и балансировку нагрузки клиентов файлового сервера, а также оптимизирует производительность серверных приложений.
Технология SMB Multichannel Создать Обеспечивает агрегирование пропускной способности и отказоустойчивости сети, если доступно несколько путей между клиентом SMB и сервером. Это позволяет приложениям сервера использовать всю доступную пропускную способность сети и быть устойчивыми к сетевым сбоям.

В SMB 3 реализация SMB в Windows изменена для улучшения поведения кэширования на клиенте, а также увеличения пропускной способности.

Требования к оборудованию

Для обеспечения прозрачной отказоустойчивости SMB необходимо соблюдать следующие требования.

  • Отказоустойчивый кластер под управлением Windows Server 2012 или Windows Server 2016 по крайней мере с двумя настроенными узлами. Кластер должен пройти проверочный тест для кластеров, входящий в состав мастера проверки.
  • Файловые ресурсы должны быть созданы со свойством "Постоянная доступность" (CA), что является настройкой по умолчанию.
  • Файловые ресурсы нужно создавать на путях к тому CSV, чтобы обеспечить масштабирование SMB.
  • Клиентские компьютеры должны работать под управлением Windows® 8 или Windows Server 2012, которые содержат обновленный клиент SMB, поддерживающий постоянную доступность.

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

Для поддержки многоканальности SMB необходимо соблюдать следующие требования.

  • Требуются по меньшей мере два компьютера под управлением Windows Server 2012. Установки дополнительных компонентов не требуется — эта технология включена по умолчанию.
  • Сведения о рекомендуемых сетевых настройках см. в подразделе "Дополнительные сведения" в конце этого раздела.

Для поддержки прямой технологии SMB необходимо соблюдать следующие требования.

  • Требуются по меньшей мере два компьютера под управлением Windows Server 2012. Установки дополнительных компонентов не требуется — эта технология включена по умолчанию.
  • Сетевые адаптеры с поддержкой RDMA. На данный момент существует три типа таких адаптеров: iWARP, Infiniband и RoCE (RDMA over Converged Ethernet).

Дополнительные сведения

Следующий список содержит дополнительные ресурсы со сведениями о работе в сети по протоколу SMB и связанным технологиям в Windows Server 2012 R2, Windows Server 2012 и Windows Server 2016.

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

Вопросы реализации сетевой файловой системы

Распределение клиентов и серверов по компьютерам

Размещение клиентов и серверов в операционной системе

Схема реализации файлового сервера

Практически все современные ОС являются сетевыми, т.е. позволяют пользователям получать доступ , как к локальным ресурсам, так и к ресурсам других компьютеров, подключенных к сети.

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

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

Функцией файловой системы является хранение программ и данных и предоставление доступа к ним по мере необходимости.

Распределенная файловая система поддерживается одним или более компьютерами, хранящими файлы.

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

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

Файловые серверы обычно содержат иерархические файловые системы.

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

В распределенной ОС пользователи не знают как реализована файловая система. Они не знают количество файловых серверов, их месторасположение и функции. Современные сетевые файловые системы еще не полностью соответствуют идеалу распределенности. В большинстве ОС пользователь должен явно указать имя файлового сервера при доступе к его ресурсам. В настоящее время продолжается работа по созданию истинно распределенных сетевых файловых систем. Экспериментальные ОС � Amoeba, Mach, Chorus (более прозрачные).

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

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

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

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

Клиент и сервер сетевой файловой системы взаимодействуют друг с другом по сети по определенному протоколу.

Основной протокол доступа к файлам и принтерам сетевой ОС NetWare компании Novell � NCP (NetWare Control Protocol).

В различных вариантах ОС семейства UNIX популярен протокол NFS � протокол сетевой файловой системы NFS (Network File System) компании Sun Microsystems.

Замечание. Для одной и той же локальной файловой системы могут существовать различные протоколы сетевой файловой системы. Например, к NTFS можно получить доступ с помощью протоколов SMB, NCP, NFS.

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

Вопросы реализации сетевой файловой системы

Распределение клиентов и серверов по компьютерам

Размещение клиентов и серверов в операционной системе

В современных ОС эти компоненты оформляются как высокоуровневые драйверы, работающие в составе подсистемы ввода-вывода.

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

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

Схема реализации файлового сервера

Файловый сервер может быть реализован по одной из двух схем:

Сервер stateless : клиент посылает запрос на сервер, сервер его выполняет, отсылает ответ, а затем удаляет из своих внутренних таблиц всю информацию о запросе. Таким образом, между запросами на сервере не хранится никакой текущей информации о состоянии клиента.

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

Рис. Сервер stateful

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

Рис. Сервер stateless

Преимущества серверов stateless :

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

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

Кроме того, применение серверов stateless затрудняет реализацию блокировок файлов, так как информацию о блокировке файла одним из пользователей необходимо запоминать на всех клиентах файлового сервера.

Скорость доступа к файлам, хранящимся на дисках, существенно повышает кэширование данных.

(Дисковый кэш � подсистема буферизации).

В сетевых файловых системах кэширование не только повышает скорость доступа к удаленным данным, но улучшает масштабируемость и надежность файловой системы.

Схемы кэширования, применяемые в сетевых файловых системах, отличаются решениями по трем ключевым вопросам:

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

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

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

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

Очевидно, что данные в кэше одного клиента становятся недостоверными, когда данные, модифицированные другим клиентом, переносятся в главную копию файла.

Þ необходимо проверять, являются ли данные в кэше клиента достоверными. В противном случае данные должны быть повторно считаны с сервера.

Существуют два подхода к решению этой проблемы

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

За счет репликации

Репликация поддерживается сетевой файловой системой в качестве одной из услуг для клиентов. Иногда репликацией занимается отдельная файловая служба.

Ключевым вопросом, связанным с репликацией, является прозрачность .

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

В других системах � репликация выполняется полностью автоматически. Система при этом наз. репликационно прозрачной.

Прозрачность репликации зависит от двух факторов:

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

Реализуется такая схема следующим образом.

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

Схема реализуется просто для неизменяемых файлов (реплики всегда идентичны).

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

В современных сетевых файловых системах реализована схема именования, при которой требуется явное указание имени сервера при обращении к файлу, т.е. непрозрачная система репликации.

Под управлением репликацией подразумевается определение количества реплик и выбор серверов для хранения каждой реплики.

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

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

Это один из наиболее важных вопросов при разработке системы репликации.

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

Существует несколько способов обеспечения согласованности реплик:

Пусть в сети существует n реплик некоторого файла.

Алгоритм основан на том, что при модификации файла изменения записываются в w реплик, а при чтении файла клиент производит обязательное обращение к r репликам. Значения выбираются так, чтобы w+r>n. При модификации файла наращивается номер версии реплики. Если при записи реплики имеют разные версии, то выбирается максимальное значениеверсии для наращивания и присваивания всем репликам. При чтении клиент имеет возможность сначала проверить версию каждой реплики, выбрать старшую и читать данные из нее.

При выполнении условия w+r>n среди любых выбранных произвольным образом r реплик всегда найдется хотя бы одна из w реплик, в которую записаны последние обновления.


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

1.jpg

Что такое файловый сервер?

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

Для чего используется файловый сервер?

2.jpg

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

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

Использование файл-сервера даёт ещё несколько важных плюсов:

появляется возможность создать раздельные области хранения — например, для разных подразделений, отделов и сотрудников компании. Можно настроить раздельный доступ групп пользователей к разным областям, приняв и реализовав ту или иную политику прав доступа;

подразделениям, отделам и сотрудникам можно выделить квоты на объём дискового пространства файлового сервера;

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

Типы файловых серверов

Один из критериев деления файловых серверов на типы — их специализация. Существуют:

выделенные серверы. Такие машины используют для решения единственной задачи — хранения файлов. На выделенную машину устанавливается операционная система, администратор конфигурирует и настраивает сервер, после чего его используют по назначению. На файл-сервер может быть установлена специализированная ОС — например, такая, как FreeNAS. В этом случае машина становится узкоспециализированной — она используется исключительно для хранения файлов;

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

Целесообразно разделить серверы файлов на категории по их техническим характеристикам, в первую очередь — по объёму дисковой подсистемы и вычислительной мощности. Можно выделить:

3.jpg

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

кластеры файловых серверов. В них логически объединяются несколько физических машин. Результатом становится система, способная вместить колоссальный объём данных и обеспечивающая высочайшую скорость обмена ими. Такие решения внедряются в крупных корпорациях и холдингах, в том числе имеющих разветвлённую сеть филиалов и представительств в разных регионах.

Файловый сервер с web-интерфейсом

4.jpg

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

появляется возможность не только скачивать файлы с сервера, но и закачивать их на него, используя тот же браузер и ничего более;

HFS даёт возможность загружать на локальный компьютер не только отдельные файлы, но и целые папки. В последнем случае приложение само упаковывает файлы в архив и отправляет их на скачивание;

программа позволяет защитить паролем данные, которые хранятся на сервере, от несанкционированного доступа.

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

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

5.jpg

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

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

Скорость передачи данных. Чем она выше, тем комфортнее пользователям будет работать с файлами на сервере. Зависит от типа используемых накопителей (так, SSD значительно превосходят по скорости обычные жёсткие диски), а также от быстродействия процессоров и объёма и типа оперативной памяти.

Объём оперативной памяти и её тип. Этот критерий особенно важен в некоторых случаях — например, при использовании файлового сервера для хранения базы данных 1С. Если оперативной памяти будет недостаточно, пользователи начнут испытывать затруднения при совместной работе с такой базой.

Характеристики сетевой карты. Чем выше её пропускная способность, тем быстрее будет идти обмен данными между файловым сервером и клиентскими устройствами.

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

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

Файловый сервер оборудован RAID – контроллером для обеспечения надежности сохранности данных.

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

Функции сервера: хранения данных и кода программы. Функции клиента: обработка данных происходит исключительно на стороне клиента. Количество клиентов ограничено десятками.

Плюсы: низкая стоимость разработки; высокая скорость разработки; невысокая стоимость обновления и изменения ПО.

Минусы: низкая производительность (хотя это зависит еще и от производительности сети, сервера и клиента); плохая возможность подключения новых клиентов; ненадежная система.



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

Данная серия специально спроектирована для решения задач по хранению и быстрому доступу к данным, как отдельных пользователей, так и всего предприятия в целом. Для достижения полной сохранности Ваших данных, в серверах используются RAID-контроллеры с технологиями зеркалирования данных, для коррекции ошибок, используется память FBDIMM ECC, а в старших моделях реализовано резервирование питания с технологией HOT-SWAP, что позволяет уберечь сервер от остановки даже при выходе из строя одного блока питания. Опционально данные серверы могут монтироваться в 19 дюймовую стойку.


FTP (File Transfer Protocol - Протокол передачи файлов) позволяет передавать файлы между двумя компьютерами, соединенными средствами Internet. Для доступа к FTP вам нужна программа-клиент для соединения с машиной, содержащей файлы (сервером) Если в вашей системе есть FTP-клиент и вы соединены с Internet, вы можете получить доступ к очень большому количеству файлов, доступных на FTP-серверах. Если у вас нет прямого доступа к FTP, вам следует обратить свое внимание на серверы, позволяющие получить доступ к FTP средствами E-mail.

Большое количество серверов в Internet предоставляют доступ к файлам средствами так называемого Anonymous FTP. Это значит, что вы можете получить доступ к машине не являясь ее официальным пользователем. Эти сервера содержат программное обеспечение, документы различного рода, картинки, тексты песен и тому подобное. Гигантский объем информации на таких серверах доступен любому.

Что бы соединится с сервером просто наберите команду ftp, а затем имя системы, с которой хотите соединиться, например, ftp ftp.lipetsk.su

Через несколько секунд появится запрос login: Если вы не являетесь официальным пользователем системы, введите Anonymous. Затем появится запрос Password: Что вы введете в общем-то не имеет значения, но согласно неписанным правилам, вы должны ввести свой E-mail адрес, поскольку операторы серверов были бы не прочь узнать, кто использует их сервер. После этого вы увидите приглашение сервера (обычно ftp>) Вы в системе. Вы можете посмотреть список директорий, набрав команду dir. Если сервер использует Unix и dir не работает, попробуйте ls -l. Обычно сервер имеет файл с именем README или 00-index.txt, содержащий в себе краткое описание сервера и местонахождения файлов. Надо отметить, что FTP-клиенты, встроенные в Web-browser'ы выполняют всю процедуру соединения автоматически. Так же поступают и специализированные FTP-клиенты типа CuteFTP, команды FTP.

Все команды FTP используются для получения файлов. Некоторые команды одинаковы для всех серверов, некоторые нет. Также, некоторые серверы поддерживают свои собственные команды, например, получение целой директории одной командой, поиск по директориям, etc. Прочтите содержащийся почти на каждом сервера файл README для получения информации о таких командах. Обычно FTP-сервер выдает список команд в ответ на команду help или? Итак, основные команды:

ASCII - переключение в ASCII режим. Этот режим является стандартным для передачи текстов.

Binary - переключение в двоичный режим. Для передачи архивов, картинок,

Cd - cмена директории на сервере.

Dir - список файлов в текущей директории сервера.

Get - копирует файл с сервера на ваш компьютер.

Help - список доступных команд.

LCD - cмена директории на вашем компьютере.

Lpwd - показывает текущую директорию вашего компьютера

Mget - получение сразу нескольких файлов по маске

Pwd - показывает текущую директорию на сервере.

Итак, вы в системе. Вы можете осмотреться, выбрать интересующие вас файлы и получить их (большинство серверов не позволяет пользователям самим посылать файлы) Обычно все самое интересное находится в директории /pub. Помните, что в Unix-системах вместо обратной дроби (\) используется прямая (/). Некоторые сервера содержат файлы типа ls-lR, которые содержат полный список имеющихся на сервере файлов. Если такового не имеется, вы можете набрать ls -lR и получить такой список. Однако помните, что это может занять много времени (списки размером 10 Mb не являются редкостью)

При приеме нетекстовых файлов вы должны использовать двоичный режим. Перед получением файла наберите команду binary. Обычно файлы хранятся в сжатом виде. Чаще всего в Unix-системах используется программа compress, результатом работы которой являются файлы с расширением.Z. Встречаются также Arc, Zoo, Arj, Lzh, Gz, Zip, в соответствии с используемой программой компрессии. Проблемой может стать получение файлов вида filename.tar.gz. MS-DOS не воспринимает подобные имена файлов, поэтому для получения такого файла используйте следующую схему:

get filename.tar.Z filename.tz Затем используйте последовательно compress и tar для распаковки файла. Многие сервера поддерживают режим on-line распаковки файлов на лету (на тот случай, если у вас нет утилит для декомпрессии файлов) Используйте следующую схему: get filename.z filename Вы получите распакованный файл. Помните, что передача такого файла займет больше времени, чем передача сжатого.

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

Интерфейс файлового сервера

Для любой файловой системы первый фундаментальный вопрос - что такое файл. Во многих системах, таких как UNIX и MS-DOS, файл - не интерпретируемая последовательность байтов. На многих централизованных ЭВМ (IBM/370) файл представляется последовательность записей, которую можно специфицировать ее номером или содержимым некоторого поля (ключом). Так, как большинство распределенных систем базируются на использовании среды UNIX и MS-DOS, то они используют первый вариант понятия файла.

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

Защита обеспечивается теми же механизмами, что и в однопроцессорных ЭВМ - мандатами и списками прав доступа. Мандат - своего рода билет, выданный пользователю для каждого файла с указанием прав доступа. Список прав доступа задает для каждого файла список пользователей с их правами. Простейшая схема с правами доступа - UNIX схема, в которой различают три типа доступа (чтение, запись, выполнение), и три типа пользователей (владелец, члены его группы, и прочие).

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

Интерфейс сервера директорий

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

Реализация распределенных файловых систем

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

Какие бывают файловые сервера?

  • Прежде всего нужно понять, что файловый сервер — это, в первую очередь, средство для хранения файлов и получения доступа к этим файлам по сети.

• Выделенный сервер, на который системный администратор разворачивает операционную систему (Windows или UNIX) и настраивает роль файлового сервера. Это самый дорогой вариант, но он лишен каких-либо ограничений.

• Решение под ключ. Представляет из себя оборудование, на котором уже установлена своя система с настроенным сервисом хранения данных. Удобен тем, что его можно достать из коробки и начать пользоваться после 10 минут настройки. Минус в достаточно высокой стоимости и некоторых ограничениях (система позволит настроить только то, что предусмотрено разработчиками)

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

• Любой компьютер пользователя в сети компании. Самый худший вариант, так как при перезагрузке или выключении компьютера пропадает доступ к данным. Более того, пользовательские операционные системы хуже всего рассчитаны на организацию серверов, но это самый простой и дешевый метод, поэтому он имеет место быть.

Читайте также: