Gzip время, чтобы распаковать?
Я хотел сделать резервную копию всего моего сервера, который размещен. Поэтому я использовал dd и gzip, чтобы уменьшить размер файла. Диск был 500 ГБ, но с использованием менее 5%. Мне удалось dd
весь раздел в gzip-файл размером 200 ГБ через Интернет до моего дома за 8 часов. Сейчас я пытаюсь распаковать файл в раздел на новый диск. Это заняло более 8 часов, и, конечно, я не могу определить прогресс.
- Сколько времени нужно, чтобы распаковать по отношению к сжатию?
- Я предполагаю, что локальный процессор - это ключевой компонент в определении того, сколько времени это займет? (А не пропускная способность сети)
- Есть ли способ увидеть прогресс?
Могу ли я сделать это лучше в следующий раз?
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
в отличие от dd
partimage
знает о файловой системе и будет копировать только те блоки, которые фактически используются файловой системой, а не пустые неиспользуемые блоки, поэтому он может создавать образы дисков намного меньшего размера в основном пустых файловых системах. Но это не очень хороший инструмент для резервного копирования по сети, используйте rsync
вместо.