Назад | Перейти на главную страницу

Создание двух общих ресурсов nfs с одного сервера, но при монтировании оба указывают на один и тот же каталог

У меня есть группа серверов, которым нужны два общих ресурса nfs, нескольким серверам нужен доступ к одному из общих ресурсов, а всем серверам нужен доступ к другому. Сервер NFS - ubuntu 12.04, а остальные - 13.04 Вот мой экспорт на сервер nfs

    /u0/logshare/ 172.1.1.0/24(rw,fsid=0,insecure,no_subtree_check,async)
    /vmail1/ 172.1.1.64/27(rw,fsid=0,no_subtree_check,async,anonuid=2000,anongid=2000) 172.1.1.36(rw,fsid=0,no_subtree_check,async,anonuid=2000,anongid=2000)

Оба они находятся в разных разделах, logshare - ext4, а vmail - xfs, не знаю, может ли это быть актуально.

Вот что находится в fstab на клиентском сервере

    172.1.1.15:/vmail1           /vmail1         nfs     hard,intr,auto 0 0 
    172.1.1.15:/u0/logshare      /logshare     nfs     hard,intr,auto 0 0 

но вот что я получаю после перезагрузки

172.1.1.15:/u0/logshare  4.1G  158M  3.8G   4% /logshare
172.1.1.15:/vmail1       4.1G  158M  3.8G   4% /vmail1

он просто дважды смонтировал логово. Если я изменю порядок экспорта, он дважды монтирует vmail. В чем дело? Я просматривал журналы, но не вижу ошибок, связанных с nfs

Showmount -e показывает это
/ vmail1 172.1.1.35,172.1.1.64 / 27 / u0 / logshare 172.1.1.0/24

и содержимое обоих креплений идентично

Вы должны были начать говорить, что это сервер NFSv4.

Проблема в вашем /etc/exports файл. Вы объявляете оба ресурса с fsid=0 флаг. Это неверно.

Прочтите exports(5) для деталей, но в основном:

For NFSv4, there is a distinguished filesystem which is the root of all exported filesystem. 
This is specified with fsid=root or fsid=0 both of which mean exactly the same thing. 

Т.е. вы можете только заявить один корень.

Обычной практикой (хотя у других могут быть разные) является создание выделенных LV (отформатированных так, как вам нужно, ext4, xfs, ...) для ресурсов, которые вы планируете экспортировать, и mount их под управляемой структурой каталогов. Например:

/var/exports/foo
/var/exports/bar
/var/exports/baz

Затем, mount связать эти ресурсы под /srv/nfsv4/, в результате чего-то в строках:

# tree /srv/nfsv4/
/srv/nfsv4/
├── bar
├── baz
└── foo

Таким образом, вы заявляете /srv/nfsv4 ваш fsid=0 и экспортируйте остальные ресурсы по своему усмотрению.

Обратите внимание, что ограничения доступа (по IP или sec выбран режим) в fsid=0 применяются, поэтому клиенты, не удовлетворяющие требованиям в fsid=0 не сможет смонтировать ресурсы, даже если выполняются требования для конкретного ресурса.