Сетевое ПО Лекция 5 (1061289), страница 2
Текст из файла (страница 2)
Лекция 5(2014 г.)(Сетевые файловые системы)Поэтому для одной и той же локальной файловой системы серверамогут существовать различные протоколы сетевой файловой системы.Так, к файловой системе NTFS можно получить доступ с помощьюразличных протоколов (рис. 5.3).С другой стороны, с помощью одного и того же протокола можетреализовываться удаленный доступ к локальным файловым системамразного типа.Например, протокол SMB используется для доступа не только к файловойсистеме FAT, но и к файловым системам NTFS и HPFS (рис. 5.4). Эти файловыесистемы могут располагаться как на разных, так и на одном компьютере.2.6 Алгоритмы разделения файловКогда два или более пользователей разделяют один файл, необходимоточно определить семантику чтения и записи, чтобы избежать проблем синтерпретацией результирующих данных файла.2.6.1 Семантика UNIX.В соответствии с данной моделью система придерживается абсолютноговременного упорядочивания всех операций и всегда возвращает самоепоследнее значение данных.Если запись осуществляется в открытый многими пользователями файл,то все эти пользователи немедленно видят результат изменения данных файла.Обычно такая модель называется семантикой UNIX.
В централизованнойсистеме, где файлы хранятся в единственном экземпляре, ее легко и понять, иреализовать.Семантика UNIX может быть обеспечена и в распределенныхсистемах, но только если в ней имеется лишь один файловый сервер иклиенты не кэшируют файлы. Для этого все операции чтения и записинаправляются на файловый сервер, который обрабатывает их строгопоследовательно.8Сетевое ПО. Лекция 5(2014 г.)(Сетевые файловые системы)На практике, однако, производительность распределенной системы, вкоторой все запросы к файлам идут на один сервер, часто становитсянеудовлетворительной.Эта проблема иногда решается за счет разрешения клиентам обрабатыватьлокальные копии часто используемых файлов в своих личных кэшах.Если клиент сделает локальную копию файла в своем локальном кэше иначнет ее модифицировать, а вскоре после этого другой клиент прочитает этотфайл с сервера, то он получит неверную копию файла.Одним из способов устранения этого недостатка является немедленныйвозврат всех изменений в кэшированием файле на сервер.Такой подход хотя и концептуально прост, но не эффективен.Распределенные файловые системы обычно используют более свободнуюсемантику разделения файлов.2.6.2 Сеансовая семантика.В соответствии с этой моделью изменения в открытом файле сначалавидны только процессу, который модифицирует файл, и только после закрытияфайла эти изменения могут видеть другие процессы.Прииспользованиисеансовойсемантикивозникаетпроблемаодновременного использования одного и того же файла двумя или болееклиентами.Одним из решений этой проблемы является принятие правила, всоответствии с которым окончательным является тот вариант, который былзакрыт последним.
Однако из-за задержек в сети часто оказывается трудноопределить, какая из копий файла была закрыта последней. Менееэффективным, но гораздо более простым в реализации является вариант, прикотором окончательным результирующим файлом на сервере считается любойиз этих файлов, то есть результат операций над файлом не являетсядетерминированным.Сетевое ПО. Лекция 5(2014 г.)(Сетевые файловые системы)92.6.3 Семантика неизменяемых файлов.Следующий подход к разделению файлов заключается в том, чтобысделать все файлы неизменяемыми.Тогда файл нельзя открыть для записи, а можно выполнять толькооперацииcreate (создать) и read (читать).Тогда для изменения файла остается только возможность создатьполностью новый файл и поместить его в каталог под новым именем.Следовательно, хотя файл и нельзя модифицировать, его можно заменить(автоматически) новым файлом.
Таким образом, проблема, связанная содновременным использованием файла, для файловой системы простоисчезнет, но с ней столкнутся пользователи, которые будут вынуждены вестиучет имен своих копий модифицированного файла.2.6.4 Транзакционная семантика.Четвертый способ работы с разделяемыми файлами в распределенныхсистемах — это использование механизма неделимых транзакций.2.6.5 Контроль доступаС каждым разделяемым файлом обычно связан список управлениядоступом (Access Control List, ACL), обеспечивающий защиту данных отнесанкционированного доступа.В том случае, когда локальная файловая система поддерживает механизмACL для файлов и каталогов при локальном доступе, сетевая файловая системаиспользует этот механизм и при доступе по сети.Если же механизм защиты в локальной файловой системе отсутствует, тосетевой файловой системе приходится поддерживать его самостоятельно, иногда— упрощенным способом, защищая разделяемый каталог и входящие в негофайлы и подкаталоги как единое целое.В Windows существуют два механизма защиты - на уровне разделяемыхкаталогов и на уровне локальных каталогов и файлов.
Последний работаеттолько в том случае, когда в качестве локальной файловой системы10Сетевое ПО. Лекция 5(2014 г.)(Сетевые файловые системы)используется система NTFS, поддерживающая механизм ACL. Механизмзащиты разделяемых каталогов нужен для того, чтобы защищать данные,хранящиеся в локальной файловой системе FAT, не имеющей механизмовзащиты..