NFS + Hard Links? - PullRequest
       30

NFS + Hard Links?

2 голосов
/ 28 августа 2009

Я знаю, что условием жестких ссылок является то, что они не могут охватывать файловые системы. Это относится к монтированию NFS? Учитывая следующую структуру каталогов, смогу ли я создать жесткую ссылку в каталоге A, которая указывает на файл в каталоге B?

/root
    /A
    /B  <-NFS mount

Например, я бы хотел запустить ln /root/B/file.txt /root/A/linkedfile.txt

Ответы [ 2 ]

7 голосов
/ 05 октября 2011

Было бы неплохо сначала понять, что такое жесткая ссылка.

Обычно в Unix-подобной системе имя файла в каталоге указывает на номер инода - по существу, номер для файла. «Жесткая ссылка» просто создает другое имя файла с тем же номером инода. Теперь у вас есть разные имена, которые указывают на один и тот же пронумерованный файл.

Но обратите внимание, что между этими двумя именами нет прямой связи. Взаимосвязь заключается в том, что для Name1 и Name2 их номер инода установлен равным 12756, но вы ничего не можете удержать и сказать: «В моей руке есть связь между двумя файлами». Это всего лишь две записи в базе данных, которые имеют идентификационный номер. Вы можете выполнить запрос (медленно, так как вы просматриваете каждую запись файла в системе) для имен файлов, которые имеют номер идентификатора, но это все.

Так что это ничего не значит для создания «жесткой связи между двумя файловыми системами» - поскольку две файловые системы имеют разные схемы нумерации (индекс 1234 в первой системе и 1234 в второй системе указывают на совершенно разные файлы), и единственное, что вам нужно сохранить, это имя + inodeNumber, ничего не поделаешь.

7 голосов
/ 28 августа 2009

Ну, поскольку /B - это отдельная файловая система (смонтированная файловая система NFS), вы не можете установить жесткую связь между ней и /A, поскольку они не находятся в одной файловой системе.

Это потому, что жесткая ссылка не создает копию данных , а помещает только копию указателя на эти данные, поэтому они должны находиться в одном и том же "адресном пространстве" ».

...