Скопируйте большой файл от одного сервера Linux до другого

Единственная выгода - то, что я хотел бы, чтобы данные были зашифрованы

Так как это - взгляд Linux на dm-склеп или truecrypt.

С dm-склепом или truecrypt, будет кто-либо с доступом к файловой системе смочь получить доступ к данным?

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

Данные должны быть зашифрованы на файловом сервере, но монтируемые на другом сервере Linux через NFS или некоторый другой протокол.

То, как данные шифруются на сервере, обычно не связано с тем, как Вы служите ему. Следует иметь в виду, что большинство протоколов обслуживания файлов, которые Вы будете использовать, не будет зашифровано, таким образом, люди смогут видеть Ваши файлы, поскольку они используются по сети, если Вы не делаете что-то для шифрования их в пути. Вы могли использовать что-то как IPSEC, VPN между хостами или sshfs.

20
задан 13 August 2009 в 17:04
10 ответов

Sneakernet кто-либо?

Принятие этого является одной копией времени, я не предполагаю, что его возможное просто копирует файл в CD (или другие медиа), и в течение ночи это месту назначения там?

Это могло бы на самом деле быть Вашей самой быстрой опцией, поскольку передача файлов того размера, по тому соединению, не могла бы скопировать правильно..., в этом случае, Вы добираетесь для запуска снова и снова.


rsync

Моим вторым выбором/попыткой был бы rsync, поскольку он обнаруживает отказавшие передачи, частичные передачи, и т.д. и может поднять от того, где он кончил.

rsync --progress file1 file2 user@remotemachine:/destination/directory

- флаг прогресса даст Вам некоторую обратную связь вместо того, чтобы просто находиться там и оставить Вас второму предположению самих.:-)


Vuze (bittorrent)

Третий выбор состоял бы в том, чтобы, вероятно, попытаться использовать Vuze в качестве сервера потока и затем иметь Ваше удаленное использование местоположения стандарт bitorrent клиент для загрузки его. Я знаю о других, которые сделали это, но Вы знаете... к тому времени, когда они получили все это настроенное выполнение и т.д... У меня мог быть overnighted данные...

Зависит от Вашей ситуации, которую я предполагаю.

Удачи!


ОБНОВЛЕНИЕ:

Вы знаете, я получил взгляды о Вашей проблеме немного больше. Почему файл должен быть единственным огромным tarball? Tar совершенно способен к разделению больших файлов в меньшие (для охвата медиа, например) итак, почему бы не разделить тот огромный tarball на более managable части, и затем передайте части вместо этого?

15
ответ дан 2 December 2019 в 20:10
  • 1
    +1, хотя, вероятно, не экономически эффективный в этом случае. Никогда не недооценивайте пропускную способность 747, полных жестких дисков :) –  Chad Huneycutt 13 August 2009 в 06:36
  • 2
    Я couldn' t находят ссылку, но пара несколько лет назад Google смотрела на поставлющиеся ящики дисков вокруг. Если можно переместить ящик дисков в общей сложности 500 ТБ от точки для указания на B, какой-либо путь, Вы сокращаете его that' s некоторая могущественно-прекрасная пропускная способность –  STW 13 August 2009 в 06:46
  • 3
    Возможно, Вы обращаетесь к этой статье: arstechnica.com/science/news/2007/03/… –  KPWINC 13 August 2009 в 07:04
  • 4
    Да, я закончил тем, что поставил жесткий диск. Настоящей проблемой, или таким образом, мне сказали, было управление потоком на переключателе (переключателях). –  Nathan Milford 21 August 2009 в 05:35

Я сделал это в прошлом с 60 ГБ tbz2 файл. У меня больше нет сценария, но должно быть легко переписать его.

Во-первых, разделите свой файл на части ~2GB:

split --bytes=2000000000 your_file.tgz

Для каждой части вычислите хеш MD5 (это должно проверить целостность), и сохраните его где-нибудь, затем начните копировать части и их md5 на удаленный сайт с инструментом по Вашему выбору (меня: netcat-tar-pipe на экранной сессии).

Через некоторое время сверьтесь с md5, если Ваши части хорошо, то:

cat your_file* > your_remote_file.tgz

Если Вы также сделали MD5 исходного файла, проверьте его также. Если это хорошо, Вы можете untar Ваш файл, все должно быть в порядке.

(Если я найду время, то я перепишу сценарий),

7
ответ дан 2 December 2019 в 20:10

Обычно я - крупный защитник rsync, но при передаче единственного файла впервые, это, кажется, не имеет много смысла. Если бы, однако, Вы повторно передавали файл только с незначительными различиями, то rsync был бы явным победителем. Если Вы принимаете решение использовать rsync так или иначе, я настоятельно рекомендую выполнение одного конца в --daemon режим для устранения уничтожения производительности ssh туннель. Страница справочника описывает этот режим вполне полностью.

Моя рекомендация? FTP или HTTP с серверами и клиентами, которые поддерживают возобновление, прервали загрузки. Оба протокола быстры и легки, избегая ssh-туннельного штрафа. Apache + wget кричал бы быстро.

Прием канала netcat также хорошо работал бы. Tar не необходим при передаче единственного большого файла. И причина, это не уведомляет Вас, когда это сделано, состоит в том, потому что Вы не сказали это. Добавьте a -q0 отметьте к стороне сервера, и она будет вести себя точно, как Вы ожидали бы.

server$ nc -l -p 5000 > outfile.tgz

client$ nc -q0 server.example.com 5000 < infile.tgz

Оборотная сторона к подходу netcat - то, что он не позволит Вам возобновляться, умирает ли Ваша передача 74 ГБ в...

5
ответ дан 2 December 2019 в 20:10
  • 1
    +1 для rsyncd. Я на самом деле использую его для передач на моей LAN, потому что я вижу более высокую пропускную способность по сравнению с CIFS или NFS. –  Ophidian 13 August 2009 в 17:22

Дайте netcat (иногда названный nc) выстрел. Следующие работы над каталогом, но должно быть достаточно легко настроить для того, чтобы просто справиться один файл.

На целевом поле:

netcat -l -p 2342 | tar -C /target/dir -xzf -

На исходном поле:

tar czf * | netcat target_box 2342

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

3
ответ дан 2 December 2019 в 20:10

SCP по умолчанию и Rsync (который использует SCP) являются очень медленными для больших файлов. Я предполагаю, что изучил бы использование протокола с более низкими издержками. Вы попытались использовать более простой шифр шифрования, или не вообще? Попытайтесь изучить --rsh опция для rsync для изменения метода передачи.

Почему не FTP или HTTP?

1
ответ дан 2 December 2019 в 20:10
  • 1
    я сделал ol' " python-m SimpleHTTPServer" от commandlinefu на источнике и wget' d файл на месте назначения. Я все еще получаю " 18.5K/s ЭТА 15d 3h" –  Nathan Milford 13 August 2009 в 05:35

Хотя это добавляет немного служебное к ситуации, БитТоррент является на самом деле действительно хорошим решением передачи больших файлов. БитТоррент имеет много хороших функций как собственное разделение на блоки файла и вычисления контрольной суммы каждый блок, который может ретранслироваться если повреждение.

Программа как Azureus [теперь известный как Vuze] содержит все части, необходимо будет создать, сервер и загрузить потоки в одном приложении. Боб в памяти Azureus не является самым минимизированным из решений, доступных для БитТоррента, и я думаю, требует его GUI также - существует большая командная строка управляемые инструменты потока для Linux все же.

1
ответ дан 2 December 2019 в 20:10

Ну, лично, 20-30Kb/s кажется довольно низким для 10 МБ (принимающий 10 МБ и не 10 МБ) ссылка.

Если бы я был Вами, то я сделал бы одну из двух вещей (предполагающий, что физический доступ не доступен) -

Любой, я советую Вам разделять большой файл на меньшие блоки, приблизительно 500 МБ Просто упаковывают повреждения в пути.

Когда у Вас есть меньшие блоки, используйте или rsync снова, или я лично предпочитаю использовать частный Безопасный сеанс FTP и затем CRC файлы после завершения.

0
ответ дан 2 December 2019 в 20:10

Несколько вопросов могли бы помочь в обсуждениях: как очень важный данные должны быть переданы? Это для аварийного восстановления, горячего резервного копирования, автономного хранения или что? Вы намереваетесь скопировать базу данных, в то время как она произошла или вниз? Что относительно того, чтобы настроить базу данных в удаленной системе и сохраняют их в синхронизации с помощью или кластеризируясь или обновляя через журналы изменений (я не являюсь полностью сведущим на возможностях системы баз данных MySql). Это могло бы помочь уменьшить объем данных, бывший должный быть переданным через ссылку.

0
ответ дан 2 December 2019 в 20:10
  • 1
    Это - снимок LVM другой копии MySQL (нашего основного экземпляра MySQL в другом месте). После того, как переданный и расположенный целевой mysql экземпляр может просто обновить различие между тем снимком (используйте его в качестве дельты), и где ведущее устройство в теперь. То, что это - резервное копирование MySQL, не релевантно, it' s просто большой блок данных я только должен переместиться однажды. –  Nathan Milford 13 August 2009 в 06:22

bbcp разделит файл на части и скопирует его несколькими потоками.

0
ответ дан 2 December 2019 в 20:10

Поздний ответ для гуглеров:

При передаче больших наборов данных можно использовать rsync для сравнения источника и места назначения, а затем записать пакетный файл на локальный съемный носитель с помощью флага --only-write-batch. Затем вы отправляете локальный носитель в удаленное место, подключаете его и снова запускаете rsync, используя --read-batch для включения изменений в удаленный набор данных.

Если исходные файлы изменяются во время физической транспортировки, или если транспортный носитель заполняется, вы можете просто продолжать повторять --only-write-batch |, отправляя | цикл --read-batch до тех пор, пока не будет достигнут пункт назначения.

(Ref: Я был одним из авторов этой функции в rsync -- подробнее о фоновом режиме и примерах использования смотрите в этом обсуждении реализации прототипа: https://lists.samba.org/archive/rsync/2005-March/011964.html)

0
ответ дан 2 December 2019 в 20:10

Теги

Похожие вопросы