Унифицированное монтирование при помощи универсальной утилиты монтирования NFS

Автоматическая консолидация различных версий NFS при помощи универсального монтирования

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

Абхиднья П. Чирмуле, разработчик системного ПО, IBM

Абхиднья Чирмуле является разработчиком системного программного обеспечения в составе Network File System Team в IBM Software Labs в Пуне, Индия, занимаясь технологиями Open Network Computing, такими как RPC и NFS на платформе AIX. Абхиднья имеет степень бакалавра в области компьютерных наук, полученную в Инженерном колледже Пуны.



Чинмай Соман, разработчик ПО, IBM

Чинмай Соман является разработчиком программного обеспечения в IBM Systems and Technology Labs в Пуне, Индия. В настоящее время он занимается научными исследованиями в CTDB/Panache. Он работал в составе группы разработчиков NFS, занимаясь разработкой и обслуживанием NFS на платформе AIX. Он имеет степень бакалавра в области компьютерной техники.



02.06.2009

Протокол Network File System (NFS) – это широко распространенная распределенная файловая система, позволяющая выполнять файловые операции на сервере с удаленных клиентов. Сервер предоставляет общий доступ к своим каталогам или файловым системам при помощи операции export. Для доступа к этим каталогам клиент монтирует экспортированные каталоги или файловые системы в свое локальное дерево каталогов. Клиенты осуществляют доступ к удаленным файлам в смонтированном каталоге так же, как и к локальным. В настоящее время NFS поддерживает три версии для экспорта и монтирования каталогов: NFS версий 2, 3 и 4.

В этой статье мы покажем, как использовать универсальное монтирование NFS для консолидирования общего доступа и монтирования всех имеющихся версий NFS при помощи единого механизма. Давайте представим ситуацию, в которой сервер предоставляет общий доступ к каталогам для всех трех версий NFS. Для доступа ко всем этим каталогам клиенту понадобится монтировать эти ресурсы по отдельности в разные точки монтирования. Хотя в NFS версии 4 имеется механизм псевдодерева, который позволяет смонтировать все общие ресурсы NFSv4 в одну точку, его можно использовать только для ресурсов, доступ к которым предоставлен при помощи этой версии. Итак, клиент по отдельности монтирует ресурсы 2 и 3 версий, и создает единую точку монтирования для ресурсов 4 версии (при использовании псевдодерева).

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

Рассмотрим иерархию каталогов на сервере NFS, показанную на рисунке 1.

Рисунок 1. Иерархия каталогов на сервере
Рисунок 1. Иерархия каталогов на сервере

В этом случае на клиентском компьютере необходимо выполнить следующие команды монтирования:

  • Одна команда монтирования NFSv4: монтирует псевдодерево NFSv4 (Fileset1 и Fileset2). Использование псевдодерева позволяет клиенту NFSv4 подключить все общие ресурсы в виде псевдодерева при помощи единственной команды mount.
  • Две команды монтирования NFSv3: монтируют каталоги Tools и Docs.
  • Одна команда монтирования NFSv2: монтирует каталог Binaries.

При использовании универсальной утилиты монтирования NFS все эти команды монтирования сводятся к единственной команде, приведенной ниже:

gennfsmount <NFS server>         <mountpoint>

Использование универсального монтирования NFS обладает следующими преимуществами:

  • Пользователям необходимо выполнить только одну операцию монтирования для доступа ко всей общей информации сервера. Ранее такая функция не поддерживалась.
  • Рассмотрим сервер, предоставляющий доступ к старым дистрибутивным ресурсам по версиям 2 и 3 и к новым дистрибутивным ресурсам по версии 4. Клиенты могут получить доступ ко всем этим ресурсам и выполнять установки при помощи единственной операции.
  • Утилита улучшает поиск файлов на общих ресурсах.
  • Поскольку эта утилита выполняет автоматическое разделение ресурсов NFS в зависимости от версии протокола, тем самым сокращаются затраты на обслуживание различных точек монтирования.
  • Администраторы NFS могут сохранять общие ресурсы, созданные при помощи старых версий NFS, одновременно используя более новые версии протокола, поскольку доступ к ним будет возможен при помощи одной команды mount.

Похожего результата можно добиться при помощи утилиты automount, но она требует дополнительных административных усилий по настройке файлов связывания для монтирования необходимых ресурсов NFS. Функция hostmap утилиты automount предполагает возможность монтирования всех общих ресурсов сервера без какой-либо административной настройки, но при подключении ресурсов NFSv4 возникают проблемы. К тому же эта операция выполняется для всех серверов, перечисленных в файле /etc/hosts. Не существует способа смонтировать все общие ресурсы отдельно взятого сервера в одну точку.

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

Подробности реализации

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

Рисунок 2. Универсальная утилита монтирования NFS запрашивает все общие ресурсы
Рисунок 2. Универсальная утилита монтирования NFS запрашивает все общие ресурсы

При получении ответа от сервера выполняется алгоритм, показанный в листинге 1.

Listing 1. Algorithm for generic NFS mount
Начало
	Создать временные каталоги для всех версий.

	Инициализировать список методов безопасности монтирования. 
	Включить этот список в каждую внутреннюю операцию монтирования.

	Для каждого значения в списке общих ресурсов
	Выполнить
		Выполнить внутреннюю команду монтирования для всех ресурсов NFSv2 и NFSv3
		Обновить внутренний журнал
	Конец цикла
	
	Выполнить общую внутреннюю команду монтирования для ресурсов NFSv4.
	Обновить внутренний журнал
Конец

Список методов безопасности – это перечисление через запятую протоколов безопасности (sys, krb5, krb5i и т.п.), используемых при операциях чтения/записи в точке монтирования. Этот список используется для выбора метода безопасности, поддерживаемого сервером, который будет применяться для последующих системных вызовов в этой точке монтирования. Подобный механизм может использоваться для проверки соответствия версий NFS общих ресурсов.

После завершения всех внутренних операций монтирования выполняется объединение внутренних каталогов при помощи UnionFS, как показано в листинге 2.

Листинг 2. Объединение внутренних каталогов при помощи UnionFS
mount -t unionfs -o dirs=<temp_dir1>[:<temp_dir2>...] none <mount-point>

Помните предыдущий сценарий? На клиентском компьютере выполнялись: одна операция монтирования NFSv4 для псевдодерева, две операции монтирования NFSv3 для каталогов Tools и Docs, одна операция монтирования NFSv2 для каталога Binaries. Чтобы сократить все это до одной команды, мы использовали универсальную утилиту монтирования NFS и команду gennfsmount <сервер NFS> <mountpoint>—. В этом случае создается три временных каталога:

  • /tmp/NFSv4
  • /tmp/NFSv3
  • /tmp/NFSv2

Затем они соединяются при помощи unionfs, как показано в листинге 3.

UnionFS

UnionFS – это служебная файловая система для Linux® и FreeBSD, создающая объединенное монтирование для других файловых систем и позволяющая прозрачно для пользователя объединять файлы и каталоги различных файловых систем (называемых ветвями) в единую связанную файловую систему. Содержимое каталогов с одинаковыми путями будет отображаться вместе в одном объединенном каталоге полученной файловой системы. Существует две версии UnionFS для Linux:

  • Версия 1.x является автономной и может быть собрана в виде модуля.
  • Версия 2.x новее. Она была переработана и включена в ветку Linux – mm tree, поддерживаемую Эндрю Мортоном (что означает дальнейшее включение в основную ветку ядра Linux).
Листинг 3. Объединение при помощи unionfs
mount -t unionfs -o dirs=/tmp/NFSv4:/tmp/NFSv3:/tmp/NFSv2 none /mnt

В результате получается следующая иерархия каталогов:

Рисунок 3. Иерархия, полученная при помощи unionfs
Рисунок 3. Иерархия, полученная при помощи unionfs

Далее посмотрим на то, как можно использовать эту систему.


Использование системы

В этом примере сервер NFS предоставляет доступ к ресурсам при помощи разных версий NFS. Тем не менее на стороне клиента выполняется только одно подключение – универсальное монтирование NFS. На рисунке 4 показан список общих ресурсов сервера.

Рисунок 4. Общие ресурсы сервера
Рисунок 4. Общие ресурсы сервера

В данном примере сервер предоставляет доступ к пяти ресурсам при помощи разных версий NFS. Ресурсы nfs4_A и nfs4_B формируют псевдодерево (/nfs4_A и /nfs4_A/nfs4_B). Остальное – это ресурсы NFS версий 2 и 3.

На рисунке 5 показан список файлов на сервере.

Рисунок 5. Файлы на сервере
Рисунок 5. Файлы на сервере

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

На рисунке 6 показан результат использования клиентом универсального монтирования NFS.

Рисунок 6. Вывод операции универсального монтирования NFS
Рисунок 6. Вывод операции универсального монтирования NFS

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


Заключение

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

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


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

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, AIX и UNIX, Open source
ArticleID=393065
ArticleTitle=Унифицированное монтирование при помощи универсальной утилиты монтирования NFS
publish-date=06022009