Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
44
Добавлен:
03.06.2014
Размер:
88.58 Кб
Скачать

Ответы на запросы монтнрования: демон mountd

Запросы монтирования обрабатывает демон mountd. В BSD-системах mount читает файл /etc/exports и берет оттуда информацию о том, каким машина следует разрешить доступ и какие ограничения (если таковые имеются) следует ввести. Файл exports содержит перечень экспортируемых каталогов (в лск)( колонке) и списки опций и атрибутов. Например, файл exports, содержащий следующие строки:

/chirnchim/users -access=band:moonie, root=band

/usr/chare/man -access=xorasaurus:rastadon:moonie

определяет, что машинам band и moonie разрешено монтировать файлов систему /chirnchim/users и что с машины band доступ к этой файлов системе предоставляется с правами привилегированного пользователя.

Кроме того, в нем задано разрешение монтировать файловую систему /usr/ahare/man машинам xorasaurus, rastadon и moonie.

NFS работает не на физическом уровне файловой системы, а на логическом. Экспортировать можно любой каталог; не обязательно, чтобы он был точкой монтирования или корневым каталогом физической файловой системы. Однако из соображений безопасности NFS определяет границы между файловыми системами, которые относятся к различным устройствам, и требует, чтобы каждая такая файловая система экспортировалась отдельно. Например, если раздел смонтирован как /users, то корневой каталог можно экспортировать без передачи доступа к этому разделу.

Точные атрибуты, которые можно указывать в файле /etc/exports, у каждой системы свои.

В ОС Solaris для экспортирования файловых систем вместо файла /etc/exports используется команда share.

Типичные атрибуты экспорта:

-access=список. Список машин, которые могут монтировать файловую систему;

-ro Экспортировать только для чтения; ни один клиент не имеет права записи в файловую систему.

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

-root=список Список машин (разделенный двоеточиями список, который может включать имена машин и сетевые группы) , которым разрешен доступ к файловой системе с правами привилегированного пользователя. Без этой опции привилегированный доступ с машины-клиента эквивалентен доступу пользователя nobody (как правило, UID = 2).

-anon=n Указывает UID, который нужно использовать для запросов, поступающих от неизвестного пользователя. По умолчанию - nobody.

Файловые системы, которые указаны в файле exports без задания конкретной совокупности машин, обычно могут монтироваться всеми машинами может стать причиной серьезных проблем с безопасностью. Изменив /etc/exports. надо дать демону mountd указание перечитать его, это делается в разных системах по разному.

Файловый сервис: демон nfsd

Если демон mountd проверил клиентский запрос на монтирование и нашел его правильным, клиенту разрешается запрашивать различные операции файловой системы. Эти запросы на стороне сервера обрабатывает nfsd, демон NFS. Демон nfsd не обязательно должен выполняться на машине-клиенте NFS. Единственное исключение — когда клиент тоже экспортирует свои файловые системы.

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

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

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

Сетевая файловая система на стороне клиента

На машинах, которые поддерживают NFS, команда mount модифицирована таким образом, чтобы она могла понимать запись

имя_машины: каталог

как путь каталог, интерпретируемый машиной имя_иашины.

Команда mount и ее NFS-расширения — самая важная область деятельности для системного администратора на NFS-клиенте.

Кэширование на стороне клиента: демон biod

Для того чтобы повысить общую производительность NFS, в ряде коммерческих Unix-ов имеется демон biod, который выполняет базовые операции блочного кэширования файловых систем по алгоритму опережающего j чтения и отстающей записи (read-ahead, write-behind).

Как и nfsd, biod в качестве аргумента принимает число экземпляров самого себя. Информация о том, как выбирать необходимое число

запускаемых biod, приведена выше; правила для nfsd применимы и к biod.

Монтирование удаленных Файловых систем

Для временного сетевого монтирования файловых систем может использоваться команда mount, но те монтируемые файловые системы, которые являются частью ее постоянной конфигурации, должны быть либо перечислены в файле /etc/fstab (для того чтобы они монтировались автоматически во время начальной загрузки), либо обработаны службой автоматического монтирования — automount или amd.

Следующие элементы файла fstab предназначены для монтирования файловых систем /xor/users/ и /usr/man/ машин хог и chirnchirn:

# filesystem mountpoint fstype flags dump fsck

xor:/xor/users /xor/users nfs rw,bg,intr,hard 0 0

chimchim:/usr/man /usr/man nfs ro,bg,intr,soft 0 0

Добавляя элементы в файл /etc/fstab, обязательно создавайте каталоги-точки монтирования командой mkdir. Можно сделать так, чтобы изменения вступили в силу немедленно; для этого дайте команду

mount -a - t nfs

Поле флаги файла /etc/fstab может использоваться для задания опций монтирования в NFS. Наиболее употребительные флаги перечислены в табл. 17.6.

В ОС Solaris файл /etc/fstab переименован в /etc/vfstab (в стиле System V), а число полей слегка уменьшено. Что касается NFS — опции идентичны.

Демонтирование сетевых файловых систем осуществляется командой umount.

Таблица 17.6. Флаги монтирования NFS

rw Монтировать файловую систему для чтения-записи (она должна экспортироваться сервером в режиме для чтения-записи).

ro Монтировать файловую систему только для чтения.

bg Если монтирование прошло неудачно (сервер не отвечает), попытаться перевести процедуру монтирования в фоновый режим и продолжать обрабатывать другие запросы монтирования.")

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

soft Если сервер отключился, операции, которые пытаются получить к нему доступ, завершаются и выдают сообщение об ошибке. Этот флаг полезно "вывешивать" для того, чтобы предотвратить зависание процессов в случаях неудачного монтирования.

spongy Аналогично монтированию с флагом hard, за исключением операций stat, lookup, fsstat, readlink, readdir, которые работают в варианте монтирования с флагом soft. Это не дает клиентам путешествовать по точкам монтирования неработающих серверов.

retrans=n Задает количество повторений запроса, которые необходимо выполнить перед выдачей сообщения об ошибке при монтировании файловой системы с флагом soft.

time=n Устанавливает интервал тайм-аута запросов (в десятых долях секунды).

Соседние файлы в папке lect_doc