Skopiuj zdalne pliki na NFS bez podróży w obie strony

10

Mam dużą ilość danych (kilka GB) na zdalnym dysku, który jest transparentnie zamontowany przez NFS. Chciałbym skopiować te pliki do podkatalogu, w którym już się znajdują, aby wszystko pozostało na tym samym dysku fizycznym. Z tego powodu chciałbym zapobiec niepotrzebnej podróży w obie strony przez sieć.

Wygląda na to, że cp files* subdirrobi to naiwnie i wczytuje wszystkie dane do pamięci, a następnie zapisuje je z powrotem. Czy to prawda? Czy istnieje specjalne polecenie, które wykonuje faktyczne kopiowanie całkowicie na serwerze, z którym dysk jest fizycznie podłączony?

jdm
źródło
Masz na myśli kopiowanie (jak w cp) lub przenoszenie (jak w mv)? Jeśli przeniesiesz pliki, nie widzę powodu, dla którego powinno nastąpić jakieś potknięcie.
Kusalananda,
Mam na myśli właściwą kopię (cp).
jdm

Odpowiedzi:

13

Wygląda na to, że podkatalog plików cp * robi naiwne i odczytuje wszystkie dane do pamięci, a następnie zapisuje je z powrotem. Czy to prawda?

Tak.

Czy istnieje specjalne polecenie, które wykonuje faktyczne kopiowanie całkowicie na serwerze, z którym dysk jest fizycznie podłączony?

Nie, chyba że możesz zalogować się do zdalnego komputera za pomocą ssh i tam skopiować.

EDYCJA Trwają prace nad dodaniem „kopii po stronie serwera” do protokołu NFS w wersji 4.2 (obecnie jest to 4.1). Patrz np . Http://www.usenix.org/events/fast11/posters_files/Lentini.pdf . Zauważ, że wtedy użycie tej funkcji wymagałoby a) klientów NFS i obsługujących ją serwerów b) nowego połączenia systemowego dla systemu operacyjnego klienta (może reflink lub copyfile ()?) C) obsługi używania nowego połączenia systemowego w zwykłych narzędziach (cp, rsync itp.). Myślę, że minie co najmniej kilka lat, zanim cokolwiek ujrzy światło dzienne.

janneb
źródło
Szkoda Myślę, że AFS to obsługuje i wygląda na to, że ktoś zaimplementował łatkę do NFS, aby ją uwzględnić: lsub.org/who/nemo/nfscp.html
jdm
1
@jdm: W tej dziedzinie jest trochę pracy, zobacz moją edycję. Może w przyszłości ..
janneb