Документация по ОС FreeBSD Понедельник, 20.05.2024, 09:39
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Установка и настройка

FreeBSD: Автомонтирование файловых систем NFS и SMBFS с помощью AMD [2011]
Как известно, перед началом использования файловых систем NFS и SMBFS их нужно смонтировать, а когда все необходимые действия будут выполнены - размонтировать. Обычно для монтирования / размонтирования используются команды mount(8) / umount(8), и никто не задумывается об автоматизации данных операций. На мой взгляд, это не самый оптимальный подход, особенно если учесть тот факт, что в состав операционной системы FreeBSD входит специальный демон автоматического монтирования.

Постановка задачи

Демон автомонтирования операционной системы FreeBSD amd(8) предназначен для прозрачного монтирования абсолютно любых файловых систем по мере обращения к расположенным на них файлам и папкам, а также для последующего размонтирования этих файловых систем при отсутствии активности в течение заданного интервала времени. Данная статья посвящена настройке amd для автоматического монтирования файловых систем, экспортируемых NFS-серверами, и общих папок, предоставляемых SMB-серверами. Кроме этого, она описывает диагностику amd с помощью утилиты amq(8) и выделение ему собственного лога с помощью штатных средств управления логами syslogd(8) и newsyslog(8).

Исходные данные

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

Автоматическое монтирование файловых систем NFS

Для обеспечения автоматического монтирования файловых систем NFS достаточно добавить в файл /etc/rc.conf строку:

amd_enable="YES"

и запустить amd командой /etc/rc.d/amd start. По умолчанию amd будет использовать альтернативную папку /.amd_mnt, направлять сообщения о своем состоянии в раздел daemon системного журнала и позволять монтировать файловые системы NFS к папкам локальной файловой системы /host и /net согласно карте монтирования /etc/amd.map (эта карта монтирования входит в состав операционной системы FreeBSD и содержит правила, регламентирующие порядок монтирования и размонтирования файловых систем NFS с помощью Network Host Filesystem). Если перевести сказанное на человеческий язык, то сразу после запуска amd Вы сможете обращаться к файловой системе share, экспортируемой NFS-сервером nfsserver, как к обычной локальной папке с именем /host/nfsserver/share или /net/nfsserver/share. При любом таком обращении и отсутствии необходимой файловой системы в списке смонтированных файловых систем amd создаст точку монтирования /.amd_mnt/nfsserver/host/share, подмонтирует к ней файловую систему share, создаст папку /host/nfsserver или /net/nfsserver и добавит в нее символическую ссылку на вышеупомянутую точку монтирования. Если папка /host/nfsserver/share или /net/nfsserver/share не будет использоваться на протяжении 5 минут, amd размонтирует файловую систему share, а затем удалит ставшие ненужными папки и символическую ссылку.

Автоматическое монтирование файловых систем SMBFS

Для обеспечения автоматического монтирования файловых систем SMBFS придется создать одну или несколько дополнительных карт монтирования, каждая из которых должна содержать правила, базирующиеся на использовании Program Filesystem. Для получения возможности обращения к общим папкам по шаблонным именам вида /smbfs/smbserver/share следует выделить каждому SMB-серверу отдельную карту монтирования. Например, для указания правил монтирования общих папок share1 и share2, предоставляемых SMB-сервером smbserver, можно создать карту монтирования с именем /etc/amd.map-smbserver (Вы может изменить данное имя согласно собственным вкусам) и добавить в нее строки:

share1 type:=program;fs:=${autodir}/${path};mount:="/sbin/mount mount -t smbfs \\\/\\\/user@smbserver/share1 ${fs}"; 
share2 type:=program;fs:=${autodir}/${path};mount:="/sbin/mount mount -t smbfs \\\/\\\/user@smbserver/share2 ${fs}";

Указанные правила заставят amd монтировать общие папки к точке монтирования ${autodir} (переменная ${autodir} содержит имя альтернативной папки) командами /sbin/mount -t smbfs //user@smbserver/share.... Отсутствие параметра umount или unmount предполагает использование команд размонтирования по умолчанию umount ${fs} (переменная ${fs} содержит имя точки монтирования).
Для связывания созданной карты монтирования с точкой монтирования /smbfs/smbserver необходимо добавить в файл /etc/rc.conf строку:

amd_flags="$amd_flags /smbfs/smbserver /etc/amd.map-smbserver"

и перезапустить amd командой /etc/rc.d/amd restart. Сразу после выполнения этих действий Вы сможете обращаться к общим папкам share1 и share2, предоставляемым SMB-сервером smbserver, как к обычным локальным папкам /smbfs/smbserver/share1 и /smbfs/smbserver/share2.

Анализ состояния amd с помощью утилиты amq

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

"root"                                                                      root    1 localhost is up 
/etc/amd.map                               /host                    toplvl  1 localhost is up 
/etc/amd.map                               /net                      toplvl  1 localhost is up 
/etc/amd.map-smbserver               /smbfs/smbserver toplvl  1 localhost is up 
nfsserver:/host/nfsserver               /.amd_mnt/nfsserver  host    1 nfsserver is up 
mount -t smbfs //user@smbserver/share1 ... /.amd_mnt/smbfs/smbserver/share1 program 1 localhost is up

Первый столбец этой таблицы содержит имя карты монтирования для точек монтирования или опции монтирования для смонтированных файловых систем, второй - имя точки монтирования, третий - тип файловой системы amd, четвертый - количество ссылок на точку монтирования или файловую систему, пятый - имя компьютера, на котором находится файловая система, шестой - состояния точки монтирования или файловой системы, седьмой - сообщения об ошибках монтирования (при отсутствии ошибок седьмой столбец не отображается). В связи с тем, что amd и запускаемый им rpcbind(8) поддерживают TCP Wrappers, результатом выполнения команды amq -m могут стать примерно такие сообщения об ошибках:

amq: localhost: RPC: Port mapper failure - RPC: Authentication error 
amq: localhost: RPC: Authentication error; why = Failed (unspecified error)

Для устранения данных ошибок следует добавить в файл /etc/hosts.allow правила, разрешающие доступ к amd и rpcbind с localhost'а:

amd : 127.0.0.1 : allow 
amd : ALL : deny 
rpcbind : 127.0.0.1 : allow 
rpcbind : ALL : deny

Предоставление amd собственного лога

Параметры запуска по умолчанию, заданные в файле /etc/defaults/rc.conf, заставляют amd направлять сообщения о своем состоянии в раздел daemon системного журнала. Если Вы хотите предоставить amd отдельный лог с именем /var/log/amd.log, придется перенаправить эти сообщения в другой раздел системного журнала (в моем случае - в раздел local6), а также соответствующим образом изменить конфигурацию демона syslogd.
С учетом всех изменений в файлах конфигурации, описанных в данной статье, для перенаправления сообщений amd в лог /var/log/amd.log нужно, во-первых, привести определение переменной amd_flags в файле /etc/rc.conf к такому виду:

amd_flags="-a /.amd_mnt -l syslog:local6 /host /etc/amd.map /net /etc/amd.map /smbfs/smbserver1 /etc/amd.map-smbserver1"

и перезапустить amd командой /etc/rc.d/amd restart, а во-вторых, добавить в файл /etc/syslog.conf строку:

local6.* /var/log/amd.log

создать пустой лог командой touch /var/log/amd.log и перезапустить syslogd командой /etc/rc.d/syslogd restart.
Для предотвращения разрастания лога amd следует включить его ротацию с помощью утилиты newsyslog. Например, для ежесуточного усечения лога /var/log/amd.log с сохранением семи предыдущих копий, сжатых архиватором bzip2(1), следует добавить в файл /etc/newsyslog.conf строку:

/var/log/amd.log 644 7 * @T00 JC

Заключение

После выполнения действий, которые описаны в этой статье, Вам больше не придется следить за необходимостью монтирования и размонтирования файловых систем NFS и SMBFS. Я надеюсь, что Вы оцените такую возможность как полезную и обязательно обратите свое внимание на amd.


Источник: http://www.sergeysl.ru/freebsd-using-amd-for-automount-nfs-and-smbfs/
Категория: Установка и настройка | Добавил: oleg (31.01.2011) | Автор: sergeysl
Просмотров: 791 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024