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

самое быстрое резервное копирование больших файлов

каков самый быстрый способ скопировать папку, содержащую несколько файлов размером в несколько сотен мегабайт и другие небольшие файлы размером в несколько мегабайт? (скажем, / var / lib / mysql) cp, tar, rsync или ... ??

rsync в целом будет быстрее, чем cp или tar, потому что rsync передает только те файлы, которые были изменены, а с --partial он будет передавать только те части файла, которые изменились.

Сказав это, rsync работает намного лучше, если вы знаете, что резервное копирование, и можете все организовать так, чтобы rsync не выполнял столько работы. Например, повернутые файлы журнала в / var / log работают намного лучше, если вы замените их на имя файла с датой вместо .0, .1, .2 и т. Д.

Еще одно замечание: в своем вопросе вы упоминаете / var / lib / mysql. Использование rsync для резервного копирования - это довольно плохая идея, используйте mysqldump для получения надежной резервной копии. Если эта резервная копия слишком велика для частой передачи, используйте репликацию mysql и резервное копирование с ведомого устройства. (Вы все равно должны периодически делать полную резервную копию на главном сервере, хотя репликация тоже может завершиться ошибкой).

Это зависит от того, что вы копируете. Вы не можете просто сделать резервную копию живой базы данных с помощью rsync, вы получите поврежденный файл. Для баз данных, таких как mysql, вам нужно настроить cron, например, для запуска mysqldump, а затем rsync этого файла. Кроме того, убедитесь, что вы добавили «дату» к имени файла, чтобы вы знали, когда для этого файла была сделана резервная копия, и имели несколько резервных копий на всякий случай.

Зависит от нескольких факторов. Для большого количества небольших файлов обычно лучше использовать tar. Если это небольшое количество больших файлов, в большинстве случаев подойдет cp.

Если у вас есть список файлов, но изменяется лишь небольшая их часть, rsync более эффективен.

Ах, волшебное слово backup

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

Особенно, если большинство файлов копировать не нужно.

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

Если файлы в основном текстовые (что не относится к двоичным файлам mysql или базам данных), рассмотрите возможность архивирования tar (bzip2 и тому подобное). В противном случае вы ничего не получите от сжатия, поэтому просто оставьте tar в покое.

Предполагая, что у вас уже есть более старая копия файлов, и вам нужно только обновить копию, тогда rsync намного быстрее, чем cp или tar, поскольку он передает только измененные байты. Файл размером 100 МБ с несколькими измененными записями обновится через несколько секунд. Я считаю, что он идеально подходит для файлов базы данных, но с двоичными файлами у меня не получилось.

Но если цель копии - резервное копирование за пределами площадки, ничего не подходит к rdiff-backup. rdiff-backup, как и rsync, передает только изменения в файлах, но также поддерживает инкрементные изменения, так что вы можете восстановить любой файл с любой более ранней даты резервного копирования.

И, что касается баз данных SQL, rdiff-backup проверяет изменения, сделанные во время резервного копирования, и исправляет их автоматически, так что IMHO это должно быть безопасно. Если, конечно, SQL-сервер не хранит данные в памяти, не записывая их на диск, то это будет небезопасно.

SAN Snapshot - это в самый быстрый способ, но, вероятно, не тот ответ, который вы искали.