Назад | Перейти на главную страницу

Будет ли rsync лучше tar, wget и untar?

Я перехожу на новый сервер, и, помимо файлов html / php, у меня есть каталог, содержащий около 90 000 файлов общим размером 24 ГБ, которые необходимо переместить.

Когда я выполнял тестовую миграцию, я использовал tar для создания tarball, затем wget на новом хосте, а затем извлек tar-файл, но, пока он работал нормально, все это заняло около 3 часов. Это привело бы к 3 часам простоя, пока я делал это во время фактического переноса, чтобы гарантировать, что не появятся новые файлы или файлы не будут изменены и т. Д.

Сейчас я планирую фактическую миграцию и пытаюсь найти более быстрые способы сделать это, и задумался об использовании rsync - я когда-либо использовал rsync локально и только для небольшого количества файлов, поэтому запуск rsync для элементов 90k будет быстрее, чем указано выше метод?

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

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

Подумайте о восстановлении вашего tar-архива или резервной копии, пока старая система работает. Затем во время простоя используйте rsync, чтобы скопировать оставшиеся изменения. Ему по-прежнему приходится проверять много времени на изменение файла, что требует времени, но гораздо меньше операций ввода-вывода и передачи по сети.

Эта инкрементальная копия - это то, чем хорош rsync. Выполнение этого за один раз может быть не быстрее, чем другие инструменты.

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

rsync будет копировать только различия - только изменения с исходного сервера на целевой. Если у вас уже есть копия ваших данных на новом сервере, rsync скопирует только то, что было изменено между вашим tar и фактическим состоянием.

Если вы хотите сделать это с помощью tar, а не rsync, вы можете распараллелить свои задачи:

источник :

tar ... | nc host port

место назначения :

nc -l -p port | tar ...

Это как минимум сократит ваше время на два