Це ситуація, в якій я часто буваю:
- У мене є джерело-сервер із жорстким диском на 320 ГБ і 16 ГБ оперативної пам’яті ( точні специфікації доступні тут , але оскільки це питання, з яким я часто стикаюся і на інших машинах, я вважаю за краще відповідь працювати на будь-якій "розумна" машина Linux)
- У мене є резервний сервер з кількома терабайтми місця на жорсткому диску ( точні характеристики тут , див. Відмову від відповідальності вище)
Я хочу передати 320 ГБ даних з вихідного сервера на цільовий сервер (конкретно, дані з /dev/sda
).
- Два комп'ютери фізично розташовані поруч, тож я можу провести кабелі між ними.
- Я в локальній мережі, і я використовую новий-ish маршрутизатор , а це означає, що швидкість моєї мережі повинна "в ідеалі" бути 1000 Мбіт, правда?
- Безпека - це не проблема. Я в локальній мережі, і я довіряю всім машинам у мережі, включаючи маршрутизатор.
- (необов’язково) Мені не обов’язково потрібна підписана контрольна сума даних, але основна перевірка помилок (наприклад, скинуті пакети або диск стає нечитабельним) повинна виявлятись, а не просто зникати у висновку.
Я шукав це запитання в Інтернеті і перевірив кілька команд. Найчастіше з’являється такий:
ssh user@192.168.1.100 'dd bs=16M if=/dev/sda | gzip' > backup_sda.gz
Ця команда виявилася занадто повільною (вона працювала протягом години, лише отримала приблизно 80 ГБ даних). На тестовий пакет 1 Гб знадобилося близько 1 хвилини та 22 секунди, і, не стиснувшись, удвічі швидше. Результати, можливо, також були спотворені тим, що переданий файл менший за об'єм оперативної пам’яті у вихідній системі.
Більше того (і це було випробувано на тестових зразках 1 Гб), у мене виникають проблеми, якщо я використовую gzip
команду і dd
; Отриманий файл має іншу контрольну суму при витягуванні в ціль, ніж це, якщо прямо в трубі. Я все ще намагаюся з’ясувати, чому це відбувається.
/dev/sda
у вигляді зображення або просто файли. Чому rsync не є варіантом? Є чи /dev/sda
встановлений , поки ви dd
ед?