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

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

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

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

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

    Файловый сервис в распределенных файловых системах (впрочем как и в централизованных) имеет две функционально различные части: собственно файловый сервис и сервис каталогов. Первый имеет дело с операциями над отдельными файлами, такими, как чтение, запись или добавление, а второй – с созданием каталогов и управлением ими, добавлением и удалением файлов из каталогов и т.п.



    Для любого файлового сервиса, независимо от того, централизован он или распределен, самым главным является вопрос, что такое файл? Во многих системах, таких как UNIX и MS DOS, файл – это неинтерпретируемая последовательность байтов. Значение и структура информации в файле является заботой прикладных программ, операционную систему это не интересует.

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

    Важным аспектом файловой модели является возможность модификации файла после его создания. Обычно файлы могут модифицироваться, но в некоторых распределенных системах единственными операциями с файлами являются СОЗДАТЬ и ПРОЧИТАТЬ. Такие файлы называются неизменяемыми. Для неизменяемых файлов намного легче осуществить кэширование файла и его репликацию (тиражирование), так как исключается все проблемы, связанные с обновлением всех копий файла при его изменении.

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

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

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

    Принципиальной проблемой, связанной со способами именования файлов, является обеспечение прозрачности. В данном контексте прозрачность понимается в двух слабо различимых смыслах. Первый – прозрачность расположения – означает, что имена не дают возможности определить месторасположение файла. Например, имя /server1/dir1/ dir2/x говорит, что файл x расположен на сервере 1, но не указывает, где расположен этот сервер. Сервер может перемещаться по сети, а полное имя файла при этом не меняется. Следовательно, такая система обладает прозрачностью расположения.

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

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

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

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

    Во-вторых, необходимо определить правило замены данных при заполнении кэш-памяти. Здесь можно использовать любой стандартный алгоритм кэширования, например, алгоритм LRU (least recently used), соответствии с которым вытесняется блок, к которому дольше всего не было обращения.

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

    Распределенная файловая система (Distributed File System, DFS) настраивается в операционной системе Windows 2000 Server (Панель управления Администрирование – Распределенная файловая система DFS ) и позволяет объединить файловые ресурсы, находящиеся на различных компьютерах, в одно пространство имен. Таким образом, вместо сети, состоящей из большого количества машин, пользователь видит структуру логических имен, связанных с общими ресурсами.

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

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

    · удобное администрирование томов – общий ресурс, входящий в состав тома DFS, может быть отключен без какого-либо влияния на оставшуюся часть пространства имен;

    · наличие графического инструмента администрирования;

    · возможность организации отказоустойчивых схем хранения информации – одному логическому имени могут соответствовать несколько копий ресурса (реплик), наличие которых прозрачно для пользователя;

    · сбалансированная нагрузка на общие ресурсы сети за счет связывания одного имени ресурса с разными репликами этого ресурса;

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

    · интегрирование с моделью безопасности Windows 2000 – используются единые учетные записи пользователей;

    · интеллектуальное кэширование данных на стороне клиента;

    · возможность взаимодействия с другими сетевыми файловыми системами.

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

    Начальной точкой для логических имен дерева DFS служит корень распределенной файловой системы, для создания которого необходимо указать некоторый общий ресурс, находящийся на сервере. Все остальные имена DFS будут находиться на следующем иерархическом уровне. Общие ресурсы компьютерной сети в дереве DFS представляются с помощью логических имен, имеющих следующее место в полном имени ресурса в сети: \\Имя_Сервера\Логическое_Имя_DFS\ Путь\Файл.



    Распределенная файловая система DFS обеспечивает подключение к одному логическому имени до 32 альтернативных общих ресурсов (реплик). Если реплики находятся в разделе NTFS 5.0 в распределенной файловой системе, созданной на серверах Windows 2000 и интегрированной с Active Directory, то для них можно настроить автоматическую синхронизацию – согласование данных (репликацию). В других случаях согласование реплик необходимо выполнять вручную .

    Элементы системной интеграции

    В распределенных вычислительных системах или общедоступных компьютерных сетях, например в Интернете, существует множество объектов, представляющих интерес – таких, как базы данных, принтеры, серверы службы факсов, приложения, пользователи. Пользователям желательно уметь находить и использовать эти объекты. Администраторам необходимо управлять использованием этих объектов.

    Служба каталогов

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

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

    Служба каталогов может решать следующие задачи:

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

    · Распределять каталог по различным компьютерам сети.

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

    · Разбивать каталог на несколько разделов для обеспечения возможности хранения большого количества объектов.

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

    Active Directory – это служба каталогов, включенная в операционную систему Windows 2000/2003 Server. Она является наглядным примером системной интеграции – расширяет возможности существовавших ранее служб каталогов на базе Windows и добавляет совершенно новые возможности.

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

    Служба каталогов Active Directory образует пространство имен, в котором имя объекта в каталоге разрешается в сам объект.

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

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

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

    Схема службы каталогов Active Directory реализована как набор экземпляров классов объектов, которые хранятся в каталоге. Следовательно, схема – совокупность (матрица) всех атрибутов и классов.

    Контейнер подобен объекту в том, что у него есть атрибуты и он является частью пространства имен службы каталогов Active Directory. Но он, в отличие от объекта, не представляет собой нечто конкретное. Он лишь «оболочка» для группы объектов и других контейнеров.

    Термин дерево используется для описания иерархии объектов и контейнеров. Вершины дерева обычно являются объектами. Узлы дерева (точки, где дерево ветвится) являются контейнерами. Дерево показывает связь между объектами или путь от одного объекта к другому. Простой каталог является контейнером. Компьютерная сеть или домен также являются контейнерами. Непрерывным поддеревом называется любой неразрывный путь в дереве, включая все составляющие каждого включенного в этот путь контейнера (рис. 3.5).

    Рис 3.5. Непрерывное поддерево каталога файлов

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

    Различающееся имя (DN – distinguished name) определяет домен, содержащий объект, а также полный путь по иерархии контейнеров, ведущий к данному объекту. Типичное DN может иметь вид:

    /O=Internet/DC=COM/DC=Microsoft/CN=Users/CN=James Smith

    Это DN определяет объект-пользователь «James Smith» в домене Microsoft.com. Здесь CN обозначает общее имя. (рис. 3.6)

    Рис. 3.6. Графическое представление различающегося имени

    Относительное различающееся имя (RDN – Relative Distinguished Name) объекта – это часть его имени, которая представляет собой атрибут самого объекта. В предыдущем примере RDN объекта-пользователя «James Smith» будет CN=James Smith. RDN его родительского объекта будет CN=Users.

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

    · Единая регистрация в сети . Пользователи могут регистрироваться в сети с одним именем и паролем и получать при этом доступ ко всем сетевым ресурсам (серверам, принтерам, приложениям, файлам и т. д.) независимо от их расположения в сети.

    · Безопасность информации . Средства аутентификации и управления доступом к ресурсам, встроенные в службу Active Directory, обеспечивают централизованную защиту сети. Права доступа можно определять не только для каждого объекта каталога, но и каждого свойства (атрибута) объекта.

    · Централизованное управление . Администраторы могут централизованно управлять всеми корпоративными ресурсами. Рутинные задачи администрирования не нужно повторять для многочисленных объектов сети.

    · Администрирование с использованием групповых политик. При загрузке компьютера или регистрации пользователя в системе выполняются требования групповых политик; их настройки хранятся в объектах групповых политик (GPO) и «привязываются» к сайтам, доменам или организационным единицам. Групповые политики определяют, например, права доступа к различным объектам каталога или ресурсам, а также множество других «правил» работы в системе.

    · Гибкость изменений . Служба каталогов гибко следует за изменениями структуры компании или организации. При этом реорганизация каталога не усложняется, а может и упроститься. Кроме того, службу каталога можно связать с Интернетом для взаимодействия с деловыми партнерами и поддержки электронной коммерции.

    · Интеграция с DNS . Служба Active Directory тесно связана с DNS. Этим достигается единство в именовании ресурсов локальной сети и глобальной сети Интернет, в результате чего упрощается подключение пользовательской сети к Интернету. Служба каталогов Active Directory использует систему DNS в качестве службы определения местоположения. Имена доменов Windows 2000/2003 являются именами доменов DNS.

    · Расширяемость каталога . Администраторы могут добавлять в схему каталога новые классы объектов или добавлять новые атрибуты к существующим классам.

    · Масштабируемость . Служба Active Directory может охватывать как один домен, так и множество доменов, один контроллер домена или множество контроллеров домена – т. е. она отвечает требованиям сетей любого масштаба. Несколько доменов можно объединить в дерево доменов, а несколько деревьев доменов можно связать в лес.

    · Репликация информации . В службе Active Directory используется репликация служебной информации в схеме со многими ведущими (multi-master), что позволяет модифицировать каталог на любом контроллере домена. Наличие в домене нескольких контроллеров обеспечивает отказоустойчивость и возможность распределения сетевой нагрузки.

    · Гибкость запросов к каталогу . Пользователи и администраторы сети могут быстро находить объекты в сети, используя свойства объекта (например, имя пользователя или адрес его электронной почты, тип принтера или его местоположение и т. п.). Это, в частности, можно сделать при помощи команды Пуск – Поиск папку Мое сетевое окружение или оснастку Active Directory пользователи и компьютеры .Оптимальность процедуры поиска достигается благодаря использованию глобального каталога.

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

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

    Можно сказать, что служба Active Directory «стоит на трех китах»:

    · Стандарт Х.500

    · Служба DNS (Domain Name Service)

    · Протокол LDAP (Lightweight Directory Access Protocol)

    В Active Directory частично реализована модель данных, описываемая стандартом Х.500. Традиционная в сетях TCP/IP служба DNS используется, в частности, для поиска контроллеров домена, а благодаря протоколу LDAP клиенты могут по имени находить в каталоге Active Directory нужные объекты и получать доступ к их атрибутам.

    Для понимания структуры Active Directory рассмотрим сначала отличия Windows 2000 от предыдущих версий серверных операционных систем Windows. Компьютеры на базе Windows 2000 по-прежнему объединяются в домены. Домены – это известное решение для администрирования групп, предоставляющее каждому пользователю учетную запись в конкретном домене. Однако, в отличие от Windows NT Server 4.0, где доменам давались простые строковые имена (имена NetBIOS), в среде Windows 2000 Server каждый домен должен иметь имя, отвечающее соглашениям именования доменов Domain Name System (DNS). Так, домен, имеющий имя NetBIOS MainOffice при обновлении может получить новое имя типа mainoffice.company.com.

    В каждом домене один или несколько компьютеров должны выполнять функции контроллеров домена. В среде Windows 2000 Server каждый контроллер домена содержит полную копию базы данных Active Directory этого домена.

    В Active Directory используются так называемое ядро Extended Storage Engine (ESE) и два различных протокола, обеспечивающих связь между клиентами и базой данных.

    Для поиска контроллера домена клиент обращается к протоколу, описанному в DNS – «стандартной» службе каталогов, применяемой в настоящее время для сетей TCP/IP.

    Для доступа к данным в Active Directory клиент использует протокол Lightweight Directory Access Protocol (LDAP) (рис. 3.7).

    Рис 3.7. Доступ к данным с использованием LDAP

    После того как с помощью DNS нужный контроллер домена обнаружен, для доступа к данным Active Directory используется протокол LDAP. Протокол LDAP работает поверх TCP/IP и – как следует из названия протокола – определяет способы доступа к каталогу со стороны клиентов.

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

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

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

    NFS - это самый известный механизм совместного доступа к файлам для Linux и других Unix-систем, потому что он присутствует во многих Unix-подобных системах и очень прост в настройке. NFS поддерживается ядром Linux, и утилиты, связанные с NFS, присутствуют в каждом дистрибутиве. Но в мире Linux существуют и более современные механизмы для совместного использования файлов и каталогов. Каждый из них имеет определенные преимущества в настройке или в использовании.

    Распределенная файловая система OpenAFS - это Open Source-аналог известной коммерческой распределенной файловой системы AFS. Поддержка для распределенных файловых систем InterMezzo и Coda уже присутствует в новых ядрах Linux из серии 2.4. Новые механизмы совместного использования файлов, основанные на Web (например, WebDAV), тоже могут использоваться в качестве файловых систем.

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

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

    Сейчас сетевые файловые системы называют «распределенными». Этот термин отражает тот факт, что многие из этих файловых систем имеют гораздо больше возможностей, чем простая передача данных по сети. Носители данных, связанные с этими файловыми системами, не обязательно могут быть расположены на одном компьютере - они могут быть распределены между многими компьютерами.

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

    Самое главное различие между подходом Windows / MacOS (совместное использование каталогов и дисков) и подходом Linux, MacOS X и других Unix-подобных многопользовательских операционных систем - в том, как эти операционные системы используют и организовывают разделы. Windows / MacOS экспортируют разделы как отдельные каталоги или диски, и удаленные системы, которые хотят обратиться к общедоступным устройствам, должны обязательно подключить их к себе.

    Когда самый высокий уровень организации в файловой системе - это раздел диска (например, как в файловых системах Windows), рабочие станции клиентов для получения доступа к этим данным должны обязательно подключиться к разделу и назначить ему отдельную букву в своей локальной раскладке (например, диск E, F, G, и т.д). Буквы могут быть назначены сетевым разделам в пользовательских и групповых профилях Windows (для стандартизации). Но, к сожалению, не на всех компьютерах расположение букв может быть одинаковым. Например, на компьютере с большим количеством жестких дисков и разделов нужные буквы могут быть заняты, и поэтому придется давать сетевым разделам другие обозначения.

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

    Современные распределенные файловые системы типа OpenAFS или Coda включают в себя специальные сервисы для управления разделами. Это позволяет вам смонтировать разделы различных файловых серверов в центральную иерархию директорий, поддерживаемую файловыми системами. OpenAFS использует центральный каталог, называемый «/afs», а Coda использует «/coda». Эти иерархии директорий доступны всем клиентам распределенной файловой системы, и выглядят одинаково на любой из клиентских рабочих станций. Это дает возможность пользователям работать со своими файлами одинаково на любом компьютере. Если ваш настольный компьютер не работает, вы совершенно спокойно можете использовать любой другой - все ваши файлы находятся в безопасности на сервере.

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

    Проблемы администрации распределенных файловых систем.

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

    Сохранение общих данных на централизованных файловых серверах (а не на индивидуальных компьютерах) упрощает такие административные задачи, как резервирование и восстановление файлов и каталогов. Это так же централизует такие стандартные административные задачи, как контроль за использованием файловой системы, и представляет новые возможности управления хранением данных - например, балансирование загрузки. Распределенные файловые системы типа OpenAFS и Coda обеспечивают встроенные логические системы управления разделами, которые дают администраторам возможность переместить интенсивно используемые данные на более мощные или менее используемые компьютеры. Если распределенная файловая система поддерживает дублирование, копии интенсивно используемых данных могут распределяться между многими файловыми серверами. Это может уменьшить нагрузку на сеть, и облегчить работу серверов. Распределенные файловые системы используют логические разделы вместо физических дисковых разделов, и это позволяет легко добавить в сеть новую свободную память прямо во время работы. (Для добавления нового диска в локальный компьютер пришлось бы потратить некоторое время).

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

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

    Поддержка автономной работы с данными.

    Использование распределенной файловой системы увеличивает зависимость компьютерных систем от сети. Эта зависимость от данных, к которым люди могут обращаться только по сети, вызывает некоторые интересные проблемы для пользователей лаптопов/мобильных компьютеров, которые нуждаются в доступе к своим данным даже тогда, когда доступ к сети невозможен. Это называется «автономная работа» - система должна функционировать, если ресурсы, которые обычно присутствуют в сети (например, пользовательские данные), по каким-то причинам не доступны. Даже Windows обеспечивает графический интерфейс для возможности маркировки файлов, с которыми вы хотите работать, когда вы отключены от сети, и для синхронизации этих файлов, когда вы соединяетесь повторно.

    Распределенные файловые системы Coda и InterMezzo, которые являются в настоящее время доступными для Linux, тоже обеспечивают интегрированную поддержку для автономной работы. Так же сейчас ведется работа над обеспечением этой возможности для файловых систем NFS. Coda и InterMezzo уже поддерживаются ядром Linux - поддержка Intermezzo встроена в ядро, начиная с версии 2.4.5, а Coda вообще была интегрирована в ядро 2.4 с самого начала.

    Coda - распределенная файловая система с происхождением из OpenAFS, которая разрабатывается в университете Carnegie Mellon с 1987 года. InterMezzo - относительно новая распределенная файловая система, упор в разработке которой сделан на высокой доступности, гибком дублировании каталогов, поддержке автономных операций, и постоянном кэшировании. Создатели InterMezzo были вдохновлены CMU Coda, но этот проект не основан на исходном тексте Coda. Начальный создатель InterMezzo, Питер Браам, был главой проекта Coda в CMU в течение нескольких лет, и после этого он сам начал разрабатывать InterMezzo и несколько других проектов.

    Расширение файловых систем с помощью Web.

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

    Самая известная из них - это WebDAV, которая расшифровывается как «Web-система распределенной авторизации и контроля версий» (Web-enabled Distributed Authoring and Versioning). WebDAV - это набор расширений к протоколу HTTP, обеспечивающий совместную среду для пользователей, которая позволяет им скачивать, упорядочивать и редактировать файлы, хранящиеся на Web-серверах.

    Поддержка WebDAV встроена во многие популярные Web-серверы, например - Apache, где это основывается на опознавательных механизмах сервера. (От простых файлов.htaccess до интегрированных NIS, LDAP, или даже механизма аутентификации Windows). Использование WebDAV для доступа и модификации файлов через Web встроено в операционные системы Mac OS X, в новые версии Microsoft Internet Explorer, а так же доступно и в Linux при использовании таких приложений, как менеджер файлов Nautilus. Хотя это и не файловая система в традиционном смысле, но вы можете даже смонтировать WebDAV в Линуксе, используя загружаемый модуль ядра под названием davfs.

    WebDAV обеспечивает такие стандартные для распределенных систем возможности, как блокировка файлов, создание, переименование, копирование, удаление файлов, а так же поддерживает такие продвинутые возможности, как meta-данные файла (более подробная информация о файле - заголовок, тема, создатель, и т.д). В ближайшем будущем WebDAV будет включать интегрированную поддержку управления версиями, которая упростит работу многих пользователей над общими файлами, отслеживая изменения, авторов этих изменений, и другие аспекты общего использования документа. Эти возможности контроля над версиями обеспечиваются в соответствии с протоколом DeltaV, который активно разрабатывается Рабочей группой DeltaV - подразделением Проектировочной группы Интернета (IETF - Internet Engineering Task Force). Некоторые проекты, например, Subversion (WebDAV и DeltaV-основанная замена стандарту CVS), уже доступны в альфа-версии. Subversion обеспечивает систему контроля над версиями и сохранение архива файла на основе базы данных, имеющей API языка C, и моделирует версионную файловую систему, легко доступную через Web.

    Вывод.

    Многие IT-специалисты, ответственные за вычислительные системы предприятий, уже используют сетевые файловые системы (NFS), или адаптеры файловых систем (Samba, Netatalk, или Novell) для объединения своих сетей. Более новые и более функциональные распределенные файловые системы - такие, как OpenAFS, Coda, InterMezzo и WebDAV - могут стать альтернативой, потому что они имеют более высокое быстродействие, улучшенную защиту, и дополнительные возможности управления разделами и создания резервных копий.

    Как мы увидим в дальнейших статьях из этой серии, современные распределенные файловые системы могут быть легко интегрированы в существующую сеть. Распределенные файловые системы могут обеспечить дополнительную гибкость сети, ускорить и упростить процесс совместной работы над файлами, уменьшить затраты и упростить жизнь администраторам. Современные распределенные файловые системы дают новую жизнь слогану Sun Microsystems «The Network is the computer», расширяя файловую систему по компьютерной сети.

    Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

    Файловая система с не фрагментируемым форматом записи файлов. Использовалась на персональных компьютерах БК в операционных системах MKDOS , AO-DOS , NORD , MicroDOS, NORTON-БК , PascalDOS и др. Поддерживалась только для чтения в ANDOS . В различных ОС зачастую поддерживались отличающиеся друг от друга, не всегда полностью совместимые модификации. Развитая журналируемая файловая система , доступная для ОС семейства AmigaOS , а также MorphOS и AROS . Одной из особенностей этой системы является возможность проводить дефрагментацию даже во время работы с файлами. Примечания
    1. Martin Marshall. «Intel-Architecture Unix: Still a Moving Target» (англ.) // InfoWorld. - 1989. - P. 64 . - «The new SCO release also adds a fast file system designed by Acer Counterpoint <…> According to SCO Xenix product manager Bill Brothers, the Acer Fast File System performance can be as high as 600 to 800 kilobytes per second, compare to about 100 kilobytes per second for standart Unix file formats.»
    2. 1.3 release confirmed on September 16, 1988 by Carolyn Scheppner of CATS in amiga.dev in . Copy of BIX announcement from USENET
    3. (неопр.) .
    4. Была впервые представлена в NTFS 3.0
    5. Rob Radez. 2.4.15-final (неопр.) . Linux kernel mailing list (23 ноября 2001). Проверено 30 ноября 2010. Архивировано 26 августа 2011 года.
    6. Microsoft’s Opposition to Datel’s Motion for Partial Summary Judgment (PDF‐файл на сайте Electronic Frontier Foundation) - «FatX is an unpublished, proprietary format that is not readable using standard tools available on a Macintosh, Windows, or Linux computer. », много текста закрашено.
    7. Sergey Ptashnick. «Открыт код Next3 - файловой системы для Linux с поддержкой слепков ФС» (неопр.) . (09 июня 2010 г.). Проверено 17 февраля 2011. Архивировано 26 августа 2011 года.
    8. Файловая система ReFS изнутри Released (неопр.) . R.Lab (16 марта 2012). Архивировано 31 мая 2012 года.
    9. «Btrfs and Squashfs merged into Linux kernel» (англ.) (10 января 2009 г.). Проверено 4 января 2011. Архивировано 26 августа 2011 года.
    10. Help - IBM AIX Compilers
    11. VERITAS Foundation Suite and Foundation Suite HA 3.5 (неопр.) (недоступная ссылка) . VERITAS. Проверено 21 ноября 2007. Архивировано 25 октября 2003 года.

    Файловые системы для флеш-дисков / твердотельных носителей [ | ]

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

    Запись-ориентированные файловые системы [ | ]

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

    Файловые системы для сетевых хранилищ [ | ]

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

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

    • (XFS для кластера) - файловая система, расширяющая XFS для использования в сети, имеющей SGI -сервера. Сфера применения типична для решений Silicon Graphics - видеомонтаж, обработка массивов видеоматериалов.
    • от компании EMC . Доступна для ОС AIX, HP-UX, IRIX, Solaris и Windows. Асимметрична.
    • (англ. ) - распределённая файловая система, разработанная IBM
    • Files-11 - файловая система для кластеров VMS , выпущена DEC в 1983, ныне компания . Симметрична.
    • (GFS) - компания Red Hat . Выпущена в Linux под лицензией GNU GPL . Симметрична () и асимметрична ().
    • (CFS) (TruCluster) - компания . Доступна для Tru64 UNIX .
    • - компания. Доступна для Windows . Симметрична.
    • - файловая система от компании. Доступна в Linux и Solaris. Асимметрична.
    • OCFS - Oracle Cluster File System, кластерная файловая система от Oracle . Лицензия GNU GPL . Симметрична
    • (PSFS) - компания - используется в их , который фокусируется на экспортировании клиентам через CIFS или NFS , также как и Microsoft SQL Server и Oracle 9i RAC и 10g. Доступна в Linux и Windows. Симметрична.
    • (англ. ) от. Асимметрична. Доступна в AIX , HP-UX , IRIX , Linux , Mac OS , Solaris и Windows . Совместима с Xsan .
    • QFS , создана компанией Sun Microsystems . Доступна в Linux (только клиентская часть) и Solaris (полностью). Асимметрична.
    • (CFS) - разработана компанией Symantec . Доступна в AIX, HP-UX, Linux и Solaris. Асимметрична.
    • Xsan - кластерная файловая система, созданная компанией Apple Computer, Inc. Асимметрична, доступна в Mac OS. Совместима с.
    • - разработана VMware /EMC Corporation . Доступна в VMware ESX Server . Симметрична.

    Распределённые файловые системы [ | ]

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

    • Andrew File System (AFS) - масштабируемая и независимая от расположения ФС, имеет сильный кэш -клиент и использует Kerberos для авторизации . Различные внедрения используют оригинальные части от IBM (ранее), Arla и OpenAFS .
    • - свободно распространяемые сервер и клиент с поддержкой AFS
    • Apple Filing Protocol (AFP) - ФС от Apple Computer . AFP может использовать протокол Kerberos для авторизации.
    • CIFS - распределённая ФС, основанная на SMB с поддержкой UNIX-прав и блокировок, при этом использующая DNS -имена машин, а не NetBIOS -, в отличие от SMB.
    • (/DFS) - ФС от IBM (ранее) похожа на AFS и полностью соответствует стандарту POSIX и стандартам систем высокой доступности . Доступна для ОС AIX и Solaris под запатентованной лицензией.
    • NetWare Core Protocol (NCP) - ФС от Novell . Используется в сетях, основанных на NetWare .
    • Network File System (NFS) изначально от Sun Microsystems , теперь является стандартом в UNIX-подобных сетях. NFS может использовать протокол Kerberos для авторизации и кэш клиента.
    • (Remote File Sharing - совместное использование удаленных файлов) - сетевая файловая система только для UNIX System V , начиная с Release 3. Использует протокол интерфейса транспортного уровня TLI.
    • (англ. ) - One File System, полностью журналируемая распределённая ФС , разработанная. Позволяет хранить более 150 Тбайт данных.
    • - открытая реализация распределенной файловой системы AFS.
    • (SFS), Глобальная сетевая файловая система, разработанная для безопасного доступа к файлам через различные административные домены.
    • Server Message Block (SMB) - изначально разработана IBM (большинство общих версий серьёзно модифицировано Microsoft) - является стандартом в Windows-ориентированных сетях. SMB также известна как Common Internet File System (CIFS) - Общая Файловая система в Интернет. SMB может использовать протокол Kerberos для авторизации.
    • - распределённая файловая система для ОС Plan 9 и Inferno .

    Распределённые параллельные файловые системы с защитой от сбоев [ | ]

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

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

    • Ceph - свободная распределённая файловая система, может использоваться на системах, состоящих как из нескольких машин, так и из тысяч узлов. Не требует какой-то особой поддержки от ядра. Может работать поверх блочных устройств, внутри одного файла или используя существующую ФС.
    • Coda - ФС, созданная в Carnegie Mellon University и нацеленная на операции, адаптируемые к пропускной способности канала (включая операции в режиме). Использует кэш на стороне клиента для мобильных компьютеров. Данная ФС является потомком AFS-2 и доступна для Linux под лицензией GNU GPL .
    • - ФС от компаний Fermilab и DESY . Является бесплатным ПО (однако не относится к свободному программному обеспечению из-за лицензионных ограничений).
    • - распределённая ФС от. Идёт как часть, основанном на Linux NAS решении запущенном на оборудовании Intel , обслуживает NFS v2/v3, SMB/CIFS и AFP для Microsoft Windows, Mac Os, Linux и других UNIX клиентов. Доступна под патентованной лицензией.
    • - ФС, использующая

    Распределенная файловая система (Distributed File System – DFS) предоставляет возможность просто и прозрачно управлять сетевыми дисками. Вместо использования физического расположения сетевого ресурса (по имени сервера), пользователи могут просто подключаться к корню распределенной файловой системы.

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

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

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

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

    Репликация данных выполняется Службой репликации файлов (Fire Replication Service - FRS) , которая также занимается репликацией папки SYSVOL с объектами групповой политики Active Directory.

    При первой настройке распределенной файловой системы необходимо указать начальную точку для дерева распределенной файловой системы. Она известна под именем корень распределенной файловой системы. Существует два типа корня распределенной файловой системы:

    • Изолированный корень (Standalone) - конфигурация пространства имен распределенной файловой системы и архитектура хранятся локально на корневом сервере. Путь доступа (путь UNC) к корню начинается с имени сервера. Изолированный корень позволяет существование только одного корня распределенной файловой системы для пространства имен распределенной файловой системы. Это значит, что корень не предоставляет устойчивости к ошибкам и представляет единственную точку отказа при доступе к данным.
    • Домен (Domain) - пространство имен распределенной файловой системы храниться в Active Directory. При использовании домена распределенной файловой системы можно создавать несколько устойчивых к ошибкам корней распределенной файловой системы, а клиенты будут получать доступ к распределенной файловой системе по имени домена. Использование интеграции в Active Directory позволяет клиентам автоматически быть перенаправленными к корню распределенной файловой системы в локальном сайте Active Directory, что имеет определенные преимущества в больших сетях, где инфраструктура распределенной файловой системы может простираться на несколько сайтов.

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