Перенос между двумя общими папками NFS на одном компьютере

У меня есть одна машина, которая экспортирует две директории, каждая на один физический жесткий диск.

Когда файлы перемещаются между этими двумя общими папками, данные полностью передаются по сети? Если это так, есть ли способ заставить передачу вести себя как mv на удаленной машине?

3 ответа

Решение

Если вы инициируете передачу на клиентском хосте, тогда да, все данные передаются по проводам. Если вы запускаете на сервере nfs, используете ли вы локальные пути к каталогам или точки монтирования, он не срабатывает. Вы можете убедиться в этом, запустив tcpdump, в обоих случаях.NETstat может немного помочь вам увидеть это, но tcpdump покажет вам фактическое количество трафика.

Причина в том, что mv ничего не знает о NFS, она использует системные вызовы вашего локального ядра, а ядро ​​не знает, что точки монтирования A и B экспортируются с одного и того же сервера. Он обрабатывает данные одинаково.

Единственный способ получить желаемое поведение - это выполнить команду оболочки на удаленном сервере, чтобы выполнить передачу туда.

Серверная копия NFS является предлагаемым расширением для NFSv4.2.
Хотя первоначальная поддержка была включена в ядро ​​Linux 3.11, вы можете подождать некоторое время для этого.

Это зависит от того, из какой системы и из какого приложения вы переходите.

Если вы делаете это через компьютер, на котором находятся эти общие ресурсы, он будет передаваться локально через ОС. Пример: ssh на сервер и с помощью команды MV или открытия обозревателя файлов и передачи файлов из одного обозревателя файлов в другой (при условии, что оба обозревателя файлов открыты для ресурсов на одном сервере).

Причина этого, если вы используете два Обозревателя файлов в удаленном сеансе, заключается в том, что все, что вы делаете на своей стороне, сначала переводится на стороне сервера. Сервер просматривает запрос и определяет кратчайший путь к месту назначения, и поскольку он видит себя как источник и место назначения, трафик никогда не покидает сервер (за исключением обновленной информации отслеживания, которую вы видите для передачи файла).

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

Другие вопросы по тегам