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

Приступаем к fsid под Linux? Или альтернативный способ идентификации файловых систем?

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

/home

А у локального клиента есть:

# mount
fileserver:/home/l/lars on /home/lars type nfs (rw...)
fileserver:/home/b/bob on /home/bob type nfs (rw...)

Я ищу способ определить, что оба /home/lars и /home/bob фактически являются одной и той же файловой системой. Теоретически это то, что fsid результат statvfs структура предназначена для, но во всех случаях, как для локальной, так и для удаленной файловой системы, я обнаружил, что значение этого члена структуры равно 0.

Это какая-то проблема на стороне клиента? Или же большинство современных серверов NFS просто отказываются предоставлять полезные fsid?

Конечная цель всего этого - надежно интерпретировать выходные данные quota команда для файловых систем NFS. Например, в приведенном выше примере выполняется quota как я могу вернуть что-то вроде:

Disk quotas for user lars (uid 6580): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
otherserver:/vol/home0/a/alice
                     12  52428800 52428800               4  4294967295 4294967295        
fileserver:/home/l/lars
                9353032  9728000 10240000          124018       0       0        

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

Похоже, это не сработает, так что ... есть предложения?

Вы можете использовать mountpoint команда. В -d switch печатает старший / младший номер устройства точки монтирования на стандартный вывод.

В вашем случае сравните вывод mountpoint -d /home/lars к mountpoint -d /home/bob.

[root@Fruity ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             9.9G  2.5G  7.0G  26% /
/dev/sda1              97M   43M   50M  47% /boot
/dev/sda7             2.0G   68M  1.9G   4% /tmp
/dev/sda3             9.9G  2.8G  6.6G  30% /usr
/dev/sda6             6.0G  1.1G  4.6G  19% /var
/dev/sdb1             400G  263G  138G  66% /data
/dev/sdc1             150G  122G   29G  82% /images
nfs001:/data/chain    36G  1.2G   35G   4% /data/chain
nfs001:/data/src      36G  1.2G   35G   4% /data/src


[root@Fruity ~]# mountpoint -d /data/chain/
0:19

[root@Fruity ~]# mountpoint -d /data/src/
0:19

[root@Fruity ~]# mountpoint -d /data/
8:17