У меня большой объем данных (несколько ГБ) на удаленном диске, который прозрачно монтируется через nfs. Я хотел бы скопировать эти файлы в подкаталог, в котором они уже находятся, чтобы все оставалось на одном физическом диске. По этой причине я хотел бы предотвратить ненужные поездки по сети.
Кажется, что cp files* subdir
делает наивные вещи и читает все данные в память, а затем записывает их обратно. Это правда? Существует ли специальная команда, которая полностью выполняет фактическое копирование на сервер, к которому физически подключен диск?
cp
) или переместить (как вmv
)? Если вы переместите файлы, я не понимаю, почему должны быть какие-либо обходы.Ответы:
Кажется, что cp files * subdir делает наивные вещи и читает все данные в память, а затем записывает их обратно. Это правда?
Да.
Существует ли специальная команда, которая полностью выполняет фактическое копирование на сервер, к которому физически подключен диск?
Нет, если вы не можете войти на удаленную машину с помощью ssh и выполнить копирование там.
РЕДАКТИРОВАТЬ Идет работа по добавлению «серверной копии» в протокол NFS версии 4.2 (текущая версия 4.1). См., Например, http://www.usenix.org/events/fast11/posters_files/Lentini.pdf . Обратите внимание, что для использования этой функции потребуются: а) клиенты и серверы NFS, поддерживающие ее; б) новый системный вызов для клиентской ОС (может быть, reflink или copyfile ()?); В) поддержка использования нового системного вызова в обычных утилитах (cp, rsync). , и т.д.). Полагаю, пройдет не менее нескольких лет, прежде чем что-либо увидит свет.
источник