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* subdir
robi 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?
cp
) lub przenoszenie (jak wmv
)? Jeśli przeniesiesz pliki, nie widzę powodu, dla którego powinno nastąpić jakieś potknięcie.Odpowiedzi:
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.
źródło