DataLife Engine > Система > clonehdd - клонируем диск

clonehdd - клонируем диск


27-08-2013. Разместил: synergix В ходе планового обновления "железа" рабочий шлюз на FreeBSD плавно переехал с десктопного железа на полноценный сервер Primergy TX100S3, и после незначительной подправки правил файрволла с указанием названий новых сетевых интерфейсов продолжил трудится в штатном режиме. Но поскольку HDD был достаточно старый, было решено перенести систему со старого 320Gb диска на новый скоростной терабайтник, а старый убрать в сейф на всякий случай в качестве резервного. Итак, в наличии рабочий HDD с именем ada0 и терабайтник, определившийся как ada1, на ada0 используется Soft-updates.

Возиться с ручным переносом разделось не хотелось, потому в поисках в коллекции портов наткнулся на утилиту clonehdd.

Так как FreeBSD хранит свои данные о разделах, которые представлены как «партишены» то Partition Magic, Acronis и т.д. определяет лишь слайсы FreeBSD, а не реальные размеры «партишенов» на разделе(слайсе). CloneHDD являеться фронтендом написанном на перле к штатным инструментам системы , а именно к dump/restore.
Поэтому и работает данный инструмент на уровне файловой системы, а не на уровне разделов(слайсов) и соответсвтенно дает больше возможностей по переносу(бэкапированию) вашего HDD. Тоесть возможно переносить информацию с хардов разных размеров – с большего на меньший и наоборот, главное чтобы на харде было предостаточно свободного места для всей той информации которая будет переноситься.

Важное отступление: так как утилита использует dump/restore, то при включенном журналировании клонироваться диски не будут. Для временного отключения журналирования или Soft-updates грузимся в single-user режим и выполняем команды:

В случае с GJournal.
tunefs -J disable /dev/adaxxx


В случае с Soft-updates
tunefs -n disable /dev/adaxxx


После клонирования можно включить обратно выполнив команду с параметром enable.

В моем случае достаточно выполнить команду
tunefs -n disable /dev/ada0


Ставим утилиту, предварительно обновив порты:
cd /usr/ports/sysutils/clonehdd 
make install clean


либо через pkg_add -r clonehdd

Синтаксис весьма прост и незатейлив:
clonehdd -src=ada0 -dst=ada1 -swap=4096


тем самым мы указываем что исходный HDD ada0, клон ada1 и раздел под swap на новом HDD будет 4Gb. Утилита сама в зависимости от размеров HDD пропорционально ресайзит слайсы.
В интерактивном режиме она попросит вас подтвердить запуск процедуры клонирования:

root@proxy:/home/synergix # clonehdd -src=ada0 -dst=ada1 -swap=4096
Clone parameters:
Source partition: /dev/ada0
Dest partition: /dev/ada1
Swap size: 4096 MB
Safe dumping: Disabled
Free space on DST: 100 MB
Fstab device name: ada0
---
[OK] Found devices for clone procedure
[OK] DST partitions are not in use
---
Source partition
/usr size: 29737MB, used: 4447MB
/var size: 9905MB, used: 3005MB
/ size: 3958MB, used: 169MB
/tmp size: 5947MB, used: 32MB
/home size: 19831MB, used: 816MB
Total: 69379 MB, used: 8471 MB
---
[OK] Device ada1 has enough free space
DATA ON DEVICE ada1 WILL BE DESTROYED NOW!
Continue? [yes/no]:


После подтверждения она начнет 10-секундный отсчет и проведет клонирование диска.
Continue? [yes/no]: yes
Wait 10 seconds before start: 10 9 8 7 6 5 4 3 2 1
[OK] Device /dev/ada1 made clean
[OK] New slice created
---
Destination device partitions:
SWAP size: 4096 MB
/ size 54186 MB
/tmp size 81416 MB
/var size 135604 MB
/usr size 407086 MB
/home size 271480 MB
---
[INF] Last partition were increased for 2 blocks
[OK] Partitions were created successfully
---

[OK] Partition /tmp was formatted successfully
Starting dump/restore procedure...      [OK]

[OK] Partition /var was formatted successfully
Starting dump/restore procedure...      [OK]

[OK] Partition /usr was formatted successfully
Starting dump/restore procedure...      [OK]

[OK] Partition /home was formatted successfully
Starting dump/restore procedure...      [OK]

[OK] Partition / was formatted successfully
Starting dump/restore procedure...      [OK]
[OK] file /etc/fstab generated successfully


Вот собственно и все, мы получили копию HDD. Утилита имеет еще пару нужных параметров, в частности это

-force : Не выводит никаких сообщений и запросов, удобно использовать для запуска по cron'у. Применяется путем добавления
clonehdd [parameters] -force >/dev/null
в /etc/crontab.

-safe : в безопасном режиме необходимо наличие минимум 50% свободного места на партиции, поскольку утилита сначала создает образ партиции и потом переносит его на другой HDD. Если опция не указана, данные копируются на лету, в случае же если на разделе не хватает места, но опция указана, данные копируются на лету с выводом предупреждения.

-fstab=device : Поскольку утилита генерирует новый fstab, есть возможность указания названия HDD, по умолчанию берется из -src
Вернуться назад