Из предыдущей статьи мы узнали о процессе установки и настройки NFS по разными ОС и дистрибутивами Linux. Теперь хочу немного поговорить об монтировании NFS.
Для монтирования NFS разделов можно использовать не только статическое fstab монтирование, но и автоматическое по мере нужности (по мере обращению к ресурсу). Для этого используется autofs.
Устанавливаем нужные пакеты.
root@ubuntu ~#apt-get install autofs
Теперь нужно настроить главную таблицу назначений. В большинстве Unix систем демон automount использует три вида файлов конфигурации, которые еще называют таблицами: таблицы прямых и косвенных назначений и главную таблицу. Таблица прямых и косвенных назначений содержат информацию о файловых система, подлежащих автоматическому монтированию. Главная таблица перечисляет таблицы прямых и косвенных назначений, которые должен учесть демон automount.
Настроим главную таблицу
root@ubuntu ~#vim /etc/auto.master # # Sample auto.master file # This is an automounter map and it has the following format # key [ -mount-options-separated-by-comma ] location # For details of the format look at autofs(5). # /mnt /etc/auto.misc
Здесь мы добавили таблицу косвенных назначений. Для папки /mnt (куда будет монтироваться NFS) была добавлена карта с настройками /etc/auto.misc.
Теперь редактируем карту косвенных назначений.
root@ubuntu ~# vim /etc/auto.misc ... dir2 -rw 192.168.2.213:/home/alex/nfs_dir2
Здесь мы вписали папку (dir2) в которую будет монтироваться NFS (192.168.2.213:/home/alex/nfs_dir2) с опциями rw.
Теперь можно перезапустить autofs для применения конфигураций.
root@ubuntu ~# /etc/init.d/autofs restart
Теперь каждый раз при обращении (открытии, добавление, удалении файлов) к папке /mnt/dir2 в фоновом режиме будет монтироваться удаленная ФС и все действия с файлами будет происходить на NFS разделе.
Это момент можно увидеть.
root@ubuntu:~# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 19856260 2843968 16016196 16% / udev 497372 4 497368 1% /dev tmpfs 202476 320 202156 1% /run none 5120 0 5120 0% /run/lock none 506180 0 506180 0% /run/shm root@ubuntu:~# ls -l /mnt/ total 0 root@ubuntu:~# ls /mnt/dir2 FILE1 file1_dir2 file2_dir2 file3_dir2 root@ubuntu:~# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 19856260 2843968 16016196 16% / udev 497372 4 497368 1% /dev tmpfs 202476 320 202156 1% /run none 5120 0 5120 0% /run/lock none 506180 0 506180 0% /run/shm 192.168.2.213:/home/alex/nfs_dir2 11278848 1480960 9232000 14% /mnt/dir2
Как мы видим, сначала у нас нет смонтированной сетевой папки в выводе df ну и в самой директории /mnt нету подкаталога dir2. Но мы знаем, что там должна быть такая папка, и просто делаем лист файлов в этой папке, как будто она там есть (ls /mnt/dir2). И как видим — список файлов получен и в выводе df у нас появилась наша сетевая шара. Все дело в том, что при косвенном назначении ls не выводит никакой информации. Для того, чтобы мы все таки видели NFS подкаталоги при использовании ls и т.п. нужно использовать таблицу прямых назначений.
Для этого редактируем главную таблицу и создаем настройки прямых назначений
root@ubuntu:~# vim /etc/auto.master # # Sample auto.master file # This is an automounter map and it has the following format # key [ -mount-options-separated-by-comma ] location # For details of the format look at autofs(5). # /mnt /etc/auto.misc # Специальный токен для прямых назначений /- /etc/auto.direct root@ubuntu:~# vim /etc/auto.direct # # This is an automounter map and it has the following format # key [ -mount-options-separated-by-comma ] location # Details may be found in the autofs(5) manpage #cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom # the following entries are samples to pique your imagination #linux -ro,soft,intr ftp.example.org:/pub/linux #boot -fstype=ext2 :/dev/hda1 #floppy -fstype=auto :/dev/fd0 #floppy -fstype=ext2 :/dev/fd0 #e2floppy -fstype=ext2 :/dev/fd0 #jaz -fstype=ext2 :/dev/sdc1 #removable -fstype=ext2 :/dev/hdd # Абсолютный путь к директории /mnt/dir1 -rw 192.168.2.213:/home/alex/nfs_dir1
Теперь перезагружаем autofs и смотрим список директорий в /mnt
root@ubuntu:~# /etc/init.d/autofs restart root@ubuntu:~# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 19856260 2843976 16016188 16% / udev 497372 4 497368 1% /dev tmpfs 202476 320 202156 1% /run none 5120 0 5120 0% /run/lock none 506180 0 506180 0% /run/shm root@ubuntu:~# ls -l /mnt/ total 0 drwxr-xr-x 2 root root 0 Nov 25 05:19 dir1 root@ubuntu:~# ls -l /mnt/dir2/ total 4 -rw-r--r-- 1 root root 6 Nov 25 03:00 FILE1 -rw-r--r-- 1 root root 0 Oct 31 00:31 file1_dir2 -rw-r--r-- 1 root root 0 Oct 31 00:31 file2_dir2 -rw-r--r-- 1 root root 0 Oct 31 00:31 file3_dir2 root@ubuntu:~# ls -l /mnt/dir1/ total 4 -rw-r--r-- 1 root root 0 Oct 31 00:31 file1_dir1 -rw-r--r-- 1 root root 0 Oct 31 00:31 file2_dir1 -rw-r--r-- 1 root root 0 Oct 31 00:31 file3_dir1 drwxr-xr-x 2 nobody nogroup 4096 Oct 31 00:58 New folder root@ubuntu:~# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 19856260 2843972 16016192 16% / udev 497372 4 497368 1% /dev tmpfs 202476 320 202156 1% /run none 5120 0 5120 0% /run/lock none 506180 0 506180 0% /run/shm 192.168.2.213:/home/alex/nfs_dir2 11278848 1480960 9232000 14% /mnt/dir2 192.168.2.213:/home/alex/nfs_dir1 11278848 1480960 9232000 14% /mnt/dir1
Как видим, сначала в выводе df небыло смонтированных NFS разделов, но в папке /mnt видно, то есть подкаталог указанный в таблице прямых назначений (dir1). Теперь после просмотра содержимого dir1 и dir2 у нас будут смонтированные две сетевые папки, о чем нам говорит вывод df.
Можете почитать много интересного по autofs на man странице и оффсайте.
не работает
/mnt$ cd dir2
bash: cd: dir2: No such file or directory
/mnt$ ls /mnt/dir2
ls: cannot access /mnt/dir2: No such file or directory
NFS папку /home/alex/nfs_dir2 на 192.168.2.213 сервере расшарил?