Надежный бекап на халяву

Вчера в нашем(и не только) городе случился интернетокапец. Интернеты пропали совсем у ТВТ и Дом.ру. Взгрустнулось.

Вспомнил, что на ноуте остался раздел в 13 Gb со старой системой(Дебиан). Там оставались некоторые файлы в домашней директории + кое-какие конфиги. Копировать и ковырять стало лень. Решил сбэкапить этот раздел и пожать в архив стандартными линуховыми утилитами. Позднее при надобности этот файл можно будет подмонтировать и все нужное скопировать.

Стало интересно, сколько же это займет по времени. Так родился маленький бенчмарк.

Итак, конфигурация ноутбука:

CPU: Intel Core2Duo 1.5 GHz

RAM: 2 Gb

HDD: Seagate SATA 250 GB, 5400 об/мин , размер кеша вроде как 2 Mb

Бекапируемый раздел: /dev/sda2,  13 Gb, свободное пространство..... эм.... забыл посмотреть точно. Кажется около 3 Gb

Реальный лог операций:

root@laptop:/media# time cat /dev/sda2 |gzip -c -1 > /media/data/sda2.img.gz

real 30m0.188s
user 21m59.274s
sys 1m24.917s

root@laptop:/media# ls -lh /media/data/ |grep img
-rw-r--r-- 1 root root 6,7G Дек 1 15:19 sda2.img.gz
root@laptop:/media# time cat /dev/sda2 |gzip -c -9 > /media/data/sda2.img.gz

real 93m9.680s
user 73m47.129s
sys 1m35.106s

root@laptop:/media# ls -lh /media/data/ |grep img
-rw-r--r-- 1 root root 6,3G Дек 1 17:06 sda2.img.gz
root@laptop:/media# time dd if=/dev/sda2 bs=2M conv=sync,noerror |gzip -c -1 > /media/data/sda2.img.gz
6675+1 записей считано
6676+0 записей написано
скопировано 14000586752 байта (14 GB), 1926,57 c, 7,3 MB/c

real 32m6.655s
user 21m24.808s
sys 1m40.582s

root@laptop:/media# ls -lh /media/data/ |grep img
-rw-r--r-- 1 root root 6,6G Дек 1 17:06 sda2.img.gz

 

root@laptop:/media# time dd if=/dev/sda2 bs=8M conv=sync,noerror |gzip -c -1 > /media/data/sda2.img.gz
1668+1 записей считано
1669+0 записей написано
скопировано 14000586752 байта (14 GB), 2202,07 c, 6,4 MB/c

real 36m42.097s
user 21m56.318s
sys 1m34.634s

root@laptop:/media# ls -lh /media/data/ |grep img
-rw-r--r-- 1 root root 6,7G Дек 1 18:57 sda2.img.gz

В первом случае использовал перенаправление от cat на gzip с парметром -1, что означает сжимать слабо. Время выполнения 30 минут с копейками.

Во-втором та же история, но уже gzip'у  передается параметр -9 , что означает сжимть максимально сильно. Время выполнения 93 минуты с центамим.

Третий случай: использовал прекрасную утилитку dd. Размер разом читаемого блока bs=2M.  gzip'у передается параметр -1 чтоб сильно не тужился.  Время: 32 минуты.

Четвертый случай, клинический :) все тоже самое, что и в третьем, но bs=8M. Время: 36 минут 42 секунды

 

 

Итог: 

Как выразились в одном озвестном видеоролике: Это печально.
 

Мне кажется  ужать 13 гиг  в  .gz  за  30  минут при самом слабом пожатии  это слишком долго.

Как видно по графику, сжимать с параметром -9 смысла нет. ОЧень долго и размер архива немногим меньше.

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

Вероятно, если bs оставить умолчальным (т.е. вовсе не указывать), то время выполнения будет примерно одинаковым с первым случаем:  cat    |   gzip -1 >

 

Прошу высказываться. Чего упустил, где накосячил и прочее :)

 Респект за статью!  Раздел,

 Респект за статью! 

Раздел, случаем не boot? Если нет - есть ли смысл делать посекторное копирование? Может проще всё через копи в архив загнать?

Да, в моем случае наверное

Да, в моем случае наверное проще просто в архив. Но с другой стороны было интересно потестить.
Просто бывают случаи, что нужно сделать дамп диска для последующего восстановления. Вот тут оно и может помочь

Пользуюсь Ghost помойму

Пользуюсь Ghost помойму быстрей него не одно ПО не делает

В такие моменты (аварии и

В такие моменты (аварии и т.п.) действительно вспоминаешь о резервном копировании. В этом смысле мне всегда были симпатичны "разностные" технологии, когда первый раз записывается всё, а в последующие дни - только измененные файлы, причем ничего кроме tar, gzip и cron для этого не нужно. Что-то типа

/bin/tar -czf $FILENAME --after-date=$LAST /var/www/htdocs

где $FILENAME - имя нового архива, $LAST - дата последнего архива. В этом случае 30 минут не понадобятся и восстановить файлы можно по состоянию на любую дату.

Можно, кстати, на Core2Duo

Можно, кстати, на Core2Duo использовать многопоточные архиваторы, которые используют сразу несколько процессоров (ядер). Время сжатия значительно уменьшится. Я недавно озадачивался этим вопросом у себя в блоге.

я недавно проводил подобный

я недавно проводил подобный тест: http://freearc.org/HFCB.aspx

могу посоветовать pigz, который представляет из себя многопоточную версию gzip. или мою собственную утилиту 4x4, но вряд ли ты захочешь пускать что-то непрверенное :D

Отправить комментарий

КАПЧА
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
CAPTCHA на основе изображений
Enter the characters (without spaces) shown in the image.