Страница 1 из 5
Как клонировать диск с ZFS?
Добавлено: 2012-09-27 19:08:45
iMoJo
Приветствую!
Система с 3-мя пулами выглядит так:
Код: Выделить всё
p3a# uname -a
FreeBSD 8.2-RELEASE FreeBSD 8.2-RELEASE #0 r219081M: Wed Mar 2 08:29:52 CET 2011
root@www4:/usr/obj/usr/src/sys/GENERIC amd64
p3a# zfs list
NAME USED AVAIL REFER MOUNTPOINT
data 164G 237G 24K /work
data/exchange 164G 237G 164G /work/exchange
data/torrent 30K 237G 30K /work/torrent
mass 4,23T 1,11T 28,0K /mass
mass/dp 4,23T 1,11T 4,23T /mass/dp
myboot 4,32G 44,7G 21K none
myboot/root 4,31G 44,7G 3,93G /
myboot/root/tmp 226K 44,7G 226K /tmp
myboot/root/var 279M 44,7G 244M /var
p3a# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
data 408G 164G 244G 40% ONLINE -
mass 8,16T 6,36T 1,80T 77% ONLINE -
myboot 49,8G 4,32G 45,4G 8% ONLINE -
Пулы:
mass - 3x3Tb в raidz.
data - промежуточное пространство для торентов.
myboot - собственно сама система.
myboot и data физически находятся на одном харде 500Gb, этот хард нужно клонировать.
Вопрос: как быстро и правильно это сделать?
Re: Как клонировать диск с ZFS?
Добавлено: 2012-09-27 22:08:07
Mikl_
а dd не подойдет разве?
Re: Как клонировать диск с ZFS?
Добавлено: 2012-09-28 5:42:48
iMoJo
Это тот вариант, который сразу пришел в голову ... Может еще как-то можно?
Re: Как клонировать диск с ZFS?
Добавлено: 2012-09-28 7:42:30
Alvares
снапшотами?
Re: Как клонировать диск с ZFS?
Добавлено: 2012-09-28 9:46:35
Dark_ASU
Re: Как клонировать диск с ZFS?
Добавлено: 2012-09-28 9:58:42
Mikl
дык это клон фс, а не диска, на котором их две)
так а чем dd то не устраивает?
можно еще присоединить диск, дождаться создания зеркала и отсоединить диск (attach /detach)
Re: Как клонировать диск с ZFS?
Добавлено: 2012-09-28 10:43:12
iMoJo
Mikl писал(а):так а чем dd то не устраивает?
можно еще присоединить диск, дождаться создания зеркала и отсоединить диск (attach /detach)
Уже поставил dd, посмотрим как отработает...
Насчет mirror - хорошая идея, я об этом не подумал!
Re: Как клонировать диск с ZFS?
Добавлено: 2012-09-28 14:36:34
skeletor
Лучше всего mirror, а потом можно сделать и zpool split.
Re: Как клонировать диск с ZFS?
Добавлено: 2012-09-29 6:07:29
iMoJo
dd отработала, диск поменял, все пашет - всем спасибо!
Re: Как клонировать диск с ZFS?
Добавлено: 2013-01-10 11:27:46
iMoJo
Возникла новая ситуация, есть системный диск на ZFS объемом 500Gb:
Код: Выделить всё
# uname -a
FreeBSD 8.2-RELEASE FreeBSD 8.2-RELEASE #0 r219081M: Wed Mar 2 08:29:52 CET 2011
root@www4:/usr/obj/usr/src/sys/GENERIC amd64
# gpart show
=> 34 976773101 ad1 GPT (466G)
34 128 1 freebsd-boot (64K)
162 8388608 2 freebsd-swap (4.0G)
8388770 104857600 3 freebsd-zfs (50G)
113246370 863526765 - free - (412G)
На 3-ем слайсе системный пул myboot:
Код: Выделить всё
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
myboot 49.8G 4.33G 45.4G 8% ONLINE -
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myboot 4.33G 44.6G 21K none
myboot/root 4.33G 44.6G 3.93G /
myboot/root/tmp 228K 44.6G 228K /tmp
myboot/root/var 344M 44.6G 301M /var
На свободном месте был еще один пул, где крутились торенты, потом в нем стали появляться ошибки, я этот
пул грохнул и решил организовать систему и пул для торентов на отдельных дисках.
На системном диске остались 3 слайса общим объемом ~54Gb и я хочу перенести систему на новый 2.5' HDD 60Gb.
При переносе ZFS системы на другой диск аналогичного объема утилита dd отработала без вопросов.
Как правильно перенести систему с бОльшего диска на меньший?
Re: Как клонировать диск с ZFS?
Добавлено: 2013-01-14 17:53:08
iMoJo
Систему перенес, кому интересно, я напишу!
Re: Как клонировать диск с ZFS?
Добавлено: 2013-01-14 18:15:41
Mikl
iMoJo писал(а):Систему перенес, кому интересно, я напишу!
пиши, не тяни кота
Re: Как клонировать диск с ZFS?
Добавлено: 2013-01-14 19:01:40
iMoJo
Mikl писал(а):iMoJo писал(а):Систему перенес, кому интересно, я напишу!
пиши, не тяни кота
Соберу в кучу, завтра отпишусь!
Как перенести ZFS системный пул на другой диск
Добавлено: 2013-01-15 6:22:13
iMoJo
Возникла необходимость перенести ZFS систему на другой диск, теории начитался, но ни одного "боевого" решения не нашел.
За оказанную помощь при решении вопроса большой салам засылается
taurus'у c iXBT.
Попытаюсь расписать подробнее, чтобы было меньше вопросов у народа.
Имеем рабочий диск:
Код: Выделить всё
# uname -a
FreeBSD 8.2-RELEASE FreeBSD 8.2-RELEASE #0 r219081M: Wed Mar 2 08:29:52 CET 2011
root@www4:/usr/obj/usr/src/sys/GENERIC amd64
# gpart show
=> 34 976773101 ada0 GPT (466G)
34 128 1 freebsd-boot (64K)
162 8388608 2 freebsd-swap (4.0G)
8388770 104857600 3 freebsd-zfs (50G)
113246370 863526765 - free - (412G)
системный пул myboot находится на 3-ей партиции
Код: Выделить всё
# zfs list
myboot 4.33G 44.6G 21K none
myboot/root 4.33G 44.6G 3.93G /
myboot/root/tmp 228K 44.6G 228K /tmp
myboot/root/var 344M 44.6G 301M /var
1) У меня был новый 2.5' HDD 60gb, в системе отбился как ad1
Создаем GPT разметку:
2) создаем загрузочный партишн:
Код: Выделить всё
# gpart add -s 128k -t freebsd-boot -l boot ad1
ad1p1 added
3) 4Gb партишн для swap:
Код: Выделить всё
# gpart add -b 290 -s 4g -t freebsd-swap -l swap ad1
ad1p2 added
4) и партишн для системы:
Код: Выделить всё
# gpart add -t freebsd-zfs -l data ad1
ad1p3 added
# gpart show
=> 34 117208060 ad1 GPT (56G)
34 256 1 freebsd-boot (128K)
290 8388608 2 freebsd-swap (4.0G)
8388898 108815100 3 freebsd-zfs (52G
)
5) в boot записал gptzfsboot-загрузчик и protective MBR:
Код: Выделить всё
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ad1
boot added ad1
6) создал пул zroot для системы на новом HDD:
7) делаем снимок старой системы:
(ключ -r - рекурсивный снимок всех дочерних FS)
Код: Выделить всё
# zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
myboot@2013-01-14 0 - 21K -
myboot/root@2013-01-14 59,1M - 3,93G -
myboot/root/tmp@2013-01-14 53K - 228K -
myboot/root/var@2013-01-14 42,8M - 297M -
8 ) передаем данные со старого пула в новый на этой же машине:
Код: Выделить всё
# zfs send -vR myboot@2013-01-14 | zfs receive -vFd zroot
либо подключаем новый HDD на другой машине,
предварительно загрузившись с LiveCD и на старой системе выполняем:
Код: Выделить всё
# zfs send -vR myboot@2013-01-14 | ssh 192.168.x.x zfs receive -vFd zroot
где 192.168.x.x - IP 2-ой машины
9) теперь, либо выключаем 1-ый комп и меняем старый HDD на новый, либо
продолжаем на 2-ой машине.
Грузимся с LiveCD, затем
10) монтируем пул в /mnt и прописываем кэш файл:
Код: Выделить всё
# zpool import -o cachefile=/tmp/zpool.cache -o altroot=/mnt zroot
# cp /tmp/zpool.cache /mnt/boot/zfs
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zroot 4.33G 44.6G 21K none
zroot/root 4.33G 44.6G 3.93G /mnt
zroot/root/tmp 228K 44.6G 228K /mnt/tmp
zroot/root/var 344M 44.6G 301M /mnt/var
# echo 'zfs_enable="YES"' >> /mnt/etc/rc.conf
# echo 'zfs_load="YES"' >> /mnt/boot/loader.conf
# echo 'vfs.root.mountfrom="zfs:/zroot/root"' >> /mnt/boot/loader.conf
либо проверяем их наличие
Код: Выделить всё
# cat /mnt/boot/loader.conf | more
# cat /mnt/etc/rc.conf | more
11) перемонтируем FS
Код: Выделить всё
# zfs unmount -a
# zpool set cachefile='' zroot
# zfs set mountpoint=legacy zroot/root
# zfs set mountpoint=/var zroot/root/var
# zfs set mountpoint=/tmp zroot/root/tmp
# zpool set bootfs=zroot/root zroot
# reboot
Все, после ребута система нормально прогрузилась с нового HDD.
Re: Как клонировать диск с ZFS?
Добавлено: 2013-01-15 15:41:55
T_T
а скажите без перезагрузки и без livecd никак не обойтись?
Re: Как клонировать диск с ZFS?
Добавлено: 2013-01-15 15:49:06
iMoJo
T_T писал(а):а скажите без перезагрузки и без livecd никак не обойтись?
У меня не получилось - проблемы с mountpoints ...
Re: Как клонировать диск с ZFS?
Добавлено: 2013-01-15 17:10:04
T_T
так-то если просто перенести систему на другой жёсткий диск мне понравилось зеркалом.
1. лучше разметить диск сначала, потом добавляем диск с помощью attach (я метку диска указывал /dev/gpt/disk2 например) и ждём пока у нас синхронизейшин происходит
2. вырубаем комп, достаём старый диск - у нас пишет что зеркало порушено и не хватает 1го диска, мы этот диск удаляем ( нужно использовать deatach) и у нас остаётся рабочая система. получается всё сделано без livecd.
Если интересно подробнее могу описать попозже где-нить в выходные.
и ещё 2 заметки
1. если пул был 20Gb , а наш 2й диск 40Gb например, пул на 40ка гигабайтном диске будет 20гб . Но при след перезагрузке станет 40гб. (т.е. 20 он будет показывать при первой загрузке с порушеным зеркалом ещё)
2. если сразу после синхронизейшена детачить диск ( без перезагрузки) нифига ничего не загрузится.
я ужас как не хочу зеркало на самом деле (оно мне подкинуло пару лет назад из-за не достатка знаний - у меня теперь комплекс
) Хочу как-то через zfs send и что бы без live cd и удалённо
Re: Как клонировать диск с ZFS?
Добавлено: 2013-01-15 18:03:38
iMoJo
T_T писал(а):так-то если просто перенести систему на другой жёсткий диск мне понравилось зеркалом.
Я читал об этом и сначала тоже был склонен объединить разделы с помощью zpool attach, но стало как-то очково пробовать на рабочей машине и я решил копать в сторону zfs send/recv ...
Re: Как клонировать диск с ZFS?
Добавлено: 2013-08-29 17:21:04
veranyon
zpool create -m /mnt zroot /dev/gpt/data
cannot create 'zroot': pool already exists
что, в общем-то, не удивительно, ибо такой пул уже существует. клонируем-то именно "доку", которая везде описана))
Можно сделать zroot2, но это в слепую.
Хотя, с zfs делаю много чего в слепую. По "блогам". Изучить ее - это как год в инсте отучиться. Если по уму, чтоб потом не грохнулось все.
Очень неудобна в управлении эта фс. надо очень много знать, или иметь Каспаровские способности к обучению.
На практике, такие конструкции очень не надежны. То бишь, сферично-то они надежны, но, если четко не понимаешь, как оно работает, лучше не переходить.
Re: Как клонировать диск с ZFS?
Добавлено: 2013-08-29 17:44:28
T_T
Я на ufs пока остался)
хотя получилось всё склонировать нормально. Где-то записал что и как, надо поискать
Re: Как клонировать диск с ZFS?
Добавлено: 2013-08-29 18:07:19
veranyon
А!
все ясно.
echo 'vfs.root.mountfrom="zfs:/zroot/root"' >> /mnt/boot/loader.conf
у себя сделал "echo 'vfs.root.mountfrom="zfs:/zroot0/root"' >> /mnt/boot/loader.conf"
новый же zroot0.
Re: Как клонировать диск с ZFS?
Добавлено: 2014-10-12 23:13:46
T_T
Блин, где же я записал? =(
Опять придётся помучаться =\
Как клонировать диск с ZFS?
Добавлено: 2015-03-25 11:35:59
Alpha
Дабы не плодить однотипные темы, пишу здесь. Есть FreeBSD 10.1, стоит на zfs один диск (stripe). Хочу перенести систему на другую машину, где будет pool mirror из двух дисков. На удаленной машине подготовил два диска для пула ZFS gpart'om, записал в каждый загрузчик, создал zpool с опцией altroot=/mnt, и перенес туда все системы заюзав mbuffer.
zfs send -vR zroot/var@23032015 | mbuffer -v4 -4 -s 128k -m 1G -O 172.16.16.1:8023
Затем пришлось перезагрузиться и опять загружаюсь с LiveCD.
Далее делаю как описано в здешней теме:
Смотрю для начала какие пулы есть:
#zpool import
pool: zroot
id: 14246489986171969397
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
zroot ONLINE
mirror-0 ONLINE
diskid/DISK-Z1W2M1XX ONLINE
ada1 ONLINE
Далее делаю
#zpool import -o cachefile=/tmp/zpool.cache -o altroot=/mnt zroot
Смотрю что у меня имеется:
#zfs list
NAME USED AVAIL REFER MOUNTPOINT
zroot 143G 307G 19K none
zroot/ROOT 24.9G 307G 19K none
zroot/ROOT/default 24.9G 307G 24.6G /mnt
zroot/tmp 70.8M 307G 70.0M /mnt/tmp
zroot/usr 106G 307G 19K /mnt/usr
zroot/usr/home 103G 307G 103G /mnt/usr/home
zroot/usr/ports 2.10G 307G 2.09G /mnt/usr/ports
zroot/usr/src 735M 307G 735M /mnt/usr/src
zroot/var 12.1G 307G 12.0G /mnt/var
zroot/var/crash 19K 307G 19K /mnt/var/crash
zroot/var/log 195M 307G 195M /mnt/var/log
zroot/var/mail 24K 307G 24K /mnt/var/mail
zroot/var/tmp 31K 307G 20K /mnt/var/tmp
Далее:
#cp /tmp/zpool.cache /mnt/boot/zfs
Смотрю настройки загрузки:
#cat /mnt/etc/rc.conf | grep 'zfs'
zfs_enable="YES"
#cat /mnt/boot/loader.conf | grep 'zfs'
zfs_load="YES"
Вижу что здесь нет mountfrom (на системе с которой делал снапшот бех этого грузилось) на всякий прописываю:
#cat /mnt/boot/loader.conf | grep 'zfs'
zfs_load="YES"
vfs.root.mountfrom="zfs:/zroot/ROOT/default"
Делаю размонтирование фс:
#zfs unmount -a
Кеш
#zpool set cachefile='' zroot
И устанавливаю точки монтирования:
#zfs set mountpoint=legacy zroot/ROOT/default
#zfs set mountpoint=/usr zroot/usr
И так со всеми, и смотрю что поменялось:
# zfs get mountpoint
NAME PROPERTY VALUE SOURCE
zroot mountpoint none local
zroot/ROOT mountpoint none local
zroot/ROOT@23032015 mountpoint - -
zroot/ROOT/default mountpoint legacy local
zroot/ROOT/default@23032015 mountpoint - -
zroot/tmp mountpoint /mnt/tmp local
zroot/tmp@23032015 mountpoint - -
zroot/usr mountpoint /mnt/usr local
zroot/usr@23032015 mountpoint - -
zroot/usr/home mountpoint /mnt/usr/home local
zroot/usr/home@23032015 mountpoint - -
zroot/usr/ports mountpoint /mnt/usr/ports local
zroot/usr/ports@23032015 mountpoint - -
zroot/usr/src mountpoint /mnt/usr/src local
zroot/usr/src@23032015 mountpoint - -
zroot/var mountpoint /mnt/var local
zroot/var@23032015 mountpoint - -
zroot/var/crash mountpoint /mnt/var/crash local
zroot/var/crash@23032015 mountpoint - -
zroot/var/log mountpoint /mnt/var/log local
zroot/var/log@23032015 mountpoint - -
zroot/var/mail mountpoint /mnt/var/mail local
zroot/var/mail@23032015 mountpoint - -
zroot/var/tmp mountpoint /mnt/var/tmp local
zroot/var/tmp@23032015 mountpoint - -
Кроме zroot/ROOT/default как видно ничего не меняется.
Пробовал затем делать
#zpool set bootfs=zroot/root zroot
и ребут, но с дисков ничего не загружается соответственно.
Куда копать?
Как клонировать диск с ZFS?
Добавлено: 2015-03-25 11:39:30
skeletor
Зачем размонтировать zfs при ребуте?
Как клонировать диск с ZFS?
Добавлено: 2015-03-25 11:44:54
Alpha
Где я сделал размонтирование при ребуте? Я сделал размонтирование чтобы поменять точки монтирование, но они не поменялись, если верить zfs get mountpoint.