Как клонировать диск с ZFS?

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
iMoJo
ефрейтор
Сообщения: 66
Зарегистрирован: 2010-03-23 7:24:48
Откуда: KZ

Как клонировать диск с ZFS?

Непрочитанное сообщение iMoJo » 2012-09-27 19:08:45

Приветствую!
Система с 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, этот хард нужно клонировать.
Вопрос: как быстро и правильно это сделать?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Mikl_
проходил мимо

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение Mikl_ » 2012-09-27 22:08:07

а dd не подойдет разве?

Аватара пользователя
iMoJo
ефрейтор
Сообщения: 66
Зарегистрирован: 2010-03-23 7:24:48
Откуда: KZ

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение iMoJo » 2012-09-28 5:42:48

Это тот вариант, который сразу пришел в голову ... Может еще как-то можно?

Аватара пользователя
Alvares
прапорщик
Сообщения: 485
Зарегистрирован: 2008-07-10 12:48:08
Откуда: Воронеж
Контактная информация:

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение Alvares » 2012-09-28 7:42:30

снапшотами?
Бог создал людей сильными и слабыми. Сэмюэл Кольт сделал их равными...

Dark_ASU
сержант
Сообщения: 258
Зарегистрирован: 2009-10-31 22:13:04
Контактная информация:

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение Dark_ASU » 2012-09-28 9:46:35

http://docs.oracle.com/cd/E19253-01/820 ... index.html
Думаю так будет правильней.

Mikl
мл. сержант
Сообщения: 131
Зарегистрирован: 2010-08-06 6:52:24
Откуда: замкадыш

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение Mikl » 2012-09-28 9:58:42

Dark_ASU писал(а):http://docs.oracle.com/cd/E19253-01/820 ... index.html
Думаю так будет правильней.
дык это клон фс, а не диска, на котором их две)
так а чем dd то не устраивает?
можно еще присоединить диск, дождаться создания зеркала и отсоединить диск (attach /detach)

Аватара пользователя
iMoJo
ефрейтор
Сообщения: 66
Зарегистрирован: 2010-03-23 7:24:48
Откуда: KZ

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение iMoJo » 2012-09-28 10:43:12

Mikl писал(а):так а чем dd то не устраивает?
можно еще присоединить диск, дождаться создания зеркала и отсоединить диск (attach /detach)
Уже поставил dd, посмотрим как отработает...
Насчет mirror - хорошая идея, я об этом не подумал!

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение skeletor » 2012-09-28 14:36:34

Лучше всего mirror, а потом можно сделать и zpool split.

Аватара пользователя
iMoJo
ефрейтор
Сообщения: 66
Зарегистрирован: 2010-03-23 7:24:48
Откуда: KZ

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение iMoJo » 2012-09-29 6:07:29

dd отработала, диск поменял, все пашет - всем спасибо!

Аватара пользователя
iMoJo
ефрейтор
Сообщения: 66
Зарегистрирован: 2010-03-23 7:24:48
Откуда: KZ

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение iMoJo » 2013-01-10 11:27:46

Возникла новая ситуация, есть системный диск на 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 отработала без вопросов.
Как правильно перенести систему с бОльшего диска на меньший?

Аватара пользователя
iMoJo
ефрейтор
Сообщения: 66
Зарегистрирован: 2010-03-23 7:24:48
Откуда: KZ

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение iMoJo » 2013-01-14 17:53:08

Систему перенес, кому интересно, я напишу!

Mikl
мл. сержант
Сообщения: 131
Зарегистрирован: 2010-08-06 6:52:24
Откуда: замкадыш

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение Mikl » 2013-01-14 18:15:41

iMoJo писал(а):Систему перенес, кому интересно, я напишу!
пиши, не тяни кота :-D

Аватара пользователя
iMoJo
ефрейтор
Сообщения: 66
Зарегистрирован: 2010-03-23 7:24:48
Откуда: KZ

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение iMoJo » 2013-01-14 19:01:40

Mikl писал(а):
iMoJo писал(а):Систему перенес, кому интересно, я напишу!
пиши, не тяни кота :-D
Соберу в кучу, завтра отпишусь!

Аватара пользователя
iMoJo
ефрейтор
Сообщения: 66
Зарегистрирован: 2010-03-23 7:24:48
Откуда: KZ

Как перенести ZFS системный пул на другой диск

Непрочитанное сообщение iMoJo » 2013-01-15 6:22:13

Возникла необходимость перенести 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 разметку:

Код: Выделить всё

# gpart create -s GPT ad1
ad1 created
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:

Код: Выделить всё

# zpool create -m /mnt zroot /dev/gpt/data
7) делаем снимок старой системы:

Код: Выделить всё

# zfs snapshot -r myboot@2013-01-14
(ключ -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.

Аватара пользователя
T_T
ефрейтор
Сообщения: 65
Зарегистрирован: 2011-02-21 9:56:36

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение T_T » 2013-01-15 15:41:55

а скажите без перезагрузки и без livecd никак не обойтись?

Аватара пользователя
iMoJo
ефрейтор
Сообщения: 66
Зарегистрирован: 2010-03-23 7:24:48
Откуда: KZ

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение iMoJo » 2013-01-15 15:49:06

T_T писал(а):а скажите без перезагрузки и без livecd никак не обойтись?
У меня не получилось - проблемы с mountpoints ...

Аватара пользователя
T_T
ефрейтор
Сообщения: 65
Зарегистрирован: 2011-02-21 9:56:36

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение T_T » 2013-01-15 17:10:04

так-то если просто перенести систему на другой жёсткий диск мне понравилось зеркалом.

1. лучше разметить диск сначала, потом добавляем диск с помощью attach (я метку диска указывал /dev/gpt/disk2 например) и ждём пока у нас синхронизейшин происходит
2. вырубаем комп, достаём старый диск - у нас пишет что зеркало порушено и не хватает 1го диска, мы этот диск удаляем ( нужно использовать deatach) и у нас остаётся рабочая система. получается всё сделано без livecd.

Если интересно подробнее могу описать попозже где-нить в выходные.

и ещё 2 заметки

1. если пул был 20Gb , а наш 2й диск 40Gb например, пул на 40ка гигабайтном диске будет 20гб . Но при след перезагрузке станет 40гб. (т.е. 20 он будет показывать при первой загрузке с порушеным зеркалом ещё)
2. если сразу после синхронизейшена детачить диск ( без перезагрузки) нифига ничего не загрузится.

я ужас как не хочу зеркало на самом деле (оно мне подкинуло пару лет назад из-за не достатка знаний - у меня теперь комплекс :crazy: ) Хочу как-то через zfs send и что бы без live cd и удалённо :smile:

Аватара пользователя
iMoJo
ефрейтор
Сообщения: 66
Зарегистрирован: 2010-03-23 7:24:48
Откуда: KZ

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение iMoJo » 2013-01-15 18:03:38

T_T писал(а):так-то если просто перенести систему на другой жёсткий диск мне понравилось зеркалом.
Я читал об этом и сначала тоже был склонен объединить разделы с помощью zpool attach, но стало как-то очково пробовать на рабочей машине и я решил копать в сторону zfs send/recv ...

veranyon
проходил мимо
Сообщения: 9
Зарегистрирован: 2013-08-29 17:14:32

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение veranyon » 2013-08-29 17:21:04

zpool create -m /mnt zroot /dev/gpt/data
cannot create 'zroot': pool already exists

что, в общем-то, не удивительно, ибо такой пул уже существует. клонируем-то именно "доку", которая везде описана))

Можно сделать zroot2, но это в слепую.
Хотя, с zfs делаю много чего в слепую. По "блогам". Изучить ее - это как год в инсте отучиться. Если по уму, чтоб потом не грохнулось все.
Очень неудобна в управлении эта фс. надо очень много знать, или иметь Каспаровские способности к обучению.
На практике, такие конструкции очень не надежны. То бишь, сферично-то они надежны, но, если четко не понимаешь, как оно работает, лучше не переходить.

Аватара пользователя
T_T
ефрейтор
Сообщения: 65
Зарегистрирован: 2011-02-21 9:56:36

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение T_T » 2013-08-29 17:44:28

Я на ufs пока остался)

хотя получилось всё склонировать нормально. Где-то записал что и как, надо поискать

veranyon
проходил мимо
Сообщения: 9
Зарегистрирован: 2013-08-29 17:14:32

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение veranyon » 2013-08-29 18:07:19

А!
все ясно.
echo 'vfs.root.mountfrom="zfs:/zroot/root"' >> /mnt/boot/loader.conf
у себя сделал "echo 'vfs.root.mountfrom="zfs:/zroot0/root"' >> /mnt/boot/loader.conf"

новый же zroot0.

Аватара пользователя
T_T
ефрейтор
Сообщения: 65
Зарегистрирован: 2011-02-21 9:56:36

Re: Как клонировать диск с ZFS?

Непрочитанное сообщение T_T » 2014-10-12 23:13:46

Блин, где же я записал? =(
Опять придётся помучаться =\

Аватара пользователя
Alpha
рядовой
Сообщения: 14
Зарегистрирован: 2015-03-24 17:27:02

Как клонировать диск с ZFS?

Непрочитанное сообщение Alpha » 2015-03-25 11:35:59

Дабы не плодить однотипные темы, пишу здесь. Есть 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
и ребут, но с дисков ничего не загружается соответственно.

Куда копать?

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Как клонировать диск с ZFS?

Непрочитанное сообщение skeletor » 2015-03-25 11:39:30

Зачем размонтировать zfs при ребуте?

Аватара пользователя
Alpha
рядовой
Сообщения: 14
Зарегистрирован: 2015-03-24 17:27:02

Как клонировать диск с ZFS?

Непрочитанное сообщение Alpha » 2015-03-25 11:44:54

Где я сделал размонтирование при ребуте? Я сделал размонтирование чтобы поменять точки монтирование, но они не поменялись, если верить zfs get mountpoint.