Gzip время, чтобы распаковать?

Я хотел сделать резервную копию всего моего сервера, который размещен. Поэтому я использовал dd и gzip, чтобы уменьшить размер файла. Диск был 500 ГБ, но с использованием менее 5%. Мне удалось dd весь раздел в gzip-файл размером 200 ГБ через Интернет до моего дома за 8 часов. Сейчас я пытаюсь распаковать файл в раздел на новый диск. Это заняло более 8 часов, и, конечно, я не могу определить прогресс.

  1. Сколько времени нужно, чтобы распаковать по отношению к сжатию?
  2. Я предполагаю, что локальный процессор - это ключевой компонент в определении того, сколько времени это займет? (А не пропускная способность сети)
  3. Есть ли способ увидеть прогресс?

Могу ли я сделать это лучше в следующий раз?

5 ответов

Вот статья, которую я видел с некоторыми тестами для gzip и некоторыми другими алгоритмами сжатия: http://tukaani.org/lzma/benchmarks.html. Я предполагаю, что время распаковки зависит от скорости вашего процессора. Кроме того, если вы посмотрите на тесты, кажется, что распаковка почти всегда быстрее, чем сжатие.

Редактировать:

В ответ на ваш последний вопрос о других способах резервного копирования вашего сервера я нашел эту статью, в которой рассказывается о различных методах резервного копирования: http://www.techrepublic.com/blog/10things/10-outstanding-linux-backup-utilities/895 Я не уверен, какой у вас есть доступ к серверу, но если это обычный коммерческий хост, вы можете спросить техподдержку, как вам это сделать.

Вы не хотите (ab) использовать dd как это. Это приведет к потере времени на копирование 95% диска, который не используется, и вы получите испорченный образ, если он будет подключен для чтения / записи в то время. Если вы хотите сделать резервную копию системы, лучше всего убедиться, что вы закрыли все службы, которые могли записывать на диск, и использовали tar,

Обычно распаковка в gzip должна выполняться быстрее, чем сжатие. Я подозреваю, что проблема здесь в том, что целевой диск медленнее, чем диск, с которого он был сжат: или, возможно, вы читаете и записываете на тот же физический диск, что вызывает много запросов.

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

Чтобы увидеть прогресс, я бы установил pv а затем сказать что-то вроде этого:

zcat /tmp/myimg.gz |pv -s500G > /tmp/myimg

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

Самый простой способ посмотреть на ход работающего процесса gzip - просто посмотреть на размер записанного файла, возможно, в сочетании с watch если вы хотите обновления в режиме реального времени. Если вы имеете дело с разделами, это, конечно, не легко возможно.

Альтернативой для оценки прогресса является использование iotop, iotop покажет вам скорость, с которой данные записываются на диск каждым процессом в системе, ваш gzip Процесс, скорее всего, будет отображаться сверху и даст вам объем обрабатываемых данных в секунду. Затем просто умножьте МБ / с на продолжительность процесса (см. ps auxw НАЧАТЬ колонку), и вы получите приблизительное представление о том, сколько времени это займет.

Что касается дальнейших запусков резервного копирования: Используйте rsync когда вы хотите скопировать данные с одного компьютера в сети на другой. rsync обрабатывает сжатие и дельты, поэтому вам нужно только передать данные, которых у вас еще нет, что делает его очень быстрым для регулярных обновлений. Rsync также имеет --backup а также --backup-dir параметры, которые можно использовать для создания не только копий, но и надлежащих резервных копий, которые отслеживают удаленные файлы.

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

Другие вопросы по тегам