LINUX.ORG.RU

Как перенести файлы по сети максимально быстро?

 


0

1

На десктопе есть раздел /storage — ntfs, ~800G файлов. Файлы разного размера.

На сервере есть пустой раздел /storage — ext4.

Пытался сделать так:

scp -pr  /storage/* root@192.168.0.1:/storage

Увидел, что скорость скачет от десятков мегабайт, до килобайт. То есть когда scp передаёт мелкие файлики — скорость мизерная.

Видимо он передаёт их по очереди, что и убивает скорость.

Какая утилита даст мне максимальную скорость? Желательно через ssh (не поднимать отдельный сервер вроде Самбы).

Какая утилита даст мне максимальную скорость? Желательно через ssh

tar + ssh

sdio ★★★★★
()

Заархивь в один архив все, и передай архивом. Но ты потратишь время на архивирование, равное примерно тому же времени, что и просто передача мелких файлов.

Zhbert ★★★★★
()

Только tar, только хардкор. В смысле, всю мелочь желательно в архив сунуть, а потом передать scp.

maniackiller
()

Если хватит места - загоняй в архив и его уже scp.

april
()
Ответ на: комментарий от sdio

Никаких архивов на диске, все на лету.

cd /some/dir; tar cf - . | ssh server 'cd /other/dir; tar xf -'

можно исп. tar -C, но это не везде есть, так что лучше без.

sdio ★★★★★
()
Ответ на: комментарий от sdio

И если на диске лежат хорошо сжимаемые файлы (текст), то стоит добавить опцию z к обоим tar'ам

sdio ★★★★★
()

В данном случае nfs, скорее всего, будет иметь самую высокую скорость. «Поднятие» такового обычно сводится к полутора командам.

sin_a ★★★★★
()
Ответ на: комментарий от ksevelyar

server1# tar -c /full/path | bzip2 -zc9 > /data.tar.bz2
server1# scp /data.tar.bz2 root@server2:/

server2# cd / ; bzip2 -dc /data.tar.bz2 | tar -x

распакуется прямо «в то же место», что и на основном сервере.

«9» - максимальный режим компрессии.

wheel
()
Ответ на: maybe rsync от anonymous

rsync имел бы смысл, если бы на втором винте была хотя бы часть данных с первого, просто копирование у него вроде бы не быстрее чем scp

marvin_yorke ★★★
()

dd с одного терабайтного винчестера на другой в пределах одного компьютера делается три часа, а ты по сети хочешь :)

Лучше пешком к серверу отправится с хардом в кармане :)

Harald ★★★★★
()
Ответ на: комментарий от Harald

распакуется прямо «в то же место», что и на основном сервере.

Я для этого использую команду sdio:

cd /storage; tar cf - Dropbox | ssh root@192.168.0.1 tar xf - -C /laundry

ksevelyar
() автор топика
Ответ на: комментарий от Harald

Сервер домашний, локалка гигабитная — 43М/s.

ksevelyar
() автор топика

Я бы единоразово открыл ящик для такого случая или через USB-контроллер, если не хочется ждать сутками. Надеюсь, есть ещё один бэкап где-то (всегда должно быть более 1го или даже 2х копий). Зависит от ценности данных, правда.

А в будущем - регулярный инкрементальный rsync с десктопа на сервер, много не накапливая. И желательно - ещё один (раз в год например) с сервера на 3й диск - который хранить удалённо.

Кстати, ssh замедляет, пользую NFS между 2мя линукс-машинами и SMB - между десктопами и 1м сервером (так и фотографии листать, прямо с сервера, удобно, и старую почту или записи искать, особенно когда более одного десктопа)

siberean
()

Попробуй с другим алгоритмом.

При выборе алгоритма шифрования нужно исходить из конфиденциальности информации, которую вам нужно передать. Если информация секретна, лучше использовать алгоритмы IDEA или RSA. Если же вы просто не хотите передавать данные в открытом виде, используйте алгоритм BlowFish, поскольку он работает значительно быстрее, чем DES.

ssh -c blowfish ...

Так копировал ~50 гб, включая кучу мелких файлов, по локалке 100мбит/с - скорость была порядка 11-12 мб/с (88-96 мбит/с), по времени почти то на то и вышло.

Verkhovtsev_M_D
()
Ответ на: комментарий от Deleted

Особенно если использовать его over ssh. С rsyncd оно заметно быстрее работает.

ei-grad ★★★★★
()
Ответ на: комментарий от wheel

Мне интересно, сколько времени займёт сжатие с 9-ым уровнем ~800 гигов данных.

shell-script ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.