Восстановление зеркала zfs

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

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

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
mixar
ефрейтор
Сообщения: 52
Зарегистрирован: 2010-04-26 12:05:49
Контактная информация:

Восстановление зеркала zfs

Непрочитанное сообщение mixar » 2012-03-30 19:42:52

Арендуем сервер у немцев, стоит FreeBSD 9 64bit на zfs (gpt) в зеркале mirror-0, ставили дистрибутив mfsbsd c помощью скрипта zfsinstall помер 1 из дисков. Вчера немцы его заменили. Подскажите можно ли как-то автоматически скопировать структуру разделов GPT с рабочего диска на новый, чтобы новый загнать в mirror-0? Я пробовал вручную, но не получается точную копию сделать.

Вот статус zfs после замены диска:

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

# zpool status -v tank
  pool: tank
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
	continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scan: resilver in progress since Thu Jan  1 03:08:50 1970
    632M scanned out of 22.2G at 1/s, (scan is slow, no estimated time)
    6.26M resilvered, 2.79% done
config:

	NAME                                            STATE     READ WRITE CKSUM
	tank                                            DEGRADED     0     0     0
	  mirror-0                                      DEGRADED     0     0     0
	    gptid/4f16c5a8-3193-11e1-a372-5404a6a069af  ONLINE       0     0     0
	    1469015699092375709                         UNAVAIL      0     0     0  was /dev/gptid/4fe6c9a2-3193-11e1-a372-5404a6a069af

errors: No known data errors
я сделал detach tank 1469015699092375709:

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

# zpool status -v
  pool: tank
 state: ONLINE
 scan: resilvered 22.0G in 2h21m with 0 errors on Fri Mar 30 12:02:56 2012
config:

	NAME                                          STATE     READ WRITE CKSUM
	tank                                          ONLINE       0     0     0
	  gptid/4f16c5a8-3193-11e1-a372-5404a6a069af  ONLINE       0     0     0

errors: No known data errors
Потом попробовал вручную воссоздать структуру как на рабочем диске:

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

# gpart show
=>        34  5860533101  ada0  GPT  (2.7T)
          34        2014        - free -  (1M)
        2048         128     1  freebsd-boot  (64k)
        2176    33554432     2  freebsd-swap  (16G)
    33556608  5826976527     3  freebsd-zfs  (2.7T)

ib# gpart create -s GPT /dev/ada1
ada1 created
ib# gpart show
=>        34  5860533101  ada0  GPT  (2.7T)
          34        2014        - free -  (1M)
        2048         128     1  freebsd-boot  (64k)
        2176    33554432     2  freebsd-swap  (16G)
    33556608  5826976527     3  freebsd-zfs  (2.7T)

=>        34  5860533101  ada1  GPT  (2.7T)
          34  5860533101        - free -  (2.7T)

# gpart add -t freebsd-boot -s 128 ada1
ada1p1 added
ib# gpart show
=>        34  5860533101  ada0  GPT  (2.7T)
          34        2014        - free -  (1M)
        2048         128     1  freebsd-boot  (64k)
        2176    33554432     2  freebsd-swap  (16G)
    33556608  5826976527     3  freebsd-zfs  (2.7T)

=>        34  5860533101  ada1  GPT  (2.7T)
          34         128     1  freebsd-boot  (64k)
         162  5860532973        - free -  (2.7T)
Но как видно на ada0 перед разделами пустое место 1M, а на ada1 у меня сразу получился boot раздел. Прошу помощи. Заранее спасибо!

PS: Есть возможность загрузиться в сингл моде через ipKVM
Последний раз редактировалось f_andrey 2012-03-30 20:03:09, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.
Присоединяйся к нам - FreeBSD.pro

Хостинговая компания 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/

mixar
ефрейтор
Сообщения: 52
Зарегистрирован: 2010-04-26 12:05:49
Контактная информация:

Re: Восстановление зеркала zfs

Непрочитанное сообщение mixar » 2012-03-30 20:00:54

Блин, протупил я, забыл про опцию -b, вот что получилось:

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

# gpart add -t freebsd-boot -b 2048 -s 128 ada1
ada1p1 added
# gpart add -t freebsd-swap -s 16G ada1
ada1p2 added
# gpart add -t freebsd-zfs ada1
ada1p3 added

# gpart show
=>        34  5860533101  ada0  GPT  (2.7T)
          34        2014        - free -  (1M)
        2048         128     1  freebsd-boot  (64k)
        2176    33554432     2  freebsd-swap  (16G)
    33556608  5826976527     3  freebsd-zfs  (2.7T)

=>        34  5860533101  ada1  GPT  (2.7T)
          34        2014        - free -  (1M)
        2048         128     1  freebsd-boot  (64k)
        2176    33554432     2  freebsd-swap  (16G)
    33556608  5826976527     3  freebsd-zfs  (2.7T)
Структуру воссоздал, теперь я так понимаю надо на 2й диск скопировать буткод?

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

# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
bootcode written to ada1
А дальше что делать подскажите пожалуйста!
Присоединяйся к нам - FreeBSD.pro

mixar
ефрейтор
Сообщения: 52
Зарегистрирован: 2010-04-26 12:05:49
Контактная информация:

Re: Восстановление зеркала zfs

Непрочитанное сообщение mixar » 2012-03-30 20:10:41

Вот вычислил gptid нового диска:

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

# gpart show ada1 | /usr/bin/grep freebsd-zfs | /usr/bin/awk '{ print $3 }'
3
# glabel list ada1p3 | /usr/bin/grep gptid | /usr/bin/awk -F"gptid/" '{ print "gptid/" $2 }'
gptid/3aa97eb0-7a89-11e1-9591-5404a6a069af
Присоединяйся к нам - FreeBSD.pro

mixar
ефрейтор
Сообщения: 52
Зарегистрирован: 2010-04-26 12:05:49
Контактная информация:

Re: Восстановление зеркала zfs

Непрочитанное сообщение mixar » 2012-03-30 21:52:16

Осилил вроде:

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

# zpool attach tank gptid/4f16c5a8-3193-11e1-a372-5404a6a069af gptid/3aa97eb0-7a89-11e1-9591-5404a6a069af

# zpool status  pool: tank
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
	continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scan: resilver in progress since Fri Mar 30 22:48:35 2012
    2.85G scanned out of 22.2G at 11.8M/s, 0h27m to go
    2.85G resilvered, 12.85% done
config:

	NAME                                            STATE     READ WRITE CKSUM
	tank                                            ONLINE       0     0     0
	  mirror-0                                      ONLINE       0     0     0
	    gptid/4f16c5a8-3193-11e1-a372-5404a6a069af  ONLINE       0     0     0
	    gptid/3aa97eb0-7a89-11e1-9591-5404a6a069af  ONLINE       0     0     0  (resilvering)

errors: No known data errors
Сейчас жду resilver, местные гуру zfs подскажите все ли верно я сделал?
Присоединяйся к нам - FreeBSD.pro

FrIcE
рядовой
Сообщения: 44
Зарегистрирован: 2010-04-05 17:46:51

Re: Восстановление зеркала zfs

Непрочитанное сообщение FrIcE » 2012-04-16 18:59:02

С разметкой всё верно, только я бы привязывался к метке, а не к UUID, более человекопонятно.

mixar
ефрейтор
Сообщения: 52
Зарегистрирован: 2010-04-26 12:05:49
Контактная информация:

Re: Восстановление зеркала zfs

Непрочитанное сообщение mixar » 2012-04-16 21:38:58

FrIcE писал(а):С разметкой всё верно, только я бы привязывался к метке, а не к UUID, более человекопонятно.
А можно как-то проверить второй диск из пула? Просто я первый раз вставил диск в массив, после ресильвера он стал онлайн, но разметки то не было тогда... Потом решил что надо разметить и опять вставить.
Присоединяйся к нам - FreeBSD.pro