Операции с файлами на удаленном компьютере
Система NFS позволяет выполнять с файлами на удаленном компьютере точно такие же операции, как и на локальном. Приложение может открыть файл на удаленном компьютере для получения доступа, прочитать данные из файла, записать данные в файл, перевести указатель в конкретную позицию файла (в начало, конец или в любое другое место)» а также закрыть файл по окончании его использования.
Доступ к файлам в разнородной сетевой среде
Задача предоставления дистанционного доступа к файлам может оказаться сложной. Служба доступа к файлам должна предоставлять не только основные механизмы чтения и записи файлов, но и способы создания и уничтожения файлов, работы с каталогами, проверки прав на выполнение запросов, соблюдения правил защиты файлов, а также прямого и обратного преобразования информации с учетом того, что на разных компьютерах применяются различные представления данных. Поскольку служба дистанционного доступа к файлам соединяет два компьютера, в ней должны учитываться различия в том, как в клиентских и серверных системах именуются файлы, обозначаются пути перехода по каталогам и хранится информация о файлах. Еще более важно то, что в программном обеспечении дистанционного доступа к файлам должны учитываться различия в семантической интерпретации операций с файлами.
Система NFS с самого начала проектировалась с учетом возможности применения в разнотипных компьютерных системах. Протокол, операции этой системы и способы их выполнения были выбраны в целях обеспечения взаимодействия самых различных систем. Безусловно, система NFS не позволяет учесть все тонкости работы файловых систем всевозможных компьютерных платформ. Вместо этого в спецификации NFS была предпринята попытка определить файловые операции, подходящие для максимально возможного количества систем, без существенного снижения эффективности или чрезмерного усложнения. Как показала практика, основная часть решений, принятых при разработке этой спецификации, вполне себя оправдывает.
Основные понятия и многие конкретные сведения, представленные в настоящей книге, относятся ко всем версиям протокола NFS. Хотя в системе. Linux ко времени публикации этой книги все еще использовалась версия 2, авторы решили подробно описать версию 3, поскольку вскоре ожидается переход системы Linux на эту версию.
Серверы, не поддерживающие состояние
Спецификация NFS предусматривает хранение информации о состоянии в клиентской части, что позволяет применять серверы, не поддерживающие состояние. Поскольку сервер не поддерживает состояние, то нарушения в процессе функционирования службы NFS не влияют на функционирование клиента. Например, теоретически клиентская программа сможет продолжить выполнение операции доступа к файлу после аварийного завершения работы сервера, не поддерживающего состояние, и перезагрузки серверного компьютера; прикладная программа, работающая в клиентской системе, может даже не получить никакой информации о перезагрузке сервера. Кроме того, поскольку сервер, не поддерживающий состояние, не должен распределять какие-либо ресурсы для каждого клиента, проект, не предусматривающий поддержки состояния, может масштабироваться в целях обеспечения обслуживания намного большего числа клиентов по сравнению с проектом, предусматривающим поддержку состояния.
Проект сервера NFS, не поддерживающего состояние, оказал влияние и на протокол, и на его реализацию. Еще более важно то, что в таком сервере нельзя хранить какую-либо информацию о том, в какой позиции файла или каталога должен осуществляться доступ. После изучения операций, предусмотренных спецификацией NFS, станет очевидно, как реализован в системе NFS проект, не предусматривающий поддержки состояния.